Wies!aw P!aczek Systemy Operacyjne: Wyk!ad 5 1
|
|
- Irena Wojciechowska
- 8 lat temu
- Przeglądów:
Transkrypt
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,!! Linux. Wies!aw P!aczek Systemy Operacyjne: Wyk!ad 5 1
2 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 do { sekcja wej!ciowa sekcja krytyczna sekcja wyj!ciowa reszta } while (1); Wies!aw P!aczek Systemy Operacyjne: Wyk!ad 5 3
4 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 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. Wies!aw P!aczek Systemy Operacyjne: Wyk!ad 5 5
6 Wies!aw P!aczek Systemy Operacyjne: Wyk!ad 5 6
7 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 $!Na jednym procesorze problem sekcji krytycznej mo&na rozwi%za' zakazuj!c przerwa% w trakcie modyfikacji zmiennej dzielonej. $!Niepodzielne rozkazy: np. TestAndSet lub Swap: bool TestAndSet(bool *cel){ bool zwr = *cel; *cel = true; return zwr; } void Swap(bool *a,bool *b){ bool temp = *a; *a = *b; *b = temp; } Wies!aw P!aczek Systemy Operacyjne: Wyk!ad 5 8
9 Dzielona zmienna: Proces P_i: "! Rozkaz TestAndSet: do { while ( TestAndSet(&zamek) ) ; sekcja krytyczna zamek = false; reszta } while (1); bool zamek = false; "! Rozkaz Swap:! lokalna zmienna: bool klucz; do { klucz = true; while (klucz) Swap(&zamek,&klucz); sekcja krytyczna zamek = false; reszta } while (1); %! Nie spe&niaj! warunku ograniczonego czekania!! Dlaczego? Wies!aw P!aczek Systemy Operacyjne: Wyk!ad 5 9
10 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 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 { int value; } semaphore; struct process *L; /* 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 Operacje P i V (warto#' semafora mo&e by' ujemna):!! void P(semaphore S) { S.value--; if (S.value < 0) { dodaj ten proces do S.L; block(); } }!! void V(semaphore S) { S.value++; if (S.value <= 0){ usu% jaki# proces P z S.L; 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. Wies!aw P!aczek Systemy Operacyjne: Wyk!ad 5 12
13 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); P(Q); Proces P1 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 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 $! 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 Region krytyczny (critical region) konstrukcja synchronizuj%ca wysokiego poziomu. Dzielona zmienna v typu T jest zadeklarowana jako: shared T v; Zmienna v jest dost"pna tylko w obr"bie instrukcji: region v when (B) S; gdzie B jest wyra&eniem boolowskim. Podczas wykonywania instrukcji S (aden inny proces nie ma dost"pu do zmiennej v. Regiony odwo!uj%ce si" do tej samej zmiennej v wykluczaj! si" wzajemnie w czasie. Kiedy proces próbuje wej#' do sekcji krytycznej, obliczane jest wyra&enie boolowskie B: je#li jest ono prawdziwe, to instrukcja S b"dzie wykonana, w przeciwnym razie proces jest opó$niany a& wyra&enie B stanie si" prawdziwe oraz &aden inny proces nie b"dzie przebywa! w regionie zwi%zanym ze zmienn% v. Wies!aw P!aczek Systemy Operacyjne: Wyk!ad 5 16
17 Dzielone dane: shared struct { jednostka pula[n]; int licznik, we, wy; } bufor; Producent wstawia do bufora jednostk" NastProd: region bufor when (licznik < n){ pula[we] = NastProd; we = (we + 1) % n; licznik++; } Konsument pobiera z bufora jednostk" NastKons: region bufor when (licznik > 0){ NastKons = pula[wy]; wy = (wy + 1) % n; licznik--; } "! Region krytyczny mo(na zaimplementowa$ przy pomocy semaforów. Wies!aw P!aczek Systemy Operacyjne: Wyk!ad 5 17
18 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 inicjuj!cy (...) {... } Wies!aw P!aczek Systemy Operacyjne: Wyk!ad 5 18
19 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 do implementacji kolejki procesów czekaj%cych pod dan% zmienn% warunkow%. Wies!aw P!aczek Systemy Operacyjne: Wyk!ad 5 19
20 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 20
21 "! W celu kontrolowania dost"pu do sekcji krytycznych w systemie Solaris zaimplementowano: zamki adaptacyjne, zmienne warunkowe, semafory, blokady do czytania lub pisania oraz turnikety. Zamek 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 zamek adaptacyjny jest usypiany.!! W systemach wieloprocesorowych w%tek jest usypiany tylko je#li w%tek utrzymuj%cy zamek 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 zamku lub blokadzie. Wies!aw P!aczek Systemy Operacyjne: Wyk!ad 5 21
22 W systemie jednoprocesorowym j!dro si"gaj%c po jaki# zasób globalny maskuje czasowo przerwania. 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: zamki (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 22
23 Wies!aw P!aczek Systemy Operacyjne: Wyk!ad 5 23
24 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 24
25 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. "! 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 P1 P(A); P(B); P(B); P(A); Wies!aw P!aczek Systemy Operacyjne: Wyk!ad 5 25
26 "! 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 {P0,P1,...,Pn}, takich &e P0 czeka na zasób przetrzymywany przez P1, P1 czeka na zasób przetrzymywany przez P2,..., a Pn czeka na zasób przetrzymywany przez P0. 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={P1,...,Pn} zbiór wszystkich procesów, Z={Z1,...,Zm} zbiór typów zasobów.!! Kraw"d) zamówienia: Pi! Zj;!! Kraw"d) przydzia&u: Zj! Pi. Wies!aw P!aczek Systemy Operacyjne: Wyk!ad 5 26
27 Z1 Z3 Z1 Z3 Kraw"d) zamówienia Kraw"d) przydzia&u P1 P2 P3 P1 P2 P3 Z2 Z4 Graf przydzia&u bez zakleszczenia Wies!aw P!aczek Systemy Operacyjne: Wyk!ad 5 27 Z2 Z4 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!
28 "!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 (tzw. algorytm strusia) stosowane przez wi"kszo#' systemów operacyjnych, w tym UNIX i Windows. Wies!aw P!aczek Systemy Operacyjne: Wyk!ad 5 28
29 "! 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. %! 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 29
30 "! 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°o 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. 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 <P1,P2,...,Pn> jest bezpieczny, je#li dla ka°o procesu Pi jego potencjalne zapotrzebowanie na zasoby mo&na zaspokoi' przez aktualnie dost"pne zasoby oraz zasoby u&ytkowane przez wszystkie procesy Pj dla j < i.!! System jest w stanie bezpiecznym $ brak zakleszczenia!!! System jest w stanie zagro(enia $ % 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 Algorytm grafu przydzia&u zasobów: "! Dla zasobów, których ka(dy typ ma pojedynczy egzemplarz.!! Dodatkowy typ kraw"dzi: kraw"d) deklaracji Pi! Zj wskazuje, &e proces Pi mo&e zamówi' kiedy# zasób Zj; 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). 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°o typu, które b"d% mu potrzebne (& 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 (m ilo#' typów zasobów). Wies!aw P!aczek Systemy Operacyjne: Wyk!ad 5 31
32 "! 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. Pi! Pj oznacza, &e proces Pi czeka na zasób b"d%cy w posiadaniu procesu Pj.!! Okresowo wykonuje si" powy&szy algorytm, który szuka cyklu w grafie.!! Koszt algorytmu (liczba operacji): n 2 (n liczba wierzcho!ków grafu). 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 32
33 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? 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 33
34 Po!%czenie trzech podstawowych 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 34
35 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.! Jakie mog% by' sprz"towe #rodki synchronizacji i jak mo&na ich u&y' 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% wyst%pi' 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.! Co to s% regiony krytyczne? Zastosowa' je dla problemu producenta )konsumenta. Scharakteryzowa' monitor jako mechanizm synchronizacji. 6.! Porówna' metody synchronizacji w systemach operacyjnych Solaris, Windows XP/Vista/7 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 35
Synchronizacja 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,
Synchronizacja procesów i wątków
SOE Systemy Operacyjne Wykład 12 Synchronizacja procesów i wątków dr inŝ. Andrzej Wielgus Instytut Mikroelektroniki i Optoelektroniki WEiTI PW Problem sekcji krytycznej Podstawowy problem synchronizacji
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
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
Programowanie 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,
J. Ułasiewicz Programowanie aplikacji współbieżnych 1
J. Ułasiewicz Programowanie aplikacji współbieżnych 1 1 1.1 Prosty przykład zakleszczenia (ang. Mexican standoff) W systemach w których wykonywane jest wiele współbieżnych procesów które operują na wspólnych
Proces z sekcją krytyczną. Synchronizacja procesów. Synchronizacja procesów, cd. Synchronizacja procesów, cd. Synchronizacja procesów, cd
Synchronizacja procesów Proces producenta - zmodyfikowany (licznik) produkuj jednostka w nast_p while licznik =n do nic_nie_rob; bufor [we] := nast_p; we=we+1 mod n; licznik:=licznik+1; Zmodyfikowany proces
Programowanie wspóªbie»ne
1 Programowanie wspóªbie»ne wiczenia 2 semafory cz. 1 Zadanie 1: Producent i konsument z buforem cyklicznym type porcja; void produkuj(porcja &p); void konsumuj(porcja p); porcja bufor[n]; / bufor cykliczny
Przetwarzanie wielowątkowe przetwarzanie współbieżne. Krzysztof Banaś Obliczenia równoległe 1
Przetwarzanie wielowątkowe przetwarzanie współbieżne Krzysztof Banaś Obliczenia równoległe 1 Problemy współbieżności wyścig (race condition) synchronizacja realizowana sprzętowo (np. komputery macierzowe)
Blokady. 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)
Wykład 4. Synchronizacja procesów (i wątków) cześć I. Wojciech Kwedlo, Wykład z Systemów Operacyjnych -1- Wydział Informatyki PB
Wykład 4 Synchronizacja procesów (i wątków) cześć I Wojciech Kwedlo, Wykład z Systemów Operacyjnych -1- Wydział Informatyki PB Potrzeba synchronizacji Procesy wykonują się współbieżnie. Jeżeli w 100% są
J. Ułasiewicz Programowanie aplikacji współbieżnych 1
J. Ułasiewicz Programowanie aplikacji współbieżnych 1 1 1.1 Prosty przykład zakleszczenia (ang. Mexican standoff) W systemach w których wykonywane jest wiele współbieżnych procesów które operują na wspólnych
Semafory. // G - globalna dla wszystkich. // Wada - aktywne oczekiwanie Test_and_Set(Li); exit when Li = 0; end loop sekcja_krytyczna(i); G := 0;
Semafory Rozwiązanie problemu wzajemnego wykluczania Bez dodatkowego wsparcia sprzętowego i programowego Zakładamy jedynie, że zapis do i odczyt z pamięci wspólnej są operacjami atomowymi (czyli istnieje
Semafor nie jest mechanizmem strukturalnym. Aplikacje pisane z użyciem semaforów są podatne na błędy. Np. brak operacji sem_post blokuje aplikację.
J. Ułasiewicz Programowanie aplikacji współbieżnych 1 11 11.1 abstrakcyjne Semafor nie jest mechanizmem strukturalnym. Aplikacje pisane z użyciem semaforów są podatne na błędy. Np. brak operacji sem_post
Semafory. - aktywne oczekiwanie =GRGDWNRZ\PZVSDUFLHPVSU]WRZ\P 6SHFMDOQDLQVWUXNFMDPDV]\QRZDUHDOL]XMFDDWRPRZ\]DSLVL odczyt, np.
Semafory 5R]ZL]DQLHSUREOHPXZ]DMHPQHJRZ\NOXF]DQLD %H]GRGDWNRZHJRZVSDUFLDVSU]WRZHJRLSURJUDPRZHJR =DNáDGDP\MHG\QLH*H]DSLVGRLRGF]\W]SDPLFLZVSyOQHMV RSHUDFMDPLDWRPRZ\PLF]\OLLVWQLHMHDUELWHUZVSyOQHMSDPLFL :UD]LHMHGQRF]HVQHJR]DSLVXLRGF]\WXUH]XOWDWHPEG]LH
Proces z sekcją krytyczną. Synchronizacja procesów. Synchronizacja procesów, cd. Synchronizacja procesów, cd. Synchronizacja procesów, cd
Synchronizacja procesów Proces producenta - zmodyfikowany (licznik) produkuj jednostka w nast_p while licznik =n do nic_nie_rob; bufor [we] := nast_p; we=we+1 mod n; licznik:=licznik+1; Zmodyfikowany proces
WYKŁAD 4 SEMAPHORES (CIĄG DALSZY) Przykład 6 Problem czytelników i pisarzy. Wykład 4 strona 1/24
WYKŁAD 4 SEMAPHORES (CIĄG DALSZY) Przykład 6 Problem czytelników i pisarzy Wykład 4 strona 1/24 Ilustracja 5. Schemat problemu czytelników i pisarzy Wykład 4 strona 2/24 Opis problemu: Jest n czytelników,
Programowanie Równoległe i Rozproszone
Programowanie Równoległe i Rozproszone Lucjan Stapp Wydział Matematyki i Nauk Informacyjnych Politechnika Warszawska (l.stapp@mini.pw.edu.pl) 1/30 PRiR MONITOR klasa z następującymi właściwościami: wszystkie
Semafor nie jest mechanizmem strukturalnym. Aplikacje pisane z użyciem semaforów są podatne na błędy. Np. brak operacji sem_post blokuje aplikację.
J. Ułasiewicz Programowanie aplikacji współbieżnych 1 11 Semafor nie jest mechanizmem strukturalnym. Aplikacje pisane z użyciem semaforów są podatne na błędy. Np. brak operacji sem_post blokuje aplikację.
Programowanie współbieżne Wykład 5. Rafał Skinderowicz
Programowanie współbieżne Wykład 5 Rafał Skinderowicz Monitory motywacje Mechanizmy synchronizacji takie jak blokady (zamki) semafory pozwalają efektywnie rozwiązywać dostępu do współdzielonych zasobów,
SOP2 - semafory. grudzień
SOP2 - semafory grudzień 2010 1 Plan prezentacji Problem producent-konsument Problem czytelników i pisarzy Problem jedzących filozofów grudzień 2010 2 Producent-konsument var bufor: array [0..n-1] of produkt;
Monitory. Jarosław Kuchta
Monitory Jarosław Kuchta Co to jest monitor Monitor to zebrane w jednej konstrukcji programowej zmienne i operacje na tych zmiennych. Część tych operacji jest udostępnianych na zewnątrz monitora. Tylko
Wprowadzenie do programowania współbieżnego
Wprowadzenie do programowania współbieżnego Marcin Engel Instytut Informatyki Uniwersytet Warszawski Zamiast wstępu... Zamiast wstępu... Możliwość wykonywania wielu akcji jednocześnie może ułatwić tworzenie
Ingerencja w kod systemu operacyjnego (przerwania) Programowanie na niskim poziomie (instrukcje specjalne) Trudności implementacyjne (alg.
Wady mechanizmów niskopoziomowych Ingerencja w kod systemu operacyjnego (przerwania) Programowanie na niskim poziomie (instrukcje specjalne) Trudności implementacyjne (alg. Dekkera zależny od liczby synchronizowanych
synchronizacji procesów
Dariusz Wawrzyniak Definicja semafora Klasyfikacja semaforów Implementacja semaforów Zamki Zmienne warunkowe Klasyczne problemy synchronizacji Plan wykładu (2) Semafory Rodzaje semaforów (1) Semafor jest
synchronizacji procesów
Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak Plan wykładu Definicja semafora Klasyfikacja semaforów Implementacja semaforów Zamki Zmienne warunkowe Klasyczne problemy synchronizacji (2) Semafory
Klasyczne problemy współbieżności. Problem producenta i konsumenta Problem czytelników i pisarzy Problem pięciu filozofów
Klasyczne problemy współbieżności Problem producenta i konsumenta Problem czytelników i pisarzy Problem pięciu filozofów Wzajemne wykluczanie Zsynchronizować N procesów, z których każdy w nieskończonej
Systemy operacyjne III
Systemy operacyjne III WYKŁAD 3 Jan Kazimirski 1 Współbieżność 2 Współbieżność Wielozadaniowość - zarządzanie wieloma procesami w ramach jednego CPU Wieloprocesorowość - zarządzanie wieloma zadaniami w
Systemy operacyjne. wykład 11- Zakleszczenia. dr Marcin Ziółkowski. Instytut Matematyki i Informatyki Akademia im. Jana Długosza w Częstochowie
Systemy operacyjne wykład 11- Zakleszczenia dr Marcin Ziółkowski Instytut Matematyki i Informatyki Akademia im. Jana Długosza w Częstochowie 17grudnia2015r. POJĘCIE ZAKLESZCZENIA Zakleszczenie to zbiór
Programowanie współbieżne Wykład 10 Synchronizacja dostępu do współdzielonych zasobów. Iwona Kochańska
Programowanie współbieżne Wykład 10 Synchronizacja dostępu do współdzielonych zasobów Iwona Kochańska Mechanizm synchronizacji wątków/procesów Wykorzystanie semaforów zapobiega niedozwolonemu wykonaniu
Sposoby przekazywania parametrów w metodach.
Temat: Definiowanie i wywoływanie metod. Zmienne lokalne w metodach. Sposoby przekazywania parametrów w metodach. Pojcia klasy i obiektu wprowadzenie. 1. Definiowanie i wywoływanie metod W dotychczas omawianych
Systemy operacyjne. Zajęcia 11. Monitory
Systemy operacyjne. Zajęcia 11. Monitory 1. Monitor to mechanizm zamykający całą pamięć wspólną i synchronizację w pojedynczym module. 2. Monitor posiada całą pamięć wspólną jako część 'prywatną': dostępu
Temat: Technika zachłanna. Przykłady zastosowania. Własno wyboru zachłannego i optymalnej podstruktury.
Temat: Technika zachłanna. Przykłady zastosowania. Własno wyboru zachłannego i optymalnej podstruktury. Algorytm zachłanny ( ang. greedy algorithm) wykonuje zawsze działanie, które wydaje si w danej chwili
Programowanie równoległe i rozproszone. Monitory i zmienne warunku. Krzysztof Banaś Programowanie równoległe i rozproszone 1
Programowanie równoległe i rozproszone Monitory i zmienne warunku Krzysztof Banaś Programowanie równoległe i rozproszone 1 Problemy współbieżności Problem producentów i konsumentów: jedna grupa procesów
SYSTEMY 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
... Ireneusz Mrozek. Wydział Informatyki
Ireneusz Mrozek Wydział Informatyki Proces wykonujcy si program Proces jednostka pracy systemu zarzdzan przez system operacyjny. W skład procesu wchodz: - program; - dane - zawarto rejestrów, stosu; -
Programowanie wspóªbie»ne
1 Zadanie 1: Bar Programowanie wspóªbie»ne wiczenia 6 monitory cz. 2 Napisz monitor Bar synchronizuj cy prac barmana obsªuguj cego klientów przy kolistym barze z N stoªkami. Ka»dy klient realizuje nast
Synchronizacja procesów
Synchronizacja procesów Proces producenta - zmodyfikowany (licznik) repeat... produkuj jednostka w nast_p... while licznik =n do nic_nie_rob; bufor [we] := nast_p; we=we+1 mod n; licznik:=licznik+1; until
Temat: Problem najkrótszych cieek w grafach waonych, cz. I: Algorytmy typu label - setting.
Temat: Problem najkrótszych cieek w grafach waonych, cz. I: Algorytmy typu label - setting.. Oznaczenia i załoenia Oznaczenia G = - graf skierowany z funkcj wagi s wierzchołek ródłowy t wierzchołek
Wykład 4. Synchronizacja procesów (i wątków) cześć I. Wojciech Kwedlo, Wykład z Systemów Operacyjnych -1- Wydział Informatyki PB
Wykład 4 Synchronizacja procesów (i wątków) cześć I Wojciech Kwedlo, Wykład z Systemów Operacyjnych -1- Wydział Informatyki PB Procesy wykonują się współbieżnie Potrzeba synchronizacji Jeżeli w 100% są
3URJUDPRZDQLHZVSyáELH*QHZVWS
3URJUDPRZDQLHZVSyáELH*QHZVWS Problem sortowania N liczb Algorytm sekwencyjny sortuj(1, N); NRV]WVRUWRZDQLDSU]H]SURVW]DPLDQN 2 SRUyZQD $OJRU\WPUyZQROHJá\ cobegin {wykonaj równolegle} VRUWXMSyáB1 VRUWXMSyáB11
Proces z sekcją krytyczną. Synchronizacja procesów. Synchronizacja procesów, cd. Synchronizacja procesów, cd. Synchronizacja procesów, cd
Synchronizacja procesów Synchronizacja procesów, cd Proces producenta - zmodyfikowany (licznik) produkuj jednostka w nast_p while licznik =n do nic_nie_rob; bufor [we] := nast_p; we=we+1 mod n; licznik:=licznik+1;
Bazy danych Podstawy teoretyczne
Pojcia podstawowe Baza Danych jest to zbiór danych o okrelonej strukturze zapisany w nieulotnej pamici, mogcy zaspokoi potrzeby wielu u!ytkowników korzystajcych z niego w sposóbs selektywny w dogodnym
Synchronizacja procesów
Synchronizacja procesów - Współbieżność i synchronizacja procesów - Systemowe mechanizmy synchronizacji procesów Systemy operacyjne Wykład 7 1 Współbieżność i synchronizacja procesów Abstrakcja programowania
Bazy danych Transakcje
Wstp Pojcia podstawowe: Transakcja - sekwencja (uporzdkowany zbiór) logicznie powizanych operacji na bazie danych, która przeprowadza baz danych z jednego stanu spójnego w inny stan spójny. W!a"no"ci transakcji:
Temat: Algorytmy zachłanne
Temat: Algorytmy zachłanne Algorytm zachłanny ( ang. greedy algorithm) wykonuje zawsze działanie, które wydaje si w danej chwili najkorzystniejsze. Wybiera zatem lokalnie optymaln moliwo w nadziei, e doprowadzi
Rozwi zania klasycznych problemów w Rendezvous
Cz ± I Rozwi zania klasycznych problemów w Rendezvous 1 Producenci i konsumenci Na pocz tek rozwa»my wersj z jednym producentem i jednym konsumentem, dziaªaj cymi w niesko«czonych p tlach. Mechanizm komunikacji
Klasyczne 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
Temat: Programowanie zdarzeniowe. Zdarzenia: delegacje, wykorzystywanie zdarze. Elementy Windows Application (WPF Windows Presentation Foundation).
Temat: Programowanie zdarzeniowe. Zdarzenia: delegacje, wykorzystywanie zdarze. Elementy Windows Application (WPF Windows Presentation Foundation). 1. Programowanie zdarzeniowe Programowanie zdarzeniowe
.! $ Stos jest list z trzema operacjami: dodawanie elementów na wierzch stosu, zdejmowanie elementu z wierzchu stosu, sprawdzanie czy stos jest pusty.
!"! " #$%& '()#$$ &%$! #$ %$ &%$& &$&! %&'" )$$! *$$&%$! +,- +-.! $ Celem wiczenia jest zapoznanie studenta ze strukturami: lista, stos, drzewo oraz ich implementacja w jzyku ANSI C. Zrozumienie działania
Wstp. Warto przepływu to
177 Maksymalny przepływ Załoenia: sie przepływow (np. przepływ cieczy, prdu, danych w sieci itp.) bdziemy modelowa za pomoc grafów skierowanych łuki grafu odpowiadaj kanałom wierzchołki to miejsca połcze
procesów Współbieżność i synchronizacja procesów Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak
Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak Plan wykładu Abstrakcja programowania współbieżnego Instrukcje atomowe i ich przeplot Istota synchronizacji Kryteria poprawności programów współbieżnych
SYSTEMY 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()
Systemy Operacyjne synchronizacja i komunikacja procesów
Katedra Informatyki, Politechnika Świętokrzyska w Kielcach Kielce, 1 grudnia 2006 1 1 Sytuacje hazardowe 2 Problem sekcji krytycznej 3 Warunki poprawności rozwiązania 4 Rozwiązanie programowe dla dwóch
Problem zakleszczenia
Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak Plan wykładu Klasyfikacja zasobów systemu na potrzeby analizy problemu zakleszczenia Warunki konieczne wystąpienia zakleszczenia Graf przydziału zasobów
Monitory. Wady semafora
Wady semafora Monitory Niestrukturalny mechanizm synchronizacji Nie ułatwia wykrywania błędów synchronizacyjnych w czasie kompilacji programu Idea Jądro systemu operacyjnego jako monolityczny monitor -
Autor: 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
Mechanizmy pracy równoległej. Jarosław Kuchta
Mechanizmy pracy równoległej Jarosław Kuchta Zagadnienia Algorytmy wzajemnego wykluczania algorytm Dekkera Mechanizmy niskopoziomowe przerwania mechanizmy ochrony pamięci instrukcje specjalne Mechanizmy
Tworzenie bazy danych Biblioteka tworzenie tabel i powiza, manipulowanie danymi. Zadania do wykonani przed przystpieniem do pracy:
wiczenie 2 Tworzenie bazy danych Biblioteka tworzenie tabel i powiza, manipulowanie danymi. Cel wiczenia: Zapoznanie si ze sposobami konstruowania tabel, powiza pomidzy tabelami oraz metodami manipulowania
Projektowanie algorytmów rekurencyjnych
C9 Projektowanie algorytmów rekurencyjnych wiczenie 1. Przeanalizowa działanie poniszego algorytmu dla parametru wejciowego n = 4 (rysunek 9.1): n i i
1) Grafy eulerowskie własnoci algorytmy. 2) Problem chiskiego listonosza
165 1) Grafy eulerowskie własnoci algorytmy 2) Problem chiskiego listonosza 166 Grafy eulerowskie Def. Graf (multigraf, niekoniecznie spójny) jest grafem eulerowskim, jeli zawiera cykl zawierajcy wszystkie
Zagadnienia zaawansowane. Lech Kruś,
WYŻSZA SZKOŁA INFORMATYKI STOSOWANEJ I ZARZĄDZANIA WYDZIAŁ INFORMATYKI WIELODOSTĘPNE SYSTEMY OPERACYJNE II (SO2) Zagadnienia zaawansowane CZĘŚĆ 1 KONSPEKT WYKŁADÓW INFORMACJA O SPECJALIZACJI SIECI KOMPUTEROWE
zdefiniowanie kilku grup dyskusyjnych, z których chcemy odbiera informacje, dodawanie, usuwanie lub edycj wczeniej zdefiniowanych grup dyskusyjnych,
Wstp W nowoczesnym wiecie coraz istotniejsz rol odgrywa informacja i łatwy dostp do niej. Nie dziwi wic fakt, i nowoczesne telefony komórkowe to nie tylko urzdzenia do prowadzenia rozmów telefonicznych,
Współ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
Programowanie wielowątkowe. Tomasz Borzyszkowski
Programowanie wielowątkowe Tomasz Borzyszkowski Wątki a procesy Jako jeden z niewielu języków programowania Java udostępnia użytkownikowi mechanizmy wspierające programowanie wielowątkowe. Program wielowątkowy
Temat: Geometria obliczeniowa cz II. Para najmniej odległych punktów. Sprawdzenie, czy istnieje para przecinajcych si odcinków.
Temat: Geometria obliczeniowa cz II. Para najmniej odległych punktów. Sprawdzenie, czy istnieje para przecinajcych si odcinków. 1. Para najmniej odległych punktów WP: Dany jest n - elementowy zbiór punktów
1. 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ć
Listy i operacje pytania
Listy i operacje pytania Iwona Polak iwona.polak@us.edu.pl Uniwersytet l ski Instytut Informatyki pa¹dziernika 07 Który atrybut NIE wyst puje jako atrybut elementów listy? klucz elementu (key) wska¹nik
Temat: Liniowe uporzdkowane struktury danych: stos, kolejka. Specyfikacja, przykładowe implementacje i zastosowania. Struktura słownika.
Temat: Liniowe uporzdkowane struktury danych: stos, kolejka. Specyfikacja, przykładowe implementacje i zastosowania. Struktura słownika. 1. Pojcie struktury danych Nieformalnie Struktura danych (ang. data
Programowanie 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
Program Sprzeda wersja 2011 Korekty rabatowe
Autor: Jacek Bielecki Ostatnia zmiana: 14 marca 2011 Wersja: 2011 Spis treci Program Sprzeda wersja 2011 Korekty rabatowe PROGRAM SPRZEDA WERSJA 2011 KOREKTY RABATOWE... 1 Spis treci... 1 Aktywacja funkcjonalnoci...
Programowanie Obiektowe
Programowanie Obiektowe dr in. Piotr Zabawa IBM/Rational Certified Consultant pzabawa@pk.edu.pl WYKŁAD 1 Wstp, jzyki, obiektowo Cele wykładu Zaznajomienie słuchaczy z głównymi cechami obiektowoci Przedstawienie
Nurkowanie z butl? i nurkowanie na wstrzymanym oddechu tego samego dnia wytyczne DAN.
Nurkowanie z butl? i nurkowanie na wstrzymanym oddechu tego samego dnia wytyczne DAN. Jakie s? obecne wytyczne DAN dotycz?ce wykonywania nurkowania z butl? i nurkowania na wstrzymanym oddechu (freedivingu)
Szukanie najkrótszych dróg z jednym ródłem
Szukanie najkrótszych dróg z jednym ródłem Algorytm Dijkstry Załoenia: dany jest spójny graf prosty G z wagami na krawdziach waga w(e) dla kadej krawdzi e jest nieujemna dany jest wyróniony wierzchołek
Gdy 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
Zakleszczenie. Problem i przeciwdziałanie. Systemy operacyjne Wykład 8 1
Zakleszczenie Problem i przeciwdziałanie Systemy operacyne Wykład 8 1 Klasyfikaca zasobów systemu na potrzeby analizy problemu zakleszczenia Warunki konieczne wystąpienia zakleszczenia Graf przydziału
Gramatyki regularne i automaty skoczone
Gramatyki regularne i automaty skoczone Alfabet, jzyk, gramatyka - podstawowe pojcia Co to jest gramatyka regularna, co to jest automat skoczony? Gramatyka regularna Gramatyka bezkontekstowa Translacja
System Connector Opis wdrożenia systemu
System Connector Opis wdrożenia systemu Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego Spistre ci Wymagania z perspektywy Powiatowego Urzdu Pracy... 3
1. Liczby i w zapisie zmiennoprzecinkowym przedstawia się następująco
1. Liczby 3456.0012 i 0.000076235 w zapisie zmiennoprzecinkowym przedstawia się następująco a) 0.34560012 10 4 i 0.76235 10 4 b) 3.4560012 10 3 i 7.6235 10 5 c) 3.4560012 10 3 i 7.6235 10 5 d) po prostu
Uywanie licencji typu On-Demand. Using an On-Demand License Japanese. Language. Contents
Uywanie licencji typu On-Demand Language Using an On-Demand License Japanese Contents Logowanie do konta Altium Dostpne portale Dostpno licencji Tryb licencji On-Demand Roaming Praca bez dostpu do Internetu
Materiał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
Bazy danych. Plan wykładu. Podzapytania - wskazówki. Podzapytania po FROM. Wykład 5: Zalenoci wielowartociowe. Sprowadzanie do postaci normalnych.
Plan wykładu azy danych Wykład 5: Zalenoci wielowartociowe. Sprowadzanie do postaci normalnych. Dokoczenie SQL Zalenoci wielowartociowe zwarta posta normalna Dekompozycja do 4NF Przykład sprowadzanie do
Systemowe 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
Języki i Techniki Programowania II. Wykład 7. Współbieżność 1
Języki i Techniki Programowania II Wykład 7 Współbieżność 1 Programy, Procesy, Wątki Program to zestaw instrukcji do wykonania, dane do przetworzenia, mechanizmy sterujące (stos) Proces w komputerze to
Programowanie współbieżne Wykład 7. Iwona Kochaoska
Programowanie współbieżne Wykład 7 Iwona Kochaoska Poprawnośd programów współbieżnych Właściwości związane z poprawnością programu współbieżnego: Właściwośd żywotności - program współbieżny jest żywotny,
Plan wykładu. Reguły asocjacyjne. Przykłady asocjacji. Reguły asocjacyjne. Jeli warunki to efekty. warunki efekty
Plan wykładu Reguły asocjacyjne Marcin S. Szczuka Wykład 6 Terminologia dla reguł asocjacyjnych. Ogólny algorytm znajdowania reguł. Wyszukiwanie czstych zbiorów. Konstruowanie reguł - APRIORI. Reguły asocjacyjne
Wykład 5. Synchronizacja (część II) Wojciech Kwedlo, Wykład z Systemów Operacyjnych -1- Wydział Informatyki PB
Wykład 5 Synchronizacja (część II) Wojciech Kwedlo, Wykład z Systemów Operacyjnych -1- Wydział Informatyki PB Wady semaforów Jeden z pierwszych mechanizmów synchronizacji Generalnie jest to mechanizm bardzo
Wstęp do programowania 2
Wstęp do programowania 2 wykład 10 Zadania Agata Półrola Wydział Matematyki UŁ 2005/2006 http://www.math.uni.lodz.pl/~polrola Współbieżność dotychczasowe programy wykonywały akcje sekwencyjnie Ada umożliwia
Zagadnienia zaawansowane. Lech Kru, (SO2) WIELODOSTPNE SYSTEMY OPERACYJNE II INFORMACJA O SPECJALIZACJI SIECI KOMPUTEROWE KOORDYNACJA PROCESÓW
WYSZA SZKOŁA INFORMATYKI STOSOWANEJ I ZARZDZANIA WYDZIAŁ INFORMATYKI WIELODOSTPNE SYSTEMY OPERACYJNE II (SO2) Zagadnienia zaawansowane CZ 1 KONSPEKT WYKŁADÓW INFORMACJA O SPECJALIZACJI SIECI KOMPUTEROWE
Problemy czytelników i pisarzy oraz 5 ucztujących filozofów
Problemy czytelników i pisarzy oraz 5 dr inż. Sławomir Samolej Katedra Informatyki i Automatyki Politechnika Rzeszowska Program przedmiotu oparto w części na materiałach opublikowanych na: http://wazniak.mimuw.edu.pl/
Modelowanie procesów współbieżnych
Modelowanie procesów współbieżnych dr inż. Maciej Piotrowicz Katedra Mikroelektroniki i Technik Informatycznych PŁ piotrowi@dmcs.p.lodz.pl http://fiona.dmcs.pl/~piotrowi -> Modelowanie... Literatura M.
Problemy 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
Proces 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
Prezentacja 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
Zaawansowane programowanie w C++ (PCP)
Wykład 10 - boost Thread. 8 czerwca 2007 Równoległość bardzo wolna reakcja człowieka wolne urządzenia wejścia - wyjścia (np. drukarki) bardzo szybkie procesory można przeprowadzać obliczenia podczas obsługi
Programowanie i struktury danych
Programowanie i struktury danych Wykªad 3 1 / 37 tekstowe binarne Wyró»niamy dwa rodzaje plików: pliki binarne pliki tekstowe 2 / 37 binarne tekstowe binarne Plik binarny to ci g bajtów zapami tanych w
Procesy 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
wiczenie 5 Woltomierz jednokanaowy
wiczenie 5 Woltomierz jednokanaowy IMiO PW, LPTM, wiczenie 5, Woltomierz jednokanaowy -2- Celem wiczenia jest zapoznanie si# z programow% obsug% prostego przetwornika analogowo-cyfrowego na przykadzie
Lab. 02: Algorytm Schrage
Lab. 02: Algorytm Schrage Andrzej Gnatowski 5 kwietnia 2015 1 Opis zadania Celem zadania laboratoryjnego jest zapoznanie si z jednym z przybli»onych algorytmów sªu» cych do szukania rozwi za«znanego z
Problem decyzyjny naley do klasy NP. (Polynomial), jeeli moe by rozwizany w czasie conajwyej wielomianowym przez algorytm A dla DTM.
WYKŁAD : Teoria NP-zupełnoci. Problem decyzyjny naley do klasy P (Polynomial), jeeli moe by rozwizany w czasie conajwyej wielomianowym przez algorytm A dla DTM. (przynaleno ta jest zachowana równie dla