Synchronizacja procesów i wątków
|
|
- Joanna Kowalczyk
- 5 lat temu
- Przeglądów:
Transkrypt
1 SOE Systemy Operacyjne Wykład 12 Synchronizacja procesów i wątków dr inŝ. Andrzej Wielgus Instytut Mikroelektroniki i Optoelektroniki WEiTI PW
2 Problem sekcji krytycznej Podstawowy problem synchronizacji współpracujących procesów i wątków Sekcja krytyczna - fragment kodu procesu wymagający wyłącznego dostępu do określonych zasobów np. plików lub wspólnych struktur danych Problem zapewnienia wzajemnego wykluczania (wzajemnego wyłączania) procesów w dostępie do niepodzielnego zasobu
3 Ogólna struktura kodu programu początek kodu... sekcja wejściowa - oczekiwanie na pozwolenie wejścia sekcja krytyczna sekcja wyjściowa - sygnalizacja wyjścia reszta kodu...
4 Rozwiązania problemu sekcji krytycznej Warunki wzajemne wykluczanie tylko jeden proces moŝe działać w swojej sekcji krytycznej postęp jeŝeli Ŝaden proces nie działa w swojej sekcji krytycznej oraz istnieją procesy oczekujące na wejście do swoich sekcji krytycznych, to wybór procesu następuje w skończonym czasie ograniczone czekanie dla kaŝdego procesu czas oczekiwania na pozwolenie wejścia do ich sekcji krytycznych jest ograniczony Rozwiązania programowe Wsparcie sprzętowe
5 Dla 2 procesów Rozwiązania programowe algorytm Petersona Dla wielu procesów algorytm piekarni (Silberschatz, Galvin, Gagne: Podstawy systemów operacyjnych)
6 Algorytm Petersona boolean flaga[2]; int numer; flaga[0]=false; flaga[1]=false; while (true) { flaga[i] = true; numer = j; while (flaga[j] && numer==j); sekcja krytyczna flaga[i] = false; reszta kodu }
7 Wsparcie sprzętowe Wyłączenie przerwań systemy jednoprocesorowe Specjalne rozkazy sprzętowe niepodzielnie wykonują dwie operacje testuj_i_ustaw sprawdzenie i zmiana zawartości słowa zamien zamiana zawartości dwóch słów
8 Rozwiązanie oparte na wyłączaniu przerwań while (true) { wyłącz przerwania sekcja krytyczna włącz przerwania reszta kodu }
9 Rozwiązanie oparte na testuj_i_ustaw boolean lock=false; /* zmienna dzielona */ while (true) { while (testuj_i_ustaw(&lock)); sekcja krytyczna lock = false; reszta kodu }
10 Rozwiązanie oparte na zamien boolean lock=false; /* zmienna dzielona */ boolean key; /* zmienna lokalna procesu */ while (true) { key = true; while (key = true) zamien(&lock, &key); sekcja krytyczna lock = false; reszta kodu }
11 Klasyczna definicja semafora Semafor to liczba całkowita S której moŝna nadać wartość początkową dostępna jest tylko za pomocą dwóch niepodzielnych operacji wait (czekaj) proces oczekuje na zwolnienie zasobu chronionego semaforem, a gdy to nastąpi, zajmuje ten zasób (zajmuje semafor) signal (sygnalizuj) proces zwalnia zasób chroniony semaforem (zwalnia semafor)
12 Klasyczne operacje na semaforze Operacja wait Operacja signal wait(s) { while (S<=0); S--; } signal(s) { } S++;
13 Realizacje semaforów Semafory binarne (mutex) przyjmują tylko dwie wartości: 0 i 1, Semafory liczące (wielowartościowe) przyjmują dowolną wartość całkowitą w jednej operacji moŝna zmienić wartość o 1 (lub o dowolną wartość) Semafory realizowane w postaci plików z operacjami: wait signal - otwórz na wyłączność plik o ustalonej nazwie - zamknij plik
14 Realizacje semaforów KaŜda realizacja musi zapewniać niepodzielność operacji na semaforze, oczekiwanie procesu na osiągnięcie poŝądanej wartości semafora
15 Niepodzielność operacji Zabronienie obsługi przerwań na czas operacji na semaforze Wykorzystanie sprzętowych rozkazów synchronizacji, które umoŝliwiają wykonanie sprawdzenia wartości i jej zmianę w jednym rozkazie procesora Wykorzystanie programowego algorytmu synchronizacji dostępu do sekcji krytycznej w tym przypadku sekcją krytyczną jest semafor
16 Oczekiwanie procesu na zmianę semafora Aktywne czekanie procesu wirująca blokada (spinlock) proces w pętli sprawdza stan semafora, czyli wiruje w niewielkim fragmencie programu zuŝywa czas procesora uŝyteczna w systemach wieloprocesorowych, gdy przewidywany czas oczekiwania jest krótki, poniewaŝ nie wymaga przełączania kontekstu procesu Usypianie i budzenie procesu uŝyteczne przy długim czasie oczekiwania na zmianę wartości semafora
17 Nowe definicje operacji z usypianiem wait(s) { value--; if (value < 0) { dodaj ten proces do listy block(); } } signal(s) { value++; if (value <= 0) { usuń proces P z listy wakeup(p); } }
18 Synchronizacja przy pomocy semaforów Kolejność wykonania instrukcji w procesach współbieŝnych P1 instrukcja1; signal(s); P2 wait(s); instrukcja2;
19 Rozwiązanie problemu sekcji krytycznej while (true) { wait(s); sekcja krytyczna signal(s); reszta kodu }
20 Niebezpieczeństwa Głodzenie procesu - nieskończone blokowanie Zakleszczenie P1 wait(s1); wait(s2); sekcja krytyczna signal(s1); signal(s2); P2 wait(s2); wait(s1); sekcja krytyczna signal(s2); signal(s1);
21 Klasyczne problemy synchronizacji Problem ograniczonego buforowania Problem czytelników i pisarzy pierwszy drugi Problem posilających się filozofów Problemy testowe
22 Problem ograniczonego buforowania Wielu producentów Wielu konsumentów Bufor o ograniczonej długości
23 Rozwiązanie z uŝyciem semaforów Bufor o długości N Semafory mutex = 1 miejsce = N, element = 0 - binarny - wielowartościowe Producent while (true) { wytwórz element wait(miejsce); wait(mutex); umieść element w buforze signal(mutex); signal(element); Konsument while (true) { wait(element); wait(mutex); pobierz element z bufora signal(mutex); signal(miejsce); zuŝyj element }
24 Problem czytelników i pisarzy Kilku czytelników i kilku pisarzy korzysta ze wspólnego obiektu kaŝdy pisarz musi uzyskać wyłączny dostęp czytelnicy mogą czytać jednocześnie Pierwszy problem czytelnik czeka na dostęp do obiektu tylko wtedy, gdy pisarz uzyskał dostęp do obiektu Drugi jeśli pisarz czeka na dostęp do obiektu, to Ŝaden czytelnik nie moŝe rozpocząć czytania
25 Rozwiązanie pierwszego problemu czytelników i pisarzy (1) Semafory: mutex = 1 writer = 1 Zmienna współdzielona int readcount = 0
26 Pisarz Rozwiązanie pierwszego problemu czytelników i pisarzy (2) Czytelnik while(true) { wait(writer); } pisanie signal(writer); while(true) { wait(mutex); readcount++; if (readcount== 1) wait(writer); signal(mutex); czytanie } wait(mutex); readcount--; if (readcount== 0) signal(writer); signal(mutex) ;
27 Rozwiązanie drugiego problemu czytelników i pisarzy (1) Semafory: mutex_w = 1; mutex_r = 1; mutex_q = 1; writer = 1; reader = 1; Zmienne współdzielone int readcount = 0; int writecount = 0;
28 Rozwiązanie drugiego problemu czytelników i pisarzy (2) Pisarz while(true) { wait(mutex_w); writecount++; if (writecount== 1) wait(reader); signal(mutex_w); } wait(writer); pisanie signal(writer); wait(mutex_w); writecount--; if (writecount== 0) signal(reader); signal(mutex_w) ; Czytelnik while(true) { } wait(reader); wait(mutex_r); readcount++; if (readcount== 1) wait(writer); signal(mutex_r); signal(reader); czytanie wait(mutex_r); readcount--; if (readcount== 0) signal(writer); signal(mutex_r) ;
29 Rozwiązanie drugiego problemu czytelników i pisarzy (3) Pisarz while(true) { wait(mutex_w); writecount++; if (writecount== 1) wait(reader); signal(mutex_w); } wait(writer); pisanie signal(writer); wait(mutex_w); writecount--; if (writecount== 0) signal(reader); signal(mutex_w) ; Czytelnik while(true) { wait(mutex_q); wait(reader); wait(mutex_r); readcount++; if (readcount== 1) wait(writer); signal(mutex_r); signal(reader); signal(mutex_q); } czytanie wait(mutex_r); readcount--; if (readcount== 0) signal(writer); signal(mutex_r) ;
30 Problem posilających się filozofów ryŝ
31 Przykładowe rozwiązanie problemu Semafory paleczki[5] - zainicjowane wartością 1 Filozof while(true) { wait(paleczki[i]); wait(paleczki[(i + 1)%5]); jedzenie signal(paleczki[i]); signal(paleczki[(i + 1)%5]); myślenie }
32 Synchronizacja w systemie UNIX Synchronizacja w tradycyjnym jądrze systemu UNIX dla systemów jednoprocesorowych niewywłaszczalne jądro wątek wykonywany w trybie jądra nie moŝe być wywłaszczony wyłączanie przerwań usypianie i budzenie
33 Synchronizacja w systemach wieloprocesorowych Określenie problemu procesory mogą jednocześnie wykonywać kod jądra (wiele wątków ma jednoczesny dostęp do danych jądra) jeden wątek nie moŝe wyłączyć przerwań na wszystkich procesorach Typowe mechanizmy blokady wyłączności dostępu (mutexy) zmienne warunkowe blokady typu czytelnicy - pisarze semafory
34 Blokady wyłączności dostępu Mutex (mutual exclusion lock) Blokada wirująca (prosta) wątek wykonuje aktywne czekanie wykorzystuje sprzętowe rozkazy synchronizacji Blokada wstrzymująca wątek jest wstrzymywany (usypiany) Blokada adaptacyjna wątek czeka aktywnie, gdy wątek blokujący jest aktywny wątek jest wstrzymywany, gdy wątek blokujący jest wstrzymany
35 Zmienne warunkowe Wykorzystywane są do synchronizacji zdarzeń, które współdzielą dostęp do mutexu, ale nie koniecznie do danych UmoŜliwiają wątkom oczekiwanie na spełnienie określonych warunków pod ochroną mutexu wątek zajmuje mutex i sprawdza warunek jeśli warunek nie jest spełniony, to wątek zwalnia czasowo mutex i blokuje się na zmiennej warunkowej inny wątek moŝe zająć mutex, zmienić warunek i zasygnalizować jego zmianę oraz zwolnić mutex czekający wątek jest budzony, zajmuje mutex, sprawdza ponownie warunek i zwalnia mutex
36 Blokady typu czytelnicy-pisarze ZłoŜony mechanizm synchronizacji wielu wątków czytelnicy mogą jednocześnie czytać dane współdzielone pisarz musi mieć dane na wyłączność Tryby dostępu do zasobu współdzielony (czytelnicy) wyłączny (pisarz)
37 Blokady typu czytelnicy-pisarze Operacje blokowanie wyłączne blokowanie współdzielone zamiana typu blokady zwalnianie blokady wyłącznej czy budzić czytelnika lub innego pisarza przykładowe rozwiązanie: budzić wszystkich czytelników, a jeśli Ŝaden nie czeka, to jednego z czekających pisarzy zwalnianie blokady współdzielonej ostatni czytelnik budzi pisarza
38 Zakleszczenia procesów i wątków Problem zakleszczenia Warunki konieczne Rozwiązania w systemach scentralizowanych
39 Problem zakleszczenia Zbiór zakleszczonych procesów kaŝdy proces przetrzymuje zasób kaŝdy proces oczekuje na przydział zasobu przetrzymywanego przez inny proces ze zbioru
40 Przykład: dwa procesy i dwa semafory P1 wait(s1); wait(s2); sekcja krytyczna signal(s1); signal(s2); P2 wait(s2); wait(s1); sekcja krytyczna signal(s2); signal(s1);
41 Przykład: samochody na skrzyŝowaniu
42 Przykład: problem filozofów Semafory paleczki[5] - zainicjowane wartością 1 while(true) { wait(paleczki[i]); wait(paleczki[(i + 1)%5]); jedzenie signal(paleczki[i]); signal(paleczki[(i + 1)%5]); myślenie }
43 Przykład: problem filozofów c.d. ryŝ
44 Warunki konieczne wystąpienia zakleszczenia 1) Wzajemne wyłączanie procesów zasoby niepodzielne 2) Przetrzymywanie i oczekiwanie 3) Brak wywłaszczeń 4) Czekanie cykliczne istnieje cykliczna kolejka procesów czekających na zasoby zajmowane przez procesy z tego zbioru P 1 R 1 P 2 R 2 P 3... P n R n P 1 P i proces R i zasób
45 Graf alokacji zasobów Krawędź zamówienia P 1 R 1 Krawędź przydziału R 1 P 2
46 Cykl w grafie alokacji zasobów z zakleszczeniem bez zakleszczenia
47 Rozwiązania problemu zakleszczeń Niedopuszczanie do powstania zakleszczenia zapobieganie zakleszczeniom unikanie zakleszczeń Wykrywanie i wychodzenie z zakleszczenia Ignorowanie problemu reboot
48 Zapobieganie zakleszczeniom Zapewnienie, Ŝe co najmniej jeden z warunków zakleszczenia nie będzie spełniony Wzajemne wyłączanie konieczne dla zasobów niepodzielnych Przetrzymywanie i oczekiwanie przed rozpoczęciem kaŝdy proces musi otrzymać wszystkie potrzebne zasoby wady: słabe wykorzystanie zasobów, moŝliwość głodzenia
49 Zapobieganie zakleszczeniom Brak wywłaszczeń jeśli proces musi czekać na jakiś zasób, to zwalnia dotychczas przydzielone zasoby zwolnione zasoby są dodawane do listy zasobów, na które proces czeka proces jest wznawiany tylko wtedy, gdy moŝe otrzymać wszystkie potrzebne zasoby Czekanie cykliczne zasoby uporządkowane są liniowo proces moŝe zamawiać zasoby tylko w określonej kolejności
50 Unikanie zakleszczeń Konieczna informacja a priori o planowanym wykorzystaniu zasobów przez wszystkie procesy co najmniej maksymalna liczba zasobów kaŝdego typu Stany systemu bezpieczny istnieje co najmniej jeden ciąg bezpieczny procesów, który nie prowadzi do zakleszczenia ciąg procesów <P 1, P 2,, P n > jest bezpieczny, jeśli dla kaŝdego procesu P i jego zapotrzebowanie na zasoby moŝe być zaspokojone przez aktualnie dostępne zasoby oraz zasoby wszystkich procesów P j przy j<i zagroŝony zakleszczenie
51 Algorytmy unikania zakleszczeń Algorytm unikania zakleszczenia utrzymuje system w stanie bezpiecznym nie dopuszcza do wystąpienia czekania cyklicznego Algorytm grafu przydziału zasobów system z pojedynczymi egzemplarzami zasobów Algorytm bankiera system z wieloma egzemplarzami zasobów
52 Algorytm grafu przydziału zasobów Krawędź deklaracji P 1 R 1 Krawędź zamówienia P 1 R 1 Krawędź przydziału R 1 P 2 Stan zagroŝenia
53 Wykrywanie zakleszczenia Dopuszczenie do zakleszczenia Wykrycie zakleszczenia Algorytm wykrywania moŝe być wywoływany przy zamówieniach na zasoby, które nie mogą być od razu zrealizowane gdy efektywność wykorzystania procesora zmniejsza się
54 Wychodzenie z zakleszczenia Zakończenie procesów wszystkich zakleszczonych pojedynczo aŝ do usunięcia zakleszczenia Wywłaszczanie zasobów wybór procesu-ofiary w celu odebrania zasobów wycofanie procesu do jakiegoś bezpiecznego stanu (przed przydzieleniem zasobów) i wznowienie go z tego stanu Niebezpieczeństwo głodzenia procesu, który jest wciąŝ wybierany jako ofiara
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ółowoPorzą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
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,
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ół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ół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ół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ół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ół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ół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ółowoZagadnienia 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ół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 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ół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ół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ół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ół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ół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ół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ół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ół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ół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ół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ół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ół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ół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ół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ół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ół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ół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ół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ół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ół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ółowoZarządzanie procesami i wątkami
SOE - Systemy Operacyjne Wykład 4 Zarządzanie procesami i wątkami dr inŝ. Andrzej Wielgus Instytut Mikroelektroniki i Optoelektroniki WEiTI PW Pojęcie procesu (1) Program zbiór instrukcji dla procesora
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ół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ół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ółowoProgramowanie 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ółowoZagadnienia zaawansowane. Lech Kruś,
WYŻSZA SZKOŁA INFORMATYKI STOSOWANEJ I ZARZĄDZANIA WYDZIAŁ INFORMATYKI WIELODOSTĘPNE SYSTEMY OPERACYJNE II Zagadnienia zaawansowane CZĘŚĆ 2 BLOKADY ZAKLESZCZENIA PROCESÓW Semestr 4 Lech Kruś, BLOKADY -
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ół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ół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ół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ół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. 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ół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ół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ół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ółowoProgramowanie współbieżne Wykład 4. Rafał Skinderowicz
Programowanie współbieżne Wykład 4 Rafał Skinderowicz Semafory Algorytmy synchronizacyjne omawiane poprzednio opierały się na atomowych instrukcjach odczytu i zapisu do pamięci, ewentualnie dodatkowych
Bardziej szczegółowoUniwersytet 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ółowoSOE Systemy Operacyjne Wykład 8 Pamięć wirtualna dr inż. Andrzej Wielgus
SOE Systemy Operacyjne Wykład 8 Pamięć wirtualna dr inż. Andrzej Wielgus Instytut Mikroelektroniki i Optoelektroniki WEiTI PW Pamięć wirtualna Stronicowanie na żądanie większość współczesnych systemów
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ół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ół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ół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ół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ół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ół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ół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ół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ół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ół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ółowoProgramowanie 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ół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ół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ółowoWYKŁ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ół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ół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ół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ółowoInformatyka 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ół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ółowoDziałanie systemu operacyjnego
Działanie systemu operacyjnego Budowa systemu komputerowego I NIC Jednostka centralna Sterownik dysku Sterownik drukarki Sterownik sieci Szyna systemowa (magistrala danych) Sterownik pamięci operacyjnej
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ół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ół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ół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ół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ółowoModele programowania równoległego. Pamięć współdzielona Rafał Walkowiak dla III roku Informatyki PP
Modele programowania równoległego Pamięć współdzielona Rafał Walkowiak dla III roku Informatyki PP Procesy a wątki [1] Model 1: oparty o procesy - Jednostka tworzona przez system operacyjny realizująca
Bardziej szczegółowo5. Model komunikujących się procesów, komunikaty
Jędrzej Ułasiewicz str. 1 5. Model komunikujących się procesów, komunikaty Obecnie stosuje się następujące modele przetwarzania: Model procesów i komunikatów Model procesów komunikujących się poprzez pamięć
Bardziej szczegół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ółowow odróżnieniu od procesów współdzielą przestrzeń adresową mogą komunikować się za pomocą zmiennych globalnych
mechanizmy posix Wątki w odróżnieniu od procesów współdzielą przestrzeń adresową należą do tego samego użytkownika są tańsze od procesów: wystarczy pamiętać tylko wartości rejestrów, nie trzeba czyścić
Bardziej szczegółowoPlan prezentacji: 1. Czym jest proces? 2. Czym jest wątek? 3. Funkcje do zarządzania wątkami w Win32API. 4. Mechanizmy synchronizacji wątków
Wątki w Win32API Plan prezentacji: 1. Czym jest proces? 2. Czym jest wątek? Plusy i minusy wątków Tworzenie i niszczenie wątków Priorytety wątków 3. Funkcje do zarządzania wątkami w Win32API. 4. Mechanizmy
Bardziej szczegółowoPodstawy Informatyki Systemy operacyjne
Podstawy Informatyki alina.momot@polsl.pl http://zti.polsl.pl/amomot/pi Plan wykładu 1 Definicje systemu operacyjnego Zadania systemu operacyjnego Klasyfikacja systemów operacyjnych 2 Zasoby systemu komputerowego
Bardziej szczegółowoAlgorytmy zarządzania współbieżnym wykonywaniem transakcji część I
Algorytmy zarządzania współbieżnym wykonywaniem transakcji część I Wykład przygotował: Tadeusz Morzy BD wykład 9 Celem wykładu jest przedstawienie i omówienie podstawowych algorytmów zarządzania współbieżnym
Bardziej szczegółowoUniwersytet w Białymstoku Wydział Ekonomiczno-Informatyczny w Wilnie SYLLABUS na rok akademicki 2009/2010
Tryb studiów Studia stacjonarne Kierunek studiów Informatyka Poziom studiów Pierwszego stopnia Rok studiów/semestr 2(rok)/(sem) Specjalność Bez specjalności Kod katedry/zakładu w systemie USOS 10000000
Bardziej szczegółowoSystemowe mechanizmy synchronizacji procesów
Systemowe mechanizmy synchronizacji procesów Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak Celem wykładu jest przedstawienie mechanizmów synchronizacji, które mogą być implementowane zarówno na
Bardziej szczegółowoSYSTEMY OPERACYJNE WYKLAD 6 - wątki
Wrocław 2007 SYSTEMY OPERACYJNE WYKLAD 6 - wątki Paweł Skrobanek C-3, pok. 323 e-mail: pawel.skrobanek@pwr.wroc.pl www.equus.wroc.pl/studia.html 1 PLAN: 1. Wątki 2. Planowanie przydziału procesora (szeregowanie
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ółowoProcesy, zasoby i wątki
Procesy, zasoby i wątki Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak Plan wykładu Koncepcja procesu i zasobu Obsługa procesów i zasobów Cykl zmian stanów procesu i kolejkowanie Klasyfikacja zasobów
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ółowoSemafor ustaw_semafor(key_t nazwa, int start); Semafor usun_semafor(semafor sem); void signal(semafor sem); void wait(semafor sem);
Semafory przypomnienie semafory służą ochronie dostępu procesów do sekcji krytycznej; na semaforach dostępne są dwie operacje: podniesienie semafora signal, opuszczenie semafora wait opuszczony semafor
Bardziej szczegółowoProcesy, zasoby i wątki
Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak Plan wykładu 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
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ółowoUNIKANIE IMPASÓW W SYSTEMACH PROCESÓW WSPÓŁBIEŻNYCH
UNIKANIE IMPASÓW W SYSTEMACH PROCESÓW WSPÓŁBIEŻNYCH Robert Wójcik Instytut Cybernetyki Technicznej Politechniki Wrocławskiej 1. Impasy w systemach procesów współbieżnych 2. Klasyczne algorytmy unikania
Bardziej szczegół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ół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ół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ół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ółowo