Wies!aw P!aczek Systemy Operacyjne: Wyk!ad 5 1

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

Download "Wies!aw P!aczek Systemy Operacyjne: Wyk!ad 5 1"

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&dego typu, których b"dzie potrzebowa!.!! Algorytm unikania zakleszcze% (deadlock avoidance) sprawdza dynamicznie stan przydzia!u zasobów, by zapewni', &e nigdy nie dojdzie do czekania cyklicznego.!! Stan przydzia&u zasobów jest okre#lony przez liczb" dost"pnych i przydzielonych zasobów oraz maksymalne zapotrzebowania procesów. 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&dego 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&dego 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 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ółowo

Synchronizacja procesów i wątków

Synchronizacja procesów i wątków SOE Systemy Operacyjne Wykład 12 Synchronizacja procesów i wątków dr inŝ. Andrzej Wielgus Instytut Mikroelektroniki i Optoelektroniki WEiTI PW Problem sekcji krytycznej Podstawowy problem synchronizacji

Bardziej szczegółowo

Porządek dostępu do zasobu: procesory obszary pamięci cykle procesora pliki urządzenia we/wy

Porządek dostępu do zasobu: procesory obszary pamięci cykle procesora pliki urządzenia we/wy ZAKLESZCZENIA w SO brak środków zapobiegania zakleszczeniom Zamówienia na zasoby => przydział dowolnego egzemplarza danego typu Zasoby w systemie typy; identyczne egzemplarze procesory obszary pamięci

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Programowanie wspóªbie»ne

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,

Bardziej szczegółowo

J. Ułasiewicz Programowanie aplikacji współbieżnych 1

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

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Programowanie wspóªbie»ne

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

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Blokady. Model systemu. Charakterystyka blokady

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)

Bardziej szczegółowo

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

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

Bardziej szczegółowo

J. Ułasiewicz Programowanie aplikacji współbieżnych 1

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

Bardziej szczegółowo

Semafory. // G - globalna dla wszystkich. // Wada - aktywne oczekiwanie Test_and_Set(Li); exit when Li = 0; end loop sekcja_krytyczna(i); G := 0;

Semafory. // G - globalna dla wszystkich. // Wada - aktywne oczekiwanie Test_and_Set(Li); exit when Li = 0; end loop sekcja_krytyczna(i); G := 0; Semafory Rozwiązanie problemu wzajemnego wykluczania Bez dodatkowego wsparcia sprzętowego i programowego Zakładamy jedynie, że zapis do i odczyt z pamięci wspólnej są operacjami atomowymi (czyli istnieje

Bardziej szczegółowo

Semafor nie jest mechanizmem strukturalnym. Aplikacje pisane z użyciem semaforów są podatne na błędy. Np. brak operacji sem_post blokuje aplikację.

Semafor nie jest mechanizmem strukturalnym. Aplikacje pisane z użyciem semaforów są podatne na błędy. Np. brak operacji sem_post blokuje aplikację. J. Ułasiewicz Programowanie aplikacji współbieżnych 1 11 11.1 abstrakcyjne Semafor nie jest mechanizmem strukturalnym. Aplikacje pisane z użyciem semaforów są podatne na błędy. Np. brak operacji sem_post

Bardziej szczegółowo

Semafory. - aktywne oczekiwanie =GRGDWNRZ\PZVSDUFLHPVSU]WRZ\P 6SHFMDOQDLQVWUXNFMDPDV]\QRZDUHDOL]XMFDDWRPRZ\]DSLVL odczyt, np.

Semafory. - aktywne oczekiwanie =GRGDWNRZ\PZVSDUFLHPVSU]WRZ\P 6SHFMDOQDLQVWUXNFMDPDV]\QRZDUHDOL]XMFDDWRPRZ\]DSLVL odczyt, np. Semafory 5R]ZL]DQLHSUREOHPXZ]DMHPQHJRZ\NOXF]DQLD %H]GRGDWNRZHJRZVSDUFLDVSU]WRZHJRLSURJUDPRZHJR =DNáDGDP\MHG\QLH*H]DSLVGRLRGF]\W]SDPLFLZVSyOQHMV RSHUDFMDPLDWRPRZ\PLF]\OLLVWQLHMHDUELWHUZVSyOQHMSDPLFL :UD]LHMHGQRF]HVQHJR]DSLVXLRGF]\WXUH]XOWDWHPEG]LH

Bardziej szczegółowo

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

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

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Programowanie Równoległe i Rozproszone

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

Bardziej szczegółowo

Semafor nie jest mechanizmem strukturalnym. Aplikacje pisane z użyciem semaforów są podatne na błędy. Np. brak operacji sem_post blokuje aplikację.

Semafor nie jest mechanizmem strukturalnym. Aplikacje pisane z użyciem semaforów są podatne na błędy. Np. brak operacji sem_post blokuje aplikację. J. Ułasiewicz Programowanie aplikacji współbieżnych 1 11 Semafor nie jest mechanizmem strukturalnym. Aplikacje pisane z użyciem semaforów są podatne na błędy. Np. brak operacji sem_post blokuje aplikację.

Bardziej szczegółowo

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

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,

Bardziej szczegółowo

SOP2 - semafory. grudzień

SOP2 - semafory. grudzień SOP2 - semafory grudzień 2010 1 Plan prezentacji Problem producent-konsument Problem czytelników i pisarzy Problem jedzących filozofów grudzień 2010 2 Producent-konsument var bufor: array [0..n-1] of produkt;

Bardziej szczegółowo

Monitory. Jarosław Kuchta

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

Bardziej szczegółowo

Wprowadzenie do programowania współbieżnego

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

Bardziej szczegółowo

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

Ingerencja w kod systemu operacyjnego (przerwania) Programowanie na niskim poziomie (instrukcje specjalne) Trudności implementacyjne (alg. Wady mechanizmów niskopoziomowych Ingerencja w kod systemu operacyjnego (przerwania) Programowanie na niskim poziomie (instrukcje specjalne) Trudności implementacyjne (alg. Dekkera zależny od liczby synchronizowanych

Bardziej szczegółowo

synchronizacji procesów

synchronizacji procesów Dariusz Wawrzyniak Definicja semafora Klasyfikacja semaforów Implementacja semaforów Zamki Zmienne warunkowe Klasyczne problemy synchronizacji Plan wykładu (2) Semafory Rodzaje semaforów (1) Semafor jest

Bardziej szczegółowo

synchronizacji procesów

synchronizacji procesów Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak Plan wykładu Definicja semafora Klasyfikacja semaforów Implementacja semaforów Zamki Zmienne warunkowe Klasyczne problemy synchronizacji (2) Semafory

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Systemy operacyjne III

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

Bardziej szczegółowo

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 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ółowo

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

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

Bardziej szczegółowo

Sposoby przekazywania parametrów w metodach.

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

Bardziej szczegółowo

Systemy operacyjne. Zajęcia 11. Monitory

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

Bardziej szczegółowo

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. 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

Bardziej szczegółowo

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

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

Bardziej szczegółowo

SYSTEMY OPERACYJNE WYKLAD 6 - procesy

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

Bardziej szczegółowo

... Ireneusz Mrozek. Wydział Informatyki

... 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; -

Bardziej szczegółowo

Programowanie wspóªbie»ne

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

Bardziej szczegółowo

Synchronizacja procesów

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

Bardziej szczegółowo

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. 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

Bardziej szczegółowo

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

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

Bardziej szczegółowo

3URJUDPRZDQLHZVSyáELH*QHZVWS

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

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Bazy danych Podstawy teoretyczne

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

Bardziej szczegółowo

Synchronizacja procesów

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

Bardziej szczegółowo

Bazy danych Transakcje

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:

Bardziej szczegółowo

Temat: Algorytmy zachłanne

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

Bardziej szczegółowo

Rozwi zania klasycznych problemów w Rendezvous

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

Bardziej szczegółowo

Klasyczne problemy synchronizacji

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

Bardziej szczegółowo

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). Temat: Programowanie zdarzeniowe. Zdarzenia: delegacje, wykorzystywanie zdarze. Elementy Windows Application (WPF Windows Presentation Foundation). 1. Programowanie zdarzeniowe Programowanie zdarzeniowe

Bardziej szczegółowo

.! $ Stos jest list z trzema operacjami: dodawanie elementów na wierzch stosu, zdejmowanie elementu z wierzchu stosu, sprawdzanie czy stos jest pusty.

.! $ 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

Bardziej szczegółowo

Wstp. Warto przepływu to

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

Bardziej szczegółowo

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

procesów Współbieżność i synchronizacja procesów Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak Plan wykładu Abstrakcja programowania współbieżnego Instrukcje atomowe i ich przeplot Istota synchronizacji Kryteria poprawności programów współbieżnych

Bardziej szczegółowo

SYSTEMY CZASU RZECZYWISTEGO - VxWorks

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()

Bardziej szczegółowo

Systemy Operacyjne synchronizacja i komunikacja procesów

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

Bardziej szczegółowo

Problem zakleszczenia

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

Bardziej szczegółowo

Monitory. Wady semafora

Monitory. Wady semafora Wady semafora Monitory Niestrukturalny mechanizm synchronizacji Nie ułatwia wykrywania błędów synchronizacyjnych w czasie kompilacji programu Idea Jądro systemu operacyjnego jako monolityczny monitor -

Bardziej szczegółowo

Autor: dr inż. Zofia Kruczkiewicz, Programowanie aplikacji internetowych 1

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

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Tworzenie bazy danych Biblioteka tworzenie tabel i powiza, manipulowanie danymi. Zadania do wykonani przed przystpieniem do pracy:

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

Bardziej szczegółowo

Projektowanie algorytmów rekurencyjnych

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

Bardziej szczegółowo

1) Grafy eulerowskie własnoci algorytmy. 2) Problem chiskiego listonosza

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

Bardziej szczegółowo

Zagadnienia zaawansowane. Lech Kruś,

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

Bardziej szczegółowo

zdefiniowanie kilku grup dyskusyjnych, z których chcemy odbiera informacje, dodawanie, usuwanie lub edycj wczeniej zdefiniowanych grup dyskusyjnych,

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,

Bardziej szczegółowo

Współbieżność w środowisku Java

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

Bardziej szczegółowo

Programowanie wielowątkowe. Tomasz Borzyszkowski

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

Bardziej szczegółowo

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. 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

Bardziej szczegółowo

1. Działania na procesach

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ć

Bardziej szczegółowo

Listy i operacje pytania

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

Bardziej szczegółowo

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. 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

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Program Sprzeda wersja 2011 Korekty rabatowe

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...

Bardziej szczegółowo

Programowanie Obiektowe

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

Bardziej szczegółowo

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. 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)

Bardziej szczegółowo

Szukanie najkrótszych dróg z jednym ródłem

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

Bardziej szczegółowo

Gdy kilka procesów czyta a przynajmniej jeden dokonuje zapisu wynik odczytu zależeć może od sposobu realizacji przeplotu.

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

Bardziej szczegółowo

Zakleszczenie. Problem i przeciwdziałanie. Systemy operacyjne Wykład 8 1

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

Bardziej szczegółowo

Gramatyki regularne i automaty skoczone

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

Bardziej szczegółowo

System Connector Opis wdrożenia systemu

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

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Uywanie licencji typu On-Demand. Using an On-Demand License Japanese. Language. Contents

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

Bardziej szczegółowo

Materiały pomocnicze 1

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

Bardziej szczegółowo

Bazy danych. Plan wykładu. Podzapytania - wskazówki. Podzapytania po FROM. Wykład 5: Zalenoci wielowartociowe. Sprowadzanie do postaci normalnych.

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

Bardziej szczegółowo

Systemowe mechanizmy synchronizacji procesów

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

Bardziej szczegółowo

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

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

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Plan wykładu. Reguły asocjacyjne. Przykłady asocjacji. Reguły asocjacyjne. Jeli warunki to efekty. warunki efekty

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

Bardziej szczegółowo

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 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

Bardziej szczegółowo

Wstęp do programowania 2

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

Bardziej szczegółowo

Zagadnienia zaawansowane. Lech Kru, (SO2) WIELODOSTPNE SYSTEMY OPERACYJNE II INFORMACJA O SPECJALIZACJI SIECI KOMPUTEROWE KOORDYNACJA PROCESÓW

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

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Modelowanie procesów współbieżnych

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

Bardziej szczegółowo

Problemy współbieżności

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

Bardziej szczegółowo

Proces y i y w i ąt ą ki

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

Bardziej szczegółowo

Prezentacja systemu RTLinux

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

Bardziej szczegółowo

Zaawansowane programowanie w C++ (PCP)

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

Bardziej szczegółowo

Programowanie i struktury danych

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

Bardziej szczegółowo

Procesy i wątki. Blok kontrolny procesu. Proces. Proces - elementy. Stan procesu

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

Bardziej szczegółowo

wiczenie 5 Woltomierz jednokanaowy

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

Bardziej szczegółowo

Lab. 02: Algorytm Schrage

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

Bardziej szczegółowo

Problem decyzyjny naley do klasy NP. (Polynomial), jeeli moe by rozwizany w czasie conajwyej wielomianowym przez algorytm A dla DTM.

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

Bardziej szczegółowo