sciaga (23)


0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic

Komputery równoległe (po co?): *prognozowanie zjawisk przyrody, *symulacja powstania i rozchodzenia się zanieczyszczeń atmosferze, *poszukiwanie złóż surowców naturalnych, *badanie zjawisk przepływowych, *badanie wytrzymałości, *badania podstawowe w zakresie fizyki, chemii, biologii molekularnej. Komputery równoległe (działanie): *większa liczba procesorów, *podzielenie zadania obliczeniowego na części nie związane, lub słabo związane z innymi, *przydzielenie tych części do oddzielnych procesorów, *wykonanie obliczeń Komputery równoległe (zadania): *wybór modułu programowania równoległego, *dobór typu architektury komputerowej do problemu, *wybór odpowiedniego algorytmu obliczeniowego i jego implementacja programowa, *dobór narzędzi programowych. Klasyfikacja architektur komputerowych: *sterowanie instrukcji, *sterowanie danymi, *mechanizm sterowania, *organizacja przestrzeni adresowej, *granulacja procesorów. Mechanizm sterowania (klasyfikacja Flyrna 1972) *strumień instrukcji (rozkazów), *strumień danych. SISD - Single Instruction stream Single Data stream; SIMD - Single Instruction stream Multiple Data stream Procesory macierzowe MIMD - Multiple Instruction stream Multiple Data stream; MISD - Multiple Instruction stream Single Data stream Organizacja przestrzeni adresowej: *Pamięć wspólna (niewielka liczba procesorów; 1)SGI Power Challenge (do 36 procesorów); 2)HP V2500 (do 32 procesorów); 3)SUN Enterprise 10000 (64 prosesory); 4)SMP - symetryczna wieloprocesorowość) *Pamięć rozproszona (a) architektury z przesyłaniem komunikatów (wiadomości): *wczesne konstrukcje (1 komp. 1 system oper.); *współczesne - architektura wielokomputerowa (n oddzielnych komputerów) (MPP) 1)IBM RS6000SP; 2)Inlet Paragon XP/S; 3)klastry komputerów b) architektury z pamięcią fizycznie rozproszoną, lecz wirtualnie wspólną DSM VSM; równoległość danych; NUMA (niejednolity dostęp do pamięci) przykłady systemów NUMA: 1)HIV2500SCA; 2)Racy T3D/E; 3)SGI Origin 2000) SYSTEMY SIECIOWE *systemy rozproszone (zbudowane z komputerów różnych klas) (usługi sieciowe); *klastry (prawie zawsze zawierają komp. tego samego typu) (obliczenia, specjalizowane usługi wysokiej dostępności) PODZIAŁ ZE WZGL. NA GRANULACJĘ PROCESÓW Granulacja - stosunek czasu przeznaczonego do wykonania elementarnej operacji komunikacji do czasu realizacji elementarnej operacji obliczeniowej *komputery drobnoziarniste (fine grained) charakteryzują się dużą granulacją, częstą komunikacją między procesami; *komputery gruboziarniste (coarse grained) mała granulacja, rzadsza komunikacja między procesami TEORET. MODEL KOMPUTERA RÓWNOLEGŁEGO: 1)Założenia modelu: *n procesorów ma dostęp do m komórek wspólnej pamięci o dowolnych adresach i dostęp jest realizowany w stałym czasie (identycznym dla procesów i adresów) PRAM - maszyna o równoległym dostępie swobodnym; Równoczesny dostęp do pamięci (zapis; odczyt; zapis i odczyt) 1.Model PRAM z równoczesnym odczytem - CREW PRAM 2.Model PRAM z równoczesnym zapisem - ERCE PRAM 3.Model PRAM z równoczesnym zapisem i odczytem - CRCW PRAM Strategie: *procesorom przydziela się priorytety i zwycięża ten procesor, który ma najwyższy priorytet; *równoległy zapis tej samej wartości; *zapis sumy (logicznej) wartości. Model EREW - niedozwolony równoczesny dostęp) Stosowane do: *algorytmów teorii grafów; *algorytmów sortowania; *algorytmów algebry nieliniowej; STRUKTURA SIECI POŁĄCZEŃ (połączenia międyprocesorowe): 1) Statyczne sieci połączeń (połączenia pasywne i nierekonfigurowalne) Parametry: p - liczba bezpośrednich połączeń; c - max liczba połączeń obsługiwanych przez procesor; d - średnica sieci = liczba połączeń między-procesorowych składająca się na najdłuższą ścieżkę Sieć o pełnym połączeniu: p=n(n-1)/2=0(n2) Szereg: p=n-1=0(n); c=2; d=n-1; Stosowane do: *algorytmów sortowania; *mnożenia macierzy Krata: *krata toroidalna; *krata klasyczna !Szereg i kratę zaliczamy do struktury typu siatka (mesh)! q - wymiar; q=1 (szereg); q=2 (krata); liczba połączeń dla siatki =2q; Zastosowanie architektury kraty: *sortowanie; *rozwiązywanie układów równań różniczkowych; *algorytmy grafowe Drzewo binarne: Zastosowanie: *równoległe przeszukiwanie plików; *mnożenia macierzy przez wektor; *składowe spójne (w grafice) Piramida: Zastosowanie: *algorytmy graficzne; *algorytmy przetwarzania obrazów; Sieć przetasowana n=2k procesorów; procesory ponumerowane i=0,1,..., n-1łączenie: i -> 2i mod (n-1) - łącza tasowania; 2i <-> 2i +1- łącza wymiany; Zastosowanie: *transpozycja macierzy; *mnożenie macierzy; *sortowanie; *algorytmy graficzne Hiper sześcian (n-sześcian) n=2k; k - sąsiadów; Łączenia polegają na różnicy jednego bita. Liczba, symbol k jest również nazywana wymiarem kiper. sześcianu. Zastosowanie: *mnożenie macierzy; *sortowanie; obliczanie wartości własnych macierzy; *algorytmy graficzne DYNAMICZNE SIECI POŁĄCZEŃ Rodzaje: *sieć jednostopniowa; *sieć wielostopniowa SPOSOBY POŁĄCZEŃ PROCESORY - PAMIĘĆ WSPÓLNA 1)System ze wspólną magistralą. Cechy: *małą złożoność funkcjonalna; *mały koszt; *trwałość rekonfiguracji; *„wąskie gardło” Arbirator - steruje dostępem do magistrali Metody: *metoda priorytetów statycznych; *metoda priorytetów dynamicznych; *metoda stałego kwantu czasu (z urządzeń ma dostęp do magistrali); *metoda kolejowa System z przełącznicą krzyżową: Cechy charakterystyczne: *duża złożoność funkcjonalna; *dużą przepustowość; *trudność rozbudowy Systemy z pamięcią wieloportową: Cechy: *kosztowna pamięć; *ograniczenie konfiguracji; *duża liczba przewodów MIARY EFEKTYW. OBL. RÓWNOLEGŁYCH Od czego zależy efektywność (jakościowo): *wielkość problemu obliczeniowego; *użyty algorytm; *liczba procesorów; *model programowania; *rodzaj architektury; n -wielkość zadania (liczba instrukcji, rozmiar danych);

==========================================================================================

p -liczba procesorów; T(n,p) -czas wykonania programu realizującego ten sam algorytm dla zadania o wielkości n na komputerze o liczbie procesorów p; S(n,p) -przyśp. realizacji zadania o wielkości n dzięki zrównolegleniu na p procesorów; S(n,p)=T(n,p)/(n,p)p; S(n,p)=p gdy zadanie można podzielić na n równych podzadań i przydzielić je do p procesorów; S(n,p)=T(n,1)/[T(n,1)/p]=p; S(n,p)=(ts+tr)/(ts+tr/p); ts=f(n)T(n,1); tr=(1-f(n))T(n,1); S(n,p)=1/[f(n)+(1-f(n))/p]=p/[1+(p-1)f(n)]; f(n)-prawo Amdahla; Aby przyśpieszenie było duże ułamek musi być mały. limpS(n,p)=1/f(n). Innym parametrem jest: *wydajność (ŋ) - stosunek przyśp. rzeczywistego do przyśpieszenia idealnego; ŋ(n,p)= =S(n,p)/p; Wydajność to względne przyśpieszenie; to % czasu wykonania zadania wykonanego przez procesory. koszt = czas obliczeń*liczba użytych procesorów; koszt obliczeń sekwencyjnych =T(n,1); koszt obliczeń równoległych =T(n,p)p=pT(n,1)/S(n,p)=T(n,1)/ŋ(n,p); *skalowalność - własność systemu (sprzętu i oprogramowania) polegająca na elastycznym dostos. się do zwiększającej się liczby procesorów tzn. zachowaniu w przybliżeniu tej samej wydajności systemu (ŋ). Jeżeli zwiększamy liczbę procesorów to zwiększa się czas transmisji (przyśpieszenie spada)wydajność spada; ŋ(n,p)=(n,p)/p=1/[1+(p-1)f(n)]; Funkcja stałej wydajności FISO Funkcja, która podaje przy zmieniającej się liczbie procesorów wielkość zadania. KOMPUTERY MACIERZOWE Wchodzą w skład klasy SIMD; Skalary (pojedyncza dana) rozkazy skalarne; Zbiory danych skalarnych rozkazy wektorów. Procesor macierzowy nie jest samodzielnym komputerem - jest podłączony do zwykłego komputera. Przykłady algorytmów realizowanie w procesie macierzowym: 1. Algorytm wyznaczania ciągu sum. for i:=0 to n do A[i+1]:=B[i]+A[i]; A[1]:=B[0]+A[0]; A[2]:=B[0]+B[1]+A[0]; …; A[n+1]:=B[0]+…+B[n]+A[0]; Sk=Σ[k;i=0]B[i] ,k=0,1,…,n; Algorytm sortowania bąbelkowego: porównujesz od prawej do lewej sąsiednie cyfry i jak prawa mniejsza od lewej to je przestawiasz; n(n-1)/2=0(n2) operacji; C2n=(n2) Algorytm równoległy: n=0(n) PROGR. SYST. WIELOPROCESOROWYCH: Problemy: 1. Podział programu na zadania. 2. Dobór języka programowania równoległego. 3. Przydział zadań procesorom. 4. Komunikacja między procesorami i synchronizacja ich pracy. ad.1)Zadania współbieżne - fragmenty programu, które można wykonywać w tym samym czasie. Zadaniami są procedury. for i:=1 to N do P1: for i:=1 to N div 2 do || P2: for i:=N div 2+1 to N do ad.2)Algol60; Algol68 (Dijkstra) {cobegin .. coend; możliwe zagnieżdżenia}; Concurrent Pascal; Modula; Ada {C DINO, ParallelDistributed C, PC, DataParallel C} {Fortran 90, Fortran D, Vienna Fortran, HPF} {Occam notacja CSP; programowe kanały} {Linda - przestrzeń krotek (ang. tuple space)} {Strand} {Schedule} ad.3) Przydział zadań procesorom: *wystepowanie w zadaniach instrukcji warunkowych; *zmienna szybkość pracy procesorów; *komunikacja międzyprocesorowa (konflikty w: *dostępie do wspólnej pamięci (syst. ze wspólną pamięcią); *przesyłaniem komunikatów przez wspólną sieć (krzyżowanie się w marszu)); *przydział statyczny; *przydział dynamiczny (zadania przydzielane procesorom w trakcie działania programu) ad.4)Komunikacja przez: a)zmienne dzielone (wspólne); b)przesyłanie komunikatów ad.a) Zmienne dzielone - sposoby synchronizacji: *aktywne czekanie; *semafory; *monitory Cele synchronizacji przez zmienne dzielone: *sterowanie interferencją procesów; *porządkowanie zdarzeń; *sekcja krytyczna - ciąg instrukcji wykonywanych w 1 odcinku czasowym w ramach 1 procesu jako operacja jednostkowa i niepodzielna s:=s+ei Pi Przy wykonywaniu sekcji krytycznych zachodzi wykluczanie wzajemne Aktywne czekanie Pojedyncza zmienna (flaga) *mała liczba procesów; *krótkie sekcje krytyczne SEMAFORY (Dijkstra) Semafor - zm. całkowita mogąca przyjmować jedynie wartość nieujemną. Stowarzyszona jest z nią kolejka, w której ustawiają się procesy oczek. na dostęp do zasobów. Kolejka: *regulamin naturalny (FIFO - First In First Out, FCFS) (P3P2 P1ððððððððððP3P2P1); *regulamin stosowy (P3P2P1stosP1P2P3);♦S (semafor); P(S): if s=0 then zawieszanie procesów i ustawianie go w kolejce; S:=S-1; V(S): S:=S+1; semafor binarny S={0,1}; P(S)sekcja krytycznaV(S)♦ Użycie semafora do synchronizacji [I1:begin; …; P(s); Obliczenia;; …; end; ][ I2:begin; …; V(s); Obliczenia;; …; end;] Zadanie o producencie i konsumencie Synchr. dostępu. Synchronizacja producent produkuje jeżeli są wolne miejsca w magazynie w przeciwnym czasie czeka konsument pobiera z magazynu jak coś jest jak nie ma to czeka. Jak producent coś wytworzył to daje to do magazynu to daje o tym znać konsumentowi jeżeli konsument pobrał coś z magazynu i zwolnił miejsce to daje o tym znać producentowi. PRODUCENT{while do true do►begin►wytwórz produkt►if brak wolnych miejsc w magazynie►then czekaj►złóż produkt zapisz że dodano jedną sztukę produktu;►if konsument czeka►then zaktywizuj go ►end;►|| while true do begin►P(m){wytwórz produkt; if m=0 then czekaj;►m:=m-1;►złóż produkt;►V(p){ p=p+1; if konsument czeka then zaktywizuj go►end►|| while true do ►begin►wytwórz produkt►P(m)►złóż produkt;►V(p)►End;} KONSUMENT {while true do► begin►if brak produktów produktów magazynie ►then pobierz produkt►zapisz, że pobrano jedną sztukę produktu;►if producent czeka►then zaktywizuj go;►wykorzystuje produkt►end;►|| while true do►begin►P(p){ it p=o then czekaj p:=p-1►Pobierz produkt►V(m){m:= m+1; if producent then zaktywizuj go; wykorzystaj produkt►end ►|| while true do ►begin►P(p);►Pobierz produkt,►V(m)►wykorzysta produkt►end}

Komputery równoległe (po co?): *prognozowanie zjawisk przyrody, *symulacja powstania i rozchodzenia się zanieczyszczeń atmosferze, *poszukiwanie złóż surowców naturalnych, *badanie zjawisk przepływowych, *badanie wytrzymałości, *badania podstawowe w zakresie fizyki, chemii, biologii molekularnej. Komputery równoległe (działanie): *większa liczba procesorów, *podzielenie zadania obliczeniowego na części nie związane, lub słabo związane z innymi, *przydzielenie tych części do oddzielnych procesorów, *wykonanie obliczeń Komputery równoległe (zadania): *wybór modułu programowania równoległego, *dobór typu architektury komputerowej do problemu, *wybór odpowiedniego algorytmu obliczeniowego i jego implementacja programowa, *dobór narzędzi programowych. Klasyfikacja architektur komputerowych: *sterowanie instrukcji, *sterowanie danymi, *mechanizm sterowania, *organizacja przestrzeni adresowej, *granulacja procesorów. Mechanizm sterowania (klasyfikacja Flyrna 1972) *strumień instrukcji (rozkazów), *strumień danych. SISD - Single Instruction stream Single Data stream; SIMD - Single Instruction stream Multiple Data stream Procesory macierzowe MIMD - Multiple Instruction stream Multiple Data stream; MISD - Multiple Instruction stream Single Data stream Organizacja przestrzeni adresowej: *Pamięć wspólna (niewielka liczba procesorów; 1)SGI Power Challenge (do 36 procesorów); 2)HP V2500 (do 32 procesorów); 3)SUN Enterprise 10000 (64 prosesory); 4)SMP - symetryczna wieloprocesorowość) *Pamięć rozproszona (a) architektury z przesyłaniem komunikatów (wiadomości): *wczesne konstrukcje (1 komp. 1 system oper.); *współczesne - architektura wielokomputerowa (n oddzielnych komputerów) (MPP) 1)IBM RS6000SP; 2)Inlet Paragon XP/S; 3)klastry komputerów b) architektury z pamięcią fizycznie rozproszoną, lecz wirtualnie wspólną DSM VSM; równoległość danych; NUMA (niejednolity dostęp do pamięci) przykłady systemów NUMA: 1)HIV2500SCA; 2)Racy T3D/E; 3)SGI Origin 2000) SYSTEMY SIECIOWE *systemy rozproszone (zbudowane z komputerów różnych klas) (usługi sieciowe); *klastry (prawie zawsze zawierają komp. tego samego typu) (obliczenia, specjalizowane usługi wysokiej dostępności) PODZIAŁ ZE WZGL. NA GRANULACJĘ PROCESÓW Granulacja - stosunek czasu przeznaczonego do wykonania elementarnej operacji komunikacji do czasu realizacji elementarnej operacji obliczeniowej *komputery drobnoziarniste (fine grained) charakteryzują się dużą granulacją, częstą komunikacją między procesami; *komputery gruboziarniste (coarse grained) mała granulacja, rzadsza komunikacja między procesami TEORET. MODEL KOMPUTERA RÓWNOLEGŁEGO: 1)Założenia modelu: *n procesorów ma dostęp do m komórek wspólnej pamięci o dowolnych adresach i dostęp jest realizowany w stałym czasie (identycznym dla procesów i adresów) PRAM - maszyna o równoległym dostępie swobodnym; Równoczesny dostęp do pamięci (zapis; odczyt; zapis i odczyt) 1.Model PRAM z równoczesnym odczytem - CREW PRAM 2.Model PRAM z równoczesnym zapisem - ERCE PRAM 3.Model PRAM z równoczesnym zapisem i odczytem - CRCW PRAM Strategie: *procesorom przydziela się priorytety i zwycięża ten procesor, który ma najwyższy priorytet; *równoległy zapis tej samej wartości; *zapis sumy (logicznej) wartości. Model EREW - niedozwolony równoczesny dostęp) Stosowane do: *algorytmów teorii grafów; *algorytmów sortowania; *algorytmów algebry nieliniowej; STRUKTURA SIECI POŁĄCZEŃ (połączenia międyprocesorowe): 1) Statyczne sieci połączeń (połączenia pasywne i nierekonfigurowalne) Parametry: p - liczba bezpośrednich połączeń; c - max liczba połączeń obsługiwanych przez procesor; d - średnica sieci = liczba połączeń między-procesorowych składająca się na najdłuższą ścieżkę Sieć o pełnym połączeniu: p=n(n-1)/2=0(n2) Szereg: p=n-1=0(n); c=2; d=n-1; Stosowane do: *algorytmów sortowania; *mnożenia macierzy Krata: *krata toroidalna; *krata klasyczna !Szereg i kratę zaliczamy do struktury typu siatka (mesh)! q - wymiar; q=1 (szereg); q=2 (krata); liczba połączeń dla siatki =2q; Zastosowanie architektury kraty: *sortowanie; *rozwiązywanie układów równań różniczkowych; *algorytmy grafowe Drzewo binarne: Zastosowanie: *równoległe przeszukiwanie plików; *mnożenia macierzy przez wektor; *składowe spójne (w grafice) Piramida: Zastosowanie: *algorytmy graficzne; *algorytmy przetwarzania obrazów; Sieć przetasowana n=2k procesorów; procesory ponumerowane i=0,1,..., n-1łączenie: i -> 2i mod (n-1) - łącza tasowania; 2i <-> 2i +1- łącza wymiany; Zastosowanie: *transpozycja macierzy; *mnożenie macierzy; *sortowanie; *algorytmy graficzne Hiper sześcian (n-sześcian) n=2k; k - sąsiadów; Łączenia polegają na różnicy jednego bita. Liczba, symbol k jest również nazywana wymiarem kiper. sześcianu. Zastosowanie: *mnożenie macierzy; *sortowanie; obliczanie wartości własnych macierzy; *algorytmy graficzne DYNAMICZNE SIECI POŁĄCZEŃ Rodzaje: *sieć jednostopniowa; *sieć wielostopniowa SPOSOBY POŁĄCZEŃ PROCESORY - PAMIĘĆ WSPÓLNA 1)System ze wspólną magistralą. Cechy: *małą złożoność funkcjonalna; *mały koszt; *trwałość rekonfiguracji; *„wąskie gardło” Arbirator - steruje dostępem do magistrali Metody: *metoda priorytetów statycznych; *metoda priorytetów dynamicznych; *metoda stałego kwantu czasu (z urządzeń ma dostęp do magistrali); *metoda kolejowa System z przełącznicą krzyżową: Cechy charakterystyczne: *duża złożoność funkcjonalna; *dużą przepustowość; *trudność rozbudowy Systemy z pamięcią wieloportową: Cechy: *kosztowna pamięć; *ograniczenie konfiguracji; *duża liczba przewodów MIARY EFEKTYW. OBL. RÓWNOLEGŁYCH Od czego zależy efektywność (jakościowo): *wielkość problemu obliczeniowego; *użyty algorytm; *liczba procesorów; *model programowania; *rodzaj architektury; n -wielkość zadania (liczba instrukcji, rozmiar danych);

==========================================================================================

p -liczba procesorów; T(n,p) -czas wykonania programu realizującego ten sam algorytm dla zadania o wielkości n na komputerze o liczbie procesorów p; S(n,p) -przyśp. realizacji zadania o wielkości n dzięki zrównolegleniu na p procesorów; S(n,p)=T(n,p)/(n,p)p; S(n,p)=p gdy zadanie można podzielić na n równych podzadań i przydzielić je do p procesorów; S(n,p)=T(n,1)/[T(n,1)/p]=p; S(n,p)=(ts+tr)/(ts+tr/p); ts=f(n)T(n,1); tr=(1-f(n))T(n,1); S(n,p)=1/[f(n)+(1-f(n))/p]=p/[1+(p-1)f(n)]; f(n)-prawo Amdahla; Aby przyśpieszenie było duże ułamek musi być mały. limpS(n,p)=1/f(n). Innym parametrem jest: *wydajność (ŋ) - stosunek przyśp. rzeczywistego do przyśpieszenia idealnego; ŋ(n,p)= =S(n,p)/p; Wydajność to względne przyśpieszenie; to % czasu wykonania zadania wykonanego przez procesory. koszt = czas obliczeń*liczba użytych procesorów; koszt obliczeń sekwencyjnych =T(n,1); koszt obliczeń równoległych =T(n,p)p=pT(n,1)/S(n,p)=T(n,1)/ŋ(n,p); *skalowalność - własność systemu (sprzętu i oprogramowania) polegająca na elastycznym dostos. się do zwiększającej się liczby procesorów tzn. zachowaniu w przybliżeniu tej samej wydajności systemu (ŋ). Jeżeli zwiększamy liczbę procesorów to zwiększa się czas transmisji (przyśpieszenie spada)wydajność spada; ŋ(n,p)=(n,p)/p=1/[1+(p-1)f(n)]; Funkcja stałej wydajności FISO Funkcja, która podaje przy zmieniającej się liczbie procesorów wielkość zadania. KOMPUTERY MACIERZOWE Wchodzą w skład klasy SIMD; Skalary (pojedyncza dana) rozkazy skalarne; Zbiory danych skalarnych rozkazy wektorów. Procesor macierzowy nie jest samodzielnym komputerem - jest podłączony do zwykłego komputera. Przykłady algorytmów realizowanie w procesie macierzowym: 1. Algorytm wyznaczania ciągu sum. for i:=0 to n do A[i+1]:=B[i]+A[i]; A[1]:=B[0]+A[0]; A[2]:=B[0]+B[1]+A[0]; …; A[n+1]:=B[0]+…+B[n]+A[0]; Sk=Σ[k;i=0]B[i] ,k=0,1,…,n; Algorytm sortowania bąbelkowego: porównujesz od prawej do lewej sąsiednie cyfry i jak prawa mniejsza od lewej to je przestawiasz; n(n-1)/2=0(n2) operacji; C2n=(n2) Algorytm równoległy: n=0(n) PROGR. SYST. WIELOPROCESOROWYCH: Problemy: 1. Podział programu na zadania. 2. Dobór języka programowania równoległego. 3. Przydział zadań procesorom. 4. Komunikacja między procesorami i synchronizacja ich pracy. ad.1)Zadania współbieżne - fragmenty programu, które można wykonywać w tym samym czasie. Zadaniami są procedury. for i:=1 to N do P1: for i:=1 to N div 2 do || P2: for i:=N div 2+1 to N do ad.2)Algol60; Algol68 (Dijkstra) {cobegin .. coend; możliwe zagnieżdżenia}; Concurrent Pascal; Modula; Ada {C DINO, ParallelDistributed C, PC, DataParallel C} {Fortran 90, Fortran D, Vienna Fortran, HPF} {Occam notacja CSP; programowe kanały} {Linda - przestrzeń krotek (ang. tuple space)} {Strand} {Schedule} ad.3) Przydział zadań procesorom: *wystepowanie w zadaniach instrukcji warunkowych; *zmienna szybkość pracy procesorów; *komunikacja międzyprocesorowa (konflikty w: *dostępie do wspólnej pamięci (syst. ze wspólną pamięcią); *przesyłaniem komunikatów przez wspólną sieć (krzyżowanie się w marszu)); *przydział statyczny; *przydział dynamiczny (zadania przydzielane procesorom w trakcie działania programu) ad.4)Komunikacja przez: a)zmienne dzielone (wspólne); b)przesyłanie komunikatów ad.a) Zmienne dzielone - sposoby synchronizacji: *aktywne czekanie; *semafory; *monitory Cele synchronizacji przez zmienne dzielone: *sterowanie interferencją procesów; *porządkowanie zdarzeń; *sekcja krytyczna - ciąg instrukcji wykonywanych w 1 odcinku czasowym w ramach 1 procesu jako operacja jednostkowa i niepodzielna s:=s+ei Pi Przy wykonywaniu sekcji krytycznych zachodzi wykluczanie wzajemne Aktywne czekanie Pojedyncza zmienna (flaga) *mała liczba procesów; *krótkie sekcje krytyczne SEMAFORY (Dijkstra) Semafor - zm. całkowita mogąca przyjmować jedynie wartość nieujemną. Stowarzyszona jest z nią kolejka, w której ustawiają się procesy oczek. na dostęp do zasobów. Kolejka: *regulamin naturalny (FIFO - First In First Out, FCFS) (P3P2 P1ððððððððððP3P2P1); *regulamin stosowy (P3P2P1stosP1P2P3);♦S (semafor); P(S): if s=0 then zawieszanie procesów i ustawianie go w kolejce; S:=S-1; V(S): S:=S+1; semafor binarny S={0,1}; P(S)sekcja krytycznaV(S)♦ Użycie semafora do synchronizacji [I1:begin; …; P(s); Obliczenia;; …; end; ][ I2:begin; …; V(s); Obliczenia;; …; end;] Zadanie o producencie i konsumencie Synchr. dostępu. Synchronizacja producent produkuje jeżeli są wolne miejsca w magazynie w przeciwnym czasie czeka konsument pobiera z magazynu jak coś jest jak nie ma to czeka. Jak producent coś wytworzył to daje to do magazynu to daje o tym znać konsumentowi jeżeli konsument pobrał coś z magazynu i zwolnił miejsce to daje o tym znać producentowi. PRODUCENT{while do true do►begin►wytwórz produkt►if brak wolnych miejsc w magazynie►then czekaj►złóż produkt zapisz że dodano jedną sztukę produktu;►if konsument czeka►then zaktywizuj go ►end;►|| while true do begin►P(m){wytwórz produkt; if m=0 then czekaj;►m:=m-1;►złóż produkt;►V(p){ p=p+1; if konsument czeka then zaktywizuj go►end►|| while true do ►begin►wytwórz produkt►P(m)►złóż produkt;►V(p)►End;} KONSUMENT {while true do► begin►if brak produktów produktów magazynie ►then pobierz produkt►zapisz, że pobrano jedną sztukę produktu;►if producent czeka►then zaktywizuj go;►wykorzystuje produkt►end;►|| while true do►begin►P(p){ it p=o then czekaj p:=p-1►Pobierz produkt►V(m){m:= m+1; if producent then zaktywizuj go; wykorzystaj produkt►end ►|| while true do ►begin►P(p);►Pobierz produkt,►V(m)►wykorzysta produkt►end}



Wyszukiwarka

Podobne podstrony:
eco sciaga, 23. Rynek kapitalowy pierwotny i wtorny, Prawo popytu - wraz ze wzrostem ceny danego dob
ŚCIĄGA 23, matura, matura ustna, maturag, tematyczne
Ściąga 23
ściąga 23
Monitor Prawa Pracy i Ubezpieczeń 23 2014 Ściąga dla kadrowego
ściąga na kolokwium 23.01, Socjologia, metody badań socjologicznych
ściąga materiałowa ćw. 23, Politechnika Lubelska, Inżynieria materiałowa
ściąga słupy do ziela(23 30
PRK 23 10 2011 org
23 piątek
1 sciaga ppt
23 Metody montażu w mikroelektronice
23 Tydzień zwykły, 23 wtorek
Atrybucje 23 24
Cwiczenia 23 25 2007

więcej podobnych podstron