Problem detekcji zakończenia
|
|
- Kacper Osiński
- 8 lat temu
- Przeglądów:
Transkrypt
1 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), n < v. Zadaniem każdego procesu jest uporządkowanie przypisanej mu części zbioru liczb naturalnych i wyznaczenie elementu minimalnego Elementy minimalne są wysyłane do lewych sąsiadów. Po otrzymaniu wiadomości zwartością minimalną, proces wyznacza element maksymalny i wysyła go do prawego sąsiada. 1
2 Sortowanie rozproszone: definicje Zbiór wstępnie podzielony na podzbiory X i v i min i max i P i liczba elementów zbioru X i minimalny element zbioru X i maksymalny element zbioru X i procesy tworzące przetwarzanie rozproszone topologii łańcucha skojarzone ze zbiorami X topologii łańcucha skojarzone ze zbiorami X i. Pary procesów składowych P i, P i+1, połączone są kanałami dwukierunkowymi. Sortowanie rozproszone przykład
3 Sortowanie rozproszone przykład (2) Problem zakończenia Nie, jestem wolny Przed chwilą skończyłem P 4 Nuda, nie ma co robić. Uff, chyba koniec... Ja też skończyłem P 3 Czy już nastąpił koniec przetwarzania? Może jeszcze nie? P 5 Masz Pracujesz A ty coś Co Jak do słychać leci? roboty? P 2 Już skończyłem P 1 3
4 Definicja nieformalna zakończenia Definicja i nieformalna: Nieformalnie problem detekcji zakończenia przetwarzania rozproszonego polega na sprawdzeniu, czy wszystkie procesy przetwarzania są w stanie pasywnym oraz czy żadna wiadomość będąca w kanale (transmitowana lub dostępna) nie uaktywni któregokolwiek z tych procesów. Zakończenie dynamiczne Nieformalnie, przetwarzanie rozproszone jest w stanie, p p j zakończenia dynamicznego, jeżeli żaden proces składowy przetwarzania rozproszonego nie będzie już nigdy uaktywniony. Stan ten będzie utrzymywany pomimo, że pewne wiadomości są wciąż transmitowane, a pewne wiadomości są już dostępne. 4
5 Zakończenie statyczne Nieformalnie, przetwarzanie rozproszone jest w stanie zakończenia statycznego, jeżeli: wszystkie procesy są pasywne wszystkie wiadomości znajdujące się w kanałach są dostępne dla żadnego procesu nie jest spełniony warunek uaktywnienia Klasyczna definicja zakończenia W klasycznej definicji zakończenia przyjmowano że W klasycznej definicji zakończenia przyjmowano, że przetwarzanie rozproszone jest w stanie zakończenia, jeżeli w danej chwili wszystkie procesy są pasywne i wszystkie kanały są puste. 5
6 Problem detekcji zakończenia Problem detekcji zakończenia przetwarzania rozproszonego obejmującego zbiór procesów, sprowadza się do sprawdzenia czy przetwarzanie osiągnęło określony stan zakończenia. Model przetwarzania synchronicznego W modelu przetwarzania synchronicznego przyjmuje się, że transmisje są natychmiastowe. t Stąd kanałył mogą być uznane za puste przez cały czas i problem zakończenia sprowadza się do sprawdzenia czy wszystkie procesy są jednocześnie pasywne. 6
7 Detekcja zakończenia dla modelu synchronicznego Monitorom przypisany jest kolor: White lub Black (początkowo White) W pierścieniu przesyłany yj jest znacznik (z przypisanym y kolorem) Początkowo monitory mają kolor White, a zmieniają kolor na Black, gdy odpowiadający im proces aplikacyjny wyśle wiadomości do procesu o indeksie większym. Znacznik jest przesyłany dalej, gdy obserwowany proces staje się pasywny Po wysłaniu znacznika monitorowi przypisywany jest kolor White Algorytm kończy się, gdy znacznik koloru White dotrze do inicjatora Dla uproszczenia prezentacji, w algorytmie wykorzystano funkcje: succ(i) = (i) mod n + 1 pred(i) = (i+n 2) mod n + 1 Przykład detekcji zakończenia runda zakończona niepowodzeniem P 4 P 5 P 3 P 6 P 2 P 1 ( inicjator ) Runda zakończona, konieczna kolejna iteracja 7
8 Przykład detekcji zakończenia runda zakończona sukcesem P 4 P 5 P 3 P 6 P 2 P 1 ( inicjator ) Wykryto zakończenie Alg. Dijkstra, Feijen, van Gasteren (1) type PACKET extends FRAME is record of data : MESSAGE end record type TOKEN extends FRAME is record of colour : enum { White, Black } end record 8
9 Alg. Dijkstra, Feijen, van Gasteren (2) msgin pcktout tokenout tokenpresent i proccolour i terminationdetected i : MESSAGE : PACKET : TOKEN : BOOLEAN := False : enum {White, Black} := White : BOOLEAN := False Alg. Dijkstra, Feijen, van Gasteren (3) 1. procedure InitProc() 2. tokenout.colour := White 3. send(q α, Q pred(α), tokenout) 4. tokenpresent α := False 5. proccolour α := White 6. end procedure 9
10 Alg. Dijkstra, Feijen, van Gasteren (4) 7. when e_start(q α, TerminationDetection) do 8. wait until passive α 9. InitProc() 10. end when 11. when e_send(p i, P j, msgout: MESSAGE) do 12. if i < j then 13. proccolour i := Black 14. end if 15. pcktout.data := msgout 16. send(q i, Q j, pcktout) 17. end when Alg. Dijkstra, Feijen, van Gasteren (5) 18. when e_receive(q j, Q i, pcktin: PACKET) do 19. msgin := pcktin.data 20. deliver(p j, P i, msgin) 21. end when 10
11 Alg. Dijkstra, Feijen, van Gasteren (6) 22. when e_receive(q succ(i), Q i, tokenin: TOKEN) do 23. tokenpresent i := True 24. wait until passive i 25. if i = α then 26. if proccolour i = White tokenin.colour = White then 27. terminationdetected i := True 28. decide(terminationdetected i ) 29. else 30. InitProc() 31. end if Alg. Dijkstra, Feijen, van Gasteren (7) 32. else 33. tokenout.colour:= tokenin.colour 34. if proccolour i = Black then 35. tokenout.colour:= Black 36. end if 37. send(q i, Q pred(i), tokenout) 38. tokenpresent i := False 39. proccolour i := White 40. end if 41. end when 11
12 Model przetwarzania dyfuzyjnego Przetwarzanie dyfuzyjne (ang. diffusing computation) jest specyficznym przetwarzaniem rozproszonym, w którym wyróżnia się: inicjatora może w dowolnej chwili rozpocząć przetwarzanie dyfuzyjne wysyłając wiadomość aplikacyjną do jednego lub wielu procesów kooperujących hierarchię kooperujących procesów Założenia dodatkowe Proces aktywny staje się procesem pasywnym tylko w wyniku pewnego zdarzenia wewnętrznego Proces zawsze staje się aktywny po otrzymaniu wiadomości Proces pasywny może stać się aktywny tylko w wyniku otrzymaniu wiadomości 12
13 Algorytm Dijkstry-Scholten a: Koncepcja Monitory procesów aplikacyjnych przesyłają wiadomości kontrolne jako pewnego rodzaju odpowiedzi na wiadomości aplikacyjne. Monitor pasywnego inicjatora może stwierdzić zakończenie przetwarzania po odebraniu wiadomości kontrolnych od wszystkich monitorów związanych z procesami uaktywnionymi przez inicjatora. Graf przetwarzania dyfuzyjnego P 1 P 2 P 3 P 4 P 5 P 6 P 7 P 8 P 9 P 10 13
14 Graf przetwarzania dyfuzyjnego (2) P 1 P 2 P 3 P 4 P 5 P 6 P 7 P 8 P 9 P 10 Algorytm detekcji zakończenia dla modelu dyfuzyjnego (1) type PACKET extends FRAME is record of data : MESSAGE end record type SIGNAL extends FRAME 14
15 Algorytm detekcji zakończenia dla modelu dyfuzyjnego (2) msgin : MESSAGE pcktout : PACKET signalin : SIGNAL engager i : PROCESS_ID notengager i : set of PROCESS_ID recvno i : INTEGER:= 0 sentno i : INTEGER:= 0 terminationdetected i : BOOLEAN:= False Algorytm detekcji zakończenia dla modelu dyfuzyjnego (3) 1. when e_start(p R α, P αr, msgout: MESSAGE, DiffusingComputation) do 2. Q αr := {Q j : P j P R α } 3. pcktout.data := msgout 4. sentno α := Q αr 5. send(q α, Q αr, pcktout) 6. end when 15
16 Algorytm detekcji zakończenia dla modelu dyfuzyjnego (4) 7. when e_send(q i, Q j, signalout : SIGNAL) do 8. if recvno i =1 sentno i =0 passive i 9. then 10. Q j := engager i 11. send(q i, Q j, signalout) 12. else 13. for Q j notengager i do 14. notengager i := notengager i \ {Q j } 15. send(q i, Q j, signalout) 16. end for 17. end if 18. recvno i := recvno i end when Algorytm detekcji zakończenia dla modelu dyfuzyjnego (5) 20. when e_receive(q j, Q i, signalin : SIGNAL) do 21. sentno i := sentno i if Q i =Q α sentno i =0 then 23. wait until passive i 24. terminationdetected i := True 25. decide(terminationdetected i ) 26. end if 27. end when 16
17 Algorytm detekcji zakończenia dla modelu dyfuzyjnego (6) 28. when e_send(p i, P j, msgout: MESSAGE) do 29. pcktout.data := msgout 30. sentno i := sentno i send(q i, Q j, pcktout) 32. end when Algorytm detekcji zakończenia dla modelu dyfuzyjnego (7) 33. when e_receive(q j, Q i, pcktin: PACKET) do 34. if recvno i = 0 then 35. engager i := Q j 36. else 37. notengager i := notengager i {Q j } 38. end if 39. recvno i := recvno i msgin := pcktin.data 41. deliver(p j, P i, msgin) 42. end when 17
18 Twierdzenie Twierdzenie Jeżeli przetwarzanie dyfuzyjne uległo zakończeniu, to fakt ten stwierdzi algorytm Dijkstry-Scholtena. Algorytm detekcji zakończenia dla systemów asynchronicznych (Misra 83): Założenia Brak założeń o topologii przetwarzania Brak założeń o czasie przesyłania wiadomości Niezawodna komunikacja Kanały FIFO Używa znacznika (ang. token) 18
19 Algorytm detekcji zakończenia dla systemów asynchronicznych (1) type PACKET extends FRAME is record of data : MESSAGE end record type TOKEN extends FRAME is record of nb : INTEGER end record Algorytm detekcji zakończenia dla systemów asynchronicznych (2) msgin : MESSAGE pcktout : PACKET tokenout : TOKEN tokenpresent i : BOOLEAN := False succ i : PROCESS_ID C : set of CHANNEL_ID colour i : enum { White, Black } := Black terminationdetected i : BOOLEAN := False 19
20 Algorytm detekcji zakończenia dla systemów asynchronicznych (3) 1. when e_start(p t(p α, TerminationDetection) t ) do 2. tokenout.nb := 0 3. send(q α, succ α, tokenout) 4. end when Algorytm detekcji zakończenia dla systemów asynchronicznych (4) 12. when e_receive(q j, Q i, pcktin: PACKET) do 13. msgin := pcktin.data 14. colour i := Black 15. passive i := False 16. deliver(p j, P i, msgin) 17. end when 20
21 Algorytm detekcji zakończenia dla systemów asynchronicznych (5) when e_receive(q j, Q i α, tokenin: TOKEN) do tokenpresent t i := True 20. wait until passive i = True 21. if colour i =Black then 22. tokenout.nb:= else 24. tokenout.nb:= tokenout.nb end if 26. send(q i, succ i, tokenout) 27. colour i := White 28. tokenpresent i := False 29. end when Algorytm detekcji zakończenia dla systemów asynchronicznych (6) 30. when e_receive(q j, Q α, tokenin: TOKEN) do 31. tokenpresent i := True 32. if colour i =White tokenout.nb= C nb= C then 33. terminationdetected i := True 34. decide(terminationdetected i ) 35. else 36. if colour i = Black then 37. tokenout.nb := else 39. tokenout.nb:= tokenout.nb end if 41. send(q i, succ i, tokenout) 42. colour i := White 43. tokenpresent i := False 44. end if 45. end when 21
22 Cechy algorytmu Misra 83 Możliwość rozszerzenia do dowolnej topologii Wiele monitorów naraz może wykrywać zakończenia Cykl obejmujący wszystkie kanały komunikacyjne musi być znany z góry 22
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
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
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
Detekcja zakleszczenia (1)
Detekcja zakleszczenia (1) Wykład prowadzą: Jerzy Brzeziński Jacek Kobusiński Plan wykładu Procesy aktywne i pasywne Definicja zakleszczenia Problem detekcji wystąpienia zakleszczenia Detekcja zakleszczenia
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ć
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
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ść
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
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
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ść
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
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
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
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
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
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
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
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
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
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ść
Czas wirtualny, złożoność algorytmów
Czas wirtualny, złożoność algorytmów Plan wykładu Celem wykładu jest zaznajomienie studenta z pojęciem zegara logicznego, scharakteryzowanie różnych rodzajów kanałów komunikacyjnych, a także przedstawienie
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
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
Czas wirtualny, złożoność algorytmów
Czas wirtualny, złożoność algorytmów Plan wykładu Celem wykładu jest zaznajomienie studenta z pojęciem zegara logicznego, scharakteryzowanie różnych rodzajów kanałów komunikacyjnych, a także przedstawienie
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
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
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ą
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
Algorytmy Równoległe i Rozproszone Część VI - Systemy rozproszone, podstawowe pojęcia
Algorytmy Równoległe i Rozproszone Część VI - Systemy rozproszone, podstawowe pojęcia Łukasz Kuszner pokój 209, WETI http://www.kaims.pl/ kuszner/ kuszner@kaims.pl Oficjalna strona wykładu http://www.kaims.pl/
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ść
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
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
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
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
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).
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)
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
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
Mechanizmy rozgłaszania niezawodnego
Mechanizmy rozgłaszania niezawodnego Plan wykładu Celem wykładu jest prezentacja zagadnień związanych z implementacją niezawodnej komunikacji w zawodnym środowisku rozproszonym. Wykład obejmie omówienie
Wstęp do programowania. Procedury i funkcje. Piotr Chrząstowski-Wachtel
Wstęp do programowania Procedury i funkcje Piotr Chrząstowski-Wachtel Po co procedury i funkcje? Gdyby jakis tyran zabronił korzystać z procedur lub funkcji, to informatyka by upadła! Procedury i funkcje
Analiza algorytmów zadania podstawowe
Analiza algorytmów zadania podstawowe Zadanie 1 Zliczanie Zliczaj(n) 1 r 0 2 for i 1 to n 1 3 do for j i + 1 to n 4 do for k 1 to j 5 do r r + 1 6 return r 0 Jaka wartość zostanie zwrócona przez powyższą
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ęć
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,
Ogólne wiadomości o grafach
Ogólne wiadomości o grafach Algorytmy i struktury danych Wykład 5. Rok akademicki: / Pojęcie grafu Graf zbiór wierzchołków połączonych za pomocą krawędzi. Podstawowe rodzaje grafów: grafy nieskierowane,
Struktury danych i złożoność obliczeniowa Wykład 2. Prof. dr hab. inż. Jan Magott
Struktury danych i złożoność obliczeniowa Wykład 2. Prof. dr hab. inż. Jan Magott Metody konstrukcji algorytmów: Siłowa (ang. brute force), Dziel i zwyciężaj (ang. divide-and-conquer), Zachłanna (ang.
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
PHP: bloki kodu, tablice, obiekty i formularze
1 PHP: bloki kodu, tablice, obiekty i formularze SYSTEMY SIECIOWE Michał Simiński 2 Bloki kodu Blok if-else Switch Pętle Funkcje Blok if-else 3 W PHP blok if i blok if-else wyglądają tak samo i funkcjonują
Instrukcje cykliczne (pętle) WHILE...END WHILE
Instrukcje cykliczne (pętle) Pętle pozwalają na powtarzanie fragmentu kodu programu. PĘTLE LOGICZNE WHILE...END WHILE While (warunek)...... End While Pętla będzie się wykonywała dopóki warunek jest spełniony.
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
Rozszerzenia sieci Petriego
Rozszerzenia sieci Petriego Ograniczenia klasycznej sieci Petriego Trudność w modelowaniu specyficznych przepływów: testowania braku żetonów w danym miejscu, blokowania odpalania, itp. Brak determinizmu
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
Algorytmy i struktury danych
Algorytmy i struktury danych Proste algorytmy sortowania Witold Marańda maranda@dmcs.p.lodz.pl 1 Pojęcie sortowania Sortowaniem nazywa się proces ustawiania zbioru obiektów w określonym porządku Sortowanie
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
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
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
Rozszerzenia sieci Petriego
Rozszerzenia sieci Petriego Ograniczenia klasycznej sieci Petriego Trudność w modelowaniu specyficznych przepływów: testowania braku żetonów w danym miejscu, blokowania odpalania, itp. Brak determinizmu
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
Opis implementacji: Implementacja przedstawia Grę w życie jako przykład prostej symulacji opartej na automatach.
Nazwa implementacji: Gra w życie Autor: Piotr Fiorek Opis implementacji: Implementacja przedstawia Grę w życie jako przykład prostej symulacji opartej na automatach. Zaprojektuj prostą grę, której celem
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++)
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
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
Komputerowe systemy sterowania
Komputerowe systemy sterowania Jerzy Nawrocki www.cs.put.poznan.pl/jnawrocki/wdi Start promu kosmicznego Discovery Systemy sterowania (2) Sterowanie w oparciu o gwiazdy Systemy sterowania (3) Sterowanie
Wykład 1. Systemy przekazywania wiadomości z założeniem bezbłędności działania
Mariusz Juszczyk 16 marca 2010 Seminarium badawcze Wykład 1. Systemy przekazywania wiadomości z założeniem bezbłędności działania Wstęp Systemy przekazywania wiadomości wymagają wprowadzenia pewnych podstawowych
SOP2 - semafory. grudzień
SOP2 - semafory grudzień 2010 1 Plan prezentacji Problem producent-konsument Problem czytelników i pisarzy Problem jedzących filozofów grudzień 2010 2 Producent-konsument var bufor: array [0..n-1] of produkt;
Pascal typy danych. Typy pascalowe. Zmienna i typ. Podział typów danych:
Zmienna i typ Pascal typy danych Zmienna to obiekt, który może przybierać różne wartości. Typ zmiennej to zakres wartości, które może przybierać zmienna. Deklarujemy je w nagłówku poprzedzając słowem kluczowym
typ zakres sposob zapamietania shortint integer bajty (z bitem znaku) longint byte word
Pascal - powtórka Alfabet, Nazwy W odróŝnieniu do C w Pascal nie odróŝnia małych i duŝych liter. Zapisy ALA i ala oznaczają tę samą nazwę. Podobnie np. słowo kluczowe for moŝe być zapisane: FOR. W Pascalu
Algorytmy Równoległe i Rozproszone Część VII - Systemy rozproszone, wstęp
Algorytmy Równoległe i Rozproszone Część VII - Systemy rozproszone, wstęp Łukasz Kuszner pokój 209, WETI http://www.sphere.pl/ kuszner/ kuszner@sphere.pl Oficjalna strona wykładu http://www.sphere.pl/
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)
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
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
Macierzowe algorytmy równoległe
Macierzowe algorytmy równoległe Zanim przedstawimy te algorytmy zapoznajmy się z metodami dekompozycji macierzy, możemy wyróżnić dwa sposoby dekompozycji macierzy: Dekompozycja paskowa - kolumnowa, wierszowa
Wysokość drzewa Głębokość węzła
Drzewa Drzewa Drzewo (ang. tree) zbiór węzłów powiązanych wskaźnikami, spójny i bez cykli. Drzewo posiada wyróżniony węzeł początkowy nazywany korzeniem (ang. root). Drzewo ukorzenione jest strukturą hierarchiczną.
20. Pascal i łączenie podprogramów Pascala z programem napisanym w C
Opublikowano w: WEREWKA J..: Podstawy programowana dla automatyków. Skrypt AGH Nr 1515, Kraków 1998 20. i łączenie podprogramów a z programem napisanym w Ze względu na duże rozpowszechnienie języka, szczególnie
Instrukcje iteracyjne (pętle)
Instrukcje iteracyjne (pętle) Instrukcja for..to i for..downto Instrukcja while Instrukcja repeat..until echniki programowania I s.4-1 Zastosowanie instrukcji iteracyjnych Instrukcje iteracyjne (inaczej
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
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
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ą
Drzewa podstawowe poj
Drzewa podstawowe poj ecia drzewo graf reprezentujacy regularna strukture wskaźnikowa, gdzie każdy element zawiera dwa lub wiecej wskaźników (ponumerowanych) do takich samych elementów; wez ly (albo wierzcho
Matematyka dyskretna - wykład - część Podstawowe algorytmy kombinatoryczne
A. Permutacja losowa Matematyka dyskretna - wykład - część 2 9. Podstawowe algorytmy kombinatoryczne Załóżmy, że mamy tablice p złożoną z n liczb (ponumerowanych od 0 do n 1). Aby wygenerować losową permutację
Dynamiczne struktury danych
Listy Zbiór dynamiczny Zbiór dynamiczny to zbiór wartości pochodzących z pewnego określonego uniwersum, którego zawartość zmienia się w trakcie działania programu. Elementy zbioru dynamicznego musimy co
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
Optymalizacja. Symulowane wyżarzanie
dr hab. inż. Instytut Informatyki Politechnika Poznańska www.cs.put.poznan.pl/mkomosinski, Maciej Hapke Wyżarzanie wzrost temperatury gorącej kąpieli do takiej wartości, w której ciało stałe topnieje powolne
Zagadnienie najkrótszej drogi w sieci
L L Zagadnienie najkrótszej drogi w sieci 1 Rozważmy sieć, gdzie graf jest grafem skierowanym (digrafem) a jest funkcją określoną na zbiorze łuków. Wartość tej funkcji na łuku!"$#%'&, którą oznaczać będziemy
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
LibreOffice Calc VBA
LibreOffice Calc VBA LibreOffice Calc umożliwia tworzenie własnych funkcji i procedur przy użyciu składni języka VBA. Dostęp do edytora makr: Narzędzia->Makra->Zarządaj makrami->libreoffice Calc Aby rozpocząć
Rywalizacja w sieci cd. Protokoły komunikacyjne. Model ISO. Protokoły komunikacyjne (cd.) Struktura komunikatu. Przesyłanie między warstwami
Struktury sieciowe Struktury sieciowe Podstawy Topologia Typy sieci Komunikacja Protokoły komunikacyjne Podstawy Topologia Typy sieci Komunikacja Protokoły komunikacyjne 15.1 15.2 System rozproszony Motywacja
Technologie informacyjne (5) Zdzisław Szyjewski
Technologie informacyjne (5) Zdzisław Szyjewski Technologie informacyjne Technologie pracy z komputerem Funkcje systemu operacyjnego Przykłady systemów operacyjnych Zarządzanie pamięcią Zarządzanie danymi
Kiedy i czy konieczne?
Bazy Danych Kiedy i czy konieczne? Zastanów się: czy często wykonujesz te same czynności? czy wielokrotnie musisz tworzyć i wypełniać dokumenty do siebie podobne (faktury, oferty, raporty itp.) czy ciągle
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
Zadanie 1 Przygotuj algorytm programu - sortowanie przez wstawianie.
Sortowanie Dane wejściowe: ciąg n-liczb (kluczy) (a 1, a 2, a 3,..., a n 1, a n ) Dane wyjściowe: permutacja ciągu wejściowego (a 1, a 2, a 3,..., a n 1, a n) taka, że a 1 a 2 a 3... a n 1 a n. Będziemy
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
Optymalizacja harmonogramów budowlanych - szeregowanie zadań. Mgr inż. Aleksandra Radziejowska AGH Akademia Górniczo-Hutnicza w Krakowie
Optymalizacja harmonogramów budowlanych - szeregowanie zadań Mgr inż. Aleksandra Radziejowska AGH Akademia Górniczo-Hutnicza w Krakowie Opis zagadnienia Zadania dotyczące szeregowania zadań należą do szerokiej
Algorytmy Równoległe i Rozproszone Część V - Model PRAM II
Algorytmy Równoległe i Rozproszone Część V - Model PRAM II Łukasz Kuszner pokój 209, WETI http://www.sphere.pl/ kuszner/ kuszner@sphere.pl Oficjalna strona wykładu http://www.sphere.pl/ kuszner/arir/ 2005/06
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
2:8,7 3:9,4 / \ / \ / \ / \ 4:7,3 5:8 6:9,2 7:4
Wykład: Sortowanie III Drzewa Turniejowe 1:9,8 2:8,7 3:9,4 4:7,3 5:8 6:9,2 7:4 8: 3 9:7 12:9 13:2 Insert(x,S) 1) tworzymy dwa nowe liście na ostatnim poziomie, 2) do jednego wstawiamy x a do drugiego wartość
Antyaliasing w 1 milisekundę. Krzysztof Kluczek
Antyaliasing w 1 milisekundę Krzysztof Kluczek Zasada działania Założenia: Metoda bazująca na Morphological Antialiasing (MLAA) wejście: obraz wyrenderowanej sceny wyjście: zantyaliasowany obraz Krótki
Ingerencja w kod systemu operacyjnego (przerwania) Programowanie na niskim poziomie (instrukcje specjalne) Trudności implementacyjne (alg.
Wady mechanizmów niskopoziomowych Ingerencja w kod systemu operacyjnego (przerwania) Programowanie na niskim poziomie (instrukcje specjalne) Trudności implementacyjne (alg. Dekkera zależny od liczby synchronizowanych
Uwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre)
Uwagi dotyczące notacji kodu! Wyrazy drukiem prostym -- słowami języka VBA. Wyrazy drukiem pochyłym -- inne fragmenty kodu. Wyrazy w [nawiasach kwadratowych] opcjonalne fragmenty kodu (mogą być, ale nie
Metody Kompilacji Wykład 7 Analiza Syntaktyczna
Metody Kompilacji Wykład 7 Analiza Syntaktyczna Parsowanie Parsowanie jest to proces określenia jak ciąg terminali może być generowany przez gramatykę. Włodzimierz Bielecki WI ZUT 2/57 Parsowanie Dla każdej