Synchronizacja procesów
|
|
- Antonina Rudnicka
- 6 lat temu
- Przeglądów:
Transkrypt
1 Synchronizacja procesów Problem sekcji krytycznej. Sprzętowe środki synchronizacji. Semafory. Klasyczne problemy synchronizacji. Monitory. Bariery. Przykłady synchronizacji procesów: Solaris, Windows XP/Vista/7/8/10, Linux. Zakleszczenia. Wiesław Płaczek Systemy Operacyjne: Wykład 5 1
2 Problem sekcji krytycznej Weźmy n procesów rywalizujących o dostęp do wspólnych (dzielonych) danych. Każdy proces ma segment kodu zwany sekcją krytyczną (critical section), w którym może korzystać ze wspólnych danych. Problem: Należy zapewnić, że kiedy jeden proces wykonuje sekcję krytyczną, wówczas żaden inny proces nie jest dopuszczany do wykonywania swojej sekcji krytycznej. Ø Wykonywanie sekcji krytycznej powinno podlegać wzajemnemu wykluczaniu (mutual exclusion). Wiesław Płaczek Systemy Operacyjne: Wykład 5 2
3 Struktura typowego procesu do { sekcja wejściowa sekcja krytyczna sekcja wyjściowa reszta } while (1); Wiesław Płaczek Systemy Operacyjne: Wykład 5 3
4 Warunki sekcji krytycznej 1. Wzajemne wykluczanie: Jeśli jeden proces wykonuje swoją sekcję krytyczną, to żaden inny proces nie działa w sekcji krytycznej. 2. Postęp: Jeżeli żaden proces nie wykonuje swojej sekcji krytycznej oraz istnieją procesy, które chcą wejść do swoich sekcji krytycznych, to tylko procesy nie wykonujące swoich reszt mogą rywalizować o wejście do sekcji krytycznej i wybór ten nie może być odwlekany w nieskończoność. 3. Ograniczone czekanie: Między chwilą zgłoszenia przez proces chęci wejścia do swojej sekcji krytycznej a chwilą uzyskania na to pozwolenie musi istnieć wartość graniczna liczby wejść innych procesów do sekcji krytycznych. ü ü Zakładamy, że każdy proces jest wykonywany z niezerową szybkością. Nie robimy założenia co do względnej szybkości n procesów. Wiesław Płaczek Systemy Operacyjne: Wykład 5 4
5 Rozwiązanie dla dwu procesów (algorytm Petersona) Dwa procesy: P 0 i P 1 zawierające sekcje krytyczne. Dzielone zmienne: int kolej = 0; /* czyja kolej wejścia do sekcji krytycznej */ bool flaga[2] = {false,false}; /* chęć wejścia do SK */ Ø Kod dla procesu P i (i = 0, 1; j = 1 i) ü do { flaga[i] = true; kolej = j; while (flaga[j] && kolej == j) ; /* czekaj */ sekcja krytyczna flaga[i] = false; reszta } while (1); Spełnia wszystkie trzy warunki poprawnego rozwiązania problemu sekcji krytycznej sprawdzić! Wiesław Płaczek Systemy Operacyjne: Wykład 5 5
6 Rozwiązanie dla wielu procesów Algorytm piekarni (Bakery algorithm) Sekcja krytyczna dla n procesów: Ø Spełnia wszystkie warunki sekcji krytycznej! Przed wejściem do sekcji krytycznej proces otrzymuje numer. Posiadacz najmniejszego numeru wchodzi do sekcji krytycznej. Jeżeli procesy P i i P j otrzymały ten sam numer oraz i < j, to P i będzie obsłużony najpierw. Schemat numerowania generuje niemalejące ciągi kolejnych liczb naturalnych, tzn. 1, 2, 3, 3, 3, 4, 5, 5,... Notacja: (a,b) < (c,d), jeżeli a < c lub jeżeli a = c i b < d. Dzielone zmienne: bool wybieranie[n]; wszystkie zainicjowane na: false int numer[n]; wszystkie zainicjowane na: 0 Wiesław Płaczek Systemy Operacyjne: Wykład 5 6
7 Algorytm piekarni Proces P i do { wybieranie[i] = true; numer[i] = max(numer[0],..., numer[n-1]) + 1; wybieranie[i] = false; for (j = 0; j < n; j++){ while (wybieranie[j]) ; while ( numer[j]!= 0 && } sekcja krytyczna numer[i] = 0; reszta } while (1); (numer[j],j) < (numer[i],i) ) ; Wiesław Płaczek Systemy Operacyjne: Wykład 5 7
8 Sprzętowe środki synchronizacji Na jednym procesorze problem sekcji krytycznej można rozwiązać zakazując przerwań w trakcie modyfikacji zmiennej dzielonej (niewydajne na wieloprocesorach!). Niepodzielne rozkazy: np. TestAndSet lub Swap bool TestAndSet(bool *cel){ bool zwracaj = *cel; *cel = true; return zwracaj; } void Swap(bool *a,bool *b){ bool pom = *a; *a = *b; *b = pom; } Wiesław Płaczek Systemy Operacyjne: Wykład 5 8
9 Dzielona zmienna: Proces P i Ø Rozkaz TestAndSet: do { Wzajemne wykluczanie bool zamek = false; while ( TestAndSet(&zamek) ) ; /* nic nie rób */ sekcja krytyczna zamek = false; reszta } while (1); Ø Rozkaz Swap: lokalna zmienna: bool klucz; do { klucz = true; while (klucz) Swap(&zamek,&klucz); /* nic nie rób */ sekcja krytyczna zamek = false; reszta } while (1); L Nie spełniają warunku ograniczonego czekania! Dlaczego? Wiesław Płaczek Systemy Operacyjne: Wykład 5 9
10 Semafory Semafor (semaphore) pierwszy mechanizm synchronizacyjny w językach wysokiego poziomu (Dijkstra, 1965): semaphore abstrakcyjny typ danych; semaphore S; zmienna semaforowa o wartościach całkowitych 0. Operacje na semaforze: Opuszczenie (zajęcie) semafora: P (hol. passeren, proberen): P(S): while (S <= 0) ; /* czekaj */ S--; Podniesienia (zwolnienie) semafora: V (hol. vrijmaken, verhogen): V(S): S++; Ø Operacje te muszą być niepodzielne! Powyższy semafor nazywany jest semaforem ogólnym lub liczącym (counting semaphore): S = 0,1,2,... Może być też semafor binarny: S = 0,1 (tylko dwie wartości). Ø Semafor liczący można zaimplementować przy pomocy semafora binarnego i odwrotnie. Wiesław Płaczek Systemy Operacyjne: Wykład 5 10
11 Implementacja semaforów Podstawową wadą powyższej definicji semafora jest to, że operacja P zawiera aktywne czekanie (busy waiting), które marnuje cykle procesora. Ø Taki semafor nazywany jest wirującą blokadą (spinlock). Implementacja semafora bez aktywnego czekania: Semafor jako rekord: typedef struct { } semaphore; int value; struct process *list; /* lista procesów */ SO dostarcza dwie proste operacje (elementarne funkcje systemowe): block wstrzymuje (blokuje) proces, który ją wywołuje; wakeup wznawia zablokowany proces (zmienia stan na gotowy); Lista procesów czekających pod semaforem np. kolejka FIFO (bloków kontrolnych procesów). Wiesław Płaczek Systemy Operacyjne: Wykład 5 11
12 Implementacja operacji semaforowych Operacje P i V (wartość semafora może być tutaj ujemna): void P(semaphore S) { S.value--; if (S.value < 0) { dodaj ten proces do S.list; block(); } } void V(semaphore S) { S.value++; if (S.value <= 0){ usuń jakiś proces P z S.list; wakeup(p); } } Ø Powyższe operacje P i V muszą być niepodzielne w środowisku jednoprocesorowym można to zrealizować przez wprowadzenie zakazu przerwań w trakcie ich wykonywania, a na wieloprocesorach przez spinlock. Wiesław Płaczek Systemy Operacyjne: Wykład 5 12
13 Zakleszczenia i głodzenie W rozwiązaniach opartych o semafory mogą pojawiać się problemy: Zakleszczenie (blokada) (deadlock): Kilka procesów czeka na zdarzenie, które może być spowodowane tylko przez jeden z czekających procesów. Ø Przykład: dwa semafory semaphore S = 1, Q = 1; Proces P0 P(S); Proces P1 P(Q); P(Q); P(S); V(S); V(Q); V(Q); V(S); (Za)głodzenie (blokowanie nieskończone) (starvation): Proces nie zostaje wznowiony, mimo iż zdarzenie, na które czeka występuje dowolną ilość razy za każdym razem, gdy proces ten mógłby być wznowiony wybierany jest inny czekający proces. Wiesław Płaczek Systemy Operacyjne: Wykład 5 13
14 Klasyczne problemy synchronizacji Wzajemne wykluczanie ćwiczenia. Producent Konsument ćwiczenia. Czytelnicy i pisarze: Dwie grupy procesów: czytelnicy i pisarze konkurują o dostęp do wspólnego zasobu czytelni. Czytelnik odczytuje informację zgromadzoną w czytelni i może to robić razem z innymi czytelnikami, natomiast pisarz zapisuje nową informację i musi przebywać sam w czytelni. Możliwe rozwiązania: 1) Czytelnik powinien wejść do czytelni najszybciej jak to możliwe. è Możliwość zagłodzenia pisarzy! 2) Pisarz powinien wejść do czytelni najszybciej jak to możliwe. è Możliwość zagłodzenia czytelników! 3) Czytelnicy i pisarze wpuszczani są do czytelni na przemian, np. według kolejności zgłoszeń, przy czym pisarze wchodzą pojedynczo, natomiast wchodzący czytelnik może wpuścić do czytelni wszystkich czekających czytelników. è Brak zagłodzenia! Wiesław Płaczek Systemy Operacyjne: Wykład 5 14
15 Problem pięciu filozofów v Ø Pięciu filozofów siedzi przy wspólnym okrągłym stole i myśli. Co jakiś czas filozofowie muszą się posilić. Przed każdym filozofem stoi talerz, a obok talerza widelec. Na środku stołu stoi półmisek z rybą. Rybę należy jeść dwoma widelcami, więc filozof może zacząć jeść tylko gdy będzie miał obok siebie dwa wolne widelce. Po spożyciu posiłku filozof odkłada oba widelce na stół i ponownie zatapia się w myśleniu, itd. Możliwe rozwiązania: 1) Każdy filozof czeka aż jeden widelec (np. lewy) będzie wolny i podnosi go, a następnie czeka aż będzie wolny drugi widelec i też go podnosi. è Możliwość zakleszczenia każdy filozof podniesie jeden widelec. 2) Głodny filozof podnosi jednocześnie dwa widelce wtedy gdy są wolne. è Możliwość zagłodzenia jeżeli któryś z filozofów będzie miał żarłocznych sąsiadów, tak że nigdy dwa widelce obok jego talerza nie będą wolne, to nie będzie mógł jeść i zostanie zagłodzony. 3) Nad procesem jedzenia filozofów czuwa lokaj, który dopuszcza do rywalizacji o widelce tylko czterech filozofów naraz, a ci podnoszą widelce sekwencyjnie (np. najpierw lewy, potem prawy). Wiesław Płaczek Systemy Operacyjne: Wykład 5 15
16 Monitory Monitor konstrukcja do synchronizacji stosowana w językach wysokiego poziomu; umożliwia bezpieczne dzielenie danych abstrakcyjnego typu między współbieżnymi procesami. monitor nazwa_monitora { // deklaracje zmiennych dzielonych procedure P1(...) {... } procedure P2(...) {... }... procedure Pn(...) {... } kod inicjalizacyny (...) {... } } Wiesław Płaczek Systemy Operacyjne: Wykład 5 16
17 Cechy monitora Procedura zdefiniowana wewnątrz monitora może korzystać tylko ze zmiennych lokalnych monitora i swoich parametrów. Zmienne lokalne monitora są dostępne tylko za pośrednictwem lokalnych procedur monitora. Konstrukcja monitora gwarantuje, że w jego wnętrzu może być aktywny tylko jeden proces (sekcja krytyczna). W celu zwiększenia funkcjonalności monitora wprowadza się dodatkowy mechanizm warunek (condition): Ø condition x, y; zmienne typu condition; Zmienne warunkowe mogą być użyte tylko z operacjami wait i signal: Operacja x.wait(); oznacza, że proces ją wywołujący zostaje zawieszony do chwili, gdy inny proces wywoła operację x.signal(); Operacja x.signal(); wznawia dokładnie jeden z zawieszonych procesów jeżeli nie ma takich procesów, to operacja ta nie ma żadnego efektu. Kolejność wznawiania procesów zależy od implementacji kolejki procesów czekających pod daną zmienną warunkową. Wiesław Płaczek Systemy Operacyjne: Wykład 5 17
18 Schemat monitora Kolejki związane z warunkami x, y x y Dane dzielone Kolejka wejściowa... Operacje Kod inicjujący Ø Monitor można zaimplementować przy pomocy semaforów. Wiesław Płaczek Systemy Operacyjne: Wykład 5 18
19 Bariery Ø Niektóre aplikacje podzielone są na fazy i stawiają wymaganie, iż żaden proces nie może przejść do następnej fazy zanim wszystkie procesy nie będą gotowe do przejścia do tej fazy. Na końcu każdej fazy umieszczana jest bariera dedykowany mechanizm synchronizacyjny dla grupy procesów. Kiedy proces osiąga barierę, jest blokowany do momentu, aż wszystkie procesy osiągną barierę dopiero wówczas wszystkie procesy mogą przejść do następnej fazy. A A A C B Bariera C B Bariera Bariera B C D Czas D D Wiesław Płaczek Systemy Operacyjne: Wykład 5 19
20 Synchronizacja w systemie Solaris Ø W celu kontrolowania dostępu do sekcji krytycznych w systemie Solaris zaimplementowano: muteksy adaptacyjne (rodzaj semafora binarnego), zmienne warunkowe, semafory, blokady do czytania lub pisania, turnikety. Muteks adaptacyjny (adaptive mutex) stosowany do ochrony krytycznych danych dla krótkich segmentów kodu (co najwyżej kilkaset rozkazów). W systemach jednoprocesorowych wątek wstrzymany przez muteks adaptacyjny jest usypiany. W systemach wieloprocesorowych wątek jest usypiany tylko jeśli wątek utrzymujący muteks jest nieaktywny, w przeciwnym razie zamek realizuje aktywne czekanie (wirującą blokadę). Do synchronizacji dłuższych segmentów kodu używane są zmienne warunkowe i semafory czekające wątki są usypiane. Blokady do czytania i pisania (readers-writers locks) stosuje się do ochrony danych o częstym dostępie, zwykle do czytania możliwość współbieżnego czytania przez wiele wątków (drogie w realizacji; tylko dla długich sekcji kodu). Turnikety (turnstiles) służą do porządkowania listy wątków czekających na pozyskanie zamka adaptacyjnego albo blokady do czytania lub pisania są to struktury kolejek zawierające wątki zablokowane na muteksie lub blokadzie. Wiesław Płaczek Systemy Operacyjne: Wykład 5 20
21 Synchronizacja w Windows XP/Vista/7/8/10 W systemie jednoprocesorowym jądro sięgając po jakiś zasób globalny maskuje czasowo przerwania mogące z niego korzystać. W systemie wieloprocesorowym dostęp do zasobów globalnych chroniony jest przy pomocy wirujących blokad. Do synchronizacji wątków poza jądrem służą obiekty dyspozytora (dispatcher objects). Używając obiektu dyspozytora wątek może korzystać z różnych mechanizmów synchronizacji: muteksy, semafory, zdarzenia itd. Zdarzenia (events) mechanizm synchronizacji podobny do zmiennych warunkowych (mogą powiadamiać wątek o spełnieniu żądanego warunku). Obiekty dyspozytora mogą znajdować się w stanie sygnalizowania (signaled) lub niesygnalizowania (nonsignaled). Stan sygnalizowania oznacza, że obiekt jest dostępny i wątek nie zablokuje się przy próbie jego pozyskania. Stan niesygnalizowania wskazuje, że obiekt nie jest dostępny i przy próbie jego pozyskania wątek zostanie zablokowany. Istnieje związek między stanem obiektu dyspozytora a stanem wątku: sygnalizowany/niesygnalizowany obiekt wątek w stanie gotowości/czekania. Wiesław Płaczek Systemy Operacyjne: Wykład 5 21
22 Synchronizacja w systemie Linux Jądro Linuksa od wersji 2.6 jest w pełni wywłaszczalne proces wykonywany w trybie jądra może zostać wywłaszczony przez inny proces; poprzednie wersje jądra były niewywłaszczalne. Linux dostarcza typu atomic_t do operacji atomowych, muteksów, wirujących blokad oraz semaforów do synchronizacji w jądrze. W systemach jednoprocesorowych zamiast wirujących blokad używane są wywołania systemowe preempt_enable() i preempt_disable() do włączania i wyłączania wywłaszczeń jądra. Dodatkowo jądro jest niewywłaszczalne kiedy jakieś zadanie jądra utrzymuje blokadę wywłaszczanie jest wtedy niebezpieczne! Wirujące blokady, jak też włączanie i wyłączanie wywłaszczeń jądra stosowane są tylko do krótkich sekcji krytycznych, natomiast do dłuższych wykorzystywane są semafory. Synchronizacja P-wątków Interfejs Pthreads API dostarcza muteksów i zmiennych warunkowych jako mechanizmów synchronizacji wątków standardu POSIX. Wiele systemów implementujących P-wątki dostarcza ponadto semafory. Wiesław Płaczek Systemy Operacyjne: Wykład 5 22
23 Zakleszczenia Model systemu. Charakterystyka zakleszczenia. Metody postępowania z zakleszczeniami. Zapobieganie zakleszczeniom. Unikanie zakleszczeń. Wykrywanie zakleszczenia. Likwidowanie zakleszczenia. Mieszane metody postępowania z zakleszczeniami. Wiesław Płaczek Systemy Operacyjne: Wykład 5 23
24 Model systemu System składa się z zasobów: pamięć, cykle procesora, pliki, urządzenia WE/WY itd., o które rywalizują procesy. Każdy proces korzysta z zasobu według schematu: 1. Zamówienie (żądanie, request) jeżeli nie może być zrealizowane natychmiast, to proces musi czekać do chwili otrzymania zasobu. 2. Użycie (use) proces może korzystać z zasobu. 3. Zwolnienie (release) proces oddaje zasób. Ø q Stan zakleszczenia, inaczej blokady (deadlock): każdy proces w zbiorze procesów czeka na zdarzenie, które może być spowodowane tylko przez inny proces z tego samego zbioru, np. zwolnienie zajętego zasobu, na który proces oczekuje. Przykłady: System ma trzy napędy DVD-RW: każdy z procesów P0, P1 i P2 jest w posiadaniu jednego napędu i zamawia dodatkowy napęd. Semafory A i B są ustawione na 1: P0 P(A); P(B); P1 P(B); P(A); Wiesław Płaczek Systemy Operacyjne: Wykład 5 24
25 Charakterystyka zakleszczenia Ø Zakleszczenie może powstać wtedy, kiedy w systemie spełnione są jednocześnie cztery warunki: 1. Wzajemne wykluczanie: Tylko jeden proces może używać zasobu w tym samym czasie (zasób niepodzielny). 2. Przetrzymywanie i czekanie: Proces mający jeden zasób czeka na przydział dodatkowych zasobów będących w posiadaniu innych procesów. 3. Brak wywłaszczeń: Zasoby nie podlegają wywłaszczaniu. 4. Czekanie cykliczne: Istnieje zbiór czekających procesów {P 1,P 2,...,P n }, takich że P 1 czeka na zasób przetrzymywany przez P 2, P 2 czeka na zasób przetrzymywany przez P 3,..., a P n czeka na zasób przetrzymywany przez P 1. Graf przydziału zasobów graf skierowany złożony ze zbioru wierzchołków W i zbioru krawędzi K. Zbiór wierzchołków W składa się z dwu podzbiorów: P={P 1,...,P n } zbiór wszystkich procesów, Z={Z 1,...,Z n } zbiór typów zasobów. Krawędź zamówienia: P i Z j ; Krawędź przydziału: Z j P i. Wiesław Płaczek Systemy Operacyjne: Wykład 5 25
26 Przykłady grafów przydziału zasobów Z 1 Z 2 Z 1 Z 3 Krawędź zamówienia Krawędź przydziału P 1 P 2 P 3 P 1 P 2 P 3 Z 2 Z 4 Graf przydziału bez zakleszczenia Wiesław Płaczek Systemy Operacyjne: Wykład 5 26 Z 2 Z 4 Graf przydziału z zakleszczeniem 1. Graf nie zawiera cyklu nie ma zakleszczenia! 2. Graf zawiera cykl, to: a) Zasoby w jednym egzemplarzu zakleszczenie! b) Zasoby w wielu egzemplarzach istnieje możliwość zakleszczenia!
27 Metody postępowania z zakleszczeniami Ø Z problemem zakleszczeń można sobie radzić na trzy różne sposoby: Zastosować protokół gwarantujący, że system nigdy nie wejdzie w stan zakleszczenia. Pozwolić systemowi na zakleszczenia, po czym podjąć działania w celu ich wykrycia i usunięcia. Zlekceważyć problem, udając, że zakleszczenia nigdy się nie pojawią w systemie ( algorytm strusia ) stosowane przez większość systemów operacyjnych, w tym UNIX i Windows. Wiesław Płaczek Systemy Operacyjne: Wykład 5 27
28 Zapobieganie zakleszczeniom Ø Zapobiec spełnieniu jednego z warunków koniecznych zakleszczeń: Wzajemne wykluczanie konieczne tylko dla zasobów niepodzielnych; nie wymagane dla zasobów podzielnych. Przetrzymywanie i oczekiwanie zagwarantować, że kiedy proces żąda zasobu, to nie posiada innych zasobów, np. wymagać by proces zamawiał i dostawał wszystkie swoje zasoby zanim rozpocznie działanie lub tylko wtedy gdy nie ma żadnych zasobów. L Słabe wykorzystanie zasobów, możliwość głodzenia procesów. Brak wywłaszczeń: Jeśli proces będący w posiadaniu pewnych zasobów żąda zasobu, którego nie można natychmiast przydzielić, to musi zwolnić wszystkie posiadane zasoby. Wywłaszczone zasoby są dodawane do listy zasobów, na które proces czeka. Proces zostanie wznowiony tylko wtedy, gdy będzie mógł odzyskać utracone zasoby oraz otrzymać nowo żądane zasoby. Czekanie cykliczne wymuszenie całkowitego uporządkowania wszystkich typów zasobów i wymaganie, aby każdy proces zamawiał zasoby w porządku rosnącym ich numeracji. Wiesław Płaczek Systemy Operacyjne: Wykład 5 28
29 Unikanie zakleszczeń Ø Wymaga informacji a priori o zapotrzebowaniach na zasoby. W najprostszym i najbardziej użytecznym modelu wymaga się, aby każdy proces deklarował maksymalną liczbę zasobów każdego typu, których będzie potrzebował. Algorytm unikania zakleszczeń (deadlock avoidance) sprawdza dynamicznie stan przydziału zasobów, by zapewnić, że nigdy nie dojdzie do czekania cyklicznego. Stan przydziału zasobów jest określony przez liczbę dostępnych i przydzielonych zasobów oraz maksymalne zapotrzebowania procesów. Wiesław Płaczek Systemy Operacyjne: Wykład 5 29
30 Unikanie zakleszczeń c.d. Kiedy proces żąda dostępnego zasobu, system musi sprawdzić, czy natychmiastowe przydzielenie tego zasobu zachowa system w stanie bezpiecznym (safe state). System jest w stanie bezpiecznym, jeżeli istnieje ciąg bezpieczny procesów. Ciąg procesów {P 1,P 2,...,P n } jest bezpieczny, jeśli dla każdego procesu P i jego potencjalne zapotrzebowanie na zasoby można zaspokoić przez aktualnie dostępne zasoby oraz zasoby użytkowane przez wszystkie procesy P j dla j < i. System jest w stanie bezpiecznym brak zakleszczenia! System jest w stanie zagrożenia istnieje możliwość powstania zakleszczenia! Unikanie zakleszczeń gwarancja, że nigdy nie pojawi się stan zagrożenia! Wiesław Płaczek Systemy Operacyjne: Wykład 5 30
31 Algorytmy unikania zakleszczeń Algorytm grafu przydziału zasobów: Ø Dla zasobów, których każdy typ ma pojedynczy egzemplarz. Dodatkowy typ krawędzi: krawędź deklaracji P i Z j wskazuje, że proces P i może zamówić kiedyś zasób Z j ; reprezentowana linią przerywaną. Krawędź deklaracji przechodzi w krawędź zamówienia, gdy proces zamawia zasób. Gdy zasób jest zwalniany krawędź zamówienia przechodzi z powrotem w krawędź deklaracji. Proces musi a priori zadeklarować zapotrzebowanie na potrzebne zasoby. Zamówienie może być spełnione tylko wtedy, gdy nie doprowadzi do powstania cyklu w grafie koszt szukania cyklu: n 2 (n liczba procesów). Wiesław Płaczek Systemy Operacyjne: Wykład 5 31
32 Algorytmy unikania zakleszczeń c.d. Algorytm bankiera (banker s algorithm): Ø Dla zasobów wielokrotnych (tzn. każdy typ może mieć wiele egzemplarzy). Każdy proces musi zadeklarować maksymalną liczbę egzemplarzy każdego typu, które będą mu potrzebne (nie większa od liczby wszystkich zasobów w systemie). Kiedy proces zamawia zbiór zasobów, sprawdza się czy ich przydzielenie pozostawi system w stanie bezpiecznym: Ø jeżeli tak zasoby są przydzielane, Ø jeżeli nie proces musi poczekać na zwolnienie dostatecznej ilości zasobów. Koszt sprawdzania stanu bezpiecznego: m n 2, gdzie m ilość typów zasobów. Wiesław Płaczek Systemy Operacyjne: Wykład 5 32
33 Wykrywanie zakleszczenia Ø Systemy nie stosujące zapobiegania zakleszczeniom muszą posiadać: Algorytm wykrywania ewentualnego zakleszczenia; Algorytm likwidowania wykrytego zakleszczenia. Typy zasobów reprezentowane pojedynczo: Algorytm wykrywania zakleszczeń oparty o graf oczekiwania, który powstaje z grafu przydziału zasobów po usunięciu węzłów reprezentujących zasoby, np. P i P j oznacza, że proces P i czeka na zasób będący w posiadaniu procesu P j. Okresowo wykonuje się powyższy algorytm, który szuka cyklu w grafie. Koszt algorytmu (liczba operacji): n 2 (n liczba wierzchołków grafu). Wiesław Płaczek Systemy Operacyjne: Wykład 5 33
34 Wykrywanie zakleszczenia c.d. Typy zasobów reprezentowane wielokrotnie: Algorytm wykrywania zakleszczenia podobny do algorytmu bankiera. Koszt algorytmu: m n 2 (m ilość typów zasobów). Używanie algorytmu wykrywania zakleszczenia: Ø Częstość wywoływania algorytmu zależy od tego jak często występują zakleszczenia i ile procesów ulega zakleszczeniu. ü Wykonywanie algorytmu przy każdym zamówieniu kosztowne! ü Wykonywanie algorytmu periodycznie (np. raz na godzinę) lub gdy wyraźnie spadnie wykorzystanie procesora może powstać wiele cykli! Wiesław Płaczek Systemy Operacyjne: Wykład 5 34
35 Likwidowanie zakleszczenia Zakończenie procesu: Zaniechanie wszystkich zakleszczonych procesów; Usuwanie procesów pojedynczo, aż do wyeliminowania cyklu zakleszczenia. Ø Jak wybrać proces do zakończenia: ü Jaki jest priorytet procesu? ü Jak długo proces wykonywał obliczenia i ile czasu potrzebuje do zakończenia? ü Ile zasobów i jakiego typu używa proces? ü Ilu jeszcze zasobów proces potrzebuje do zakończenia działania? ü Ile procesów trzeba będzie zakończyć? ü Czy proces jest interakcyjny czy wsadowy? Wiesław Płaczek Systemy Operacyjne: Wykład 5 35
36 Likwidowanie zakleszczenia c.d. Wywłaszczanie zasobów: Wybór ofiary: które zasoby i które procesy mają być wywłaszczone kryterium minimum kosztów; Wycofanie procesu do pewnego bezpiecznego stanu i wznowienie go z tego stanu w późniejszym czasie może być trudne! Głodzenie: do roli ofiary może być wybierany wciąż ten sam proces potrzebne ograniczenie; uwzględnienie liczby wycofań przy ocenie kosztów. Wiesław Płaczek Systemy Operacyjne: Wykład 5 36
37 Mieszane metody postępowania Połączenie trzech metod postępowania z zakleszczeniami: zapobieganie, unikanie, wykrywanie i likwidowanie, pozwala na uzyskanie optymalnego podejścia do problemu zakleszczeń dla poszczególnych klas zasobów w systemie. Podział zasobów na hierarchicznie uporządkowane klasy, np. Zasoby wewnętrzne (bloki kontrolne procesów itp.); Pamięć główna; Zasoby zadania (przydzielane urządzenia i pliki); Wymienny obszar pamięci (pamięć pomocnicza). Używanie najbardziej odpowiedniej techniki postępowania z zakleszczeniami wewnątrz każdej z klas zasobów. ü Zakleszczenia dotyczą zwykle nie więcej niż jednej klasy Ø System mniej lub wcale nie narażony na zakleszczenia! Wiesław Płaczek Systemy Operacyjne: Wykład 5 37
38 Zagadnienia 1. Na czym polega problem sekcji krytycznej i jakie są jej warunki? Podać rozwiązania tego problemu dla dwu oraz większej liczby procesów. 2. Podać przykłady sprzętowych środki synchronizacji oraz ich użycia do realizacji wzajemnego wykluczania procesów? 3. Omówić semafor jako mechanizm synchronizacji procesów oraz jego możliwe implementacje. Jakie wymagania stawia się wobec operacji semaforowych? 4. Jakie problemy mogą pojawić się w rozwiązaniach z użyciem semaforów? Przedstawić problemy czytelników i pisarzy oraz pięciu filozofów podać ich możliwe rozwiązania. 5. Omówić monitory i bariery jako mechanizmy synchronizacji procesów. 6. Porównać metody synchronizacji w systemach operacyjnych Solaris, Windows XP/Vista/7/8/10 oraz Linux. 7. Co to jest zakleszczenie i jakie są jego warunki? Do czego służy graf przydziału zasobów? Jaki jest związek między cyklem w grafie a zakleszczeniem? 8. Jakie są metody zapobiegania, unikania oraz wykrywania i likwidowania zakleszczeń. Wiesław Płaczek Systemy Operacyjne: Wykład 5 38
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ółowoSynchronizacja 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ółowoPrzeplot. 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ółowoJ. 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ółowoPrzetwarzanie 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ółowoJ. 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ółowoProces 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ółowoSystemy 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ółowoProgramowanie 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ółowoProgramowanie 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ółowoWprowadzenie do programowania współbieżnego
Wprowadzenie do programowania współbieżnego Marcin Engel Instytut Informatyki Uniwersytet Warszawski Zamiast wstępu... Zamiast wstępu... Możliwość wykonywania wielu akcji jednocześnie może ułatwić tworzenie
Bardziej szczegółowoProgramowanie 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ółowoWykł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ółowoSemafor 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ółowoProces 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ółowoSOP2 - 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ółowoprocesów Współbieżność i synchronizacja procesów Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak
Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak Plan wykładu Abstrakcja programowania współbieżnego Instrukcje atomowe i ich przeplot Istota synchronizacji Kryteria poprawności programów współbieżnych
Bardziej szczegółowoSemafory. // G - globalna dla wszystkich. // Wada - aktywne oczekiwanie Test_and_Set(Li); exit when Li = 0; end loop sekcja_krytyczna(i); G := 0;
Semafory Rozwiązanie problemu wzajemnego wykluczania Bez dodatkowego wsparcia sprzętowego i programowego Zakładamy jedynie, że zapis do i odczyt z pamięci wspólnej są operacjami atomowymi (czyli istnieje
Bardziej szczegółowoKlasyczne 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ółowoProgramowanie 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ółowoSemafor 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ółowoWYKŁ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ółowoIngerencja 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ółowoSYSTEMY OPERACYJNE WYKLAD 6 - procesy
Wrocław 2007 SYSTEMY OPERACYJNE WYKLAD 6 - procesy Paweł Skrobanek C-3, pok. 323 e-mail: pawel.skrobanek@pwr.wroc.pl www.equus.wroc.pl/studia.html 1 Zasoby: PROCES wykonujący się program ; instancja programu
Bardziej szczegółowoProblem 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ółowoSystemy 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ółowoWies!aw P!aczek Systemy Operacyjne: Wyk!ad 5 1
Problem sekcji krytycznej. Sprz"towe #rodki synchronizacji. Semafory. Klasyczne problemy synchronizacji. Regiony krytyczne. Monitory. Przyk!ady synchronizacji procesów:!! Solaris,!! Windows XP/Vista/7,!!
Bardziej szczegółowoSystemy 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ółowoMonitory. 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ółowoWykł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ółowoZakleszczenie. 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ółowoPrezentacja systemu RTLinux
Prezentacja systemu RTLinux Podstawowe założenia RTLinux jest system o twardych ograniczeniach czasowych (hard real-time). Inspiracją dla twórców RTLinux a była architektura systemu MERT. W zamierzeniach
Bardziej szczegółowoProblemy 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ółowoMechanizmy pracy równoległej. Jarosław Kuchta
Mechanizmy pracy równoległej Jarosław Kuchta Zagadnienia Algorytmy wzajemnego wykluczania algorytm Dekkera Mechanizmy niskopoziomowe przerwania mechanizmy ochrony pamięci instrukcje specjalne Mechanizmy
Bardziej szczegółowoSemafory. - 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ółowoSystemy 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ółowosynchronizacji 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ółowoSynchronizacja 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ółowoProces 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ółowosynchronizacji 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ółowoProgramowanie 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ółowo4. 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ółowoSYSTEMY CZASU RZECZYWISTEGO - VxWorks
WZAJEMNE WYKLUCZANIE Wiele metod. Np. wyłączanie przerwań: funkcja() //... Int blokada = intlock(); // Obszar krytyczny, któremu nie możemy przerwać intunlock(blokada); wyłączanie wywłaszczania: funkcja()
Bardziej szczegółowo4. 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ółowoAutor: dr inż. Zofia Kruczkiewicz, Programowanie aplikacji internetowych 1
Wątki 1. Wątki - wprowadzenie Wątkiem nazywamy sekwencyjny przepływ sterowania w procesie, który wykonuje dany program np. odczytywanie i zapisywanie plików Program Javy jest wykonywany w obrębie jednego
Bardziej szczegółowoProgramowanie 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ółowoProgramowanie współbieżne Wykład 9 Synchronizacja dostępu do współdzielonych zasobów. Iwona Kochańska
Programowanie współbieżne Wykład 9 Synchronizacja dostępu do współdzielonych zasobów Iwona Kochańska Sekcja krytyczna Instrukcje wykonywane na zmiennych współdzielonych tworzą sekcję krytyczną. Instrukcje
Bardziej szczegółowo1. 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ółowoSynchronizacja procesów
Synchronizacja procesów - Współbieżność i synchronizacja procesów - Systemowe mechanizmy synchronizacji procesów Systemy operacyjne Wykład 7 1 Współbieżność i synchronizacja procesów Abstrakcja programowania
Bardziej szczegółowoMateriały pomocnicze 1
TECHNIKI DZIELENIA OGRANICZONEGO ZBIORU ZASOBÓW wzajemne wyłączanie procesów od zasobów niepodzielnych PRZYDZIAŁ ZASOBÓW I PLANOWANIE zapobieganie zakleszczeniom zapewnienie dużego wykorzystania zasobów
Bardziej szczegółowoBlokady. Model systemu. Charakterystyka blokady
Blokady Stan blokady: ka dy proces w zbiorze procesów czeka na zdarzenie, które mo e byæ spowodowane tylko przez inny procesu z tego samego zbioru (zdarzeniem mo e byæ przydzia³ lub zwolnienie zasobu)
Bardziej szczegółowoProgramowanie 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ółowoProgramowanie 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ółowoDziałanie systemu operacyjnego
Budowa systemu komputerowego Działanie systemu operacyjnego Jednostka centralna dysku Szyna systemowa (magistrala danych) drukarki pamięci operacyjnej I NIC sieci Pamięć operacyjna Przerwania Przerwania
Bardziej szczegółowo1. Działania na procesach
1. Działania na procesach (1.1) Tworzenie procesu Pamiętamy, że proces "twórca" nazywany jest procesem macierzystym, zaś nowo utworzony proces to proces potomny. Każdy nowo utworzony proces może tworzyć
Bardziej szczegółowoProcesy, wątki i zasoby
Procesy, wątki i zasoby Koncepcja procesu i zasobu, Obsługa procesów i zasobów, Cykl zmian stanów procesu i kolejkowanie, Klasyfikacja zasobów, Wątki, Procesy i wątki we współczesnych systemach operacyjnych.
Bardziej szczegółowoNazwa 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ółowoProgramowanie 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ółowoProblemy współbieżności
Problemy współbieżności wyścig (race condition) synchronizacja realizowana sprzętowo (np. komputery macierzowe) realizowana programowo (bariera, sekcja krytyczna, operacje atomowe) wzajemne wykluczanie
Bardziej szczegółowoGdy kilka procesów czyta a przynajmniej jeden dokonuje zapisu wynik odczytu zależeć może od sposobu realizacji przeplotu.
Komputery i Systemy Równoległe Jędrzej Ułasiewicz 1 9. Wzajemne wykluczanie 9.1 Przeplot i współużywalność zasobów Wyróżniamy dwa rodzaje zasobów: 1. Zasoby współużywalne - mogą być wykorzystane przez
Bardziej szczegółowoWielozadaniowość w systemie Microsoft Windows
Wielozadaniowość w systemie Microsoft Windows mgr inż. Tomasz Jaworski tjaworski@kis.p.lodz.pl http://tjaworski.kis.p.lodz.pl/ Idea wielozadaniowości Proces główny Wątki Algorytm szeregowania ustala kolejność
Bardziej szczegółowoZaawansowane 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ółowoWspół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ółowoModelowanie 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ółowoDziałanie systemu operacyjnego
Działanie systemu operacyjnego Budowa systemu komputerowego Jednostka centralna Sterownik dysku Sterownik drukarki Sterownik sieci Szyna systemowa (magistrala danych) Sterownik pamięci operacyjnej Pamięć
Bardziej szczegółowo9. Problem wzajemnego wykluczania i sekcji krytycznej
J. Ułasiewicz Programowanie aplikacji współbieżnych 1 9. Problem wzajemnego wykluczania i sekcji krytycznej 9.1 Przeplot i współużywalność zasobów Wyróżniamy dwa rodzaje zasobów: 1. Zasoby współużywalne
Bardziej szczegółowoMateriały pomocnicze 1
JĄDRO SYSEMU Jądro systemu stanowi główny interfejs między sprzętem (surową maszyną), a systemem operacyjnym. JĄDRO SYSEMU inne elementy systemu jądro systemu surowa maszyna 2 PODSAWOWE UDOGODIEIA SPRZĘOWE
Bardziej szczegółowoWstę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ółowoWspółbieżność w środowisku Java
Współbieżność w środowisku Java Wątki i ich synchronizacja Zagadnienia Tworzenie wątków Stany wątków i ich zmiana Demony Synchronizacja wątków wzajemne wykluczanie oczekiwanie na zmiennych warunkowych
Bardziej szczegółowoWą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ółowoObliczenia równoległe i rozproszone w JAVIE. Michał Kozłowski 30 listopada 2003
Obliczenia równoległe i rozproszone w JAVIE Michał Kozłowski 30 listopada 2003 Wątki w JAVIE Reprezentacja wątków jako obiektów Uruchamianie i zatrzymywanie wątków Realizacja wątków Ograniczenia Mechanizmy
Bardziej szczegółowoI.Wojnicki, Tech.Inter.
Igor Wojnicki (AGH, KA) 13 maja 2012 1 / 26 Hypertext Preprocessor Igor Wojnicki Katedra Automatyki Akademia Górniczo-Hutnicza w Krakowie 13 maja 2012 $Id: php1.tex,v 1.1 2011/11/19 19:14:25 wojnicki Exp
Bardziej szczegółowoProgramowanie 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ółowoProblem 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ółowoProgramowanie wspóªbie»ne
1 Programowanie wspóªbie»ne wiczenia 5 monitory cz. 1 Zadanie 1: Stolik dwuosobowy raz jeszcze W systemie dziaªa N par procesów. Procesy z pary s nierozró»nialne. Ka»dy proces cyklicznie wykonuje wªasnesprawy,
Bardziej szczegółowo1 Wątki 1. 2 Tworzenie wątków 1. 3 Synchronizacja 3. 4 Dodatki 3. 5 Algorytmy sortowania 4
Spis treści 1 Wątki 1 2 Tworzenie wątków 1 3 Synchronizacja 3 4 Dodatki 3 5 Algorytmy sortowania 4 6 Klasa Runnable 4 Temat: Wątki Czym są wątki. Grafika. Proste animacje. Małe podsumowanie materiału.
Bardziej szczegółowoJę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ółowoStworzenie klasy nie jest równoznaczne z wykorzystaniem wielowątkowości. Uzyskuje się ją dopiero poprzez inicjalizację wątku.
Laboratorium 7 Wstęp Jednym z podstawowych własności Javy jest wielowątkowość. Wiąże się to z możliwością współbieżnego wykonywania różnych operacji w ramach pojedynczej wirtualnej maszyny Javy (JVM).
Bardziej szczegółowoMonitory. 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ółowoKlasyczne problemy synchronizacji
Klasyczne problemy synchronizacji Systemy Operacyjne 2 laboratorium Mateusz Hołenko 19 grudnia 2011 Plan zajęć 1 Synchronizacja 2 Problem producenta / konsumenta 3 Problem pięciu filozofów 4 Problem czytelników
Bardziej szczegółowoPodstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1
Podstawy programowania. Wykład Funkcje Krzysztof Banaś Podstawy programowania 1 Programowanie proceduralne Pojęcie procedury (funkcji) programowanie proceduralne realizacja określonego zadania specyfikacja
Bardziej szczegółowoPrzeciwdziałanie zakleszczeniu. Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak
Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak Zasadniczo można wyróżnić dwa rodzaje podejść do rozwiązania problemu zakleszczenia. Jedno polega na niedopuszczeniu do powstania zakleszczenia, drugie
Bardziej szczegółowoDziałanie systemu operacyjnego
Budowa systemu komputerowego Działanie systemu operacyjnego Jednostka centralna dysku Szyna systemowa (magistrala danych) drukarki pamięci operacyjnej sieci Pamięć operacyjna Przerwania Przerwania Przerwanie
Bardziej szczegółowoKoordynacja procesów w środowisku rozproszonym
Systemy rozproszone Koordynacja procesów w środowisku rozproszonym System rozproszony jest zbiorem luźno powiązanych ze sobą komputerów połączonych siecią komunikacyjną (Silberschatz). Zasoby zdalne -
Bardziej szczegółowoPOTRZEBY 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ółowoMechanizmy 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ółowoSystemy Czasu Rzeczywistego (SCR)
Systemy Czasu Rzeczywistego (SCR) Wykład 13: Elementy systemów operacyjnych czasu rzeczywistego (2/2) SKiTI2017 WYDZIAŁ ELEKTROTECHNIKI I AUTOMATYKI KATEDRA INŻYNIERII SYSTEMÓW STEROWANIA Kierunek: Automatyka
Bardziej szczegółowoI.Wojnicki, PHP. PHP PHP Hypertext Preprocessor. Igor Wojnicki. Ktedra Informatyki Stosowanej Akademia Górniczo-Hutnicza w Krakowie.
Igor Wojnicki (AGH, KIS) 7 kwietnia 2018 1 / 28 Hypertext Preprocessor Igor Wojnicki Ktedra Informatyki Stosowanej Akademia Górniczo-Hutnicza w Krakowie 7 kwietnia 2018 Igor Wojnicki (AGH, KIS) 7 kwietnia
Bardziej szczegółowoWykład 8: klasy cz. 4
Programowanie obiektowe Wykład 8: klasy cz. 4 Dynamiczne tworzenie obiektów klas Składniki statyczne klas Konstruktor i destruktory c.d. 1 dr Artur Bartoszewski - Programowanie obiektowe, sem. 1I- WYKŁAD
Bardziej szczegółowoAlgorytm. a programowanie -
Algorytm a programowanie - Program komputerowy: Program komputerowy można rozumieć jako: kod źródłowy - program komputerowy zapisany w pewnym języku programowania, zestaw poszczególnych instrukcji, plik
Bardziej szczegółowo4. 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ółowoProces y i y w i ąt ą ki
Procesy i wątki Proces Proces jest wykonywanym programem. Wykonanie procesu musi przebiegać w sposób sekwencyjny ( w dowolnej chwili na zamówienie naszego procesu może być wykonany co najwyżej jeden rozkaz
Bardziej szczegółowoZASADY PROGRAMOWANIA KOMPUTERÓW
POLITECHNIKA WARSZAWSKA Instytut Automatyki i i Robotyki ZASADY PROGRAMOWANIA KOMPUTERÓW Język Język programowania: C/C++ Środowisko programistyczne: C++Builder 6 Wykład 9.. Wskaźniki i i zmienne dynamiczne.
Bardziej szczegółowoProcesy i wątki. Blok kontrolny procesu. Proces. Proces - elementy. Stan procesu
Proces Procesy i wątki Proces jest wykonywanym programem. Wykonanie procesu musi przebiegać w sposób sekwencyjny ( w dowolnej chwili na zamówienie naszego procesu może być wykonany co najwyżej jeden rozkaz
Bardziej szczegółowoSystemy wbudowane. Systemy operacyjne czasu rzeczywistego
Systemy wbudowane Systemy operacyjne czasu rzeczywistego Definicje System czasu rzeczywistego to taki, w którym wynik przetwarzania nie zależy tylko i wyłącznie od jego logicznej poprawności, ale również
Bardziej szczegółowoDynamiczny przydział pamięci w języku C. Dynamiczne struktury danych. dr inż. Jarosław Forenc. Metoda 1 (wektor N M-elementowy)
Rok akademicki 2012/2013, Wykład nr 2 2/25 Plan wykładu nr 2 Informatyka 2 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr III, studia niestacjonarne I stopnia Rok akademicki 2012/2013
Bardziej szczegółowo3URJUDPRZDQLHZVSyá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ółowoWzajemne wykluczanie i zakleszczenie
Wzajemne wykluczanie i zakleszczenie Wzajemne wykluczanie Wzajemne wykluczenie zapewnia procesom ochronę przy dostępie do zasobów, daje im np. gwarancję, że jako jedyne będą mogły z nich korzystać Typy
Bardziej szczegółowo