SO9i10 Systemy wieloprocesor i rozprosz 1

background image

1

Systemy
wieloprocesorowe

Wykład 9 i 10

background image

2

Systemy rozproszone
silnie powiązane

W systemach wieloprocesorowych

silnie powiązanych

- procesory dzielą

pamięć i zegar. W takich systemach
komunikacja odbywa się głównie
przez pamięć dzieloną.

background image

3

Systemy rozproszone
słabo powiązane

W

słabo powiązanych

systemach

procesory nie dzielą pamięci ani zegara.
Każdy procesor ma własną pamięć
lokalną. Procesory komunikują się ze
sobą za pomocą różnych linii
komunikacyjnych. Tego rodzaju systemy
wieloprocesorowe są zazwyczaj zwane
systemami

rozproszonymi.

background image

4

Rozproszone
systemy procesorowe

System

rozproszony

jest zbiorem luźno

powiązanych ze sobą procesorów
połączonych siecią komunikacyjną.
Procesory nie dzielą pamięci ani
zegara, każdy procesor ma własną
lokalną pamięć.

background image

5

Powody budowy systemów
rozproszonych

dzielenie zasobów,

przyspieszanie obliczeń,

niezawodność,

komunikacja.

background image

6

Dzielenie zasobów

Dzielenie zasobów stanowi mechanizm

umożliwiający dzielenie plików na
zdalnych stanowiskach, przetwarzanie
informacji w rozproszonych bazach
danych, drukowanie plików na
zdalnych stanowiskach, używanie
wyspecjalizowanych urządzeń
sprzętowych.

background image

7

Przyspieszanie obliczeń

Przyspieszanie obliczeń można

osiągnąć poprzez podzielenie
konkretnego obliczenia na pewną
liczbę obliczeń częściowych
wykonanych współbieżnie.

background image

8

Niezawodność -

Awaria jednego stanowiska nie

powoduje przerwania pracy
pozostałych.

background image

9

Komunikacja

Użytkownicy

uzyskują

możliwość

wymiany informacji w przypadku,
gdy stanowiska połączone są ze sobą
za pomocą sieci komunikacyjnej. Jest
to podobne do systemu komunikatów
dla pojedynczego komputera.

background image

10

Typy systemów
operacyjnych

Systemy operacyjne dzielimy
na

sieciowe i rozproszone

background image

11

Sieciowy S.O.

Użytkownicy rejestrują się zdalnie na odpowiednich

maszynach, o których istnieniu wiedzą.

Głównym zadaniem sieciowego S.O. jest umożliwienie

przesyłania plików z jednej maszyny do drugiej. W

środowisku sieciowym każde stanowisko utrzymuje

własny, lokalny system plików.

Użytkownik musi dokładnie wiedzieć gdzie ma szukać

pliku. Aby uzyskać dostęp do pliku musi być on

jawnie skopiowany na jego stanowisko. Stosuje się

zatem się mechanizm kopiowania plików.

background image

12

Rozproszony S.O.

W rozproszonym S.O. użytkownicy

uzyskują dostęp do zdalnych zasobów
w taki sam sposób jak do lokalnych.
Nie muszą być świadomi wielości
maszyn.

Przemieszczanie danych i procesów z

jednego stanowiska do drugiego
odbywa się pod nadzorem S.O. w
sposób przezroczysty dla użytkownika.

background image

13

W rozproszonym S.O.

rozpatrujemy:

przemieszczanie

danych

,

przemieszczanie

obliczeń,

przemieszczanie

procesów.

background image

14

Przemieszczanie danych

Przemieszczanie danych polega na

przesyłaniu całego pliku, korzystaniu
z niego lokalnie a następnie
odsyłanie zmienionej kopii. Można
również przesyłać jedynie potrzebną
porcję pliku.

background image

15

Przemieszczanie obliczeń

Przemieszczanie obliczeń

może być

realizowane na trzy sposoby:

- wywoływanie zdalnej, wcześniej przygotowanej

procedury na żądanym stanowisku,

- wysłanie komunikatu do żądanego stanowiska.

S.O. tworzy nowy proces, który po zakończeniu

działania wysyła wyniki do pierwotnego procesu

również za pomocą komunikatu,

- obydwie powyższe metody jednocześnie.

background image

16

Przemieszczanie
procesów

Przemieszczanie procesów

- wykonywanie procesu

na innym stanowisku niż go zainicjowano.

Stosowane by zmniejszyć obciążenie danego

stanowiska lub wykonać proces na lepszym sprzęcie

czy odpowiednim oprogramowaniu.

Przemieszczanie może być ukrywane przez system

przed użytkownikiem lub użytkownik może jawnie

określić, jak proces może być przemieszczany.

Procesy można rozmieszczać w sieci w celu

wyrównania obciążenia pracą poszczególnych

stanowisk.

Jeśli pojedynczy proces da się podzielić na pewną

liczbę podprocesów, to mogą one być wykonywane

współbieżnie na różnych stanowiskach, dzięki czemu

łączny czas wykonania całego procesu jest krótszy.

background image

17

W środowisku S.O. rozproszonego należy

rozpatrywać następujące zagadnienia:

koordynacja
(synchronizacja+komunikacja),

wzajemne wyłączanie w środowisku
rozproszonym,

awarie, odporność systemu na
zakłócenia,

czynniki wpływające na niezawodność
systemu,

rozproszone systemy plików.

background image

18

Koordynacja rozproszona

W systemie rozproszonym nie ma

wspólnej pamięci ani wspólnego
zegara, toteż niekiedy trudno jest
stwierdzić, które z dwu zdarzeń
wystąpiło najpierw. A jest to bardzo
ważne ponieważ np. użycie zasobu nie
może nastąpić wcześniej niż po
uzyskaniu zgody na jego przydzielenie.

background image

19

Porządkowanie zdarzeń

W systemie scentralizowanym jest zawsze możliwe

określenie kolejności, w której wystąpiły dwa

zdarzenia, ponieważ jest w nim jedna wspólna

pamięć i zegar. W wielu zastosowaniach możliwość

określenia porządku jest niezmiernie ważna np.

przy przydziale zasobów określa się, że zasób może

zostać użyty tylko po uzyskaniu zgody na jego

przydzielenie - jednak w systemie rozproszonym

nie ma wspólnej pamięci ani wspólnego zegara.

Niekiedy jest więc niemożliwe stwierdzenie, które z

dwu zdarzeń wystąpiło wpierw.

Relacja uprzedniości zdarzeń określa tylko

częściowy porządek zdarzeń w systemach

rozproszonych.

background image

20

Poniżej zostanie przedstawiony

algorytm rozproszony, który
rozszerza relację uprzedniości
zdarzeń na całkowite
uporządkowanie wszystkich zdarzeń
w systemie.

background image

21

Relacja uprzedniości
zdarzeń

Ponieważ rozważamy tylko procesy

sekwencyjne, wszystkie zdarzenia
(również komunikaty) są całkowicie
uporządkowane. Możemy zdefiniować
relację uprzedniości zdarzeń,
oznaczaną przez , na zbiorze

zdarzeń, w sposób następujący:

background image

22

Relacja uprzedniości
zdarzeń

1. Jeśli A i B są zdarzeniami w tym
samym procesie i A zostało wykonane
przed B, to AB.

2. Jeśli A jest zdarzeniem wysłania
komunikatu przez pewien proces i B jest
zdarzeniem odebrania tego komunikatu
przez inny proces, to A B.

3. Jeśli A  B i B  C, to A  C.

background image

23

Relacja uprzedniości
zdarzeń

Jeśli dwa zdarzenia, A i B nie są związane

relacją , to mówimy, że takie dwa zdarzenia

wystąpiły współbieżnie, żadne z nich nie

może przyczynowo oddziaływać na drugie,

jeśli jednak A  B, to jest możliwe, że

zdarzenie A wpłynie przyczynowo na

zdarzenie B. Uprzedniość zdarzeń może być

zilustrowana za pomocą diagramu

czasoprzestrzennego (rysunek). Przedstawia

on czas względny dla trzech procesów

współbieżnych.

background image

24

Uprzedniość zdarzeń

p4 q4 r1
p3 q3
p2 q2
p1 q1
p0 q0 r0

background image

25

Uprzedniość zdarzeń

p4 q4 r1
p3 q3
p2 q2
p1 q1
p0 q0 r0

Kierunek poziomy
reprezentuje przestrzeń,
tzn. różne procesy,
kierunek pionowy - czas.

Opatrzone etykietami
pionowe linie
symbolizują procesy.

Elipsy oznaczają
zdarzenia.

Strzałki symbolizują
komunikat przesłany od
jednego procesu do
drugiego.

background image

26

Zdarzenia A i B są równoczesne wtedy
i tylko wtedy, gdy nie istnieje żadna
ścieżka z A do B, ani z B do A.

p4 q4 r1
p3 q3
p2 q2
p1 q1
p0 q0 r0

p1  q2,

r0  q4

q3  r1

p1  q4

(ponieważ p1 

q2 i q2  q4)

background image

27

p4 q4 r1
p3 q3
p2 q2
p1 q1
p0 q0 r0

Niektórymi
spośród zdarzeń
równoczesnych w
tym systemie są

r0 i q3
r0 i p3
q3 i p3

background image

28

Nie jesteśmy w stanie określić, które ze

zdarzeń takich jak q0 i p2 wystąpiło
pierwsze. Nie jest to jednak istotne,
ponieważ żadne ze zdarzeń nie
oddziałuje na drugie (żadne z nich nie
może wiedzieć, czy drugie już
wystąpiło).

Ważne jest tylko, aby dla dowolnych

procesów, dla których

porządek dwu

zdarzeń równoczesnych ma znaczenie,
można było ustalić jakąś kolejność.

background image

29

Implementacja

Ponieważ w systemie rozproszonym nie ma

wspólnego zegara, aby móc określić

kolejność zdarzeń, definiuje się relację

uprzedniości zdarzeń.

Z każdym zdarzeniem

systemowym kojarzymy znacznik czasu

(time stamp). Możemy wówczas

zdefiniować warunek ogólnego

uporządkowania: dla każdej pary zdarzeń A

i B, jeżeli A  B, to znacznik czasu A jest

mniejszy niż znacznik czasu B.

background image

30

Jak można narzucić warunek
globalnego uporządkowania w
środowisku rozproszonym?

W każdym procesie Pi definiujemy zegar

logiczny

ZLi

:

prosty licznik

zwiększany

między wystąpieniami każdych dwu

kolejnych zdarzeń w procesie.

Jeśli zdarzenie A poprzedza zdarzenie B w

procesie Pi , to

ZLi(A) < ZLi(B)

Schemat ten zapewnia dla każdych dwu

zdarzeń w tym samym procesie

spełnienie

warunku ogólnego uporządkowania.

background image

31

Przedstawiony schemat

nie gwarantuje

, że

warunek uporządkowania całkowitego będzie
spełniony

dla procesów

. Rozważmy dwa

komunikujące się ze sobą procesy P1 i P2.
Załóżmy, że P1 wysyła komunikat do P2
(zdarzenie A) z ZL1(A)=200, a proces P2
odbiera ten komunikat (zdarzenie B) z
ZL2(B)=195

(ponieważ procesor procesu P2 jest

wolniejszy od procesora procesu P1, więc jego zegar
logiczny tyka wolniej).

Sytuacja ta narusza więc

nasz warunek, gdyż A  B, lecz znacznik czasu

A jest większy od znacznika czasu B.

W celu usunięcia tej trudności będziemy wymagali, aby

proces przesunął swój zegar logiczny, gdy otrzyma
komunikat, którego znacznik czasu jest większy niż
bieżąca wartość jego zegara logicznego.

background image

32

Jeżeli proces Pi, otrzymuje komunikat (zdarzenie

B) ze znacznikiem czasu t i

ZLi(B)<=t

to

powinien przesunąć swój zegar tak, aby

ZLi(B)=t+1

.

W naszym przykładzie, gdy proces P2 otrzyma

komunikat od P1 powinien tak przestawić swój

zegar aby ZL2(B)=201

Aby otrzymać uporządkowanie całkowite,

powinniśmy zaobserwować, że w naszym

schemacie porządkowania według znaczników

czasowych, równość dwu znaczników czasu

zdarzeń A i B oznacza równoczesność tych

zdarzeń aby pokonać tę przeszkodę i utworzyć

uporządkowanie całkowite, można posłużyć się

liczbami identyfikującymi procesy.

background image

33

Wzajemne wyłączanie w
środowisku rozproszonym

Zakładamy, że system składa się z n procesów, z

których każdy rezyduje w innym procesorze. Załóżmy,

że procesy są jednoznacznie ponumerowane od 1 do n,

oraz że między procesami istnieje odwzorowanie jeden

do jednego (tzn. każdy proces ma własny procesor).

Wyróżniamy następujące podejścia:

a)

podejście scentralizowane

- jeden z procesów jest

wybrany do koordynowania wejść do sekcji krytycznej;

b)

podejście w pełni rozproszone

- gdy proces chce

wejść do sekcji krytycznej - wówczas wysyła

zamówienie do wszystkich procesów w systemie. Po

otrzymaniu odpowiedzi od wszystkich - wchodzi do

sekcji krytycznej.

c)

metoda przekazywania żetonu

- żeton jest

specjalnym rodzajem komunikatu przekazywanym w

obrębie systemu. Ten proces, który ma żeton może

wejść do sekcji krytycznej.

background image

34

Podejście zcentralizowane

W celu zapewnienia wzajemnego wykluczania jeden z

procesów w systemie zostaje wybrany do koordynowania

wejść do sekcji krytycznej.

Każdy proces, który chce spowodować wzajemne

wyłączanie wysyła komunikat z zamówieniem do

koordynatora. Kiedy proces otrzyma od koordynatora

komunikat z odpowiedzią, wtedy może wejść do swojej sekcji

krytycznej. Po wyjściu z sekcji krytycznej proces wysyła do

koordynatora komunikat zwalniający i kontynuuje działanie.

Po otrzymaniu komunikatu z zamówieniem koordynator

sprawdza czy jakiś inny proces jest w swojej sekcji

krytycznej. Jeżeli nie ma takiego procesu, to koordynator

wysyła komunikat z odpowiedzią, w przeciwnym razie

zamówienie zostaje włączone do kolejki; gdy koordynator

otrzyma komunikat o zwolnieniu, wówczas usuwa jeden z

komunikatów z zamówieniami z kolejki i wysyła komunikat z

odpowiedzią do procesu zamawiającego.

Algorytm ten gwarantuje wzajemne wyłączanie. Opisany

schemat wymaga trzech komunikatów na wejściu do sekcji

krytycznej: zamówienia, odpowiedzi i zwolnienia.

background image

35

Podejście w pełni
rozproszone

Gdy proces Pi chce wejść do sekcji krytycznej, wówczas wytwarza nowy znacznik czasu

ZC

i wysyła komunikat zamówienie

(Pi, ZC)

do wszystkich innych procesów w

systemie, także dla siebie. Po otrzymaniu komunikatu zamawiającego, proces może

odpowiedzieć natychmiast (tj. wysłać komunikat z odpowiedzią do Pi), lub może

zwlekać z wysłaniem odpowiedzi (bo np. właśnie znajduje się w sekcji krytycznej).

Proces, który otrzyma komunikat z odpowiedzią od wszystkich innych procesów w

systemie, może wejść do swojej sekcji krytycznej powoduje ustawianie

nadchodzących zamówień w kolejce i ich odwlekanie.

Po opuszczeniu sekcji krytycznej proces wysyła komunikaty z odpowiedziami na

wszystkie opóźniane zamówienia.

Rodzaj odpowiedzi procesu Pi na komunikat zamówienie

(Pj, ZC)

zależy od 3 czynników:

Jeśli proces Pi przebywa w sekcji krytycznej, to opóźnia odpowiedź do Pj.

Jeśli proces Pi nie chce wejść do sekcji krytycznej, to odpowiedź do Pj wysyła

natychmiast.

Jeśli proces Pi chce wejść do sekcji krytycznej, lecz jeszcze do niej nie wszedł, to

porównuje znacznik czasu swojego zamówienia ze znacznikiem czasu

ZC

zamówienia, które nadeszło od procesu Pj. Jeśli jego znacznik czasu jest większy od

ZC

, to natychmiast wysyła odpowiedź do Pj (Pj prosił pierwszy). W przeciwnym razie

zwleka z odpowiedzią.

Algorytm

ten wykazuje pożądane cechy.

Pozwala uzyskać wzajemne wykluczanie

. Nie grozi głodzenie, ponieważ wejście do sekcji

krytycznej jest planowane według znaczników czasu. Uporządkowanie według

znaczników czasu gwarantuje obsługę procesów w porządku „pierwszy zgłoszony -

pierwszy obsłużony".

Liczba komunikatów

potrzebnych do wejścia do sekcji krytycznej wynosi 2 * (n - 1). Jest

to

minimalna

liczba komunikatów wymaganych do wejścia do sekcji krytycznej w

warunkach niezależnego i współbieżnego działania procesów.

background image

36

Metoda przekazywania
żetonu

Żeton jest specjalnym rodzajem

komunikatu, przekazywanym w obrębie

systemu. Ten proces, który ma żeton

może wejść do sekcji krytycznej.

Ponieważ w systemie jest tylko jeden

żeton, w danej chwili tylko jeden proces

może znaleźć się w sekcji krytycznej.

background image

37

Zapobieganie blokadom

Zapobieganie blokadom w środowisku rozproszonym

opiera się na

1.

wprowadzaniu poprawek do sposobów zapobiegania

blokadom w środowisku jednoprocesorowym. Jest to

czekanie albo śmierć:

opiera się na technice bez wywłaszczeń,

jeśli proces Pi zamawia zasób przetrzymywany

przez Pj to jeśli jego znacznik czasowy Pi jest

mniejszy od znacznika czasowego procesu

przetrzymującego Pj to czeka w przeciwnym razie

zamawiający wypada z pamięci (umiera).

W tym schemacie starszy proces musi czekać, aż

młodszy zwolni zasoby. Im proces starszy tym

większa jest jego tendencja do czekania.

background image

38

2

. na schematach opartych na porządkowaniu tzw.

znaczników czasowych z wywłaszczaniem

zasobów. Każdy proces otrzymuje jednoznaczny

numer priorytetu

. To pozwala

uniknąć blokad

(ale

może spowodować głodzenie procesów z niskimi

priorytetami).

Zranienie lub czekanie:

oparty na wywłaszczeniach,

jeśli Pi zamówi zasób przetrzymywany przez Pj to

Pi może czekać, gdy ma większy znacznik czasowy

(Pi-młodszy od Pj) w przeciwnym razie Pj jest

usuwany z pamięci (Pj zraniony przez Pi).

Starszy proces nigdy nie czeka na młodszy proces.

background image

39

Odporność systemu na
uszkodzenia

Systemy rozproszone są narażone na różnego

rodzaju uszkodzenia sprzętu. Aby system mógł

działać pomimo błędów musi wykrywać

uszkodzenia i umieć się rekonfigurować. Po

usunięciu awarii, system musi zrekonfigurować

się ponownie i przywrócić normalny stan.

Zadania S.O. stąd wynikające:

1. wykrywanie awarii,
2. rekonfiguracja,
3. wychodzenie z awarii.


Document Outline


Wyszukiwarka

Podobne podstrony:
Przetwarzanie Równoległe i Rozproszczone Szczerbińskiego, wykład 5, PROGRAMOWANIE SYSTEMÓW WIELOPROC
Systemy wieloprocesorowe z pamięcią dzieloną
systemy wieloproc pam dziel, █▓▓█ INFORMATYKA ▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
8 systemy z pam rozproszona
09 Architektura systemow rozproszonychid 8084 ppt
adresy ip, wisisz, wydzial informatyki, studia zaoczne inzynierskie, rozproszone systemy operacyjne
Omówić konstrukcję przykładowych modułów pomiarowych stosowanych do budowy rozproszonych systemów po
002 architektur systemow rozproszonychid 2229 ppt
Struktura i funkcjonalność wybranego rozproszonego systemu sterowania klasy
GRIDY SYSTEMY ROZPROSZONE
W modelu TCPII (1), Studia WIT - Informatyka, SSR - Sieci i systemy rozproszone
B9 Redundancja i?zpiecze stwo w rozproszonych systemach automatyki
System rozproszony sc
RSA sciaga, Automatyka i robotyka air pwr, VI SEMESTR, Rozproszone systemy aut
Korzyści i wady systemu dwupartyjnego i wielopartyjnego w RP oraz Wielkiej Brytanii
rozproszony system plikow
wso pytania z egzamu (1), Studia WIT - Informatyka, SSR - Sieci i systemy rozproszone
Lamport v1.0, wisisz, wydzial informatyki, studia zaoczne inzynierskie, rozproszone systemy operacyj

więcej podobnych podstron