Czas wirtualny, złożoność algorytmów

Wielkość: px
Rozpocząć pokaz od strony:

Download "Czas wirtualny, złożoność algorytmów"

Transkrypt

1 Czas wirtualny, złożoność algorytmów Wykład prowadzą: Jerzy Brzeziński Jacek Kobusiński Zegary logiczne skalarne wektorowe Kanały FIFO typu FC Rząd funkcji, funkcja kosztu Plan wykładu Złożoność komunikacyjna i czasowa algorytmu Warunki poprawności algorytmu Czas wirtualny, złożoność algorytmów (2) Czas wirtualny () Czas wirtualny (2) Zegary realizowane w systemach asynchronicznych mają stanowić aproksymację czasu rzeczywistego. Aproksymacja taka uwzględnia jedynie zachodzące w systemie zdarzenia i dlatego czas ten nazywany jest czasem wirtualnym (logicznym). W odróżnieniu od czasu rzeczywistego upływ czasu wirtualnego nie jest więc autonomiczny, a zależy od występujących w systemie zdarzeń i stąd określone wartości czasu wirtualnego mogą nigdy nie wystąpić. Czas wirtualny wyznacza się za pomocą zegarów logicznych (ang. logical clocks). Czas wirtualny, złożoność algorytmów () Czas wirtualny, złożoność algorytmów (4)

2 Zegar logiczny - definicja Zegary logiczne - właściwości Zegar logiczny systemu rozproszonego jest funkcją T : Λ Y, odwzorowującą zbiór zdarzeń Λ w zbiór uporządkowany Y, taką że: ( a' ) (T()<T(' ) ) (4.) gdzie < jest relacją porządku na zbiorze Y. Należy zauważyć, że w ogólności relacja odwrotna nie musi być spełniona, tzn.t()<t(' ) a'. jeżeli zdarzenie zachodzi przed ' w tym samym procesie, to wówczas wartość zegara logicznego odpowiadającego zdarzeniu jest mniejsza od wartości zegara odpowiadającego zdarzeniu ' w przypadku przesyłania wiadomości M, czas logiczny przyporządkowany zdarzeniu nadania wiadomości M jest zawsze mniejszy niż czas logiczny przyporządkowany zdarzeniu odbioru tej wiadomości Czas wirtualny, złożoność algorytmów (5) Czas wirtualny, złożoność algorytmów (6) Zegar skalarny definicja Realizacja zegarów skalarnych Jeżeli przeciwdziedzina Y funkcji zegara logicznego jest zbiorem liczb naturalnych N lub rzeczywistych R, to zegar nazywany jest zegarem skalarnym. Funkcja T() implementowana jest przez zmienne naturalne clock i, i n, skojarzone z procesami P i (monitorami Q i ). Wartość zmiennej clock i reprezentuje w każdej chwili wartość funkcji T( ik ) odnoszącą się do ostatniego zdarzenia k i jakie zaszło w procesie P i, a tym samym reprezentuje upływ czasu logicznego w tym procesie. Czas wirtualny, złożoność algorytmów (7) Czas wirtualny, złożoność algorytmów (8)

3 Alg. Lamporta () Alg. Lamporta (2) type PACKT extends FRAM is record of clock : INTGR data : MSSAG end record msgin pcktout clock i d : MSSAG : PACKT : INTGR : INTGR. when e_send(p i, P j, msgout: MSSAG) do 2. clock i := clock i + d. pcktout.clock := clock i 4. pcktout.data := msgout 5. send(q i, Q j, pcktout) 6. end when Czas wirtualny, złożoność algorytmów (9) Czas wirtualny, złożoność algorytmów (0) Alg. Lamporta () Przykład synchronizacji zegarów logicznych 7. when e_receive(q j, Q i, pcktin: PACKT) do 8. clock i := max(clock i, pcktin.clock) + d 9. msgin := pcktin.data 0. deliver(p j, P i, msgin). end when 2. when e_internal(p i, *) do. clock i := clock i + d 4. end when P P 2 P max(0, ) + = + = 2 T ( 0 )=0 T ( 20 )=0 T ( 0 )=0 T ( 2 )= T ( )=2 M T ( 22 )=2 T ( )= T ( 2 )= T ( 2 )=4 M 2 M T ( 24 )=5 M 4 T ( 2 )=2 (a' ) (T ()<T(' )) (T ()<T(' )) (a ' ) Czas wirtualny, złożoność algorytmów () Czas wirtualny, złożoność algorytmów (2)

4 Relacja między zb. zdarzeń i zb. wartości zegara skalarnego Zegar wektorowy - definicja a T () < = > Zegarem wektorowym jest zegar logiczny, dla którego przeciwdziedzina funkcji T, oznaczana dalej dla odróżnienia przez T V, jest zbiorem n-elementowych wektorów liczb naturalnych lub rzeczywistych. Czas wirtualny, złożoność algorytmów () Czas wirtualny, złożoność algorytmów (4) Realizacja zegarów wektorowych Alg. Matterna () FunkcjaT V implementowana jest przez zmienne tablicowe, i n, skojarzone z poszczególnymi procesami. Zmienna jest tablicą [..n] liczb naturalnych, odpowiadającą pewnej aproksymacji czasu globalnego z perspektywy procesu P i. W efekcie aktualna wartość tablicy odpowiada w każdej chwili wartości funkcji T V ( ik ) odnoszącej się do ostatniego zdarzenia, jakie zaszło w procesie P i. type PACKT extends FRAM is record of vclock : array [..n] of INTGR data : MSSAG end record msgin : MSSAG pcktout : PACKT : array [..n] of INTGR d : INTGR k : INTGR Czas wirtualny, złożoność algorytmów (5) Czas wirtualny, złożoność algorytmów (6)

5 Alg. Matterna (2) Alg. Matterna (). when e_send(p i, P j, msgout: MSSAG) do 2. [i] := [i] + d. pcktout.vclock := 4. pcktout.data := msgout 5. send(q i, Q j, pcktout) 6. end when 7. when e_receive(q j, Q i, pcktin: PACKT) do 8. [i] := [i] + d 9. for all k {, 2,..., n} do 0. [k] := max( [k], pcktin.vclock[k]). end for 2. msgin := pcktin.data. deliver(p j, P i, msgin) 4. end when 5. when e_internal(p i, *) do 6. [i] := [i] + d 7. end when Czas wirtualny, złożoność algorytmów (7) Czas wirtualny, złożoność algorytmów (8) Zegary wektorowe () Relacje na etykietach wektorowych Twierdzenie 4. W każdej chwili czasu rzeczywistego i,j :: [i] vclock j [i] (4.2) gdzie zmienna [i] reprezentuje skalarny czas lokalny procesu P i, a zmienna vclock j [i], j i, aktualne wyobrażenie procesu P j o bieżącym skalarnym czasie lokalnym procesu P i. = vclock j k [k] = vclock j [k] vclock j k [k] vclock j [k] vclock j k [k] vclock j [k] vclock j k [k] > vclock j [k] < vclock j vclock j vclock j vclock j ( vclock j vclock j ) vclock j vclock j vclock j ) Czas wirtualny, złożoność algorytmów (9) Czas wirtualny, złożoność algorytmów (20)

6 Zegary wektorowe (2) Kanały FIFO Twierdzenie 4.2 Niech T V () oraz T V ( ) będą wartościami zegarów wektorowych zdarzeń i. Wówczas: Kanały gwarantujące porządek odbioru wiadomości zgodny z kolejnością wysyłania będziemy nazywać kanałami FIFO (ang. First-In-First-Out). P 2 2 (a ' ) (T V ()<T V (' )) (4.) P 2 M M2 M Czas wirtualny, złożoność algorytmów (2) Czas wirtualny, złożoność algorytmów (22) Alg. Müllender a () Alg. Müllender a (2) type PACKT extends FRAM is record of seqno : INTGR data : MSSAG end record msgin : MSSAG pcktout : PACKT delaybuf i : array [..n] of set of PACKT := seqno i : array [..n] of INTGR := 0 delivno i : array [..n] of INTGR := 0 delivered i : BOOLAN. when e_send(p i, P j, msgout: MSSAG) do 2. pcktout.data:= msgout. seqno i [j]:= seqno i [j] + 4. pcktout.seqno:= seqno i [j] 5. send(q i, Q j, pcktout) 6. end when Czas wirtualny, złożoność algorytmów (2) Czas wirtualny, złożoność algorytmów (24)

7 Alg. Müllender a () Alg. Müllender a (4) 7. when e_receive(q j, Q i, pcktin : PACKT) do 8. if pcktin.seqno = delivno i [j] + 9. then 0. msgin:= pcktin.data. deliver(p j, P i, msgin) 2. delivno i [j]:= delivno i [j] +. delivered i := True 4. else 5. delaybuf i [j]:= delaybuf i [j] {pcktin} 6. delivered i := False 7. end if 8. while delivered i do 9. delivered i := False 20. for all pckt delaybuf i [j] do 2. if pckt.seqno = delivno i [j] + then 22. msgin:= pckt.data 2. deliver(p j, P i, msgin) 24. delivno i [j]:= delivno i [j] delivered i := True 26. delaybuf i [j]:= delaybuf i [j]\{pckt} 27. end if 28. end for 29. end while 0. end when Czas wirtualny, złożoność algorytmów (25) Czas wirtualny, złożoność algorytmów (26) Cechy kanałów FIFO Kanały typu FC są pewnym mechanizmem synchronizacji wymaganym przez wiele aplikacji, ułatwiają znalezienie rozwiązania i konstrukcję algorytmów rozproszonych dla wielu problemów, ograniczają, w porównaniu z kanałami nonfifo, współbieżność komunikacji, a tym samym efektywność przetwarzania. Kanały typu FC (ang. Flush Channels), łączą zalety kanałów FIFO i nonfifo, (pewien stopień synchronizacji i współbieżnej komunikacji). mechanizmy (operacje) komunikacji send t (ang. two-way-flush send) send f (ang. forward-flush send) send b (ang. backward-flush-send) send o (ang. ordinary send) zdarzenia wiadomości e_send t e_send f e_send b e_send o M t M f M b M o Czas wirtualny, złożoność algorytmów (27) Czas wirtualny, złożoność algorytmów (28)

8 Wyprzedzanie wiadomości Typy wiadomości w kanałach FC Powiemy, że wiadomość M' wyprzedza wiadomość M w kanale C i,j, jeżeli wiadomość M została wysłana przez P i wcześniej niż M', lecz proces P j najpierw odebrał wiadomość M'. Wiadomość M t typu TF (ang. two-way-flush-send) operacja send t FIFO Wiadomość M f typu FF (ang. forward-flush-send) operacja send f Wiadomość M b typu BF (ang. backward-flush-send) operacja send b Wiadomość M o typu OF (ang. ordinary-send) operacja send o nonfifo Czas wirtualny, złożoność algorytmów (29) Czas wirtualny, złożoność algorytmów (0) Implementacja kanałów FC Relacja binarna poprzedzania Kanały typu FC mogą być implementowane z użyciem różnych mechanizmów: selektywnego rozgłaszania liczników potwierdzeń FL i,j stan kanału FC i,j + i,j binarna relacja poprzedzania typu F, zdefiniowana na zbiorze FL i,j : M + i,j M' (M, M' FL i,j ) (M' nie może być odebrana przed M) (4.4) Czas wirtualny, złożoność algorytmów () Czas wirtualny, złożoność algorytmów (2)

9 Bezpośrednie poprzedzanie Konstrukcja relacji poprzedzania () Jeżeli zachodzi predykat : M + i,jm' ( M'' :: (M'' M M'' M' M + i,jm'' M'' + i,jm' )) (4.5) W celu implementacji kanałów FC należy rozwiązać problem efektywnego wyznaczenia relacji i,j i przekazywania istotnych jej elementów do monitora odbiorcy. to mówimy, że M bezpośrednio poprzedza M' i fakt ten oznaczamy M i,j M', czyli i,j := { M, M' : (M bezpośrednio poprzedza M' )} Mechanizm sukcesywnej konstrukcji relacji i,j poprzez stosowne uaktualnienie relacji przy wysyłaniu kolejnych wiadomości. Czas wirtualny, złożoność algorytmów () Czas wirtualny, złożoność algorytmów (4) Konstrukcja relacji poprzedzania (2) Konstrukcja relacji poprzedzania () Niech M i,jb oznacza ostatnią wiadomość typu TF lub BF wysłaną kanałem FC i,j Jeżeli M jest typu OF i M i,jb, to i,j := i,j { M i,jb, M } (4.6) Jeżeli M jest typu BF i M i,jb, to i,j := i,j { M i,jb, M } (4.7) Następnie, M i,jb := M. Jeżeli M jest typu FF, to dla wszystkich M', takichże M' nie ma następnika w i,j, i,j := i,j { M', M } (4.8) Jeżeli M jest typu TF, to dla wszystkich M', takichże M' nie ma następnika w i,j, i,j := i,j { M', M } (4.9) Następnie, M i,jb := M. Czas wirtualny, złożoność algorytmów (5) Czas wirtualny, złożoność algorytmów (6)

10 Przekazywania informacji o relacji poprzedzania Alg. Kearnsa, Campa i Ahuja () W tym celu można zaproponować przesyłanie wiadomości aplikacyjnych w pakietach, zawierających dodatkowo: typ wiadomości (OF, BF, FF, TF) numer sekwencyjny wiadomości M (seqno = seqno i [j]) numer sekwencyjny waitforno wiadomości bezpośrednio poprzedzającej M Czas wirtualny, złożoność algorytmów (7) type PACKT extends FRAM is record of type : enum {OF, BF, FF, TF} seqno : INTGR waitforno : INTGR data : MSSAG end record msgin : MSSAG pcktout : PACKT delaybuf i : array [..n] of set of PACKT:= seqno i : array [..n] of INTGR:= 0 backfp i : array [..n] of INTGR:= 0 delivno i : array [..n] of set of INTGR:= delivered i : BOOLAN k : INTGR Czas wirtualny, złożoność algorytmów (8) Alg. Kearnsa, Campa i Ahuja (2) Alg. Kearnsa, Campa i Ahuja (). procedure TryToDeliver(pcktIn: PACKT) do 2. msgin := pcktin.data. if pcktin.type = OF pcktin.type = BF 4. then 5. if pcktin.waitforno=0 pcktin.waitforno delivno i [j] 6. then 7. deliver(p j, P i, msgin) 8. delivno i [j]:= delivno i [j] {pcktin.seqno} 9. end if 0. else /* pcktin.type = FF pcktin.type = TF */. if k :: k pcktin.waitforno :: k delivno i [j] 2. then. deliver(p j, P i, msgin) 4. delivno i [j]:= delivno i [j] {pcktin.seqno} 5. end if 6. end if 7. end procedure Czas wirtualny, złożoność algorytmów (9) 8. when e_send o (P i, P j, msgout: MSSAG) do 9. pcktout.type:= OF 20. seqno i [j]:= seqno i [j] + 2. pcktout.seqno:= seqno i [j] 22. pcktout.waitforno:= backfp i [j] 2. pcktout.data:= msgout 24. send(q i, Q j, pcktout) 25. end when Czas wirtualny, złożoność algorytmów (40)

11 Alg. Kearnsa, Campa i Ahuja (4) Alg. Kearnsa, Campa i Ahuja (5) 26. when e_send f (P i, P j, msgout: MSSAG) do 27. pcktout.type:= FF 28. seqno i [j]:= seqno i [j] pcktout.seqno:= seqno i [j] 0. pcktout.waitforno:= seqno i [j] -. pcktout.data:= msgout 2. send(q i, Q j, pcktout). end when 4. when e_send b (P i, P j, msgout: MSSAG) do 5. pcktout.type:= BF 6. seqno i [j]:= seqno i [j] + 7. pcktout.seqno:= seqno i [j] 8. pcktout.waitforno:= backfp i [j] 9. pcktout.data:= msgout 40. send(q i, Q j, pcktout) 4. backfp i [j]:= seqno i [j] 42. end when Czas wirtualny, złożoność algorytmów (4) Czas wirtualny, złożoność algorytmów (42) Alg. Kearnsa, Campa i Ahuja (6) Alg. Kearnsa, Campa i Ahuja (7) 4. when e_send t (P i, P j, msgout: MSSAG) do 44. pcktout.type:= TF 45. seqno i [j]:= seqno i [j] pcktout.seqno:= seqno i [j] 47. pcktout.waitforno:= seqno i [j] pcktout.data:= msgout 49. send(q i, Q j, pcktout) 50. backfp i [j]:= seqno i [j] 5. end when 52. when e_receive(q j, Q i, pcktin: PACKT) do 5. TryToDeliver(pcktIn) 54. if pcktin.seqno delivno i [j] 55. then 56. delivered i := True 57. else 58. delivered i := False 59. delaybuf i := delaybuf i {pcktin} 60. end if Czas wirtualny, złożoność algorytmów (4) Czas wirtualny, złożoność algorytmów (44)

12 Alg. Kearnsa, Campa i Ahuja (8) Środowisko zachowujące uporządkowanie przyczynowe 6. while delivered i do 62. delivered i := False 6. for all pckt delaybuf i [j] do 64. TryToDeliver(pckt) 65. if pckt.seqno delivno i [j] 66. then 67. delivered i := True 68. delaybuf i := delaybuf i \ {pckt} 69. end if 70. end for 7. end while 72. end when (4.0) (e_send(p i, P j, M) a e_send(p k, P j, M )) (e_receive(p i, P j, M) a j e_receive(p k, P j, M )) P P 2 P 2 M M M M 4 2 M 2 Czas wirtualny, złożoność algorytmów (45) Czas wirtualny, złożoność algorytmów (46) Środowisko zachowujące uporządkowanie przyczynowe Alg. Birmana, Schipera i Stephensona () (e_send(p i, P j, M) a e_send(p k, P j, M )) (e_receive(p i, P j, M) a j e_receive(p k, P j, M )) P P 2 P 2 M M M M 4 2 M 2 type PACKT extends FRAM is record of vsentclock : array [..n] of INTGR data : MSSAG end record msgin : MSSAG pcktout : PACKT vsentclock i : array [..n] of INTGR k : INTGR Czas wirtualny, złożoność algorytmów (47) Czas wirtualny, złożoność algorytmów (48)

13 Alg. Birmana, Schipera i Stephensona (2) Alg. Birmana, Schipera i Stephensona (). when e_send(p i, P j, msgout: MSSAG) do 2. vsentclock i [i]:= vsentclock i [i] +. pcktout.vsentclock:= vsentclock i 4. pcktout.data:= msgout 5. send(q i, Q \ {Q i }, pcktout) 6. end when 7. when e_receive(q j, Q i, pcktin: PACKT) do 8. wait until (vsentclock i [j]=pcktin.vsentclock[j]-) k {,2,...,n}\{j}::vSentClock i [k] pcktin.vsentclock[k]) 9. if pckin.data.rid = P i 0. then. msgin:= pcktin.data 2. deliver(p j, P i, msgin). end if 4. for all k {, 2,..., n} do 5. vsentclock i [k]:=max(vsentclock i [k],pcktin.vsentclock[k]) 6. end for 7. end when Czas wirtualny, złożoność algorytmów (49) Czas wirtualny, złożoność algorytmów (50) Alg. Schipera, gli, Sandoza () Alg. Schipera, gli, Sandoza (2) type PACKT extends FRAM is record of vsentclock : array [..n] of INTGR vm : set of record of pid: PROCSS_ID vts: array [..n] of INTGR end record data : MSSAG end record msgin : MSSAG pcktout : PACKT vsentclock i : array [..n] of INTGR vp i : set of record of pid : PROCSS_ID vts : array [..n] of INTGR end record delivered i : BOOLAN delaybuf i : set of PACKT := tmpbuf i : set of PACKT vts sup i : array [..n] of INTGR Czas wirtualny, złożoność algorytmów (5) Czas wirtualny, złożoność algorytmów (52)

14 Alg. Schipera, gli, Sandoza () Alg. Schipera, gli, Sandoza (4). procedure TryToDeliver(pcktIn: PACKT) do 2. msgin:= pcktin.data. if pid M, vts M pcktin.vm :: pid M = P i vts M vsentclock i 4. then 5. delaybuf i := delaybuf i {pcktin} 6. else 7. deliver(p j, P i, msgin) 8. delivered i := True 9. end if Czas wirtualny, złożoność algorytmów (5) 5. if delivered i then 6. for all pid M,vTS M pcktin.vm pid M P i do 7. if pid, vts vp i :: pid pid M then 8. vp i := vp i { pid M, vts M } 9. else 20. for ( pid, vts) vp i pid = pid M do 2. for all k {, 2,..., n} do 22. vts sup i [k] := max(vts[k], vts M [k]) 2. end for 24. vp i := vp i \ { pid, vts } 25. vp i := vp i { pid, vts sup i } 26. end for 27. end if 28. end for 29. for all k {, 2,..., n} do 0. vsentclock i [k] := max(vsentclock i [k], pcktin.vsentclock[k]). end for 2. end if. end procedure Czas wirtualny, złożoność algorytmów (54) Alg. Schipera, gli, Sandoza (5) Alg. Schipera, gli, Sandoza (6) 6. when e_send(p i, P j, msgout: MSSAG) do 7. vsentclock i [i] := vsentclock i [i] + 8. pcktout.vsentclock := vsentclock i 9. pcktout.vm := vp i 40. pcktout.data := msgout 4. send(q i, Q j, pcktout) 42. for pid, vts vp i pid = P j do 4. vp i := vp i \ { pid, vts } 44. end for 45. vp i := vp i { P j, vsentclock i } 46. end when 47. when e_receive(q j, Q i, pcktin: PACKT) do 48. delivered i := False 49. TryToDeliver(pcktIn) 50. tmpbuf i := 5. while delivered i do 52. tmpbuf i := tmpbuf i delaybuf i 5. delaybuf i := 54. delivered i := False 55. for all pckt tmpbuf i do 56. tmpbuf i := tmpbuf i \ {pckt} 57. TryToDeliver(pckt) 58. end for 59. end while 60. end when Czas wirtualny, złożoność algorytmów (55) Czas wirtualny, złożoność algorytmów (56)

15 Funkcje kosztu oznaczenia Funkcja kosztu - definicja δ A zbiór wszystkich poprawnych danych wejściowych δ algorytmu A, Z* A (δ) koszt wykonywania algorytmu A dla danychδ, gdzie δ δ A i Z* A : δ A R µ rozmiar danych wejściowych δ (rozmiar zadania), taki że µ =W(δ), gdziew: δ A N, jest zadaną funkcją. Funkcją kosztu wykonania algorytmu nazywać będziemy odwzorowanie Z A : µ A R (4.) Gdzie µ Ajest zbiorem wszystkich poprawnych danych wejściowych o rozmiarze µ algorytmu A. W praktyce, zamiast kosztu Z * A(δ) stosuje się zwykle jego oszacowanie w funkcji rozmiaru zadania µ =W(δ). Czas wirtualny, złożoność algorytmów (57) Czas wirtualny, złożoność algorytmów (58) Funkcje kosztu wykonania algorytmów Rząd funkcji () Najczęściej stosowane jest odwzorowanie pesymistyczne (najgorszego przypadku), zdefiniowane w sposób następujący: Z A (µ) = sup{z * A(δ) :δ δ A W(δ) = µ } (4.2) Niech f i g będą dowolnymi funkcjami odwzorowującymi N wr. Mówimy, że funkcja f jest co najwyżej rzędu funkcji g, co zapisujemy: f = O( g ) (4.) jeżeli istnieje stała rzeczywista c > 0 oraz n 0 Ntakie, że dla każdej wartości n > n 0, n Nzachodzi: f(n) < c g(n) (4.4) Czas wirtualny, złożoność algorytmów (59) Czas wirtualny, złożoność algorytmów (60)

16 Rząd funkcji (2) Rząd funkcji () Niech f i g będą dowolnymi funkcjami odwzorowującymi N wr. Mówimy, że funkcja f jest dokładnie rzędu funkcji g, co zapisujemy: jeżeli f = O(g) g = O(f). f = Θ ( g ) (4.5) Niech f i g będą dowolnymi funkcjami odwzorowującymi N wr. Mówimy, że funkcja f jest co najmniej rzędu funkcji g, co zapisujemy: jeżeli g = O(f). f = Ω ( g ) (4.6) Czas wirtualny, złożoność algorytmów (6) Czas wirtualny, złożoność algorytmów (62) Złożoność czasowa Czasy przetwarzania lokalnego i transmisji W wypadku algorytmów rozproszonych, złożoność czasowa jest funkcją kosztu wykonania, wyrażoną przez liczbę kroków algorytmu do jego zakończenia przy założeniu, że: czas wykonywania każdego kroku (operacji) jest stały kroki wykonywane są synchronicznie czas transmisji wiadomości jest stały W analizie złożoności czasowej algorytmów rozproszonych przyjmuje się też na ogół, że czas przetwarzania lokalnego (wykonania każdego kroku) jest pomijalny (zerowy) czas transmisji jest jednostkowy Czas wirtualny, złożoność algorytmów (6) Czas wirtualny, złożoność algorytmów (64)

17 Złożoność komunikacyjna Przykład () - bariera Złożoność komunikacyjna jest funkcją kosztu wykonania algorytmu wyrażaną przez: liczbę pakietów (wiadomości) przesyłanych w trakcie wykonywania algorytmu do jego zakończenia sumaryczną długość (w bitach) wszystkich wiadomości przesłanych w trakcie wykonywania algorytmu Topologia połączeń graf w pełni połączony Koordynator rozgłasza komunikat początku bariery Wszyscy uczestnicy odbierają komunikat i odsyłają potwierdzenia Po otrzymaniu potwierdzeń od wszystkich procesów, koordynator rozsyła komunikat końca bariery W konsekwencji wyróżniamy złożoność pakietową i bitową. Czas wirtualny, złożoność algorytmów (65) Czas wirtualny, złożoność algorytmów (66) Przykład () - rysunek Przykład (2) - bariera P 5 P 4 komunikatów typu BARRIR : n- komunikatów typu ACK : n- komunikatów typu ND : n- P * (n-) Topologia połączeń pierścień logiczny Koordynator wysyła komunikat początku bariery Wszyscy uczestnicy odbierają komunikat i przesyłają go dalej Po otrzymaniu komunikatu rozpoczynającego operację bariery, koordynator przesyła komunikat końca bariery P 6 P 2 P ( koordynator ) Początek Koniec bariery bariery Czas wirtualny, złożoność algorytmów (67) Czas wirtualny, złożoność algorytmów (68)

18 Przykład (2) - rysunek Warunki poprawności P 5 P 4 komunikatów typu BARRIR : n komunikatów typu ND : n P 2 * n Analizę poprawności algorytmu rozproszonego (procesu rozproszonego) dekomponuje się zwykle na analizę jego bezpieczeństwa iżywotności. właściwość bezpieczeństwa (ang. safety, consistency) P 6 P ( koordynator ) P 2 właściwość żywotności (postępu) (ang. liveness, progress) Początek Koniec bariery bariery Czas wirtualny, złożoność algorytmów (69) Czas wirtualny, złożoność algorytmów (70)

Czas wirtualny, złożoność algorytmów

Czas wirtualny, złożoność algorytmów Czas wirtualny, złożoność algorytmów Monitor Proces aplikacyjny P i Z każdym procesem P i proces monitora Q i. skojarzony jest Monitor Q i Środowisko komunikacyjne (2) 1 Cechy monitora Monitor może odczytywać

Bardziej szczegółowo

Czas wirtualny, złożoność algorytmów

Czas wirtualny, złożoność algorytmów Czas wirtualny, złożoność algorytmów Plan wykładu Celem wykładu jest zaznajomienie studenta z pojęciem zegara logicznego, scharakteryzowanie różnych rodzajów kanałów komunikacyjnych, a także przedstawienie

Bardziej szczegółowo

Czas wirtualny, złożoność algorytmów

Czas wirtualny, złożoność algorytmów Czas wirtualny, złożoność algorytmów Plan wykładu Celem wykładu jest zaznajomienie studenta z pojęciem zegara logicznego, scharakteryzowanie różnych rodzajów kanałów komunikacyjnych, a także przedstawienie

Bardziej szczegółowo

Problem detekcji zakończenia

Problem detekcji zakończenia Problem detekcji zakończenia Przykład sortowanie rozproszone Rozważmy problem sortowania rozproszonego zbioru X składającego się z v różnych liczb naturalnych, w środowisku rozproszonym o n węzłach (procesorach),

Bardziej szczegółowo

Mechanizmy rozgłaszania niezawodnego

Mechanizmy rozgłaszania niezawodnego Mechanizmy rozgłaszania niezawodnego Rozgłaszanie niezawodne definicja nieformalna Nieformalnie, przez rozgłaszanie rozumiemy mechanizm (abstrakcję) komunikacyjny, za pomocą którego proces możewysłać wiadomość

Bardziej szczegółowo

Treść zadań 1 8 odnosi się do poniższego diagramu przestrzenno-czasowego.

Treść zadań 1 8 odnosi się do poniższego diagramu przestrzenno-czasowego. Treść zadań 8 odnos sę do ponższego dagramu przestrzenno-czasowego. P e e e e e e P e P P e e e e. Jaka będze wartość zmennej clock (zegara skalarnego) po zajścu zdarzena e w procese P zakładając że wartość

Bardziej szczegółowo

Detekcja zakleszczenia (1)

Detekcja zakleszczenia (1) Detekcja zakleszczenia (1) Wykład prowadzą: Jerzy Brzeziński Jacek Kobusiński Plan wykładu Procesy aktywne i pasywne Definicja zakleszczenia Problem detekcji wystąpienia zakleszczenia Detekcja zakleszczenia

Bardziej szczegółowo

Konstrukcja spójnego obrazu stanu globalnego

Konstrukcja spójnego obrazu stanu globalnego Konstrukcja spójnego obrazu stanu globalnego Proces rozproszony Proces rozproszony Π, będący współbieżnym wykonaniem zbioru P ={P, P,..., P n } procesów sekwencyjnych P i, opisuje uporządkowana czwórka

Bardziej szczegółowo

procesów Współbieżność i synchronizacja procesów Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak

procesów Współbieżność i synchronizacja procesów Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak Plan wykładu Abstrakcja programowania współbieżnego Instrukcje atomowe i ich przeplot Istota synchronizacji Kryteria poprawności programów współbieżnych

Bardziej szczegółowo

PROJEKT WSPÓŁFINANSOWANY ZE ŚRODKÓW UNII EUROPEJSKIEJ W RAMACH EUROPEJSKIEGO FUNDUSZU SPOŁECZNEGO OPIS PRZEDMIOTU

PROJEKT WSPÓŁFINANSOWANY ZE ŚRODKÓW UNII EUROPEJSKIEJ W RAMACH EUROPEJSKIEGO FUNDUSZU SPOŁECZNEGO OPIS PRZEDMIOTU OPIS PRZEDMIOTU Nazwa przedmiotu Systemy rozproszone Kod przedmiotu Wydział Wydział Matematyki, Fizyki i Techniki Instytut/Katedra Instytut Mechaniki i Informatyki Stosowanej Kierunek Informatyka Specjalizacja/specjalność

Bardziej szczegółowo

Konstrukcja spójnego obrazu stanu globalnego algorytmy

Konstrukcja spójnego obrazu stanu globalnego algorytmy Konstrukcja spójnego obrazu stanu globalnego algorytmy Plan wykładu Celem wykładu jest przedstawienie niektórych algorytmów służących do konstrukcji obrazu spójnego stanu globalnego. Wykład obejmie przedstawienie

Bardziej szczegółowo

Konstrukcja spójnego obrazu stanu globalnego algorytmy

Konstrukcja spójnego obrazu stanu globalnego algorytmy Konstrukcja spójnego obrazu stanu globalnego algorytmy Plan wykładu Celem wykładu jest przedstawienie niektórych algorytmów służących do konstrukcji obrazu spójnego stanu globalnego. Wykład obejmie przedstawienie

Bardziej szczegółowo

Konstrukcja spójnego obrazu stanu globalnego algorytmy

Konstrukcja spójnego obrazu stanu globalnego algorytmy Konstrukcja spójnego obrazu stanu globalnego algorytmy Plan wykładu Celem wykładu jest przedstawienie niektórych algorytmów służących do konstrukcji obrazu spójnego stanu globalnego. Wykład obejmie przedstawienie

Bardziej szczegółowo

Proces rozproszony. Plan wykładu. Wykład prowadzą: Jerzy Brzeziński Jacek Kobusiński. Proces rozproszony. Zbiór stanów globalnych (1)

Proces rozproszony. Plan wykładu. Wykład prowadzą: Jerzy Brzeziński Jacek Kobusiński. Proces rozproszony. Zbiór stanów globalnych (1) Proces rozproszony Wykład prowadzą: Jerzy Brzeziński Jacek Kobusiński Pan wykładu Proces rozproszony Wykonanie procesu, historia procesu Stan osiągany Reacja poprzedzania zdarzeń Diagramy przestrzenno-czasowe

Bardziej szczegółowo

Przetwarzanie rozproszone

Przetwarzanie rozproszone Wykład prowadzą: Jerzy Brzeziński Jacek Kobusiński Plan wykładu Proces sekwencyjny Komunikaty, kanały komunikacyjne Stan kanału Operacje komunikacyjne Model formalny procesu sekwencyjnego Zdarzenia Warunek

Bardziej szczegółowo

Proces rozproszony 1

Proces rozproszony 1 Proces rozproszony 1 Plan wykładu Celem wykładu jest zapoznanie słuchacza z podstawowymi pojęciami związanymi z przetwarzaniem rozproszonym. Wykład ten jest kontynuacją wykładu poprzedniego, w którym zdefiniowano

Bardziej szczegółowo

Problem detekcji zakończenia (II)

Problem detekcji zakończenia (II) Problem detekcji zakończenia (II) Plan wykładu Celem obecnego wykładu jest przedstawienie przeglądu algorytmów poświęconych tematyce detekcji zakończenia zapoczątkowanego w poprzednim module. Wykład obejmie

Bardziej szczegółowo

Sortowanie topologiczne skierowanych grafów acyklicznych

Sortowanie topologiczne skierowanych grafów acyklicznych Sortowanie topologiczne skierowanych grafów acyklicznych Metody boolowskie w informatyce Robert Sulkowski http://robert.brainusers.net 23 stycznia 2010 1 Definicja 1 (Cykl skierowany). Niech C = (V, A)

Bardziej szczegółowo

Problem detekcji zakończenia (I)

Problem detekcji zakończenia (I) Problem detekcji zakończenia (I) Plan wykładu Celem wykładu jest zapoznanie studenta z tematyką detekcji zakończenia. Wykład obejmie przedstawienie przykładów ilustrujących potrzebę problemy detekcji zakończenia

Bardziej szczegółowo

Stan globalny. Krzysztof Banaś Systemy rozproszone 1

Stan globalny. Krzysztof Banaś Systemy rozproszone 1 Stan globalny Krzysztof Banaś Systemy rozproszone 1 Stan globalny Z problemem globalnego czasu jest związany także problem globalnego stanu: interesuje nas stan systemu rozproszonego w konkretnej pojedynczej

Bardziej szczegółowo

Przetwarzanie rozproszone

Przetwarzanie rozproszone Przetwarzanie rozproszone Plan wykładu Celem wykładu jest zapoznanie słuchacza z podstawowymi pojęciami i problemami związanymi z przetwarzaniem rozproszonym. Wykład obejmie omówienie m. in. definicji

Bardziej szczegółowo

Przetwarzanie rozproszone

Przetwarzanie rozproszone Przetwarzanie rozproszone Plan wykładu Celem wykładu jest zapoznanie słuchacza z podstawowymi pojęciami i problemami związanymi z przetwarzaniem rozproszonym. Wykład obejmie omówienie m. in. definicji

Bardziej szczegółowo

Problem detekcji zakończenia (I)

Problem detekcji zakończenia (I) Problem detekcji zakończenia (I) Plan wykładu Celem wykładu jest zapoznanie studenta z tematyką detekcji zakończenia. Wykład obejmie przedstawienie przykładów ilustrujących potrzebę problemy detekcji zakończenia

Bardziej szczegółowo

Konstrukcja spójnego obrazu stanu globalnego - wprowadzenie

Konstrukcja spójnego obrazu stanu globalnego - wprowadzenie Konstrukcja spójnego obrazu stanu globalnego - wprowadzenie Plan wykładu Celem wykładu jest zaznajomienie studenta z problematyką konstrukcji obrazu spójnego stanu globalnego. Wykład obejmie omówienie

Bardziej szczegółowo

Algorytmy równoległe: ocena efektywności prostych algorytmów dla systemów wielokomputerowych

Algorytmy równoległe: ocena efektywności prostych algorytmów dla systemów wielokomputerowych Algorytmy równoległe: ocena efektywności prostych algorytmów dla systemów wielokomputerowych Rafał Walkowiak Politechnika Poznańska Studia inżynierskie Informatyka 2014/15 Znajdowanie maksimum w zbiorze

Bardziej szczegółowo

Wzajemne wykluczanie i zakleszczenie

Wzajemne wykluczanie i zakleszczenie Wzajemne wykluczanie i zakleszczenie Wzajemne wykluczanie Wzajemne wykluczenie zapewnia procesom ochronę przy dostępie do zasobów, daje im np. gwarancję, że jako jedyne będą mogły z nich korzystać Typy

Bardziej szczegółowo

Mechanizmy rozgłaszania niezawodnego

Mechanizmy rozgłaszania niezawodnego Mechanizmy rozgłaszania niezawodnego Plan wykładu Celem wykładu jest prezentacja zagadnień związanych z implementacją niezawodnej komunikacji w zawodnym środowisku rozproszonym. Wykład obejmie omówienie

Bardziej szczegółowo

Algorytmy równoległe: ocena efektywności prostych algorytmów dla systemów wielokomputerowych

Algorytmy równoległe: ocena efektywności prostych algorytmów dla systemów wielokomputerowych Algorytmy równoległe: ocena efektywności prostych algorytmów dla systemów wielokomputerowych Rafał Walkowiak Politechnika Poznańska Studia inżynierskie Informatyka 2013/14 Znajdowanie maksimum w zbiorze

Bardziej szczegółowo

Algorytmy równoległe. Rafał Walkowiak Politechnika Poznańska Studia inżynierskie Informatyka 2010

Algorytmy równoległe. Rafał Walkowiak Politechnika Poznańska Studia inżynierskie Informatyka 2010 Algorytmy równoległe Rafał Walkowiak Politechnika Poznańska Studia inżynierskie Informatyka Znajdowanie maksimum w zbiorze n liczb węzły - maksimum liczb głębokość = 3 praca = 4++ = 7 (operacji) n - liczność

Bardziej szczegółowo

Czas w systemach rozproszonych. Krzysztof Banaś Systemy rozproszone 1

Czas w systemach rozproszonych. Krzysztof Banaś Systemy rozproszone 1 Czas w systemach rozproszonych Krzysztof Banaś Systemy rozproszone 1 Czas w systemach rozproszonych Istnienie algorytmów opartych na czasie zdarzeń np. make, systemy czasu rzeczywistego Brak czasu globalnego

Bardziej szczegółowo

Algorytmy równoległe: prezentacja i ocena efektywności prostych algorytmów dla systemów równoległych

Algorytmy równoległe: prezentacja i ocena efektywności prostych algorytmów dla systemów równoległych Algorytmy równoległe: prezentacja i ocena efektywności prostych algorytmów dla systemów równoległych Rafał Walkowiak Politechnika Poznańska Studia inżynierskie Informatyka 2018/19 Problem: znajdowanie

Bardziej szczegółowo

Projektowanie algorytmów równoległych. Zbigniew Koza Wrocław 2012

Projektowanie algorytmów równoległych. Zbigniew Koza Wrocław 2012 Projektowanie algorytmów równoległych Zbigniew Koza Wrocław 2012 Spis reści Zadniowo-kanałowy (task-channel) model algorytmów równoległych Projektowanie algorytmów równoległych metodą PACM Task-channel

Bardziej szczegółowo

5. Model komunikujących się procesów, komunikaty

5. Model komunikujących się procesów, komunikaty Jędrzej Ułasiewicz str. 1 5. Model komunikujących się procesów, komunikaty Obecnie stosuje się następujące modele przetwarzania: Model procesów i komunikatów Model procesów komunikujących się poprzez pamięć

Bardziej szczegółowo

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu Programowanie strukturalne Opis ogólny programu w Turbo Pascalu STRUKTURA PROGRAMU W TURBO PASCALU Program nazwa; } nagłówek programu uses nazwy modułów; } blok deklaracji modułów const } blok deklaracji

Bardziej szczegółowo

Wykład 2. Poprawność algorytmów

Wykład 2. Poprawność algorytmów Wykład 2 Poprawność algorytmów 1 Przegląd Ø Poprawność algorytmów Ø Podstawy matematyczne: Przyrost funkcji i notacje asymptotyczne Sumowanie szeregów Indukcja matematyczna 2 Poprawność algorytmów Ø Algorytm

Bardziej szczegółowo

Wstęp do programowania. Różne różności

Wstęp do programowania. Różne różności Wstęp do programowania Różne różności Typy danych Typ danych określa dwie rzeczy: Jak wartości danego typu są określane w pamięci Jakie operacje są dozwolone na obiektach danego typu 2 Rodzaje typów Proste

Bardziej szczegółowo

Podstawy programowania 2. Temat: Drzewa binarne. Przygotował: mgr inż. Tomasz Michno

Podstawy programowania 2. Temat: Drzewa binarne. Przygotował: mgr inż. Tomasz Michno Instrukcja laboratoryjna 5 Podstawy programowania 2 Temat: Drzewa binarne Przygotował: mgr inż. Tomasz Michno 1 Wstęp teoretyczny Drzewa są jedną z częściej wykorzystywanych struktur danych. Reprezentują

Bardziej szczegółowo

Kodowanie i kompresja Tomasz Jurdziński Studia Wieczorowe Wykład Kody liniowe - kodowanie w oparciu o macierz parzystości

Kodowanie i kompresja Tomasz Jurdziński Studia Wieczorowe Wykład Kody liniowe - kodowanie w oparciu o macierz parzystości Kodowanie i kompresja Tomasz Jurdziński Studia Wieczorowe Wykład 13 1 Kody liniowe - kodowanie w oparciu o macierz parzystości Przykład Różne macierze parzystości dla kodu powtórzeniowego. Co wiemy z algebry

Bardziej szczegółowo

Podstawowe algorytmy i ich implementacje w C. Wykład 9

Podstawowe algorytmy i ich implementacje w C. Wykład 9 Wstęp do programowania 1 Podstawowe algorytmy i ich implementacje w C Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 9 Element minimalny i maksymalny zbioru Element minimalny

Bardziej szczegółowo

1 Wprowadzenie do algorytmiki

1 Wprowadzenie do algorytmiki Teoretyczne podstawy informatyki - ćwiczenia: Prowadzący: dr inż. Dariusz W Brzeziński 1 Wprowadzenie do algorytmiki 1.1 Algorytm 1. Skończony, uporządkowany ciąg precyzyjnie i zrozumiale opisanych czynności

Bardziej szczegółowo

Wprowadzenie do programowania współbieżnego

Wprowadzenie do programowania współbieżnego Wprowadzenie do programowania współbieżnego Marcin Engel Instytut Informatyki Uniwersytet Warszawski Zamiast wstępu... Zamiast wstępu... Możliwość wykonywania wielu akcji jednocześnie może ułatwić tworzenie

Bardziej szczegółowo

w PL/SQL bloki nazwane to: funkcje, procedury, pakiety, wyzwalacze

w PL/SQL bloki nazwane to: funkcje, procedury, pakiety, wyzwalacze w PL/SQL bloki nazwane to: funkcje, procedury, pakiety, wyzwalacze Cechy bloków nazwanych: w postaci skompilowanej trwale przechowywane na serwerze wraz z danymi wykonywane na żądanie użytkownika lub w

Bardziej szczegółowo

Zadanie 1 Przygotuj algorytm programu - sortowanie przez wstawianie.

Zadanie 1 Przygotuj algorytm programu - sortowanie przez wstawianie. Sortowanie Dane wejściowe: ciąg n-liczb (kluczy) (a 1, a 2, a 3,..., a n 1, a n ) Dane wyjściowe: permutacja ciągu wejściowego (a 1, a 2, a 3,..., a n 1, a n) taka, że a 1 a 2 a 3... a n 1 a n. Będziemy

Bardziej szczegółowo

Równoległy algorytm wyznaczania bloków dla cyklicznego problemu przepływowego z przezbrojeniami

Równoległy algorytm wyznaczania bloków dla cyklicznego problemu przepływowego z przezbrojeniami Równoległy algorytm wyznaczania bloków dla cyklicznego problemu przepływowego z przezbrojeniami dr inż. Mariusz Uchroński Wrocławskie Centrum Sieciowo-Superkomputerowe Agenda Cykliczny problem przepływowy

Bardziej szczegółowo

Algorytmy Równoległe i Rozproszone Część VI - Systemy rozproszone, podstawowe pojęcia

Algorytmy Równoległe i Rozproszone Część VI - Systemy rozproszone, podstawowe pojęcia Algorytmy Równoległe i Rozproszone Część VI - Systemy rozproszone, podstawowe pojęcia Łukasz Kuszner pokój 209, WETI http://www.kaims.pl/ kuszner/ kuszner@kaims.pl Oficjalna strona wykładu http://www.kaims.pl/

Bardziej szczegółowo

Klient-Serwer Komunikacja przy pomocy gniazd

Klient-Serwer Komunikacja przy pomocy gniazd II Klient-Serwer Komunikacja przy pomocy gniazd Gniazda pozwalają na efektywną wymianę danych pomiędzy procesami w systemie rozproszonym. Proces klienta Proces serwera gniazdko gniazdko protokół transportu

Bardziej szczegółowo

Matematyczne Podstawy Informatyki

Matematyczne Podstawy Informatyki Matematyczne Podstawy Informatyki dr inż. Andrzej Grosser Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska Rok akademicki 2013/2014 Algorytm 1. Termin algorytm jest używany w informatyce

Bardziej szczegółowo

Specyfikacje BEB, RB, URB

Specyfikacje BEB, RB, URB Specyfikacje BEB, RB, URB Best-effort Broadcast (BEB) Ważność (Jeżeli procesy Pi i Pj są poprawne, to każda wiadomość m rozgłaszana przez Pi jest ostatecznie dostarczona do Pj) Brak powielenia (m jest

Bardziej szczegółowo

Wstęp do programowania

Wstęp do programowania Wstęp do programowania Złożoność obliczeniowa, poprawność programów Paweł Daniluk Wydział Fizyki Jesień 2013 P. Daniluk(Wydział Fizyki) WP w. XII Jesień 2013 1 / 20 Złożoność obliczeniowa Problem Ile czasu

Bardziej szczegółowo

prowadzący dr ADRIAN HORZYK /~horzyk e-mail: horzyk@agh tel.: 012-617 Konsultacje paw. D-13/325

prowadzący dr ADRIAN HORZYK /~horzyk e-mail: horzyk@agh tel.: 012-617 Konsultacje paw. D-13/325 PODSTAWY INFORMATYKI WYKŁAD 8. prowadzący dr ADRIAN HORZYK http://home home.agh.edu.pl/~ /~horzyk e-mail: horzyk@agh agh.edu.pl tel.: 012-617 617-4319 Konsultacje paw. D-13/325 DRZEWA Drzewa to rodzaj

Bardziej szczegółowo

Przeszukiwanie z nawrotami. Wykład 8. Przeszukiwanie z nawrotami. J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 238 / 279

Przeszukiwanie z nawrotami. Wykład 8. Przeszukiwanie z nawrotami. J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 238 / 279 Wykład 8 J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 238 / 279 sformułowanie problemu przegląd drzewa poszukiwań przykłady problemów wybrane narzędzia programistyczne J. Cichoń, P. Kobylański

Bardziej szczegółowo

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1 Podstawy programowania. Wykład Funkcje Krzysztof Banaś Podstawy programowania 1 Programowanie proceduralne Pojęcie procedury (funkcji) programowanie proceduralne realizacja określonego zadania specyfikacja

Bardziej szczegółowo

Algorytmy Równoległe i Rozproszone Część V - Model PRAM II

Algorytmy Równoległe i Rozproszone Część V - Model PRAM II Algorytmy Równoległe i Rozproszone Część V - Model PRAM II Łukasz Kuszner pokój 209, WETI http://www.sphere.pl/ kuszner/ kuszner@sphere.pl Oficjalna strona wykładu http://www.sphere.pl/ kuszner/arir/ 2005/06

Bardziej szczegółowo

Wprowadzenie do złożoności obliczeniowej

Wprowadzenie do złożoności obliczeniowej problemów Katedra Informatyki Politechniki Świętokrzyskiej Kielce, 16 stycznia 2007 problemów Plan wykładu 1 2 algorytmów 3 4 5 6 problemów problemów Plan wykładu 1 2 algorytmów 3 4 5 6 problemów problemów

Bardziej szczegółowo

Detekcja zakleszczenia (2)

Detekcja zakleszczenia (2) Detekcja zakleszczenia (2) Plan wykładu Celem wykładu jest zaznajomienie studenta z kolejnymi algorytmami detekcji zakleszczenia. Jest on jest bezpośrednią kontynuacją poprzedniego wykładu, w którym zdefiniowane

Bardziej szczegółowo

Algorytmy i struktury danych

Algorytmy i struktury danych Algorytmy i struktury danych Proste algorytmy sortowania Witold Marańda maranda@dmcs.p.lodz.pl 1 Pojęcie sortowania Sortowaniem nazywa się proces ustawiania zbioru obiektów w określonym porządku Sortowanie

Bardziej szczegółowo

Laboratorium Podstawy Przetwarzania Rozproszonego SPRAWOZDANIE z zadania SERWIS KOMPUTEROWY

Laboratorium Podstawy Przetwarzania Rozproszonego SPRAWOZDANIE z zadania SERWIS KOMPUTEROWY Laboratorium Podstawy Przetwarzania Rozproszonego SPRAWOZDANIE z zadania SERWIS KOMPUTEROWY Nazwisko Imię album termin zajęć Marek Lewandowski 59817 Maciej Mietliński 59832 poniedziałek 18:30 tydzień nieparzysty

Bardziej szczegółowo

Programowanie dynamiczne

Programowanie dynamiczne Programowanie dynamiczne Patryk Żywica 5 maja 2008 1 Spis treści 1 Problem wydawania reszty 3 1.1 Sformułowanie problemu...................... 3 1.2 Algorytm.............................. 3 1.2.1 Prosty

Bardziej szczegółowo

2. FUNKCJE. jeden i tylko jeden element y ze zbioru, to takie przyporządkowanie nazwiemy FUNKCJĄ, lub

2. FUNKCJE. jeden i tylko jeden element y ze zbioru, to takie przyporządkowanie nazwiemy FUNKCJĄ, lub WYKŁAD 2 1 2. FUNKCJE. 2.1.PODSTAWOWE DEFINICJE. Niech będą dane zbiory i. Jeżeli każdemu elementowi x ze zbioru,, przyporządkujemy jeden i tylko jeden element y ze zbioru, to takie przyporządkowanie nazwiemy

Bardziej szczegółowo

1. Analiza algorytmów przypomnienie

1. Analiza algorytmów przypomnienie 1. Analiza algorytmów przypomnienie T.H. Cormen, C.E. Leiserson, R.L. Rivest, C. Stein Wprowadzenie do algorytmów, rozdziały 1-4 Wydawnictwa naukowo-techniczne (2004) Jak mierzyć efektywność algorytmu?

Bardziej szczegółowo

Wstęp do programowania. Drzewa. Piotr Chrząstowski-Wachtel

Wstęp do programowania. Drzewa. Piotr Chrząstowski-Wachtel Wstęp do programowania Drzewa Piotr Chrząstowski-Wachtel Drzewa Drzewa definiują matematycy, jako spójne nieskierowane grafy bez cykli. Równoważne określenia: Spójne grafy o n wierzchołkach i n-1 krawędziach

Bardziej szczegółowo

Algorytmy Równoległe i Rozproszone Część VII - Systemy rozproszone, wstęp

Algorytmy Równoległe i Rozproszone Część VII - Systemy rozproszone, wstęp Algorytmy Równoległe i Rozproszone Część VII - Systemy rozproszone, wstęp Łukasz Kuszner pokój 209, WETI http://www.sphere.pl/ kuszner/ kuszner@sphere.pl Oficjalna strona wykładu http://www.sphere.pl/

Bardziej szczegółowo

Teoria automatów i języków formalnych. Określenie relacji

Teoria automatów i języków formalnych. Określenie relacji Relacje Teoria automatów i języków formalnych Dr inŝ. Janusz ajewski Katedra Informatyki Określenie relacji: Określenie relacji Relacja R jest zbiorem par uporządkowanych, czyli podzbiorem iloczynu kartezjańskiego

Bardziej szczegółowo

Grafem nazywamy strukturę G = (V, E): V zbiór węzłów lub wierzchołków, Grafy dzielimy na grafy skierowane i nieskierowane:

Grafem nazywamy strukturę G = (V, E): V zbiór węzłów lub wierzchołków, Grafy dzielimy na grafy skierowane i nieskierowane: Wykład 4 grafy Grafem nazywamy strukturę G = (V, E): V zbiór węzłów lub wierzchołków, E zbiór krawędzi, Grafy dzielimy na grafy skierowane i nieskierowane: Formalnie, w grafach skierowanych E jest podzbiorem

Bardziej szczegółowo

Zegary logiczne. Zakres ćwiczenia. Problem rozbieżności czasów. Koncepcja programu. Przygotowanie programu

Zegary logiczne. Zakres ćwiczenia. Problem rozbieżności czasów. Koncepcja programu. Przygotowanie programu Zegary logiczne Zakres ćwiczenia W obecnym ćwiczeniu nie zostaną wprowadzone żadne nowe funkcje biblioteki PVM. Zobaczysz za to program demonstrujący zagrożenia niesione przez używanie zegarów fizycznych

Bardziej szczegółowo

Wykład 9 Testy rangowe w problemie dwóch prób

Wykład 9 Testy rangowe w problemie dwóch prób Wykład 9 Testy rangowe w problemie dwóch prób Wrocław, 18 kwietnia 2018 Test rangowy Testem rangowym nazywamy test, w którym statystyka testowa jest konstruowana w oparciu o rangi współrzędnych wektora

Bardziej szczegółowo

Programowanie równoległe i rozproszone. Praca zbiorowa pod redakcją Andrzeja Karbowskiego i Ewy Niewiadomskiej-Szynkiewicz

Programowanie równoległe i rozproszone. Praca zbiorowa pod redakcją Andrzeja Karbowskiego i Ewy Niewiadomskiej-Szynkiewicz Programowanie równoległe i rozproszone Praca zbiorowa pod redakcją Andrzeja Karbowskiego i Ewy Niewiadomskiej-Szynkiewicz 23 października 2009 Spis treści Przedmowa...................................................

Bardziej szczegółowo

Algorytmy i Struktury Danych, 2. ćwiczenia

Algorytmy i Struktury Danych, 2. ćwiczenia Algorytmy i Struktury Danych, 2. ćwiczenia 2017-10-13 Spis treści 1 Optymalne sortowanie 5 ciu elementów 1 2 Sortowanie metodą Shella 2 3 Przesunięcie cykliczne tablicy 3 4 Scalanie w miejscu dla ciągów

Bardziej szczegółowo

Wykład 8. Drzewo rozpinające (minimum spanning tree)

Wykład 8. Drzewo rozpinające (minimum spanning tree) Wykład 8 Drzewo rozpinające (minimum spanning tree) 1 Minimalne drzewo rozpinające - przegląd Definicja problemu Własności minimalnych drzew rozpinających Algorytm Kruskala Algorytm Prima Literatura Cormen,

Bardziej szczegółowo

Część 3. Układy sekwencyjne. Układy sekwencyjne i układy iteracyjne - grafy stanów TCiM Wydział EAIiIB Katedra EiASPE 1

Część 3. Układy sekwencyjne. Układy sekwencyjne i układy iteracyjne - grafy stanów TCiM Wydział EAIiIB Katedra EiASPE 1 Część 3 Układy sekwencyjne Układy sekwencyjne i układy iteracyjne - grafy stanów 18.11.2017 TCiM Wydział EAIiIB Katedra EiASPE 1 Układ cyfrowy - przypomnienie Podstawowe informacje x 1 x 2 Układ cyfrowy

Bardziej szczegółowo

Za pierwszy niebanalny algorytm uważa się algorytm Euklidesa wyszukiwanie NWD dwóch liczb (400 a 300 rok przed narodzeniem Chrystusa).

Za pierwszy niebanalny algorytm uważa się algorytm Euklidesa wyszukiwanie NWD dwóch liczb (400 a 300 rok przed narodzeniem Chrystusa). Algorytmy definicja, cechy, złożoność. Algorytmy napotykamy wszędzie, gdziekolwiek się zwrócimy. Rządzą one wieloma codziennymi czynnościami, jak np. wymiana przedziurawionej dętki, montowanie szafy z

Bardziej szczegółowo

Wstęp do informatyki. Maszyna RAM. Schemat logiczny komputera. Maszyna RAM. RAM: szczegóły. Realizacja algorytmu przez komputer

Wstęp do informatyki. Maszyna RAM. Schemat logiczny komputera. Maszyna RAM. RAM: szczegóły. Realizacja algorytmu przez komputer Realizacja algorytmu przez komputer Wstęp do informatyki Wykład UniwersytetWrocławski 0 Tydzień temu: opis algorytmu w języku zrozumiałym dla człowieka: schemat blokowy, pseudokod. Dziś: schemat logiczny

Bardziej szczegółowo

Algorytmy i Struktury Danych, 2. ćwiczenia

Algorytmy i Struktury Danych, 2. ćwiczenia Algorytmy i Struktury Danych, 2. ćwiczenia 2015-10-09 Spis treści 1 Szybkie potęgowanie 1 2 Liczby Fibonacciego 2 3 Dowód, że n 1 porównań jest potrzebne do znajdowania minimum 2 4 Optymalny algorytm do

Bardziej szczegółowo

Macierze. Rozdział Działania na macierzach

Macierze. Rozdział Działania na macierzach Rozdział 5 Macierze Funkcję, która każdej parze liczb naturalnych (i, j) (i 1,..., n; j 1,..., m) przyporządkowuje dokładnie jedną liczbę a ij F, gdzie F R lub F C, nazywamy macierzą (rzeczywistą, gdy

Bardziej szczegółowo

Programowanie systemów czasu rzeczywistego laboratorium. Ćwiczenie 2. Temat zajęć: pakiety, zadania, synchronizacja czasowa, mechanizm spotkań

Programowanie systemów czasu rzeczywistego laboratorium. Ćwiczenie 2. Temat zajęć: pakiety, zadania, synchronizacja czasowa, mechanizm spotkań Programowanie systemów czasu rzeczywistego laboratorium Ćwiczenie 2 Temat zajęć: pakiety, zadania, synchronizacja czasowa, mechanizm spotkań Autor: dr inż. Sławomir Samolej Zagadnienie 1. (Przykładowe

Bardziej szczegółowo

SEGMENT TCP CZ. II. Suma kontrolna (ang. Checksum) liczona dla danych jak i nagłówka, weryfikowana po stronie odbiorczej

SEGMENT TCP CZ. II. Suma kontrolna (ang. Checksum) liczona dla danych jak i nagłówka, weryfikowana po stronie odbiorczej SEGMENT TCP CZ. I Numer portu źródłowego (ang. Source port), przeznaczenia (ang. Destination port) identyfikują aplikacje wysyłającą odbierającą dane, te dwie wielkości wraz adresami IP źródła i przeznaczenia

Bardziej szczegółowo

Teoria obliczeń i złożoność obliczeniowa

Teoria obliczeń i złożoność obliczeniowa Teoria obliczeń i złożoność obliczeniowa Kontakt: dr hab. inż. Adam Kasperski, prof. PWr. pokój 509 B4 adam.kasperski@pwr.wroc.pl materiały + informacje na stronie www. Zaliczenie: Egzamin Literatura Problemy

Bardziej szczegółowo

Synchronizacja procesów

Synchronizacja procesów Synchronizacja procesów - Współbieżność i synchronizacja procesów - Systemowe mechanizmy synchronizacji procesów Systemy operacyjne Wykład 7 1 Współbieżność i synchronizacja procesów Abstrakcja programowania

Bardziej szczegółowo

Informatyka 1. Przetwarzanie tekstów

Informatyka 1. Przetwarzanie tekstów Informatyka 1 Wykład IX Przetwarzanie tekstów Robert Muszyński ZPCiR ICT PWr Zagadnienia: reprezentacja napisów znakowych, zmienne napisowe w Sun Pascalu, zgodność typów, operowanie na napisach: testowanie

Bardziej szczegółowo

Język programowania PASCAL

Język programowania PASCAL Język programowania PASCAL (wersja podstawowa - standard) Literatura: dowolny podręcznik do języka PASCAL (na laboratoriach Borland) Iglewski, Madey, Matwin PASCAL STANDARD, PASCAL 360 Marciniak TURBO

Bardziej szczegółowo

Wstęp do programowania. Listy. Piotr Chrząstowski-Wachtel

Wstęp do programowania. Listy. Piotr Chrząstowski-Wachtel Wstęp do programowania Listy Piotr Chrząstowski-Wachtel Do czego stosujemy listy? Listy stosuje się wszędzie tam, gdzie występuje duży rozrzut w możliwym rozmiarze danych, np. w reprezentacji grafów jeśli

Bardziej szczegółowo

Podstawy Programowania C++

Podstawy Programowania C++ Wykład 3 - podstawowe konstrukcje Instytut Automatyki i Robotyki Warszawa, 2014 Wstęp Plan wykładu Struktura programu, instrukcja przypisania, podstawowe typy danych, zapis i odczyt danych, wyrażenia:

Bardziej szczegółowo

TEORETYCZNE PODSTAWY INFORMATYKI

TEORETYCZNE PODSTAWY INFORMATYKI 1 TEORETYCZNE PODSTAWY INFORMATYKI 16/01/2017 WFAiS UJ, Informatyka Stosowana I rok studiów, I stopień Repetytorium złożoność obliczeniowa 2 Złożoność obliczeniowa Notacja wielkie 0 Notacja Ω i Θ Rozwiązywanie

Bardziej szczegółowo

Podstawy Informatyki. Sprawność algorytmów

Podstawy Informatyki. Sprawność algorytmów Podstawy Informatyki Sprawność algorytmów Sprawność algorytmów Kryteria oceny oszczędności Miara złożoności rozmiaru pamięci (złożoność pamięciowa): Liczba zmiennych + liczba i rozmiar struktur danych

Bardziej szczegółowo

Semafory. // G - globalna dla wszystkich. // Wada - aktywne oczekiwanie Test_and_Set(Li); exit when Li = 0; end loop sekcja_krytyczna(i); G := 0;

Semafory. // G - globalna dla wszystkich. // Wada - aktywne oczekiwanie Test_and_Set(Li); exit when Li = 0; end loop sekcja_krytyczna(i); G := 0; Semafory Rozwiązanie problemu wzajemnego wykluczania Bez dodatkowego wsparcia sprzętowego i programowego Zakładamy jedynie, że zapis do i odczyt z pamięci wspólnej są operacjami atomowymi (czyli istnieje

Bardziej szczegółowo

Rozdział 5. Macierze. a 11 a a 1m a 21 a a 2m... a n1 a n2... a nm

Rozdział 5. Macierze. a 11 a a 1m a 21 a a 2m... a n1 a n2... a nm Rozdział 5 Macierze Funkcję, która każdej parze liczb naturalnych (i,j) (i = 1,,n;j = 1,,m) przyporządkowuje dokładnie jedną liczbę a ij F, gdzie F = R lub F = C, nazywamy macierzą (rzeczywistą, gdy F

Bardziej szczegółowo

SIMR 2016/2017, Analiza 2, wykład 1, Przestrzeń wektorowa

SIMR 2016/2017, Analiza 2, wykład 1, Przestrzeń wektorowa SIMR 06/07, Analiza, wykład, 07-0- Przestrzeń wektorowa Przestrzeń wektorowa (liniowa) - przestrzeń (zbiór) w której określone są działania (funkcje) dodawania elementów i mnożenia elementów przez liczbę

Bardziej szczegółowo

Paradygmaty programowania

Paradygmaty programowania Paradygmaty programowania Jacek Michałowski, Piotr Latanowicz 15 kwietnia 2014 Jacek Michałowski, Piotr Latanowicz () Paradygmaty programowania 15 kwietnia 2014 1 / 12 Zadanie 1 Zadanie 1 Rachunek predykatów

Bardziej szczegółowo

ZŁOŻONOŚĆ OBLICZENIOWA ALGORYTMÓW

ZŁOŻONOŚĆ OBLICZENIOWA ALGORYTMÓW ZŁOŻONOŚĆ OBLICZENIOWA ALGORYTMÓW RELACJE MIEDZY KLASAMI ZŁOŻONOŚCI Bartosz Zieliński Katedra Fizyki Teoretycznej i Informatyki Zima 2011-2012 KLASY ZŁOŻONOŚCI KLASE ZŁOŻONOŚCI OPISUJE SIE PODAJAC: Model

Bardziej szczegółowo

Wykład 5: Specyfikacja na poziomie systemowym

Wykład 5: Specyfikacja na poziomie systemowym Systemy wbudowane Wykład 5: Specyfikacja na poziomie systemowym Ogólny model systemu informatycznego Sieć komunikujących się procesów P1 P3 P2 Kiedy procesy się aktywują? Czy jest synchronizacja między

Bardziej szczegółowo

PoniŜej znajdują się pytania z egzaminów zawodowych teoretycznych. Jest to materiał poglądowy.

PoniŜej znajdują się pytania z egzaminów zawodowych teoretycznych. Jest to materiał poglądowy. PoniŜej znajdują się pytania z egzaminów zawodowych teoretycznych. Jest to materiał poglądowy. 1. Instrukcję case t of... w przedstawionym fragmencie programu moŝna zastąpić: var t : integer; write( Podaj

Bardziej szczegółowo

Mechanizmy pracy równoległej. Jarosław Kuchta

Mechanizmy pracy równoległej. Jarosław Kuchta Mechanizmy pracy równoległej Jarosław Kuchta Zagadnienia Algorytmy wzajemnego wykluczania algorytm Dekkera Mechanizmy niskopoziomowe przerwania mechanizmy ochrony pamięci instrukcje specjalne Mechanizmy

Bardziej szczegółowo

Plan wykładu. Przykład. Przykład 3/19/2011. Przykład zagadnienia transportowego. Optymalizacja w procesach biznesowych Wykład 2 DECYZJA?

Plan wykładu. Przykład. Przykład 3/19/2011. Przykład zagadnienia transportowego. Optymalizacja w procesach biznesowych Wykład 2 DECYZJA? /9/ Zagadnienie transportowe Optymalizacja w procesach biznesowych Wykład --9 Plan wykładu Przykład zagadnienia transportowego Sformułowanie problemu Własności zagadnienia transportowego Metoda potencjałów

Bardziej szczegółowo

Instrukcje cykliczne (pętle) WHILE...END WHILE

Instrukcje cykliczne (pętle) WHILE...END WHILE Instrukcje cykliczne (pętle) Pętle pozwalają na powtarzanie fragmentu kodu programu. PĘTLE LOGICZNE WHILE...END WHILE While (warunek)...... End While Pętla będzie się wykonywała dopóki warunek jest spełniony.

Bardziej szczegółowo

Definicje. Algorytm to:

Definicje. Algorytm to: Algorytmy Definicje Algorytm to: skończony ciąg operacji na obiektach, ze ściśle ustalonym porządkiem wykonania, dający możliwość realizacji zadania określonej klasy pewien ciąg czynności, który prowadzi

Bardziej szczegółowo

Kolorowanie wierzchołków grafu

Kolorowanie wierzchołków grafu Kolorowanie wierzchołków grafu Niech G będzie grafem prostym. Przez k-kolorowanie właściwe wierzchołków grafu G rozumiemy takie przyporządkowanie wierzchołkom grafu liczb naturalnych ze zbioru {1,...,

Bardziej szczegółowo

Komunikacja grupowa. Marek Libuda Jerzy Brzeziński Cezary Sobaniec

Komunikacja grupowa. Marek Libuda Jerzy Brzeziński Cezary Sobaniec Komunikacja grupowa Marek Libuda Jerzy Brzeziński Cezary Sobaniec Wykład omawia teoretyczne podstawy komunikacji grupowej gałęzi przetwarzania rozproszonego zajmującej się systemami, w których osłabia

Bardziej szczegółowo

FAQ: 00000041/PL Data: 09/06/2012. Zastosowanie zmiennych Raw Data Type WinCC v7.0

FAQ: 00000041/PL Data: 09/06/2012. Zastosowanie zmiennych Raw Data Type WinCC v7.0 Zmienne typu Raw Data są typem danych surowych nieprzetworzonych. Ten typ danych daje użytkownikowi możliwość przesyłania do oraz z WinCC dużych ilości danych odpowiednio 208 bajtów dla sterowników serii

Bardziej szczegółowo

Podstawy programowania

Podstawy programowania Podstawy programowania Część ósma Tablice znaków i przetwarzanie napisów Autor Roman Simiński Kontakt siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera skrót treści wykładu, lektura

Bardziej szczegółowo