Czas wirtualny, złożoność algorytmów
|
|
- Marian Janiszewski
- 8 lat temu
- Przeglądó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 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ółowoCzas 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ółowoCzas 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ółowoProblem 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ółowoMechanizmy 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ółowoTreść 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ółowoDetekcja 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ółowoKonstrukcja 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ółowoprocesó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ółowoPROJEKT 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ółowoKonstrukcja 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ółowoKonstrukcja 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ółowoKonstrukcja 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ółowoProces 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ółowoPrzetwarzanie 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ółowoProces 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ółowoProblem 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ółowoSortowanie 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ółowoProblem 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ółowoStan 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ółowoPrzetwarzanie 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ółowoPrzetwarzanie 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ółowoProblem 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ółowoKonstrukcja 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ółowoAlgorytmy 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ółowoWzajemne 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ółowoMechanizmy 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ółowoAlgorytmy 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ółowoAlgorytmy 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ółowoCzas 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ółowoAlgorytmy 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ółowoProjektowanie 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ółowo5. 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ółowoProgramowanie 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ółowoWykł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ółowoWstę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ółowoPodstawy 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ółowoKodowanie 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ółowoPodstawowe 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ółowo1 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ółowoWprowadzenie 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ółowow 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ółowoZadanie 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ółowoRó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ółowoAlgorytmy 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ółowoKlient-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ółowoMatematyczne 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ółowoSpecyfikacje 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ółowoWstę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ółowoprowadzą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ółowoPrzeszukiwanie 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ółowoPodstawy 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ółowoAlgorytmy 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ółowoWprowadzenie 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ółowoDetekcja 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ółowoAlgorytmy 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ółowoLaboratorium 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ółowoProgramowanie 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ółowo2. 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ółowo1. 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ółowoWstę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ółowoAlgorytmy 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ółowoTeoria 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ółowoGrafem 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ółowoZegary 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ółowoWykł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ółowoProgramowanie 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ółowoAlgorytmy 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ółowoWykł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ółowoCzęść 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ółowoZa 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ółowoWstę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ółowoAlgorytmy 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ółowoMacierze. 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ółowoProgramowanie 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ółowoSEGMENT 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ółowoTeoria 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ółowoSynchronizacja 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ółowoInformatyka 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ółowoJę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ółowoWstę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ółowoPodstawy 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ółowoTEORETYCZNE 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ółowoPodstawy 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ółowoSemafory. // 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ółowoRozdział 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ółowoSIMR 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ółowoParadygmaty 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ółowoZŁ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ółowoWykł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ółowoPoniŜ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ółowoMechanizmy 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ółowoPlan 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ółowoInstrukcje 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ółowoDefinicje. 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ółowoKolorowanie 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ółowoKomunikacja 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ółowoFAQ: 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ółowoPodstawy 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