1. Co to jest system rozproszony?
System rozproszony - zbiór komputerów połączonych siecią i
wyposażony w oprogramowanie mające zapewnić zintegrowane
środowisko przetwarzania. System rozproszony jest zbiorem niezależnych komputerów (aspekt sprzętowy), które z punktu widzenia użytkowników systemu sprawiają wrażenie pojedynczego komputera (aspekt programowy).
2. Jakie są różnice między wieloprocesorami a multikomputerami?
Systemy rozproszone mogą być dwojakiego rodzaju: wieloprocesory i multikomputery.
Wieloprocesory to zespół dwóch lub więcej jednostek centralnych korzystających ze wspólnej
pamięci operacyjnej. Multikomputery natomiast to odrębne procesory, każdy z prywatną pamięcią,
połączone za pomocą sieci. Zanim pojawiło się pojęcie rozproszonej pamięci współdzielonej, podczas
budowy systemów rozproszonych borykano się z problemami wynikającymi z powyższego podziału.
Z punktu widzenia programisty maszyna wieloprocesorowa jest bardziej pożądana. Wynika to z
faktu, iż jest ona łatwa do programowania. Komunikacja między jednostkami centralnymi odbywa się
poprzez wpisywanie wiadomości do pamięci przez jeden procesor i odczytanie jej przez drugi.
Problem synchronizacji rozwiązywany jest podobnie jak w przypadku komunikacji międzyprocesowej
w pojedynczym procesorze. Chodzi tu oczywiście o zastosowanie sekcji krytycznych z semaforami
lub monitorów. Niestety problem stanowi projektowanie takiej maszyny. Systemy wieloprocesorowe
są stosunkowo drogie i wolne lub też mało skalowalne.
Multikomputery są natomiast łatwe w konstrukcji. Procesory wyposażone we własną pamięć i
interfejs sieciowy można łączyć w wielotysięczne zespoły. Problem pojawia się przy programowaniu
takich maszyn. Do komunikacji trzeba stosować przekazywanie komunikatów (message passing).
Wprowadza to trudności związane z m.in. zaginionymi komunikatami, blokowaniem, buforowaniem
wiadomości, nadzorowaniem przepływu.
3. Czym różni się architektura powiązań szynowych od przełączanych?
W architekturze powiązanej szynowo mamy dostępną tylko jedną szynę danych łączącą procesory (posiadające własną pamięć podręczną) z główna pamięcią.
W architekturze przełączanej mamy pewną ilość procesorów i pewna ilość modułów pamięci. Każdy procesor jest połączony z każdym modułem pamięci przy pomocy wybieraka krzyżowego.
Architektura szynowa - cechy:
· Wprowadzona na szeroką skalę w minikomputerach.
· Podstawą architektura jest szyna (zespół przewodów połączonych z gniazdami).
· Komputer ma postać kasety lub szafy z wymiennymi modułami –szufladami
· Moduły:» procesory» pamięci&sterowniki wejścia - wyjścia
· Łatwa rekonfiguracja i rozbudowa komputera.
· Stosunkowo niska cena.
· Sterowniki urządzeń wejścia-wyjścia dostępne do procesora w taki sam sposób jak pamięć.
· Model szynowy stanowi wygodny model logiczny komputera, niezależnie od fizycznej implementacji (wszystkie współczesne komputery mają model logiczny (programowy) bazujący na modelu szynowym).
Architektura powiązań przełączanych:
· Nie ma szyny wolnych urządzeń wejścia-wyjścia.
· Część połączeń szynowych została zastąpiona połączeniami typu punkt-punkt, o dużo większej przepustowości.
· Mostek północny zawiera sterownik pamięci.
· Mostek południowy nie pełni roli mostu pomiędzy szynami, lecz zawiera sterowniki większości niezbędnych w komputerze PC urządzeń zewnętrznych.
a)Od 2006:
· Sterownik pamięci umieszczony jest w procesorze.
· Mostek północny wyposażony w indywidualne łącza dla sterowników urządzeń zewnętrznych, zrealizowane w standardzie PCI express.
· Mostek południowy jest zintegrowanym sterownikiem urządzeń zewnętrznych.
· Szyna PCI została zachowana w celu umożliwienia podłączenia starszych sterowników urządzeń (skazana na usunięcie podobnie jak kiedyś EISA).
4. Co to jest szyna? Jak procesory korzystają z szyny porozumiewając się z pamięcią?
Szyna jest połączeniem między jednostką centralną i pamięcią komputera. Ze względu na specyfikacje połączeń wyróżniamy:
Szyna sterująca (ang. control bus) - połączenie między jednostką centralną i pamięcią oraz układem wejścia-wyjścia, które przenosi sygnały od mikroprocesora, określające jaki rodzaj operacji ma wykonać układ współpracujący (np. odczyt lub zapis pamięci).
Szyna adresowa (ang. address bus) – połączenie między jednostką centralną i pamięcią, które przenosi adres z/do miejsc, gdzie jednostka centralna chce czytać lub pisać. Liczba bitów szyny adresowej określa maksymalną wielkość pamięci, do jakiej procesor ma dostęp.
Szyna danych (ang. data bus) – część magistrali odpowiedzialna za transmisję właściwych danych, w odróżnieniu od danych adresowych (za co odpowiedzialna jest szyna adresowa), czy sygnałów sterujących. Podział taki ma sens jedynie dla magistrali, w których taka część jest wydzielona, czyli na ogół dla magistral równoległych.
Szerokość szyny danych (liczba linii danych, a więc równolegle przesyłanych bitów) oraz częstotliwość z jaką dane są na nią podawane (najczęściej jest to częstotliwość cyklu zegarowego magistrali) określa szybkość transmisji danych danej magistrali.
W bardziej złożonych systemach komputerowych, gdzie jest wiele różnych magistral, może być również wiele szyn danych.
Przykładowo moduły pamięci DDR SDRAM używają 64-bitowej szyny danych, a dane są na nią podawane z częstotliwością dwukrotnie większą niż cykl zegara.
5. Wyjaśnić pojęcie spójności pamięci w wieloprocesorach.
W wieloprocesorze, każdy procesor posiada własna pamięć podręczną oraz ogólną pamięć dla dostępna dla wszystkich procesorów. Muszą istnieć mechanizmy zapewniające przechowywanie takich samych informacji w pamięci podręcznej procesora i wspólnej pamięci wszystkich procesorów.
Niewielkie wieloprocesory używają protokołu spójnośc. Posiada on
trzy ważne cechy:
– Spójność jest osiągana poprzez monitorowanie szyny przez wszystkie pamięci podręczne.
– Protokół jest wbudowany w jednostkę zarządzającą pamięcią.
– Cały algorytm jest wykonany w ramach cyklu pamięci.
Spójność pamięci utrzymywana jest w sposób
sprzętowy, podobny do zastosowanego w przypadku wieloprocesorów szynowych. Jednostkami
przesyłania danych, na które podzielona jest pamięć wspólna, są 32-bajtowe bloki.
6.Jakie właściwości muszą posiadać pamięci podręczne w wieloprocesorach, aby zapewnić spójność pamięci.
Pamięć podręczna musi być przepisy walna – powinna przepisywać dane do pamięci ogólnej. Podglądająca – powinna podsłuchiwać szynę i sprawdzać czy dane zapisywane do pamięci ogólnej są aktualne z tymi przechowywanymi w pamięci podręcznej i w razie konieczności aktualizować dane.
Pamięć podręczna przepisywalna (angielskie write--through cache), pamięć podręczna, która powoduje automatyczne przepisywanie uaktualnianych w niej informacji do pamięci operacyjnej.
Pamięć podręczna podglądająca (angielskie snoopy cache, snooping cache), pamięć podręczna obserwująca ruch w szynie wieloprocesora, dzięki czemu może automatycznie unieważniać własne bloki danych uaktualniane w innych pamięciach podręcznych systemu wieloprocesorowego.
7.Czy wieloprocesory szynowe mogą być budowane z większej liczby procesorów niż przełączane, czy z mniejszej? Wyjaśnić, dlaczego?
Wieloprocesory szynowe mogą być budowane z mniejszej liczby procesorów niż przełączane ze względu na charakter współpracy z pamięcią. W architekturze szynowej tylko jeden procesor może komunikować się w danej chwili z pamięcią, a w architekturze przełączanej każdy procesor może współpracować z odrębnym modułem pamięci w danej chwili, co jest bezpośrednim efektem użycia wybieraków krzyżowych.
8.Wyjaśnić ideę przełącznika krzyżowego stosowanego w wieloprocesorach.
Przełącznik krzyżowy łączy proces z modułem pamięci. W przypadku gdy mamy dostępnych n procesorów i m modułów pamięci możemy skonstruować macierz n x m, gdzie na przecięciu każdego wiersza i kolumny umieszczamy jeden przełącznik krzyżowy. Umożliwia na to połączenie dowolnego z procesorów z dowolnym z dostępnych modułów pamięci.
Wybierak krzyżowy (z angielskiego crossbar switch), elektromechaniczny lub elektroniczny przełącznik zawierający prostopadle biegnące ścieżki, które można łączyć ze sobą parami (pionowa z poziomą). W wykonaniu elektronicznym wybierak krzyżowy służy do przełączania między procesorami a modułami pamięci.
9.Wyjaśnić ideę sieci „Omega” stosowaną w wieloprocesorach.
Sieć omega (angielskie omega network), organizacja wieloprocesora alternatywna wobec wybieraka krzyżowego; sieć przełączająca kojarząca moduły pamięci z procesorami za pomocą wielopunktowych przełączników.
W sieci Omega dzięki zastosowaniu przełączników poczwórnych możemy stworzyć sieć przełączającą łącząca dowolny procesor z dowolnym modułem pamięci tylko przy użyciu tej samej liczby przełączników co procesorów czy modułów pamięci. Dodatkowo sposób łączenie przełączników z procesorami i modułami pamięci umożliwia zestawienie wielu bezkonfliktowych połączeń pomiędzy wybranymi procesorami a modułami pamięci.
10. Czym różnią się prawdziwe systemy rozproszone od stosowanych obecnie powszechnie systemów sieciowych?
Sieciowe systemy operacyjne:
Stacje robocze połączone są siecią LAN.
Każda maszyna ma własny system operacyjny
Prawdziwe systemy rozproszone:
Wiele komputerów połączonych siecią
Wrażenie jednolitego systemu (wirtualny monoprocesor)
Wszyscy wykonują jeden system operacyjny w n kopiach
Dzielenie plików na dobrze określoną semantykę.
Sieciowe systemy operacyjne
● Jest to powszechnie obecnie stosowane podejście do systemów operacyjnych
dla komputerów pracujących w środowisku rozproszonym. Polega ono na
uzupełnieniu istniejącego systemu (np. Unix, Windows) o funkcje związane z
obsługą sieci.
– Zdalne logowanie i praca na innej maszynie.
– Transfer plików do/i zdalnej maszyny.
– Sieciowy system plików (zaimplementowany na jednej maszyn)
– e-mail, www, etc.
● Generalnie w tym podejściu użytkownicy są świadomi istnienie wielu maszyn,
a korzystanie z zasobów innej maszyny odbywa się w sposób jawny.
Systemy rozproszone
● W tego typu systemach korzystanie z zasobów zdalnych wygląda tak samo, jak
korzystanie z zasobów lokalnych.
● Użytkownicy nie są świadomi istnienia wielu maszyn.
● Migracja procesów. Proces (lub jego część) z maszyny obciążonej może
migrować do maszyn mniej obciążonych.
● Migracja danych. Dane z maszyny zdalnej mogą migrować na maszyne lokalną.
● Systemy rozproszone są obecnie przedmiotem intensywnych badań
podstawowych i stosowanych .
● Przykład: OpenMosix cluster
● Przykład: klastry wykorzystujące systemy kolejkowe.
11....
Lexor2