Odpowiedzi

2010-04-05T21:07:28+02:00
Systemy komputerowe przeżywają rewolucję. Od 1945 roku, kiedy to rozpoczęła się era nowoczesnych komputerów, aż do roku 1985 komputery były wielkie i drogie. Nawet minikomputery z reguły kosztowały dziesiątki tysięcy dolarów. Wskutek tego większość instytucji dysponowała skromną liczbą komputerów, które - z braku sposobów ich łączenia - działały niezależnie jeden od drugiego.

Od połowy lat osiemdziesiątych sytuacja ta zaczęła się zmieniać dzięki dwu osiągnięciom w technologii. Pierwszym było opracowanie mikroprocesorów o dużej mocy obliczeniowej. Z początku były to maszyny ośmiobitowe, lecz wkrótce upowszechniły się procesory szesnastobitowe, trzydziestodwubitowe, a nawet sześćdziesięcioczterobitowe. Wiele z nich miało moc obliczeniową porównywalną z mocą całkiem porządnego komputera głównego (tj. wielkiego) - a przy tym za ułamek ceny. Postęp w technologii komputerowej, jaki dokonał się w minionym półwieczu, jest oszałamiający i nie ma sobie równego w innych dziedzinach przemysłu. Od maszyny, która kosztowała 10 milionów dolarów i wykonywała jedną instrukcję na sekundę, technologia doszła do maszyn kosztujących 1000 dolarów i wykonujących 10 milionów instrukcji na sekundę, osiągając ponad tysiąć razy lepszy współczynnik cena/wydajność.

Drugim osiągnięciem było wynalezienie szybkich sieci komputerowych. Lokalne sieci komputerowe, czyli sieci LAN (ang. Local Area Network), umożliwiają łączenie w obrębie budynków nawet setek komputerów w taki sposób, że niewielkie ilości informacji mogą być przesyłane między maszynami w czasie tysięcznych części sekundy. Większe ilości danych mogą przemieszczać się między maszynami z szybkościami od 10 do 100 milionów bitów na sekundę, a niekiedy nawet szybciej . Rozległe sieci komputerowe, czyli sieci WAN (ang. Wide Area Networks), pozwalają łączyć miliony maszyn na całej kuli ziemskiej i przesyłać informacje z szybkościami od 64 kb/s do gigabitów na sekundę.

Dzięki tym technologiom wzajemne połączenie ze sobą - za pomocą szybkiej sieci - systemów komputerowych złożonych z wielu jednostek centralnych (CPU - ang. Central Processor Unit) jest obecnie nie tylko wykonalne, ale i łatwe. Nazywa się je zwykle systemami rozproszonymi (ang. distributed systems) w przeciwieństwie do poprzednich systemów scentralizowanych (ang. centralized systems), czyli jednoprocesorowych (ang. single-processor systems), złożonych z jednego procesora centralnego, jego pamięci, urządzeń zewnętrznych i pewnej liczby terminali. Systemy rozproszone wymagają jednak zupełnie odmiennego oprogramowania niż systemy scentralizowane. Co więcej - niezbędne dla nich systemy operacyjne zaczynają dopiero powstawać. Uczyniono już kilka kroków, lecz droga do przebycia jest jeszcze długa.

Chociaż wszystkie systemy rozproszone składają się z wielu jednostek centralnych, sprzęt ten można zorganizować na kilka sposobów, zwłaszcza pod względem wzajemnych połączeń i rodzajów komunikacji. W ciągu wielu lat proponowano rozmaite schematy klasyfikacji wieloprocesorowych systemów komputerowych, lecz w rzeczywistości żaden z nich nie przyjął się na dobre i nie wszedł do powszechnego użycia. Istotne w tym przypadku są dwie cechy: liczba strumieni instrukcji oraz liczba strumieni danych. Komputer z jednym strumieniem instrukcji i jednym strumieniem danych nosi nazwę SISD. Wszystkie tradycyjne komputery jednoprocesorowe (tj. mające tylko jedną jednostkę centralną) mieszczą się w tej kategorii - od komputerów osobistych aż po wielkie komputery główne.

Następną kategorią jest SIMD - jeden strumień instrukcji i zwielokrotniony strumień danych. Ten typ odnosi się do procesorów macierzowych z jedną jednostką wykonywania instrukcji, która pobiera instrukcję, a następnie zarządza wieloma jednostkami danych w sposób równoległy - każda z nich operuje na własnych danych. Maszyny tego rodzaju są użyteczne do obliczeń, w których powtarza się te same operacje na wielu zbiorach danych, na przykład przy dodawaniu wszystkich składowych 64 niezależnych wektorów. Niektóre superkomputery zalicza się do typu SIMD.

Kolejna kategoria zwie się MISD - zwielokrotniony strumień instrukcji i jeden strumień danych. Modelowi temu nie odpowiada żaden ze znanych komputerów. Ostatnią z kategorii stanowi MIMD, która w istocie oznacza grupę niezależnych komputerów zaopatrzonych we własne liczniki rozkazów, programy i dane. Wszystkie systemy rozproszone należą do kategorii MIMD, tym samym ta klasyfikacja nie jest nazbyt użyteczna do naszych celów.

Wszystkie komputery MIMD dzielą się na dwie grupy (RYS.1.): komputery wyposażone we wspólną pamięć, zazwyczaj nazywane wieloprocesorami (ang. multiprocessors) i komputery, które jej nie mają, czasami nazywane multikomputerami (ang. multicomputers). Zasadnicza różnica przedstawia się następująco: w wieloprocesorze istnieje jedna wirtualna przestrzeń adresowa dzielona przez wszystkie procesory centralne. Jeśli którakolwiek jednostka centralna zapisuje na przykład wartość 44 pod adresem 1000, to każda inna jednostka centralna, czytająca następnie spod swojego adresu 1000, otrzyma wartość 44. Wszystkie maszyny dzielą tę samą pamięć. Na odwrót, w multikomputerach każda z maszyn ma własną, prywatną pamięć. Jeśli jakaś jednostka centralna zapisuje wartość 44 pod adresem 1000, podczas gdy inna jednostka centralna czyta spod adresu 1000, to ta ostatnia dostanie wartość pamiętaną tam poprzednio. Zapisywanie wartości 44 zupełnie nie wpływa na zawartość jej własnej pamięci. Typowym przykładem multikomputera jest zbiór komputerów osobistych połączonych za pomocą sieci.