Detekcja zakleszczenia (1)

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

Download "Detekcja zakleszczenia (1)"

Transkrypt

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 dla modelu OR Detekcja zakleszczenia dla modelu AND Detekcja zakleszczenia w środowisku synchronicznym dla modelu k spośród r Detekcja zakleszczenia 1 (2) Wprowadzenie Nieformalna definicja problemu Procesy tworzące przetwarzanie rozproszone komunikują się ze sobą za pomocą mechanizmu wymiany wiadomości, realizując wspólny cel przetwarzania. Jedne procesy wysyłają komunikaty zawierające żądania przydziału pewnych zasobów, inne w odpowiedzi przesyłają ewentualnie komunikaty potwierdzające przydział żądanych zasobów. W przetwarzaniu rozproszonym może w ogólności wystąpić sytuacja, w której wszystkie procesy pewnego niepustego zbioru procesów oczekują na wiadomości (potwierdzające na przykład przydział zasobów) od innych procesów tego właśnie zbioru. Stan taki nazywany jest zakleszczeniem rozproszonym (ang. distributed deadlock). Detekcja zakleszczenia 1 (3) Detekcja zakleszczenia 1 (4)

2 Procesy aktywne i pasywne Warunek uaktywnienia W każdej chwili proces może być w jednym z dwóch stanów: aktywnym albo pasywnym. Proces aktywny może realizować przetwarzanie wykonując operacje odpowiadające zajściu zdarzeń wewnętrznych i komunikacyjnych. Warunek uaktywnienia jest wyrażony przez predykat: ready i (X ) (P ia X) activate i (X ) (5.1) Detekcja zakleszczenia 1 (5) Detekcja zakleszczenia 1 (6) Definicja problemu Zakleszczenie w modelu jednostkowym Przez deadlock(b) oznaczamy predykat stwierdzający, że w danej chwili τ, niepusty zbiór procesów B jest zbiorem procesów zakleszczonych. deadlock(b) (5.2) ( P i :: P i B:: ( passive i D i = 1 ( P j :: P j D i B:: ( in-transit i [j] available i [j] )))) Detekcja zakleszczenia 1 (7) Detekcja zakleszczenia 1 (8)

3 Zakleszczenie w modelu AND Zakleszczenie w modelu OR deadlock(b) (5.3) ( P i :: P i B:: ( passive i ( P j :: P j D i B:: ( in-transit i [j] available i [j] )))) deadlock(b) (5.4) ( P i :: P i B:: ( passive i D i B ( P j :: P j D i :: ( in-transit i [j] available i [j] )))) Detekcja zakleszczenia 1 (9) Detekcja zakleszczenia 1 (10) Zakleszczenie w podstawowym modelu k spośród r Zakleszczenie w modelu OR AND deadlock(b) (5.5) ( P i :: P i B:: ( passive i ( B i ::B i D i B:: ( D i \B i < k i ( P j :: P j B i :: ( in-transit i [j] available i [j] )))))) deadlock(b) (5.6) ( P i :: P i B:: ( passive i ( u :: 1 u q i :: ( P j :: P j D iu B:: ( in-transit i [j] available i [j] ))))) Detekcja zakleszczenia 1 (11) Detekcja zakleszczenia 1 (12)

4 Zakleszczenie w modelu dysjunkcyjnym k spośród r Zakleszczenie w modelu predykatowym deadlock(b) (5.7) ( P i :: P i B:: ( passive i ( u :: 1 u q i :: ( B iu ::B iu D iu B:: ( D iu \B iu < k iu ( P j :: P j B iu :: ( in-transit i [j] available i [j] ))))))) deadlock(b) (5.8) ( P i :: P i B:: ( passive i activate i (AV i IT i (P \B)))) Detekcja zakleszczenia 1 (13) Detekcja zakleszczenia 1 (14) Przykłady zakleszczeń Przykład model jednostkowy Wait-For Graph (WFG): N 5 N 1 N 2 N 4 N 3 P i N 1, N 2, N 3, N 4, N 5 węzły środowiska przetwarzania P 1, P 2, P 3, P 4, P 5 procesy wykonywane w odpowiednich węzłach P j łuk P i, P j reprezentujący fakt, że proces P i, oczekuje na wiadomość od procesu P j Każdy proces w grafie z łukiem wychodzącym jest pasywny. Procesy bez łuków wychodzących są aktywne. Zakładamy, że wszystkie kanały są puste. P 5 P 1 P 2 D 21 deadlock(b) zachodzi dlab= {P 1, P 2, P 3, P 4 } B D 3 P 4 P 3 D 4 Zbiory warunkujące: D 1 = {P 4 }, D 2 = {P 4 }, D 3 = {P 2 }, D 4 = {P 3 }. Detekcja zakleszczenia 1 (15) Detekcja zakleszczenia 1 (16)

5 Przykład model AND Przykład model OR P 5 D 1 P 1 P 2 D 2 deadlock(b) zachodzi dlab= {P 1, P 2, P 3, P 4 } B D 3 P 4 P 3 D 4 Zbiory warunkujące: D 1 = {P 4, P 5 }, D 2 = {P 1, P 4 }, D 3 = {P 2 }, D 4 = {P 3 }. P 5 D 1 P 1 P 2 D 2 deadlock(b) zachodzi dlab= {P 2, P 3, P 4 } B D 3 P 4 P 3 D 4 Zbiory warunkujące: D 1 = {P 4, P 5 }, D 2 = {P 4 }, D 3 = {P 2 }, D 4 = {P 2, P 3 }. Detekcja zakleszczenia 1 (17) Detekcja zakleszczenia 1 (18) P 5 Przykład model k spośród r P 1 P 2 Modeleżądań: dla P 1 : 1 spośród 3 dla P 2 : 1 spośród 1 dla P 3 : 2 spośród 2 dla P 4 : 2 spośród 3 P Zbiory warunkujące: 4 P 3 D 4 D 1 = {P 2, P 4, P 5 }, D 31 B D2 D 2 = {P 3 }, D 3 = {P 2, P 4 }, D 4 = {P 1, P 2, P 3 }. deadlock(b) zachodzi dlab= {P 2, P 3, P 4 } Klasyfikacja problemów detekcji zakleszczenia problem detekcji wystąpienia zakleszczenia problem detekcji zakleszczenia procesu problem detekcji zakleszczenia zbioru procesów problem detekcji maksymalnego zbioru procesów zakleszczonych Detekcja zakleszczenia 1 (19) Detekcja zakleszczenia 1 (20)

6 Detekcja wystąpienia zakleszczenia Detekcja wystąpienia zakleszczenia procesu Czy istnieje w pewnej chwili zbiór B, dla którego predykat deadlock(b) jest prawdziwy? Detekcja zakleszczenia procesu P i sprowadza się do sprawdzenia czy prawdziwy jest predykat: Odpowiedź na to pytanie określa wartość predykatu: dp i ( B :: deadlock(b) ) P i B) (5.10) de ( B :: deadlock(b)) (5.9) Detekcja zakleszczenia 1 (21) Detekcja zakleszczenia 1 (22) Detekcja wystąpienia zakleszczenia zbioru procesów Detekcja maksymalnego zbioru zakleszczonego Detekcja zakleszczenia zbioru procesów polega na znalezienia zbiorub*, dla którego prawdziwy jest następujący predykat: deadlock(b*) ((B* = Ø) ( B :: deadlock(b))) (5.11) Detekcja maksymalnego zbioru zakleszczonego, sprowadza się do znalezienia takiego zbioru B*, dla którego spełniony jest warunek: (deadlock(b*) B* = Ø) (maxdead(b*)), (5.12) gdzie maxdead(b*) ( B :: deadlock(b) (B B*)) (5.13) Detekcja zakleszczenia 1 (23) Detekcja zakleszczenia 1 (24)

7 Model aplikacyjnego przetwarzania rozproszonego Alg. Chandy, Misra, Hass dla modelu AND (1) D i P i RELEASE REQUEST GRANT CANCEL type PROBE extends FRAME is record of initindex : INTEGER end record probeout : PROBE granted i : array [1..n] of BOOLEAN := False D i : set of PROCESS_ID recvprobe i : array [1..n] of BOOLEAN := False α i : INTEGER k : INTEGER deadlockdetected i : BOOLEAN := False Detekcja zakleszczenia 1 (25) Detekcja zakleszczenia 1 (26) Alg. Chandy, Misra, Hass dla modelu AND (2) Alg. Chandy, Misra, Hass dla modelu AND (3) 1. when e_start(q α, DeadlockDetection) do 2. if passive α 3. then 4. for all Q k :: P k D α do 5. probeout.initindex := α 6. send(q α, Q k, probeout) 7. end for 8. end if 9. end when 10. when e_activate(p i ) do 11. for all k {1, 2,..., n} do 12. recvprobe i [k]:= False 13. end for 14. end when Detekcja zakleszczenia 1 (27) Detekcja zakleszczenia 1 (28)

8 Alg. Chandy, Misra, Hass dla modelu AND (4) Detekcja zakleszczenia dla modelu OR (1) 15. when e_receive(q j, Q i, probein: PROBE) do 16. α i := probein.initindex 17. if passive i ( recvprobe i [α i ]) ( granted i [j]) 18. then 19. recvprobe i [α i ]:= True 20. if α i = i 21. then 22. deadlockdetected i := True 23. decide(deadlockdetected i ) 24. else Algorytm detekcji zakleszczenia dla modelu OR opiera się na przetwarzaniu dyfuzyjnym (ang. query computation). 25. probeout.initindex:=α i 26. for all Q k :: P k D i do 27. send(q i, Q k, probeout) 28. end for 29. end if 30. end if 31. end when Detekcja zakleszczenia 1 (29) Detekcja zakleszczenia 1 (30) Detekcja zakleszczenia dla modelu OR (2) Detekcja zakleszczenia dla modelu OR (3) Twierdzenie 5.2 Jeżeli inicjator Q α rozpoczyna detekcję w chwili, gdy jego proces aplikacyjny P α jest zakleszczony, to Q α stwierdzi zakleszczenie procesu P α w skończonym czasie (algorytm detekcji zakończy się). Twierdzenie 5.2 Jeżeli inicjator Q α deklaruje, że jego proces aplikacyjny P α jest zakleszczony, to P α należy do pewnego zbioru procesów zakleszczonych w chwili zakończenia algorytmu. Detekcja zakleszczenia 1 (31) Detekcja zakleszczenia 1 (32)

9 Alg. Chandy, Misra, Hass dla modelu OR (1) Alg. Chandy, Misra, Hass dla modelu OR (2) type CONTROL extends FRAME is record of initindex : INTEGER queryno : INTEGER end record type QUERY extends CONTROL type REPLY extends CONTROL queryout : QUERY replyout : REPLY D i : set of PROCESS_ID maxqueryno i : array [1..n] of INTEGER := 0 engager i : array [1..n] of INTEGER := 0 QRBalance i : array [1..n] of INTEGER := 0 contpassive i : array [1..n] of BOOLEAN := False queryno i : INTEGER α i : INTEGER deadlockdetected i : BOOLEAN := False Detekcja zakleszczenia 1 (33) Detekcja zakleszczenia 1 (34) Alg. Chandy, Misra, Hass dla modelu OR (3) Alg. Chandy, Misra, Hass dla modelu OR (4) 1. when e_start(q α, DeadlockDetection) do 2. if passive α 3. then 4. maxqueryno α [α] := maxqueryno α [α] contpassive α [α] := True 6. queryout.queryno := maxqueryno α [α] 7. queryout.initindex := α 8. for all Q k :: P k D α do 9. send(q α, Q k, queryout) 10. end for 11. QRBalance α [α] := D α 12. end if 13. end when 14. when e_receive(q j, Q i, queryin : QUERY) do 15. if passive i 16. then 17. queryno i := queryin.queryno 18. α i := queryin.initindex 19. if queryno i > maxqueryno i [α i ] 20. then 21. maxqueryno i [α i ] := queryno i 22. engager i [α i ] := j 23. contpassive i [α i ] := True 24. queryout.queryno := queryno i 25. queryout.initindex := α i 26. for all Q k :: P k D i do 27. send(q i, Q k, queryout) 28. end for 29. QRBalance i [α i ] := D i Detekcja zakleszczenia 1 (35) Detekcja zakleszczenia 1 (36)

10 Alg. Chandy, Misra, Hass dla modelu OR (5) Alg. Chandy, Misra, Hass dla modelu OR (6) 30. else 31. if contpassive i [α i ] queryno i = maxqueryno i [α i ] 32. then 33. replyout.queryno := queryno i 34. replyout.initindex := α i 35. send(q i, Q j, replyout) 36. end if 37. end if 38. end if 39. end when 40. when e_receive(q j, Q i, replyin : REPLY) do 41. if passive i 42. then 43. queryno i := queryin.queryno 44. α i := queryin.initindex 45. if maxqueryno i [α i ]=queryno i contpassive i [α i ] 46. then 47. QRBalance i [α i ]:= QRBalance i [α i ] if QRBalance i [α i ] = then 50. if α i =i 51. then 52. deadlockdetected i := True 53. decide(deadlockdetected i ) Detekcja zakleszczenia 1 (37) Detekcja zakleszczenia 1 (38) Alg. Chandy, Misra, Hass dla modelu OR (7) Alg. Chandy, Misra, Hass dla modelu OR (8) 54. else 55. k:= engager i [α i ] 56. replyout.queryno:= queryno i 57. replyout.initindex:= α i 58. send(q i, Q k, replyout) 59. end if 60. end if 61. end if 62. end if 63. end when 64. when e_activate(p i ) do 65. for all k {1, 2,..., n} do 66. contpassive i [k] := False 67. end for 68. end when Detekcja zakleszczenia 1 (39) Detekcja zakleszczenia 1 (40)

11 Alg. Bracha, Toueg a (1) Alg. Bracha, Toueg a (2) type NOTIFY extends SIGNAL type DONE extends SIGNAL type CONFIRM extends SIGNAL type ACK extends SIGNAL notifyout doneout, donein confirmout ackout, ackin A : NOTIFY : DONE : CONFIRM : ACK : set of record of predid : PROCESS_ID succid : PROCESS_ID end record := { P i,p j : P j D i } OUT i : set of PROCESS_ID := {P j : P i,p j A} JN i : set of PROCESS_ID := {P j : P i,p j A} confirmno i : INTEGER := 0 notified i : BOOLEAN := False confirmed i : BOOLEAN := False expectno i : INTEGER deadlockdetected i : BOOLEAN := False Detekcja zakleszczenia 1 (41) Detekcja zakleszczenia 1 (42) Alg. Bracha, Toueg a (3) Alg. Bracha, Toueg a (4) 1. procedure NOTIFYPROC() do 2. notified i := True 3. for all Q k OUT i do 4. send( Q i, Q k, notifyout) 5. end for 6. if expectno i = 0 7. then 8. CONFIRMPROC() 9. end if 10. for all Q k OUT i do 11. receive(q k, Q i, donein) 12. end for 13. end procedure 14. procedure CONFIRMPROC() do 15. confirmed i := True 16. for all Q k IN i do 17. send(q i, Q k, confirmout) 18. end for 19. for all Q k IN i do 20. receive(q k, Q i, ackin) 21. end for 22. end procedure Detekcja zakleszczenia 1 (43) Detekcja zakleszczenia 1 (44)

12 Alg. Bracha, Toueg a (5) Alg. Bracha, Toueg a (6) 23. when e_start(q α, DeadlockDetection) do 24. NOTIFYPROC() 25. if confirmno α < expectno α 26. then 27. deadlockdetected α := True 28. decide(deadlockdetected α ) 29. end if 30. end when 31. when e_receive(q j, Q i, confirmin: CONFIRM) do 32. confirmno i := confirmno i if confirmed i (confirmno i expectno i ) 34. then 35. CONFIRMPROC() 36. end if 37. send(q i, Q j, ackout) 38. end when Detekcja zakleszczenia 1 (45) Detekcja zakleszczenia 1 (46) Alg. Bracha, Toueg a (7) Przykład działania algorytmu (1) wiadomość typu NOTIFY wiadomość typu DONE 39. when e_receive(q j, Q i, notifyin: NOTIFY) do 40. if notified i 41. then 42. NOTIFYPROC() 43. end if 44. send(q i,q j,doneout) 45. end when,1,0 P 4 2,0 1,0 2,0 1,0 P 3,1,0 1,0 2,0,0,3 2,0 1,0,2,0 P 1 - inicjator P 2 Detekcja zakleszczenia 1 (47) Detekcja zakleszczenia 1 (48)

13 P 4 2,2 1,1 Przykład działania algorytmu (2) 0,3,0,0 0,2,0 wiadomość typu NOTIFY wiadomość typu DONE wiadomość typu CONFIRM wiadomość typu ACK Złożoność czasowa algorytmu detekcji zakleszczenia w środowisku synchronicznym dla modelu k spośród r (1) Graf niezorientowany odpowiadający grafowi WFG scharakteryzowany jest przez: średnicę grafu d, najdłuższą ścieżkę w grafie l. 3,0,2,0 1, 2, 3,0,3 1,2 1,0 2,2 2,2 1,0 1,1 2,1 P 3 1,2,1,0 1, 1,0,1 1,1,1 2,1,2,0 1, 2,0,2 2,2 1,0 2,1 P 1 - inicjator P 2 Złożoność całego algorytmu to: złożoność fazy potwierdzania złożoność powiadomienia inicjatora fazy potwierdzania, złożoność odpowiadającą przesłaniu wiadomości typu DONE od inicjatora fazy potwierdzania do inicjatora detekcji. Detekcja zakleszczenia 1 (49) Detekcja zakleszczenia 1 (50) Złożoność czasowa algorytmu detekcji zakleszczenia w środowisku synchronicznym dla modelu k spośród r (2) przesłanie wiadomości typu CONFIRM może zabrać l jednostek czasu transmisja wiadomości typu ACK również zabiera w najgorszym wypadku l jednostek czasu przesłanie wiadomości typu NOTIFY (równolegle do monitorów wszystkich procesów tworzących zbiór OUT i ) wymaga co najwyżej d kroków. przesłanie wiadomości typu DONE po zakończeniu fazy potwierdzania wymaga co najwyżej d kroków. W efekcie złożoność czasowa algorytmu wynosi 2d + 2l. Detekcja zakleszczenia 1 (51)

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

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

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

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

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

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

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

Czas wirtualny, złożoność algorytmów 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

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

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

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

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

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

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

Porządek dostępu do zasobu: procesory obszary pamięci cykle procesora pliki urządzenia we/wy

Porządek dostępu do zasobu: procesory obszary pamięci cykle procesora pliki urządzenia we/wy ZAKLESZCZENIA w SO brak środków zapobiegania zakleszczeniom Zamówienia na zasoby => przydział dowolnego egzemplarza danego typu Zasoby w systemie typy; identyczne egzemplarze procesory obszary pamięci

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

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

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

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

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

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 zakleszczenia

Problem zakleszczenia Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak Plan wykładu Klasyfikacja zasobów systemu na potrzeby analizy problemu zakleszczenia Warunki konieczne wystąpienia zakleszczenia Graf przydziału zasobów

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

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

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

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

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

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

POTRZEBY A B C D E P P P P P

POTRZEBY A B C D E P P P P P 1. (2p.) Narysuj przykładowy graf przydziału (jednokrotnych) zasobów (bez zakleszczenia) i sprawdź, jakie przykładowe żądania przydzielenia zasobów spowodują powstanie zakleszczenia, a jakie nie. W przypadku

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

Losowość w rozproszonym modelu

Losowość w rozproszonym modelu Losowość w rozproszonym modelu Model: ALP520 - Wykład z Algorytmów Probabilistycznych p.2 Losowość w rozproszonym modelu Model: zbiór procesorów, które moga pracować jednocześnie, połaczonych w sieć ALP520

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

J. Ułasiewicz Programowanie aplikacji współbieżnych 1

J. Ułasiewicz Programowanie aplikacji współbieżnych 1 J. Ułasiewicz Programowanie aplikacji współbieżnych 1 1 1.1 Prosty przykład zakleszczenia (ang. Mexican standoff) W systemach w których wykonywane jest wiele współbieżnych procesów które operują na wspólnych

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

Sztuczna Inteligencja i Systemy Doradcze

Sztuczna Inteligencja i Systemy Doradcze Sztuczna Inteligencja i Systemy Doradcze Przeszukiwanie przestrzeni stanów algorytmy ślepe Przeszukiwanie przestrzeni stanów algorytmy ślepe 1 Strategie slepe Strategie ślepe korzystają z informacji dostępnej

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

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

Mechanizmy komunikacji. spotkania symetryczne (język CSP) spotkania asymetryczne (Ada) przestrzenie krotek (Linda) potoki, komunikaty i kanały (Unix)

Mechanizmy komunikacji. spotkania symetryczne (język CSP) spotkania asymetryczne (Ada) przestrzenie krotek (Linda) potoki, komunikaty i kanały (Unix) Mechanizmy komunikacji spotkania symetryczne (język CSP) spotkania asymetryczne (Ada) przestrzenie krotek (Linda) potoki, komunikaty i kanały (Unix) Język CSP Hoare (1978r.) Communicating Sequential Processes

Bardziej szczegółowo

Algorytmy i Struktury Danych.

Algorytmy i Struktury Danych. Algorytmy i Struktury Danych. Grafy dr hab. Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 9 Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury Danych. Wykład 9 1 / 20

Bardziej szczegółowo

Zakleszczenie. Problem i przeciwdziałanie. Systemy operacyjne Wykład 8 1

Zakleszczenie. Problem i przeciwdziałanie. Systemy operacyjne Wykład 8 1 Zakleszczenie Problem i przeciwdziałanie Systemy operacyne Wykład 8 1 Klasyfikaca zasobów systemu na potrzeby analizy problemu zakleszczenia Warunki konieczne wystąpienia zakleszczenia Graf przydziału

Bardziej szczegółowo

Wstęp do programowania 2

Wstęp do programowania 2 Wstęp do programowania 2 wykład 1 rekordy z wyróżnikami Agata Półrola Wydział Matematyki UŁ 2005/2006 Egzamin z I roku - problemy Problemy z wczytywaniem danych: skip_line Problemy z obliczeniami: zerowanie

Bardziej szczegółowo

Podstawowe własności grafów. Wykład 3. Własności grafów

Podstawowe własności grafów. Wykład 3. Własności grafów Wykład 3. Własności grafów 1 / 87 Suma grafów Niech będą dane grafy proste G 1 = (V 1, E 1) oraz G 2 = (V 2, E 2). 2 / 87 Suma grafów Niech będą dane grafy proste G 1 = (V 1, E 1) oraz G 2 = (V 2, E 2).

Bardziej szczegółowo

Algorytmy zarządzania współbieżnym wykonywaniem transakcji część I

Algorytmy zarządzania współbieżnym wykonywaniem transakcji część I Algorytmy zarządzania współbieżnym wykonywaniem transakcji część I Wykład przygotował: Tadeusz Morzy BD wykład 9 Celem wykładu jest przedstawienie i omówienie podstawowych algorytmów zarządzania współbieżnym

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

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

Rozproszone systemy operacyjne

Rozproszone systemy operacyjne Rozproszone systemy operacyjne Anna Kobusińska Anna.Kobusinska@cs.put.poznan.pl www.cs.put.poznan.pl/akobusinska Literatura 1. J. Bacon, Concurrent Systems-An Integrated Approach to Operating Systems,

Bardziej szczegółowo

PODSTAWY BAZ DANYCH 13. PL/SQL

PODSTAWY BAZ DANYCH 13. PL/SQL PODSTAWY BAZ DANYCH 13. PL/SQL 1 Wprowadzenie do języka PL/SQL Język PL/SQL - rozszerzenie SQL o elementy programowania proceduralnego. Możliwość wykorzystywania: zmiennych i stałych, instrukcji sterujących

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

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

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

Algorytmy i struktury danych. Drzewa: BST, kopce. Letnie Warsztaty Matematyczno-Informatyczne

Algorytmy i struktury danych. Drzewa: BST, kopce. Letnie Warsztaty Matematyczno-Informatyczne Algorytmy i struktury danych Drzewa: BST, kopce Letnie Warsztaty Matematyczno-Informatyczne Drzewa: BST, kopce Definicja drzewa Drzewo (ang. tree) to nieskierowany, acykliczny, spójny graf. Drzewo może

Bardziej szczegółowo

Algorytm Lamporta. Czy można to ulepszyć?

Algorytm Lamporta. Czy można to ulepszyć? Algorytm Maekawa Plan Przypomnienie - algorytm Lamporta Idea algorytmu Generowanie zbiorów arbitrażu Zakleszczenia Przykład Analiza założeń Przypadki pesymistyczne Podsumowanie Algorytm Lamporta Rozwiązuje

Bardziej szczegółowo

Monitory. Wady semafora

Monitory. Wady semafora Wady semafora Monitory Niestrukturalny mechanizm synchronizacji Nie ułatwia wykrywania błędów synchronizacyjnych w czasie kompilacji programu Idea Jądro systemu operacyjnego jako monolityczny monitor -

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

synchronizacji procesów

synchronizacji procesów Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak Plan wykładu Definicja semafora Klasyfikacja semaforów Implementacja semaforów Zamki Zmienne warunkowe Klasyczne problemy synchronizacji (2) Semafory

Bardziej szczegółowo

Delphi 7 + Indy 10 Przykłady prostych aplikacji sieciowych

Delphi 7 + Indy 10 Przykłady prostych aplikacji sieciowych Jacek Matulewski, Sławek Orłowski http://www.phys.uni.torun.pl/~jacek/ Delphi 7 + Indy 10 Przykłady prostych aplikacji sieciowych Wersja α Ćwiczenia Toruń, 20 grudnia 2005 Najnowsza wersja tego dokumentu

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

Wykład 15. Literatura. Kompilatory. Elementarne różnice. Preprocesor. Słowa kluczowe

Wykład 15. Literatura. Kompilatory. Elementarne różnice. Preprocesor. Słowa kluczowe Wykład 15 Wprowadzenie do języka na bazie a Literatura Podobieństwa i różnice Literatura B.W.Kernighan, D.M.Ritchie Język ANSI Kompilatory Elementarne różnice Turbo Delphi FP Kylix GNU (gcc) GNU ++ (g++)

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

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

Programowanie współbieżne Wykład 5. Rafał Skinderowicz

Programowanie współbieżne Wykład 5. Rafał Skinderowicz Programowanie współbieżne Wykład 5 Rafał Skinderowicz Monitory motywacje Mechanizmy synchronizacji takie jak blokady (zamki) semafory pozwalają efektywnie rozwiązywać dostępu do współdzielonych zasobów,

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

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

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

Wstęp do programowania. Drzewa podstawowe techniki. Piotr Chrząstowski-Wachtel Wstęp do programowania Drzewa podstawowe techniki Piotr Chrząstowski-Wachtel Drzewa wyszukiwań Drzewa często służą do przechowywania informacji. Jeśli uda sie nam stworzyć drzewo o niewielkiej wysokości

Bardziej szczegółowo

Cheatsheet PL/SQL Andrzej Klusiewicz 1/9

Cheatsheet PL/SQL Andrzej Klusiewicz  1/9 Declare y integer; z varchar2(50); d date; null; Declare x integer:=10; null; x integer; x:=10; dbms_output.put_line('hello world'); for x in 1..10 loop Deklaracja 4 zmiennych. Jednej typu rzeczywistego,

Bardziej szczegółowo

Wykład 5. Synchronizacja (część II) Wojciech Kwedlo, Wykład z Systemów Operacyjnych -1- Wydział Informatyki PB

Wykład 5. Synchronizacja (część II) Wojciech Kwedlo, Wykład z Systemów Operacyjnych -1- Wydział Informatyki PB Wykład 5 Synchronizacja (część II) Wojciech Kwedlo, Wykład z Systemów Operacyjnych -1- Wydział Informatyki PB Wady semaforów Jeden z pierwszych mechanizmów synchronizacji Generalnie jest to mechanizm bardzo

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

Semafor nie jest mechanizmem strukturalnym. Aplikacje pisane z użyciem semaforów są podatne na błędy. Np. brak operacji sem_post blokuje aplikację.

Semafor nie jest mechanizmem strukturalnym. Aplikacje pisane z użyciem semaforów są podatne na błędy. Np. brak operacji sem_post blokuje aplikację. J. Ułasiewicz Programowanie aplikacji współbieżnych 1 11 11.1 abstrakcyjne Semafor nie jest mechanizmem strukturalnym. Aplikacje pisane z użyciem semaforów są podatne na błędy. Np. brak operacji sem_post

Bardziej szczegółowo

Semafory. - aktywne oczekiwanie =GRGDWNRZ\PZVSDUFLHPVSU]WRZ\P 6SHFMDOQDLQVWUXNFMDPDV]\QRZDUHDOL]XMFDDWRPRZ\]DSLVL odczyt, np.

Semafory. - aktywne oczekiwanie =GRGDWNRZ\PZVSDUFLHPVSU]WRZ\P 6SHFMDOQDLQVWUXNFMDPDV]\QRZDUHDOL]XMFDDWRPRZ\]DSLVL odczyt, np. Semafory 5R]ZL]DQLHSUREOHPXZ]DMHPQHJRZ\NOXF]DQLD %H]GRGDWNRZHJRZVSDUFLDVSU]WRZHJRLSURJUDPRZHJR =DNáDGDP\MHG\QLH*H]DSLVGRLRGF]\W]SDPLFLZVSyOQHMV RSHUDFMDPLDWRPRZ\PLF]\OLLVWQLHMHDUELWHUZVSyOQHMSDPLFL :UD]LHMHGQRF]HVQHJR]DSLVXLRGF]\WXUH]XOWDWHPEG]LH

Bardziej szczegółowo

Algorytmy i struktury danych

Algorytmy i struktury danych Algorytmy i struktury danych Drzewa Witold Marańda maranda@dmcs.p.lodz.pl Drzewa - podstawy Drzewo jest dynamiczną strukturą danych składającą się z elementu węzłowego, zawierającego wskazania na skończoną

Bardziej szczegółowo

Zarządzanie bazą danych. Bazy Danych i Systemy informacyjne Wykład 4. Piotr Syga

Zarządzanie bazą danych. Bazy Danych i Systemy informacyjne Wykład 4. Piotr Syga Bazy Danych i Systemy informacyjne Wykład 4 Piotr Syga 26.10.2018 Procedury review Przypomnienie składni procedur Tworzenie DELIMITER $$ CREATE PROCEDURE zliczacz (OUT wynik INT) BEGIN operacje... END

Bardziej szczegółowo

Synchronizacja procesów i wątków

Synchronizacja procesów i wątków SOE Systemy Operacyjne Wykład 12 Synchronizacja procesów i wątków dr inŝ. Andrzej Wielgus Instytut Mikroelektroniki i Optoelektroniki WEiTI PW Problem sekcji krytycznej Podstawowy problem synchronizacji

Bardziej szczegółowo

Informatyka 1. Wyrażenia i instrukcje, złożoność obliczeniowa

Informatyka 1. Wyrażenia i instrukcje, złożoność obliczeniowa Informatyka 1 Wykład III Wyrażenia i instrukcje, złożoność obliczeniowa Robert Muszyński ZPCiR ICT PWr Zagadnienia: składnia wyrażeń, drzewa rozbioru gramatycznego i wyliczenia wartości wyrażeń, operatory

Bardziej szczegółowo

UNIKANIE IMPASÓW W SYSTEMACH PROCESÓW WSPÓŁBIEŻNYCH

UNIKANIE IMPASÓW W SYSTEMACH PROCESÓW WSPÓŁBIEŻNYCH UNIKANIE IMPASÓW W SYSTEMACH PROCESÓW WSPÓŁBIEŻNYCH Robert Wójcik Instytut Cybernetyki Technicznej Politechniki Wrocławskiej 1. Impasy w systemach procesów współbieżnych 2. Klasyczne algorytmy unikania

Bardziej szczegółowo

Procesy stochastyczne

Procesy stochastyczne Wykład IV: dla łańcuchów Markowa 14 marca 2017 Wykład IV: Klasyfikacja stanów Kiedy rozkład stacjonarny jest jedyny? Przykład Macierz jednostkowa I wymiaru #E jest macierzą stochastyczną. Dla tej macierzy

Bardziej szczegółowo

J. Ułasiewicz Programowanie aplikacji współbieżnych 1

J. Ułasiewicz Programowanie aplikacji współbieżnych 1 J. Ułasiewicz Programowanie aplikacji współbieżnych 1 1 1.1 Prosty przykład zakleszczenia (ang. Mexican standoff) W systemach w których wykonywane jest wiele współbieżnych procesów które operują na wspólnych

Bardziej szczegółowo

Krzysztof Jakubczyk. Zadanie 2

Krzysztof Jakubczyk. Zadanie 2 Zadanie 2 Krzysztof Jakubczyk Moje rozwiązanie nie znajduje strategii pozycyjnej w znaczeniu zdefiniowanym na wykładzie (niezaleŝnie od pozycji startowej), gdyŝ takowa nie istnieje. Przykład: 1 1 0 Środkowa

Bardziej szczegółowo

Systemy operacyjne. wykład 11- Zakleszczenia. dr Marcin Ziółkowski. Instytut Matematyki i Informatyki Akademia im. Jana Długosza w Częstochowie

Systemy operacyjne. wykład 11- Zakleszczenia. dr Marcin Ziółkowski. Instytut Matematyki i Informatyki Akademia im. Jana Długosza w Częstochowie Systemy operacyjne wykład 11- Zakleszczenia dr Marcin Ziółkowski Instytut Matematyki i Informatyki Akademia im. Jana Długosza w Częstochowie 17grudnia2015r. POJĘCIE ZAKLESZCZENIA Zakleszczenie to zbiór

Bardziej szczegółowo

INSTRUKCJA PUSTA. Nie składa się z żadnych znaków i symboli, niczego nie robi. for i := 1 to 10 do {tu nic nie ma};

INSTRUKCJA PUSTA. Nie składa się z żadnych znaków i symboli, niczego nie robi. for i := 1 to 10 do {tu nic nie ma}; INSTRUKCJA PUSTA Nie składa się z żadnych znaków i symboli, niczego nie robi Przykłady: for i := 1 to 10 do {tu nic nie ma}; while a>0 do {tu nic nie ma}; if a = 0 then {tu nic nie ma}; INSTRUKCJA CASE

Bardziej szczegółowo

Problem zakleszczenia. Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak

Problem zakleszczenia. Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak Wzmianka o zakleszczeniu (ang. deadlock, inne tłumaczenia: blokada, impas, zastój) pojawiła się przy okazji synchronizacji procesów. W tym module, zjawisko

Bardziej szczegółowo

synchronizacji procesów

synchronizacji procesów Dariusz Wawrzyniak Definicja semafora Klasyfikacja semaforów Implementacja semaforów Zamki Zmienne warunkowe Klasyczne problemy synchronizacji Plan wykładu (2) Semafory Rodzaje semaforów (1) Semafor jest

Bardziej szczegółowo

Realizacja algorytmu wyznaczania wyrazów ciągu w języku VHDL z zastosowaniem podziału projektu na moduły: FSM i Data Path.

Realizacja algorytmu wyznaczania wyrazów ciągu w języku VHDL z zastosowaniem podziału projektu na moduły: FSM i Data Path. Zakład Cyberbezpieczeństwa, Instytut Telekomunikacji, Politechnika Warszawska, 2015. 1 Układy Cyfrowe laboratorium Przykład realizacji ćwiczenia nr 6 (wersja 2015) 1. Wstęp 1.1. Algorytm Realizacja algorytmu

Bardziej szczegółowo

OPERACJE NA PLIKACH. Podstawowe pojęcia:

OPERACJE NA PLIKACH. Podstawowe pojęcia: OPERACJE NA PLIKACH Podstawowe pojęcia: plik fizyczny, zbiór informacji w pamięci zewnętrznej wykorzystywany do trwałego przechowywania danych lub jako przedłużenie pamięci operacyjnej w przypadku przetwarzania

Bardziej szczegółowo

Algorytmy i struktury danych. wykład 5

Algorytmy i struktury danych. wykład 5 Plan wykładu: Wskaźniki. : listy, drzewa, kopce. Wskaźniki - wskaźniki Wskaźnik jest to liczba lub symbol który w ogólności wskazuje adres komórki pamięci. W językach wysokiego poziomu wskaźniki mogą również

Bardziej szczegółowo

Porządek symetryczny: right(x)

Porządek symetryczny: right(x) Porządek symetryczny: x lef t(x) right(x) Własność drzewa BST: W drzewach BST mamy porządek symetryczny. Dla każdego węzła x spełniony jest warunek: jeżeli węzeł y leży w lewym poddrzewie x, to key(y)

Bardziej szczegółowo

Sortowanie. Kolejki priorytetowe i algorytm Heapsort Dynamiczny problem sortowania:

Sortowanie. Kolejki priorytetowe i algorytm Heapsort Dynamiczny problem sortowania: Sortowanie Kolejki priorytetowe i algorytm Heapsort Dynamiczny problem sortowania: podać strukturę danych dla elementów dynamicznego skończonego multi-zbioru S, względem którego są wykonywane następujące

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

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

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 Sztucznej Inteligencji

Wprowadzenie do Sztucznej Inteligencji Wprowadzenie do Sztucznej Inteligencji Wykład Studia Inżynierskie Przeszukiwanie przestrzeni stanów Przestrzeń stanów jest to czwórka uporządkowana [N,[, S, GD], gdzie: N jest zbiorem wierzchołków w odpowiadających

Bardziej szczegółowo

Wstęp do programowania

Wstęp do programowania Wstęp do programowania wykład 4 Piotr Cybula Wydział Matematyki i Informatyki UŁ 2012/2013 http://www.math.uni.lodz.pl/~cybula Instrukcje pętli Pętle służą do iteracyjnego wykonywania pewnych kroków Zazwyczaj

Bardziej szczegółowo

Indukowane Reguły Decyzyjne I. Wykład 3

Indukowane Reguły Decyzyjne I. Wykład 3 Indukowane Reguły Decyzyjne I Wykład 3 IRD Wykład 3 Plan Powtórka Grafy Drzewa klasyfikacyjne Testy wstęp Klasyfikacja obiektów z wykorzystaniem drzewa Reguły decyzyjne generowane przez drzewo 2 Powtórzenie

Bardziej szczegółowo

Lock Manager Deadlock Źródła Jak starczy czasu. Dreadlocks. Konrad Błachnio MIMUW 19 maja 2010

Lock Manager Deadlock Źródła Jak starczy czasu. Dreadlocks. Konrad Błachnio MIMUW 19 maja 2010 Konrad Błachnio K.Blachnio@students.mimuw.edu.pl MIMUW 19 maja 2010 1 Co to jest? API Implementacja 2 ILockManagerWithDetecting s - straszny zamek 3 4 Obecna implementacja Lock vs. Synchronized Hashtable

Bardziej szczegółowo

Struktury danych (I): kolejka, stos itp.

Struktury danych (I): kolejka, stos itp. Letnie Warsztaty Matematyczno-Informatyczne Algorytmy i struktury danych Struktury danych (I): kolejka, stos itp. Struktury danych (I): kolejka, stos itp. Struktura danych stanowi sposób uporządkowania

Bardziej szczegółowo

Wprowadzenie do Sztucznej Inteligencji

Wprowadzenie do Sztucznej Inteligencji Wprowadzenie do Sztucznej Inteligencji Wykład Informatyka Studia InŜynierskie Przeszukiwanie przestrzeni stanów Przestrzeń stanów jest to czwórka uporządkowana [N,[, S, GD], gdzie: N jest zbiorem wierzchołków

Bardziej szczegółowo

Wprowadzenie do Sztucznej Inteligencji

Wprowadzenie do Sztucznej Inteligencji Wprowadzenie do Sztucznej Inteligencji Wykład Informatyka Studia InŜynierskie Przeszukiwanie przestrzeni stanów Przestrzeń stanów jest to czwórka uporządkowana [N,, S, GD], gdzie: N jest zbiorem wierzchołków

Bardziej szczegółowo

Modelowanie złożonych układów cyfrowych (1)

Modelowanie złożonych układów cyfrowych (1) Modelowanie złożonych układów cyfrowych () funkcje i procedury przykłady (przerzutniki, rejestry) style programowania kombinacyjne bloki funkcjonalne bufory trójstanowe multipleksery kodery priorytetowe

Bardziej szczegółowo