Wprowadzenie do programowania współbieżnego

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

Download "Wprowadzenie do programowania współbieżnego"

Transkrypt

1 Wprowadzenie do programowania współbieżnego Marcin Engel Instytut Informatyki Uniwersytet Warszawski

2 Zamiast wstępu...

3 Zamiast wstępu... Możliwość wykonywania wielu akcji jednocześnie może ułatwić tworzenie oprogramowania

4 Zamiast wstępu... Możliwość wykonywania wielu akcji jednocześnie może ułatwić tworzenie oprogramowania We współczesnych środowiskach można uruchomić wiele aplikacji jednocześnie

5 Sortowanie przez scalanie procedure MergeSort (i, j: integer); {...} m := (i+j) div 2; MergeSort (i, m); MergeSort (m+1, j); Merge (i, m, j) end;

6 Współbieżne sortowanie przez scalanie procedure MergeSort (i, j: integer); {...} m := (i+j) div 2; co MergeSort (i, m); MergeSort (m+1, j) coend; Merge (i, m, j) end;

7 Zamiast wstępu... Możliwość wykonywania wielu akcji jednocześnie może ułatwić tworzenie oprogramowania We współczesnych środowiskach można uruchomić wiele aplikacji jednocześnie

8 Zamiast wstępu... Możliwość wykonywania wielu akcji jednocześnie może ułatwić tworzenie oprogramowania We współczesnych środowiskach można uruchomić wiele aplikacji jednocześnie Niektóre problemy daj a się łatwo i elegancko wyrazić w postaci niezależnie wykonywanych procedur

9 Rozpraszanie obliczeń Wyrażenie: A B (C + D)/(E F)

10 Rozpraszanie obliczeń Wyrażenie: A B (C + D)/(E F) x1 := C + D

11 Rozpraszanie obliczeń Wyrażenie: A B (C + D)/(E F) x1 := C + D x2 := E F

12 Rozpraszanie obliczeń Wyrażenie: A B (C + D)/(E F) x1 := C + D x4 := x1/x2 x2 := E F

13 Rozpraszanie obliczeń Wyrażenie: A B (C + D)/(E F) x1 := C + D x4 := x1/x2 x2 := E F x3 := A B

14 Rozpraszanie obliczeń Wyrażenie: A B (C + D)/(E F) x1 := C + D x4 := x1/x2 x2 := E F x5 := x3 x4 x3 := A B

15 Rozpraszanie obliczeń Wyrażenie: A B (C + D)/(E F)

16 Rozpraszanie obliczeń Wyrażenie: A B (C + D)/(E F) x1 := C + D x2 := E F x3 := A B

17 Rozpraszanie obliczeń Wyrażenie: A B (C + D)/(E F) x1 := C + D x4 := x1/x2 x2 := E F x3 := A B

18 Rozpraszanie obliczeń Wyrażenie: A B (C + D)/(E F) x1 := C + D x4 := x1/x2 x2 := E F x5 := x3 x4 x3 := A B

19 Zamiast wstępu... Możliwość wykonywania wielu akcji jednocześnie może ułatwić tworzenie oprogramowania We współczesnych środowiskach można uruchomić wiele aplikacji jednocześnie Niektóre problemy daj a się łatwo i elegancko wyrazić w postaci niezależnie wykonywanych procedur

20 Zamiast wstępu... Możliwość wykonywania wielu akcji jednocześnie może ułatwić tworzenie oprogramowania We współczesnych środowiskach można uruchomić wiele aplikacji jednocześnie Niektóre problemy daja się łatwo i elegancko wyrazić w postaci niezależnie wykonywanych procedur Coraz tańsze architektury wieloprocesorowe stwarzaj a możliwość jednoczesnego wykonywania wielu obliczeń

21 Zamiast wstępu... Możliwość wykonywania wielu akcji jednocześnie może ułatwić tworzenie oprogramowania We współczesnych środowiskach można uruchomić wiele aplikacji jednocześnie Niektóre problemy daja się łatwo i elegancko wyrazić w postaci niezależnie wykonywanych procedur Coraz tańsze architektury wieloprocesorowe stwarzaja możliwość jednoczesnego wykonywania wielu obliczeń Serwery sieciowe obsługuja jednocześnie wielu klientów

22 Zamiast wstępu... Możliwość wykonywania wielu akcji jednocześnie może ułatwić tworzenie oprogramowania We współczesnych środowiskach można uruchomić wiele aplikacji jednocześnie Niektóre problemy daja się łatwo i elegancko wyrazić w postaci niezależnie wykonywanych procedur Coraz tańsze architektury wieloprocesorowe stwarzaja możliwość jednoczesnego wykonywania wielu obliczeń Serwery sieciowe obsługuja jednocześnie wielu klientów...

23 Zamiast wstępu... Możliwość wykonywania wielu akcji jednocześnie może ułatwić tworzenie oprogramowania We współczesnych środowiskach można uruchomić wiele aplikacji jednocześnie Niektóre problemy daja się łatwo i elegancko wyrazić w postaci niezależnie wykonywanych procedur Coraz tańsze architektury wieloprocesorowe stwarzaja możliwość jednoczesnego wykonywania wielu obliczeń Serwery sieciowe obsługuja jednocześnie wielu klientów...

24 Programowanie współbieżne Praca współbieżna polega na tym, że składajace się na nia zjawiska, czynności lub działania odbywaja się równocześnie.

25 Proces a program Proces to realizacja programu w konkretnym środowisku Proces jest obiektem dynamicznym Program jest obiektem statycznym Proces jest w jednym z następujacych stanów gotowy wykonywany wstrzymany

26 Programowanie współbieżne Praca współbieżna polega na tym, że składajace się na nia zjawiska, czynności lub działania odbywaja się równocześnie.

27 Programowanie współbieżne Praca współbieżna polega na tym, że składajace się na nia zjawiska, czynności lub działania odbywaja się równocześnie. Istotny jest przy tym punkt widzenia obserwatora (... )

28 Współbieżność a równoległość Dwa procesy wykonuja się równolegle, jeśli ich akcje sa wykonywane w tym samym czasie Dwa procesy wykonuja się współbieżnie, jeśli wykonywanie jednego z nich zaczęło się po rozpoczęciu, ale przed zakończeniem drugiego Współbieżność jest abstrakcja równoległości

29 Co nas interesuje? Notacje i techniki do wyrażania współbieżności Problemy powstajace przy współbieżnym działaniu procesów Metody realizacji poprawnej synchronizacji procesów

30 Problemy z analiza programów współbieżnych var y: integer process P; var x: integer; i: integer; for i := 1 to 5 do x := y; x := x + 1; y := x end end process P; var x: integer; i: integer; for i := 1 to 5 do x := y; x := x + 1; y := x end end y := 0; co P; P coend; writeln (y)

31 Niepodzielność instrukcji var y: process P; var i: integer; for i := 1 to 5 do y := y + 1; end; integer process P; var i: integer; for i := 1 to 5 do y := y + 1; end; y := 0; co P; P coend; writeln (y)

32 Wnioski Kłopoty z testowaniem Nie wolno nic zakładać o niepodzielności instrukcji języka programowania

33 Współbieżne sortowanie przez scalanie procedure MergeSort (i, j: integer); {...} m := (i+j) div 2; co MergeSort (i, m); MergeSort (m+1, j) Merge (i, m, j) coend; end;

34 Wniosek Nie wolno nic zakładać o szybkości pracy poszczególnych procesów

35 Przeplot Przeplot jest ciagiem złożonym z przeplecionych ze soba akcji poszczególnych procesów Nie precyzujemy terminu akcja Konkretne wykonanie programu współbieżnego odpowiada pewnemu przeplotowi Program współbieżny musi dawać poprawne wyniki dla każdego możliwego przeplotu Duży (najczęściej nieskończony) zbiór przeplotów do rozpatrzenia

36 Klasyczne problemy współbieżności Wzajemne wykluczanie

37 Klasyczne problemy współbieżności Wzajemne wykluczanie Producenci i konsumenci

38 Klasyczne problemy współbieżności Wzajemne wykluczanie Producenci i konsumenci Czytelnicy i pisarze

39 Klasyczne problemy współbieżności Wzajemne wykluczanie Producenci i konsumenci Czytelnicy i pisarze Pięciu filozofów

40 Wzajemne wykluczanie Mamy dwa procesy działajace według schematu: while true do własne sprawy;... sekcja krytyczna;... end; Uzupełnić tekst procesu tak, aby w tym samym czasie sekcję krytyczna wykonywał co najwyżej jeden proces.

41 Wzajemne wykluczanie założenia Własne sprawy jest fragmentem programu, który nie wymaga synchronizacji nic poza tym o nim nie wiadomo Sekcja krytyczna jest krótka; każdy proces, który rozpocznie jej wykonanie w skończonym czasie je kończy Proces, który nie może od razu wejść do sekcji krytycznej musi poczekać i wejść do niej, gdy będzie to możliwe

42 Wzajemne wykluczanie założenia Własne sprawy jest fragmentem programu, który nie wymaga synchronizacji nic poza tym o nim nie wiadomo Sekcja krytyczna jest krótka; każdy proces, który rozpocznie jej wykonanie w skończonym czasie je kończy Proces, który nie może od razu wejść do sekcji krytycznej musi poczekać i wejść do niej, gdy będzie to możliwe Sprawiedliwość Każdy gotowy do wykonania proces w skończonym czasie stanie się wykonywany.

43 Poprawność programów współbieżnych bezpieczeństwo Własność zapewniania (lub bezpieczeństwa): nigdy nie dojdzie do sytuacji niepożadanej Własność zapewniania pojawia się w specyfikacji problemu synchronizacyjnego Odpowiednik częściowej poprawności programu sekwencyjnego

44 Poprawność programów współbieżnych bezpieczeństwo Własność zapewniania (lub bezpieczeństwa): nigdy nie dojdzie do sytuacji niepożadanej Własność zapewniania pojawia się w specyfikacji problemu synchronizacyjnego Odpowiednik częściowej poprawności programu sekwencyjnego Bezpieczeństwo wzajemnego wykluczania W sekcji krytycznej nigdy nie przebywaj a oba procesy jednocześnie.

45 Dwa modele współbieżności Model scentralizowany: procesy wykonuja się w środowisku ze wspólna pamięcia, w której w szczególności można umieścić zmienne globalne (współdzielone) Model rozproszony: synchronizacja odbywa się poprzez wymianę komunikatów

46 System operacyjny Unix/Linux Z logicznego punktu widzenia domyślnie wspiera model rozproszony Procesy maja odrębne wirtualne przestrzenie adresowe Mechanizmy takie jak łacza, łacza nazwane, kolejki komunikatów stanowia narzędzia synchronizacyjne Fizycznie, procesy działajace na tym samym komputerze korzystaja ze wspólnej pamięci Segmenty pamięci dzielonej oraz semafory wspieraj a model scentralizowany

47 Wzajemne wykluczanie w modelu scentralizowanym Bez wsparcia ze strony sprzętu ani środowiska Za pomoca specjalnego, niepodzielnego rozkazu maszynowego Za pomoc a mechanizmów wspieranych przez system operacyjny i sprzęt, np. semaforów

48 Rozwiazanie oczywiste var zajęte : boolean := false; process P1; while true do własne sprawy; while zajęte do; zajęte := true; sekcja krytyczna; zajęte := false end end; process P2; while true do własne sprawy; while zajęte do; zajęte := true; sekcja krytyczna; zajęte := false end end;

49 Rozwiazanie oczywiste var zajęte : boolean := false; process P1; while true do własne sprawy; while zajęte do; zajęte := true; sekcja krytyczna; zajęte := false end end; Dwa procesy w sekcji krytycznej! process P2; while true do własne sprawy; while zajęte do; zajęte := true; sekcja krytyczna; zajęte := false end end;

50 Rozwiazanie poprawne var zajęte : boolean := false; process P1; while true do własne sprawy; zajęte := true; while zajęte do; sekcja krytyczna; zajęte := false end end; process P2; while true do własne sprawy; zajęte := true; while zajęte do; sekcja krytyczna; zajęte := false end end;

51 Rozwiazanie poprawne var zajęte : boolean := false; process P1; while true do własne sprawy; zajęte := true; while zajęte do; sekcja krytyczna; zajęte := false end end; Teraz jest bezpiecznie! process P2; while true do własne sprawy; zajęte := true; while zajęte do; sekcja krytyczna; zajęte := false end end;

52 Rozwiazanie poprawne? var zajęte : boolean := false; process P1; while true do własne sprawy; zajęte := true; while zajęte do; sekcja krytyczna; zajęte := false end end; process P2; while true do własne sprawy; zajęte := true; while zajęte do; sekcja krytyczna; zajęte := false end end; Teraz jest bezpiecznie! Ale czy na pewno o to chodziło?

53 Poprawność programów współbieżnych żywotność Własność żywotności: każdy proces, który chce wykonać pewna akcję w skończonym czasie będzie mógł to zrobić Własność żywotności jest zwiazana z wykonaniem programu Odpowiednik całkowitej poprawności programu sekwencyjnego (razem z własnościa bezpieczeństwa)

54 Poprawność programów współbieżnych żywotność Własność żywotności: każdy proces, który chce wykonać pewna akcję w skończonym czasie będzie mógł to zrobić Własność żywotności jest zwiazana z wykonaniem programu Odpowiednik całkowitej poprawności programu sekwencyjnego (razem z własnościa bezpieczeństwa) Przejawy braku żywotności Zakleszczenie, np. reguła prawej ręki w ruchu drogowym Zagłodzenie, np. klienci banku obsługiwani poza kolejnościa

55 Poprawność wzajemnego wykluczania bezpieczeństwo + żywotność

56 Poprawność wzajemnego wykluczania bezpieczeństwo + żywotność W sekcji krytycznej przebywa w tym samym czasie co najwyżej jeden proces

57 Poprawność wzajemnego wykluczania bezpieczeństwo + żywotność W sekcji krytycznej przebywa w tym samym czasie co najwyżej jeden proces Każdy proces, który chce wejść do sekcji krytycznej, w końcu do niej wejdzie

58 Poprawność wzajemnego wykluczania bezpieczeństwo + żywotność W sekcji krytycznej przebywa w tym samym czasie co najwyżej jeden proces Każdy proces, który chce wejść do sekcji krytycznej, w końcu do niej wejdzie Poprzednie rozwi azanie jest niepoprawne (prowadzi do zakleszczenia).

59 Rozwiazanie poprawne? var chce1, chce2 : boolean := false; process P1; while true do własne sprawy; chce1 := true; while chce2 do; sekcja krytyczna; chce1 := false end end; process P2; while true do własne sprawy; chce2 := true; while chce1 do; sekcja krytyczna; chce2 := false end end;

60 Rozwiazanie znów niepoprawne var chce1, chce2 : boolean := false; process P1; while true do własne sprawy; chce1 := true; while chce2 do; sekcja krytyczna; chce1 := false end end; process P2; while true do własne sprawy; chce2 := true; while chce1 do; sekcja krytyczna; chce2 := false end end; Lecz w tym cały jest ambaras, kiedy dwoje chce... naraz.

61 Rozwiazanie poprawne? var kto_czeka : integer := 1; process P1; while true do własne sprawy; while kto_czeka=1 do; sekcja krytyczna; kto_czeka := 1 end end; process P2; while true do własne sprawy; while kto_czeka = 2 do; sekcja krytyczna; kto_czeka := 2 end end;

62 Rozwiazanie znów niepoprawne var kto_czeka : integer := 1; process P1; while true do własne sprawy; while kto_czeka=1 do; sekcja krytyczna; kto_czeka := 1 end end; process P2; while true do własne sprawy; while kto_czeka = 2 do; sekcja krytyczna; kto_czeka := 2 end end; Lecz w tym cały jest ambaras, żeby dwoje chciało naraz.

63 Rozwiazanie prawie poprawne? var kto_czeka : integer := 1; chce1, chce2: boolean := false process P1; while true do własne sprawy; chce1 := true; while chce2 and (kto_czeka=1) do; sekcja krytyczna; chce1 := false; kto_czeka := 1 end end; process P2; while true do własne sprawy; chce2 := true; while chce1 and (kto_czeka = 2) do; sekcja krytyczna; chce2 := false; kto_czeka := 2 end end;

64 Wreszcie dobrze! var kto_czeka : integer := 1; chce1, chce2: boolean := false process P1; while true do własne sprawy; chce1 := true; kto_czeka := 1 while chce2 and (kto_czeka=1) do; sekcja krytyczna; chce1 := false; end end; process P2; while true do własne sprawy; chce2 := true; kto_czeka := 2 while chce1 and (kto_czeka = 2) do; sekcja krytyczna; chce2 := false; end end;

65 Algorytm Petersona Aktywne oczekiwanie Jedynie dla dwóch procesów, choć daje się uogólnić na większa ich liczbę Duży koszt Niestosowany w praktyce

66 Wsparcie ze strony sprzętu Niepodzielny rozkaz maszynowy Test_and_Set(G) Jednoczesny zapis i odczyt, np.: Test_and_Set (Li) Li := G; G := 1; end;

67 Rozwiazanie problemu wzajemnego wykluczania var G: integer := 0; process P; var Li: integer; while true do sekcja_lokalna(i); loop Test_and_Set(Li); exit when Li = 0; end loop sekcja_krytyczna(i); G := 0; end end;

68 Semafory Niepodzielne i atomowe operacje podniesienia (V)i opuszczenia (P) semafora Proces próbujacy opuścić semafor zamknięty jest wstrzymywany Proces podnoszacy semafor budzi proces oczekujacy przed semaforem

69 Rozwi azanie problemu wzajemnego wykluczania process P; while true do własne sprawy; P(S); sekcja krytyczna; V (S); end end;

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

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

Modelowanie procesów współbieżnych

Modelowanie procesów współbieżnych Modelowanie procesów współbieżnych dr inż. Maciej Piotrowicz Katedra Mikroelektroniki i Technik Informatycznych PŁ piotrowi@dmcs.p.lodz.pl http://fiona.dmcs.pl/~piotrowi -> Modelowanie... Literatura M.

Bardziej szczegółowo

Przetwarzanie wielowątkowe przetwarzanie współbieżne. Krzysztof Banaś Obliczenia równoległe 1

Przetwarzanie wielowątkowe przetwarzanie współbieżne. Krzysztof Banaś Obliczenia równoległe 1 Przetwarzanie wielowątkowe przetwarzanie współbieżne Krzysztof Banaś Obliczenia równoległe 1 Problemy współbieżności wyścig (race condition) synchronizacja realizowana sprzętowo (np. komputery macierzowe)

Bardziej szczegółowo

Klasyczne problemy współbieżności. Problem producenta i konsumenta Problem czytelników i pisarzy Problem pięciu filozofów

Klasyczne problemy współbieżności. Problem producenta i konsumenta Problem czytelników i pisarzy Problem pięciu filozofów Klasyczne problemy współbieżności Problem producenta i konsumenta Problem czytelników i pisarzy Problem pięciu filozofów Wzajemne wykluczanie Zsynchronizować N procesów, z których każdy w nieskończonej

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

3URJUDPRZDQLHZVSyáELH*QHZVWS

3URJUDPRZDQLHZVSyáELH*QHZVWS 3URJUDPRZDQLHZVSyáELH*QHZVWS Problem sortowania N liczb Algorytm sekwencyjny sortuj(1, N); NRV]WVRUWRZDQLDSU]H]SURVW]DPLDQN 2 SRUyZQD $OJRU\WPUyZQROHJá\ cobegin {wykonaj równolegle} VRUWXMSyáB1 VRUWXMSyáB11

Bardziej szczegółowo

Programowanie współbieżne i równoległe. dr inż. Marcin Wilczewski 2013

Programowanie współbieżne i równoległe. dr inż. Marcin Wilczewski 2013 Programowanie współbieżne i równoległe dr inż. Marcin Wilczewski 2013 1 Tematyka wykładu Wprowadzenie. Podstawowe pojęcia Wątki i procesy. Metody i modele synchronizacji Klasyczne problemy współbieżne

Bardziej szczegółowo

Przeplot. Synchronizacja procesów. Cel i metody synchronizacji procesów. Wątki współbieżne

Przeplot. Synchronizacja procesów. Cel i metody synchronizacji procesów. Wątki współbieżne Synchronizacja procesów Przeplot Przeplot wątków współbieżnych Cel i metody synchronizacji procesów Problem sekcji krytycznej Semafory Blokady 3.1 3.3 Wątki współbieżne Cel i metody synchronizacji procesów

Bardziej szczegółowo

Równoległość i współbieżność

Równoległość i współbieżność Równoległość i współbieżność Wykonanie sekwencyjne. Poszczególne akcje procesu są wykonywane jedna po drugiej. Dokładniej: kolejna akcja rozpoczyna się po całkowitym zakończeniu poprzedniej. Praca współbieżna

Bardziej szczegółowo

Równoległość i współbieżność

Równoległość i współbieżność Równoległość i współbieżność Wykonanie sekwencyjne. Poszczególne akcje procesu są wykonywane jedna po drugiej. Dokładniej: kolejna akcja rozpoczyna się po całkowitym zakończeniu poprzedniej. Praca współbieżna

Bardziej szczegółowo

Proces z sekcją krytyczną. Synchronizacja procesów. Synchronizacja procesów, cd. Synchronizacja procesów, cd. Synchronizacja procesów, cd

Proces z sekcją krytyczną. Synchronizacja procesów. Synchronizacja procesów, cd. Synchronizacja procesów, cd. Synchronizacja procesów, cd Synchronizacja procesów Proces producenta - zmodyfikowany (licznik) produkuj jednostka w nast_p while licznik =n do nic_nie_rob; bufor [we] := nast_p; we=we+1 mod n; licznik:=licznik+1; Zmodyfikowany proces

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

Program jest więc strukturą statyczną zapisaną na jakimś nośniku. Natomiast proces jest wykonującym się programem.

Program jest więc strukturą statyczną zapisaną na jakimś nośniku. Natomiast proces jest wykonującym się programem. J. Ułasiewicz Programowanie aplikacji współbieżnych 1 1 Podstawowe definicje i pojęcia współbieżności 1.1 Motywacja Przewiduje się że w dalszej perspektywie głównym motorem wzrostu mocy przetwarzania komputerów

Bardziej szczegółowo

Przegląd zagadnień programowania wspólbieżnego

Przegląd zagadnień programowania wspólbieżnego Przegląd zagadnień programowania wspólbieżnego dr inż. Sławomir Samolej Katedra Informatyki i Automatyki Politechnika Rzeszowska Program przedmiotu oparto w części na materiałach opublikowanych na: http://wazniak.mimuw.edu.pl/

Bardziej szczegółowo

Wprowadzenie do programowania współbieżnego i rozproszonego

Wprowadzenie do programowania współbieżnego i rozproszonego Wprowadzenie do programowania współbieżnego i rozproszonego dr inż. Sławomir Samolej Katedra Informatyki i Automatyki Politechnika Rzeszowska Program przedmiotu oparto w części na materiałach opublikowanych

Bardziej szczegółowo

Programowanie równoległe i rozproszone. Monitory i zmienne warunku. Krzysztof Banaś Programowanie równoległe i rozproszone 1

Programowanie równoległe i rozproszone. Monitory i zmienne warunku. Krzysztof Banaś Programowanie równoległe i rozproszone 1 Programowanie równoległe i rozproszone Monitory i zmienne warunku Krzysztof Banaś Programowanie równoległe i rozproszone 1 Problemy współbieżności Problem producentów i konsumentów: jedna grupa procesów

Bardziej szczegółowo

Ingerencja w kod systemu operacyjnego (przerwania) Programowanie na niskim poziomie (instrukcje specjalne) Trudności implementacyjne (alg.

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

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

4. Procesy pojęcia podstawowe

4. Procesy pojęcia podstawowe 4. Procesy pojęcia podstawowe 4.1 Czym jest proces? Proces jest czymś innym niż program. Program jest zapisem algorytmu wraz ze strukturami danych na których algorytm ten operuje. Algorytm zapisany bywa

Bardziej szczegółowo

Nazwa Wydziału Nazwa jednostki prowadzącej moduł Nazwa modułu kształcenia Kod modułu Język kształcenia Efekty kształcenia dla modułu kształcenia

Nazwa Wydziału Nazwa jednostki prowadzącej moduł Nazwa modułu kształcenia Kod modułu Język kształcenia Efekty kształcenia dla modułu kształcenia Nazwa Wydziału Nazwa jednostki prowadzącej moduł Nazwa modułu kształcenia Kod modułu Język kształcenia Efekty kształcenia dla modułu kształcenia Wydział Matematyki i Informatyki Instytut Informatyki i

Bardziej szczegółowo

Systemy operacyjne III

Systemy operacyjne III Systemy operacyjne III WYKŁAD 3 Jan Kazimirski 1 Współbieżność 2 Współbieżność Wielozadaniowość - zarządzanie wieloma procesami w ramach jednego CPU Wieloprocesorowość - zarządzanie wieloma zadaniami w

Bardziej szczegółowo

Proces z sekcją krytyczną. Synchronizacja procesów. Synchronizacja procesów, cd. Synchronizacja procesów, cd. Synchronizacja procesów, cd

Proces z sekcją krytyczną. Synchronizacja procesów. Synchronizacja procesów, cd. Synchronizacja procesów, cd. Synchronizacja procesów, cd Synchronizacja procesów Proces producenta - zmodyfikowany (licznik) produkuj jednostka w nast_p while licznik =n do nic_nie_rob; bufor [we] := nast_p; we=we+1 mod n; licznik:=licznik+1; Zmodyfikowany proces

Bardziej szczegółowo

SOP2 - semafory. grudzień

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;

Bardziej szczegółowo

4. Procesy pojęcia podstawowe

4. Procesy pojęcia podstawowe 4. Procesy pojęcia podstawowe 4.1 Czym jest proces? Proces jest czymś innym niż program. Program jest zapisem algorytmu wraz ze strukturami danych na których algorytm ten operuje. Algorytm zapisany bywa

Bardziej szczegółowo

Systemy Operacyjne synchronizacja i komunikacja procesów

Systemy Operacyjne synchronizacja i komunikacja procesów Katedra Informatyki, Politechnika Świętokrzyska w Kielcach Kielce, 1 grudnia 2006 1 1 Sytuacje hazardowe 2 Problem sekcji krytycznej 3 Warunki poprawności rozwiązania 4 Rozwiązanie programowe dla dwóch

Bardziej szczegółowo

1 Podstawowe definicje i pojęcia współbieżności

1 Podstawowe definicje i pojęcia współbieżności J. Ułasiewicz Programowanie aplikacji współbieżnych 1 1 Podstawowe definicje i pojęcia współbieżności 1.1 Dlaczego zajmujemy się współbieżnością? W ciągu ostatnich 30 lat wzrost mocy przetwarzania osiągano

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

Wykład 4. Synchronizacja procesów (i wątków) cześć I. Wojciech Kwedlo, Wykład z Systemów Operacyjnych -1- Wydział Informatyki PB

Wykład 4. Synchronizacja procesów (i wątków) cześć I. Wojciech Kwedlo, Wykład z Systemów Operacyjnych -1- Wydział Informatyki PB Wykład 4 Synchronizacja procesów (i wątków) cześć I Wojciech Kwedlo, Wykład z Systemów Operacyjnych -1- Wydział Informatyki PB Potrzeba synchronizacji Procesy wykonują się współbieżnie. Jeżeli w 100% są

Bardziej szczegółowo

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

Obliczenia równoległe i rozproszone. Praca zbiorowa pod redakcją Andrzeja Karbowskiego i Ewy Niewiadomskiej-Szynkiewicz Obliczenia równoległe i rozproszone Praca zbiorowa pod redakcją Andrzeja Karbowskiego i Ewy Niewiadomskiej-Szynkiewicz 15 czerwca 2001 Spis treści Przedmowa............................................

Bardziej szczegółowo

Programowanie współbieżne Wykład 2. Iwona Kochańska

Programowanie współbieżne Wykład 2. Iwona Kochańska Programowanie współbieżne Wykład 2 Iwona Kochańska Miary skalowalności algorytmu równoległego Przyspieszenie Stały rozmiar danych N T(1) - czas obliczeń dla najlepszego algorytmu sekwencyjnego T(p) - czas

Bardziej szczegółowo

Synchronizacja procesów

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

Bardziej szczegółowo

Programowanie. programowania. Klasa 3 Lekcja 9 PASCAL & C++

Programowanie. programowania. Klasa 3 Lekcja 9 PASCAL & C++ Programowanie Wstęp p do programowania Klasa 3 Lekcja 9 PASCAL & C++ Język programowania Do przedstawiania algorytmów w postaci programów służą języki programowania. Tylko algorytm zapisany w postaci programu

Bardziej szczegółowo

Zagadnienia zaawansowane. Lech Kruś,

Zagadnienia zaawansowane. Lech Kruś, WYŻSZA SZKOŁA INFORMATYKI STOSOWANEJ I ZARZĄDZANIA WYDZIAŁ INFORMATYKI WIELODOSTĘPNE SYSTEMY OPERACYJNE II (SO2) Zagadnienia zaawansowane CZĘŚĆ 1 KONSPEKT WYKŁADÓW INFORMACJA O SPECJALIZACJI SIECI KOMPUTEROWE

Bardziej szczegółowo

Od uczestników szkolenia wymagana jest umiejętność programowania w języku C oraz podstawowa znajomość obsługi systemu Linux.

Od uczestników szkolenia wymagana jest umiejętność programowania w języku C oraz podstawowa znajomość obsługi systemu Linux. Kod szkolenia: Tytuł szkolenia: PS/LINUX Programowanie systemowe w Linux Dni: 5 Opis: Adresaci szkolenia Szkolenie adresowane jest do programistów tworzących aplikacje w systemie Linux, którzy chcą poznać

Bardziej szczegółowo

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

Współbieżność i synchronizacja. Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak Współbieżność i synchronizacja procesów Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak Celem wykładu jest przedstawienie zagadnień współbieżnego wykonywania wątków lub procesów, zwłaszcza w przypadku,

Bardziej szczegółowo

Wstęp do programowania

Wstęp do programowania Wstęp do programowania Literatura David Harel. Rzecz o istocie informatyki. Algorytmika. Wydawnictwa Naukowo-Techniczne. Wydanie trzecie. Seria: Klasyka informatyki. Warszawa 2000. Niklaus Wirth. Algorytmy

Bardziej szczegółowo

Programowanie Współbieżne. Wstęp

Programowanie Współbieżne. Wstęp Programowanie Współbieżne Wstęp Literatura M. Ben-Ari, Podstawy programowania współbieżnego i rozproszonego, WNT W. Richard Stevens Programowanie zastosowań sieciowych A.S. Tanenbaum, Rozproszone systemy

Bardziej szczegółowo

Od uczestników szkolenia wymagana jest umiejętność programowania w języku C oraz podstawowa znajomość obsługi systemu Windows.

Od uczestników szkolenia wymagana jest umiejętność programowania w języku C oraz podstawowa znajomość obsługi systemu Windows. Kod szkolenia: Tytuł szkolenia: PS/WIN Programowanie systemowe w Windows Dni: 5 Opis: Adresaci szkolenia Szkolenie adresowane jest do programistów tworzących aplikacje w systemach z rodziny Microsoft Windows,

Bardziej szczegółowo

Mogą pracować w środowisku: Scentralizowanym -mikrokontroler Rozproszonym sieć sterująca, systemy hierarchiczne. Komunikacja z syst.

Mogą pracować w środowisku: Scentralizowanym -mikrokontroler Rozproszonym sieć sterująca, systemy hierarchiczne. Komunikacja z syst. J. Ułasiewicz Programowanie aplikacji współbieżnych 1 1 Podstawowe definicje i pojęcia współbieżności Współczesne aplikacje sterowania i akwizycji danych są zbiorem komunikujących się wątków lub procesów

Bardziej szczegółowo

Współczesne aplikacje sterowania i akwizycji danych są zbiorem komunikujących się wątków lub procesów współbieżnych.

Współczesne aplikacje sterowania i akwizycji danych są zbiorem komunikujących się wątków lub procesów współbieżnych. J. Ułasiewicz Programowanie aplikacji współbieżnych 1 1 Podstawowe definicje i pojęcia współbieżności Współczesne aplikacje sterowania i akwizycji danych są zbiorem komunikujących się wątków lub procesów

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

Wstęp do programowania 2

Wstęp do programowania 2 Wstęp do programowania 2 wykład 10 Zadania Agata Półrola Wydział Matematyki UŁ 2005/2006 http://www.math.uni.lodz.pl/~polrola Współbieżność dotychczasowe programy wykonywały akcje sekwencyjnie Ada umożliwia

Bardziej szczegółowo

Programowanie współbieżne Wykład 7. Iwona Kochaoska

Programowanie współbieżne Wykład 7. Iwona Kochaoska Programowanie współbieżne Wykład 7 Iwona Kochaoska Poprawnośd programów współbieżnych Właściwości związane z poprawnością programu współbieżnego: Właściwośd żywotności - program współbieżny jest żywotny,

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

Programowanie współbieżne Wykład 10 Synchronizacja dostępu do współdzielonych zasobów. Iwona Kochańska

Programowanie współbieżne Wykład 10 Synchronizacja dostępu do współdzielonych zasobów. Iwona Kochańska Programowanie współbieżne Wykład 10 Synchronizacja dostępu do współdzielonych zasobów Iwona Kochańska Mechanizm synchronizacji wątków/procesów Wykorzystanie semaforów zapobiega niedozwolonemu wykonaniu

Bardziej szczegółowo

Programowanie współbieżne i rozproszone

Programowanie współbieżne i rozproszone Programowanie współbieżne i rozproszone WYKŁAD 1 dr inż. Literatura ogólna Ben-Ari, M.: Podstawy programowania współbieżnego i rozproszonego. Wydawnictwa Naukowo-Techniczne, Warszawa, 2009. Czech, Z.J:

Bardziej szczegółowo

Programowanie współbieŝne. Paweł Rogaliński Politechnika Wrocławska

Programowanie współbieŝne. Paweł Rogaliński Politechnika Wrocławska Programowanie współbieŝne Paweł Rogaliński Politechnika Wrocławska pawel.rogalinski pwr.wroc.pl Literatura podstawowa M. Ben-Ari: Podstawy programowania współbieŝnego i rozproszonego, WNT, Warszawa 1996.

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

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

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

Bardziej szczegółowo

Programowanie współbieżne i równoległe

Programowanie współbieżne i równoległe Programowanie współbieżne i równoległe dr inż. Marcin Wilczewski 2016/2017 1 Cel wykładu Przedstawienie zagadnień projektowania oraz programowania rozwiązań współbieżnych i równoległych Tematyka wykładu

Bardziej szczegółowo

4. Procesy pojęcia podstawowe

4. Procesy pojęcia podstawowe 4. Procesy pojęcia podstawowe 4.1 Czym jest proces? Proces jest czymś innym niż program. Program jest zapisem algorytmu wraz ze strukturami danych na których algorytm ten operuje. Algorytm zapisany bywa

Bardziej szczegółowo

WYKŁAD 4 SEMAPHORES (CIĄG DALSZY) Przykład 6 Problem czytelników i pisarzy. Wykład 4 strona 1/24

WYKŁAD 4 SEMAPHORES (CIĄG DALSZY) Przykład 6 Problem czytelników i pisarzy. Wykład 4 strona 1/24 WYKŁAD 4 SEMAPHORES (CIĄG DALSZY) Przykład 6 Problem czytelników i pisarzy Wykład 4 strona 1/24 Ilustracja 5. Schemat problemu czytelników i pisarzy Wykład 4 strona 2/24 Opis problemu: Jest n czytelników,

Bardziej szczegółowo

ForPascal Interpreter języka Pascal

ForPascal Interpreter języka Pascal Akademia Podlaska w Siedlcach Wydział Nauk Ścisłych Instytut Informatyki ForPascal Interpreter języka Pascal Przedmiot: Sieci i Systemy Wirtualne Informatyka IV Prowadzący: dr Krzysztof Trojanowski Grupa:

Bardziej szczegółowo

Programowanie współbieżne i równoległe

Programowanie współbieżne i równoległe Programowanie współbieżne i równoległe dr inż. Marcin Wilczewski 2018/2019 1 Cel wykładu Przedstawienie zagadnień projektowania oraz programowania rozwiązań współbieżnych i równoległych Tematyka wykładu

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Zaawansowane programowanie w C++ (PCP)

Zaawansowane programowanie w C++ (PCP) Wykład 10 - boost Thread. 8 czerwca 2007 Równoległość bardzo wolna reakcja człowieka wolne urządzenia wejścia - wyjścia (np. drukarki) bardzo szybkie procesory można przeprowadzać obliczenia podczas obsługi

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

Definicje. Algorytm to:

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

Bardziej szczegółowo

Języki i Techniki Programowania II. Wykład 7. Współbieżność 1

Języki i Techniki Programowania II. Wykład 7. Współbieżność 1 Języki i Techniki Programowania II Wykład 7 Współbieżność 1 Programy, Procesy, Wątki Program to zestaw instrukcji do wykonania, dane do przetworzenia, mechanizmy sterujące (stos) Proces w komputerze to

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

Programowanie wspóªbie»ne

Programowanie wspóªbie»ne 1 Programowanie wspóªbie»ne wiczenia 2 semafory cz. 1 Zadanie 1: Producent i konsument z buforem cyklicznym type porcja; void produkuj(porcja &p); void konsumuj(porcja p); porcja bufor[n]; / bufor cykliczny

Bardziej szczegółowo

Programowanie równoległe i rozproszone. W1. Wielowątkowość. Krzysztof Banaś Programowanie równoległe i rozproszone 1

Programowanie równoległe i rozproszone. W1. Wielowątkowość. Krzysztof Banaś Programowanie równoległe i rozproszone 1 Programowanie równoległe i rozproszone W1. Wielowątkowość Krzysztof Banaś Programowanie równoległe i rozproszone 1 Problemy współbieżności wyścig (race condition) synchronizacja realizowana sprzętowo (np.

Bardziej szczegółowo

Informatyka 1. Procedury i funkcje, struktura programu w Pascalu

Informatyka 1. Procedury i funkcje, struktura programu w Pascalu Informatyka 1 Wykład V Procedury i funkcje, struktura programu w Pascalu Robert Muszyński ZPCiR IIAiR PWr Zagadnienia: deklaracje procedury i funkcji, parametry procedur i funkcji, reguły użycia parametrów

Bardziej szczegółowo

Informatyka I. Wykład 3. Sterowanie wykonaniem programu. Instrukcje warunkowe Instrukcje pętli. Dr inż. Andrzej Czerepicki

Informatyka I. Wykład 3. Sterowanie wykonaniem programu. Instrukcje warunkowe Instrukcje pętli. Dr inż. Andrzej Czerepicki Informatyka I Wykład 3. Sterowanie wykonaniem programu. Instrukcje warunkowe Instrukcje pętli Dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2018 Operacje relacji (porównania) A

Bardziej szczegółowo

Programowanie wielowątkowe. Tomasz Borzyszkowski

Programowanie wielowątkowe. Tomasz Borzyszkowski Programowanie wielowątkowe Tomasz Borzyszkowski Wątki a procesy Jako jeden z niewielu języków programowania Java udostępnia użytkownikowi mechanizmy wspierające programowanie wielowątkowe. Program wielowątkowy

Bardziej szczegółowo

Programowanie Równoległe i Rozproszone

Programowanie Równoległe i Rozproszone Programowanie Równoległe i Rozproszone Lucjan Stapp Wydział Matematyki i Nauk Informacyjnych Politechnika Warszawska (l.stapp@mini.pw.edu.pl) 1/30 PRiR MONITOR klasa z następującymi właściwościami: wszystkie

Bardziej szczegółowo

Wątek - definicja. Wykorzystanie kilku rdzeni procesora jednocześnie Zrównoleglenie obliczeń Jednoczesna obsługa ekranu i procesu obliczeniowego

Wątek - definicja. Wykorzystanie kilku rdzeni procesora jednocześnie Zrównoleglenie obliczeń Jednoczesna obsługa ekranu i procesu obliczeniowego Wątki Wątek - definicja Ciąg instrukcji (podprogram) który może być wykonywane współbieżnie (równolegle) z innymi programami, Wątki działają w ramach tego samego procesu Współdzielą dane (mogą operować

Bardziej szczegółowo

Podstawy Informatyki Systemy sterowane przepływem argumentów

Podstawy Informatyki Systemy sterowane przepływem argumentów Podstawy Informatyki alina.momot@polsl.pl http://zti.polsl.pl/amomot/pi Plan wykładu 1 Komputer i jego architektura Taksonomia Flynna 2 Komputer i jego architektura Taksonomia Flynna Komputer Komputer

Bardziej szczegółowo

Wstęp do programowania. Procedury i funkcje. Piotr Chrząstowski-Wachtel

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

Bardziej szczegółowo

Systemy operacyjne. Zajęcia 11. Monitory

Systemy operacyjne. Zajęcia 11. Monitory Systemy operacyjne. Zajęcia 11. Monitory 1. Monitor to mechanizm zamykający całą pamięć wspólną i synchronizację w pojedynczym module. 2. Monitor posiada całą pamięć wspólną jako część 'prywatną': dostępu

Bardziej szczegółowo

Wykład 4. Synchronizacja procesów (i wątków) cześć I. Wojciech Kwedlo, Wykład z Systemów Operacyjnych -1- Wydział Informatyki PB

Wykład 4. Synchronizacja procesów (i wątków) cześć I. Wojciech Kwedlo, Wykład z Systemów Operacyjnych -1- Wydział Informatyki PB Wykład 4 Synchronizacja procesów (i wątków) cześć I Wojciech Kwedlo, Wykład z Systemów Operacyjnych -1- Wydział Informatyki PB Procesy wykonują się współbieżnie Potrzeba synchronizacji Jeżeli w 100% są

Bardziej szczegółowo

ξ II.UWr Wprowadzenie do STM

ξ II.UWr Wprowadzenie do STM ξ KS @.UWr Wprowadzenie do STM Marek Materzok ZOSA 2007 ξ KS @.UWr Wprowadzenie Były sobie komputery. Wykonywały programy instrukcja po instrukcji i wszyscy byli szczęśliwi... ξ KS @.UWr Wprowadzenie Były

Bardziej szczegółowo

1. Liczby i w zapisie zmiennoprzecinkowym przedstawia się następująco

1. Liczby i w zapisie zmiennoprzecinkowym przedstawia się następująco 1. Liczby 3456.0012 i 0.000076235 w zapisie zmiennoprzecinkowym przedstawia się następująco a) 0.34560012 10 4 i 0.76235 10 4 b) 3.4560012 10 3 i 7.6235 10 5 c) 3.4560012 10 3 i 7.6235 10 5 d) po prostu

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

Synchronizacja procesów

Synchronizacja procesów Synchronizacja procesów Proces producenta - zmodyfikowany (licznik) repeat... produkuj jednostka w nast_p... while licznik =n do nic_nie_rob; bufor [we] := nast_p; we=we+1 mod n; licznik:=licznik+1; until

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 Semafor nie jest mechanizmem strukturalnym. Aplikacje pisane z użyciem semaforów są podatne na błędy. Np. brak operacji sem_post blokuje aplikację.

Bardziej szczegółowo

3. Podaj elementy składowe jakie powinna uwzględniać definicja informatyki.

3. Podaj elementy składowe jakie powinna uwzględniać definicja informatyki. 1. Podaj definicję informatyki. 2. W jaki sposób można definiować informatykę? 3. Podaj elementy składowe jakie powinna uwzględniać definicja informatyki. 4. Co to jest algorytm? 5. Podaj neumanowską architekturę

Bardziej szczegółowo

Komputerowe systemy sterowania

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

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

Spis treści. Księgarnia PWN: Maurice Herlihy, Nir Shavit - Sztuka programowania wieloprocesorowego. Podziękowania Przedmowa...

Spis treści. Księgarnia PWN: Maurice Herlihy, Nir Shavit - Sztuka programowania wieloprocesorowego. Podziękowania Przedmowa... Księgarnia PWN: Maurice Herlihy, Nir Shavit - Sztuka programowania wieloprocesorowego Spis treści Podziękowania... 12 Przedmowa... 13 1. Wprowadzenie...15 1.1. Obiekty współdzielone i synchronizacja...

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Komunikacja asynchroniczna w modelu rozproszonym

Komunikacja asynchroniczna w modelu rozproszonym Komunikacja asynchroniczna w modelu rozproszonym.odv\f]qhsureohp\zvsyáelh QR FL Problem wzajemnego wykluczania 1DMF] FLHMSRMDZLDM F\VL ZSUDNW\FH operacje lokalne; SURWRNyáZVW SQ\ rejon krytyczny; SURWRNyáNR

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

Uniwersytet w Białymstoku Wydział Ekonomiczno-Informatyczny w Wilnie SYLLABUS na rok akademicki 2010/2011 http://www.wilno.uwb.edu.

Uniwersytet w Białymstoku Wydział Ekonomiczno-Informatyczny w Wilnie SYLLABUS na rok akademicki 2010/2011 http://www.wilno.uwb.edu. SYLLABUS na rok akademicki 010/011 Tryb studiów Studia stacjonarne Kierunek studiów Informatyka Poziom studiów Pierwszego stopnia Rok studiów/ semestr 1(rok)/1(sem) Specjalność Bez specjalności Kod katedry/zakładu

Bardziej szczegółowo

Współbieżność i synchronizacja procesów

Współbieżność i synchronizacja procesów Celem wykładu jest przedstawienie zagadnień współbieżnego wykonywania wątków lub procesów, zwłaszcza w przypadku, gdy wchodzą one we wzajemne interakcje. Omówiony zostanie też jeden z podstawowych problemów

Bardziej szczegółowo

Wprowadzenie do złożoności obliczeniowej

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

Bardziej szczegółowo

WYKŁAD. Jednostka prowadząca: Wydział Techniczny. Kierunek studiów: Elektronika i telekomunikacja

WYKŁAD. Jednostka prowadząca: Wydział Techniczny. Kierunek studiów: Elektronika i telekomunikacja Jednostka prowadząca: Wydział Techniczny Kierunek studiów: Elektronika i telekomunikacja Nazwa przedmiotu: Systemy operacyjne i architektura komputerów Charakter przedmiotu: kierunkowy, obowiązkowy Typ

Bardziej szczegółowo

Współbieżność i równoległość w środowiskach obiektowych. Krzysztof Banaś Obliczenia równoległe 1

Współbieżność i równoległość w środowiskach obiektowych. Krzysztof Banaś Obliczenia równoległe 1 Współbieżność i równoległość w środowiskach obiektowych Krzysztof Banaś Obliczenia równoległe 1 Java Model współbieżności Javy opiera się na realizacji szeregu omawianych dotychczas elementów: zarządzanie

Bardziej szczegółowo

Proces z sekcją krytyczną. Synchronizacja procesów. Synchronizacja procesów, cd. Synchronizacja procesów, cd. Synchronizacja procesów, cd

Proces z sekcją krytyczną. Synchronizacja procesów. Synchronizacja procesów, cd. Synchronizacja procesów, cd. Synchronizacja procesów, cd Synchronizacja procesów Synchronizacja procesów, cd Proces producenta - zmodyfikowany (licznik) produkuj jednostka w nast_p while licznik =n do nic_nie_rob; bufor [we] := nast_p; we=we+1 mod n; licznik:=licznik+1;

Bardziej szczegółowo

SYLABUS DOTYCZY CYKLU KSZTAŁCENIA realizacja w roku akademickim 2016/2017

SYLABUS DOTYCZY CYKLU KSZTAŁCENIA realizacja w roku akademickim 2016/2017 Załącznik nr 4 do Uchwały Senatu nr 430/01/2015 SYLABUS DOTYCZY CYKLU KSZTAŁCENIA 2014-2018 realizacja w roku akademickim 2016/2017 1.1. PODSTAWOWE INFORMACJE O PRZEDMIOCIE/MODULE Nazwa przedmiotu/ modułu

Bardziej szczegółowo

Monitory. Jarosław Kuchta

Monitory. Jarosław Kuchta Monitory Jarosław Kuchta Co to jest monitor Monitor to zebrane w jednej konstrukcji programowej zmienne i operacje na tych zmiennych. Część tych operacji jest udostępnianych na zewnątrz monitora. Tylko

Bardziej szczegółowo

Detekcja zakleszczenia (1)

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

Bardziej szczegółowo

Techniki komputerowe w robotyce

Techniki komputerowe w robotyce Techniki komputerowe w robotyce Wykład ostatni Błędy systemów komputerowych źródła i klasyfikacja Robert Muszyński KCiR, W4, PWr Skład FoilTEX c R. Muszyński 2012-2015 Błędy systemów komputerowych Błąd

Bardziej szczegółowo

Systemy rozproszone. na użytkownikach systemu rozproszonego wrażenie pojedynczego i zintegrowanego systemu.

Systemy rozproszone. na użytkownikach systemu rozproszonego wrażenie pojedynczego i zintegrowanego systemu. Systemy rozproszone Wg Wikipedii: System rozproszony to zbiór niezależnych urządzeń (komputerów) połączonych w jedną, spójną logicznie całość. Połączenie najczęściej realizowane jest przez sieć komputerową..

Bardziej szczegółowo

Problemy czytelników i pisarzy oraz 5 ucztujących filozofów

Problemy czytelników i pisarzy oraz 5 ucztujących filozofów Problemy czytelników i pisarzy oraz 5 dr inż. Sławomir Samolej Katedra Informatyki i Automatyki Politechnika Rzeszowska Program przedmiotu oparto w części na materiałach opublikowanych na: http://wazniak.mimuw.edu.pl/

Bardziej szczegółowo

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

Programowanie współbieżne Wykład 2. Rafał Skinderowicz Programowanie współbieżne Wykład 2 Rafał Skinderowicz Program współbieżny a sekwencyjny Program zapis algorytmu, ciąg instrukcji do wykonania przez procesor: statyczny sekwencja instrukcji przekształcających

Bardziej szczegółowo

Zapoznanie z technikami i narzędziami programistycznymi służącymi do tworzenia programów współbieżnych i obsługi współbieżności przez system.

Zapoznanie z technikami i narzędziami programistycznymi służącymi do tworzenia programów współbieżnych i obsługi współbieżności przez system. Wstęp Zapoznanie z technikami i narzędziami programistycznymi służącymi do tworzenia programów współbieżnych i obsługi współbieżności przez system. Przedstawienie architektur sprzętu wykorzystywanych do

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

Podstawy współbieżności

Podstawy współbieżności Podstawy współbieżności Algorytmy i struktury danych. Wykład 6. Rok akademicki: 2010/2011 Od koncepcji współbieżności do systemów rozproszonych Współbieżnośd rozważany na poziomie koncepcyjnym sposób realizacji

Bardziej szczegółowo