Semafory Zobecněním operací WAKEUP a SLEEP přidáním celočíselného čítače vzniknou semafory a jejich atomické operace DOWN a UP.
|
|
- Libor Vítek
- před 8 lety
- Počet zobrazení:
Transkript
1 Semafory Zobecněním operací WAKEUP a SLEEP přidáním celočíselného čítače vzniknou semafory a jejich atomické operace DOWN a UP. Dvě sémantiky vzhledem k hodnotám čítače: 1. čítač >= 0 Operace DOWN zkontroluje hodnotu semaforu. Jestliže je větší než 0, sníží hodnotu semaforu o 1 a operace skončí. Jestliže je rovna 0, operace DOWN se zablokuje a příslušný proces je přidán do fronty čekajících procesů na daném semaforu. Operace UP zjistí, zda je fronta čekajících procesů na daném semaforu neprázdná. Pokud ano, vybere jeden z čekajících procesů (např. nejdéle čekající) a ten odblokuje (tj. pokračuje za svou operací DOWN). Pokud je fronta prázdná, zvětší čítač semaforu o čítač libovolný (záporná hodnota je počet zablokovaných procesů) Operace DOWN sníží hodnotu semaforu o 1. Jestliže je větší nebo roven 0, operace skončí. Jestliže je menší než 0, operace DOWN se zablokuje a příslušný proces je přidán do fronty čekajících procesů na daném semaforu. Operace UP zvětší čítač semaforu o 1. Pokud je hodnota menší rovna 0, zkontroluje, zda je fronta čekajících procesů na daném semaforu neprázdná. Pokud ano, vybere jeden z čekajících procesů a ten odblokuje. Binární semafory nabývají pouze hodnot 0 a 1. Dá se jimi snadno vytvořit kritická sekce "uzávorkovaná" mezi operace DOWN a UP příslušného semaforu.
2 Monitory Pro zjednodušení práce a zamezení chyb při použití semaforů bylo navrženo synchronizační primitivum monitor. Monitor je soubor funkcí, proměnných a datových struktur, který jsou sdružen do zvláštního balíku. Procesy smí volat funkce z monitoru, kdykoliv chtějí, ale nemají přístup k proměnným monitoru z funkcí mimo monitor. Navíc monitor zaručuje, že v jednom okamžiku může být aktivní nejvýše jeden proces v jedné instanci monitoru. Monitor je konstrukcí programovacího jazyka a překladač tudíž ví, že funkce monitoru je třeba překládat jinak. Záleží na překladači, jak implementuje monitory (typicky pomocí semaforů). Protože vzájemné vyloučení zařizuje překladač a ne programátor, zabrání se mnoha chybám. Stačí pouze vědět, že všechny kritické operace je třeba provádět v monitorech. Blokování procesů uvnitř funkcí monitoru pomocí podmíněných proměnných a operacemi WAIT a SIGNAL na nich definovaných. Podmíněné proměnné nejsou čítače (na rozdíl od semaforů). Když funkce monitoru zjistí, že nemůže pokračovat, volá operaci WAIT a zablokuje aktivní proces v monitoru. To umožní jinému procesu vniknout do monitoru. Jiný proces může být probuzen pomocí operace SIGNAL (jeden z čekajících z množiny zablokovaných procesů na dané podmíněné proměnné). Tady ale vzniká problém, že v jednom okamžiku jsou dva procesy v jedné instanci monitoru. Existují dvě řešení: 1. Spustit probuzený proces a druhý uspat 2. Proces volající SIGNAL okamžitě opustí monitor.
3 Zprávy Systémová volání SEND a RECEIVE pro zasílání a příjem zpráv. Zpráva je nějaká přenášená informace mezi odesilatelem a příjemcem. SEND zašle zprávu. Nikdy se nezablokuje. Pokud na zprávu čeká příjemce operací RECEIVE, je mu zpráva doručena a příjemce odblokován. RECEIVE zprávu přijímá. Pokud žádná zpráva není dostupná, přijímající proces je zablokován. Je třeba vyřešit problém adresace, tj. určení odesilatele a příjemce. Lze řešit např. identifikací procesu na daném počítači. Jiným řešením je zavedení schránek (mailboxů) a adresace pomocí identifikace schránky. Schránka je vyrovnávací paměť typicky pevné délky. Do ní jsou zprávy ukládány operací SEND a z ní vybírány operací RECEIVE. Schránka modifikuje operaci SEND: pokud je schránka plná, zablokuje se i SEND. Zajímavým případem je situace, kdy je schránka nulové velikosti. Pokud je odesilatelem proveden SEND a ještě tam není žádný příjemce čekající operací RECEIVE, musí odesilatel počkat. Podobně příjemce čeká na odesilatele, až něco zašle. Po předání zprávy, tj. je provedena operace SEND i RECEIVE na jednu schránku, se oba procesy opět rozběhnou. Tento případ se nazývá dostaveníčko (randezvous).
4 Ekvivalence primitiv Semafory, monitory a zprávy jsou vzájemně ekvivalentní. Implementace semaforů pomocí zpráv pomocí synchronizačního procesu - serveru semaforů. Problém obědvajících filozofů Pět filozofů sedí kolem kulatého stolu. Každý filozof má talíř špaget. U každého talíře je jedna vidlička. Špagety jsou tak slizké, že je k jídlu zapotřebí dvou vidliček. Život filozofů sestává ze střídajících se období jídla a přemýšlení. Když filozof dostane hlad, pokusí se vzít v libovolném pořadí dvě vidličky přilehlé k jeho talíři. Pokud se mu to podaří, chvilku jí, a pak zase vidličky v libovolném pořadí odloží. Napište program, který simuluje život filozofa.
5 #define N 5 /* počet filozofů */ void philosopher(int i)/* i: který filozof (0 až N-1) */ for(;;) think(); /* filozof myslí */ take_fork(i); /* vezmi levou vidličku */ take_fork((i+1) % N); /* vezmi pravou vidličku */ eat(); /* hurá na špagety */ put_fork(i); /* odlož levou vidličku */ put_fork((i+1) % N); /* odlož pravou vidličku */ Funkce take_fork vezme vidličku se zablokováním, pokud není dostupná. Pokud ji ale všech pět filozofů uchopí ve stejném okamžiku, všichni se zablokují čekáním na druhou. Je to špatně!!! Modifikace: filozof se uchopí levou vidličku a podívá se, jestli je pravá vidlička volná. Pokud není, položím zpět levou vidličku. Tato modifikace vede ke stavu nazvaném vyhladovění (starvation) - program není zablokovaný, ale nedělá, co by měl. Problém ospalého holiče Holičství má jednoho holiče, jedno holičské křeslo a N křesel pro čekající zákazníky. Jestliže není přítomen žádný zákazník, holič se posadí a spí. Když přijde zákazník, tak probudí holiče a jde si sednou do holičského křesla. Jestliže přijdou další zákaznící a holič už stříhá, tak si sedají do křesel pro zákazníky. Pokud už není žádné volné křeslo pro zákazníky, zákazník odejde. Napište program, který simuluje holiče a zákazníky.
6 Problém producent/konzument se semafory #define N 100 /* velikost bufferu */ semaphore mutex = 1;/* řídí přístup do kritické sekce */ semaphore empty = N;/* počet volných položek v bufferu */ semaphore full = 0;/* počet užitých položek bufferu */ void producer(void) int item; for(;;) produce_item(&item);/* připrav další prvek */ down(&empty); /* sniž čítač volných položek */ down(&mutex); /* vstup do kritické sekce */ enter_item(item); /* ulož nový prvek do bufferu */ up(&mutex); /* opusť kritickou sekci */ up(&full); /* zvětši počet užitých položek */ void consumer(void) int item; for(;;) down(&full); /* sniž čítač užitých položek */ down(&mutex); /* vstup do kritické sekce */ remove_item(&item);/* načti další prvek z bufferu */ up(&mutex); /* opusť kritickou sekci */ up(&empty); /* zvětši počet volných položek */ consume_item(item);/* zpracuj prvek */
7 Problém producent/konzument s monitory monitor ProducerConsumer condition full, empty; integer count; procedure enter; if count = N then wait(full); enter_item; count := count + 1; if count = 1 then signal(empty); end; procedure remove; if count = 0 then wait(empty); remove_item; count := count - 1; if count = N-1 then signal(full); end; count := 0; end monitor; procedure producer; while true do produce_item; ProducerConsumer.enter; end end; procedure consumer; while true do ProducerConsumer.remove; consume_item; end end;
8 Problém producent/konzument se zprávami Předpokládáme, že všechny zaslané a ještě nepřijaté zprávy jsou meziukládány systémem. #define N 100 /* počet položek bufferu */ void producer(void) int item; message m; for(;;) produce_item(&item); receive(consumer, &m); /* čekej na příchod díry */ build_message(&m, item); /* vytvoř zprávu */ send(consumer, &m); /* vyšli prvek */ void consumer(void) int item, i; message m; for(i=0;i<n;i++) send(producer, &m); /* vyšli N děr */ for(;;) receive(producer, &m); /* čekej na příchod prvku */ extract_item(&m, &item); /* vyber prvek */ send(producer, &m); /* vyšli díru */ consume_item(item);
9 Problém obědvajících filozofů se semafory #define N 5 /* počet filozofů */ #define LEFT (i-1)%n /* číslo levého souseda i */ #define RIGHT (i+1)%n/* číslo pravého souseda i*/ enum THINKING, HUNGRY, EATING state[n]; semaphore mutex = 1; semaphore s[n]; void test(int i) if(state[i]==hungry && state[left]!=eating && state[right]!=eating) state[i] = EATING; up(s[i]); void take_forks(int i) down(mutex); /* vstup do kritické sekce */ state[i] = HUNGRY; /* filozof i má hlad */ test(i); /* zkus získat dvě vidličky */ up(mutex); /* odchod z kritické sekce */ down(s[i]); /* při nezískání vidliček se blokuje */ void put_forks(int i) down(mutex); /* vstup do kritické sekce */ state[i] = THINKING; /* filozof dojedl */ test(left); /* zjisti, zda levý soused může jíst */ test(right); /* zjisti, zda pravý soused může jíst */ up(mutex); /* opusť kritickou sekci */
10 void philosopher(int i) for(;;) think(); take_forks(i); /* vezmi dvě vidličky */ eat(); put_forks(i); /* odlož obě vidličky */ Problém ospalého holiče #define CHAIRS 5 /* počet volných křesel */ int waiting = 0; /* počet čekajících zákazníků */ void barber(void) for(;;) receive(customer);/* je někdo připraven na holení */ waiting--; /* počet čekajících se sníží */ send(customer); /* pozvu ho do holičského křesla */ cut_hair(); void customer(void) if(waiting<chairs) /* ještě je tu volné křeslo */ waiting++; /* zvyšuje se počet čekajících */ send(barber); /* probuď holiče */ receive(barber); /* došla na mě řada */ get_haircut();
Operační systémy. Přednáška 5: Komunikace mezi procesy
Operační systémy Přednáška 5: Komunikace mezi procesy 1 Semafory Datový typ semafor obsahuje čítač a frontu čekajících procesů. Nabízí tři základní operace: Init(): Čítač se nastaví na zadané číslo (většinou
VícePřednáška 4. Klasické synchronizační úlohy. Implementace procesů, vláken.
Přednáška 4 Klasické synchronizační úlohy. Implementace procesů, vláken. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012 Příprava studijního programu Informatika
VíceProcesy a vlákna IPC Komunikace mezi procesy (IPC = Inter-Process Communication)
ÚVOD DO OPERAČNÍCH SYSTÉMŮ Ver.1.00 Procesy a vlákna IPC Komunikace mezi procesy (IPC = Inter-Process Communication) České vysoké učení technické Fakulta elektrotechnická 2010 Studijní materiály a informace
VíceSynchronizace paralelních procesů
SU Media: Student Středník ČWUT AVC SH Akropolis ikariéra Synchronizace paralelních procesů z ČWUT Obsah 1 Časově závislé chyby, kritické sekce, vzájemné vyloučení 2 Metody vzájemného vyloučení
VícePARA Filozofové, kuřáci a holič
PARA Filozofové, kuřáci a holič Lenka Carr Motyčková 22. duben 2014 PDS Semafory 1 1. Večeřící filozofové (Dijkstra 1968) Problém: N (typicky 5) flozofů sedí u kulatého stolu, přemýšlí nebo jedí pomocí
Více2010/2011 ZS. Operační systém. procesy a vlákna. interakce a synchronizace
Principy počítačů a operačních systémů Operační systém procesy a vlákna plánování interakce a synchronizace Základní pojmy proces vykonávaný program vlákno (thread) oddělení místa vykonávání instrukcí
VíceOperační systémy Tomáš Hudec. 6 Komunikace procesů (IPC) Obsah: 6.1 Klasické problémy souběhu. 6.1.1 Obědvající filosofové
Operační systémy Tomáš Hudec 6 Komunikace procesů (IPC) Obsah: 6.1 Klasické problémy souběhu, 6.1.1 Obědvající filosofové, 6.1.2 Producenti a konzumenti, 6.1.3 Problém spících holičů, 6.1.4 Problém pisatelů
VícePrincipy operačních systémů. Lekce 6: Synchronizace procesů
Principy operačních systémů Lekce 6: Synchronizace procesů Kritická sekce Při multitaskingu (multithreadingu) různé procesy často pracují nad společnou datovou strukturou (např. zápis a čtení do/z fronty)
VíceCvičení 9 - Monitory. monitor m; var proměnné... procedure p; begin... end; begin inicializace; end;
Cvičení 9 - Monitory na rozdíl od semaforů je monitor jazyková konstrukce monitor = Pascalský blok podobný proceduře nebo fci uvnitř monitoru jsou definovány proměnné, procedury a fce proměnné monitoru
VícePrincipy počítačů a operačních systémů
Principy počítačů a operačních systémů Operační systémy Synchronizace procesů, zablokování Zimní semestr 2011/2012 Přístup ke sdíleným datům Terminologie: souběžné vs. paralelní zpracování Paralelní provádění
Více04. Mutexy, monitory. ZOS 2006, L. Pešička
04. Mutexy, monitory ZOS 2006, L. Pešička Administrativa změna termínů zápočtových testů 7.11.2006 (út), EP130, 18:30 12.12.2006 (út), EP130, 18:30 Semafory Ošetření kritické sekce ukázka více nezávislých
VícePřednáška 3. Synchronizace procesů/vláken. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012
Přednáška 3 Synchronizace procesů/vláken. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012 Příprava studijního programu Informatika je podporována projektem financovaným
VíceŘada programovacích jazyků nabízí prostředky pro řešení meziprocesové komunikace jako je synchronizace a řízení přístupu do kritické sekce.
Operační systémy Tomáš Hudec 7 Prostředky programovacích jazyků pro IPC Obsah: 7.1 Monitor, 7.1.1 Použití monitoru pro řízení přístupu do kritické sekce, 7.1.2 Použití monitoru pro synchronizaci, 7.1.3
VíceOperační systémy. Přednáška 1: Úvod
Operační systémy Přednáška 1: Úvod 1 Organizace předmětu Přednášky každé úterý 18:00-19:30 v D209 Přednášející Jan Trdlička email: trdlicka@fel.cvut.cz kancelář: K324 Cvičení pondělí, úterý, středa, pátek
VíceOperační systémy. Přednáška 4: Komunikace mezi procesy
Operační systémy Přednáška 4: Komunikace mezi procesy 1 Časově závislé chyby Dva nebo několik procesů používá (čte/zapisuje) společné sdílené prostředky (např. sdílená paměť, sdílení proměnné, sdílené
VíceParalelní programování
Paralelní programování přednášky Jan Outrata únor duben 2011 Jan Outrata (KI UP) Paralelní programování únor duben 2011 1 / 17 Monitor Semafor vedle aktivní (čekací smyčka, busy-wait) i pasivní implementace
VíceOperační systémy - modelování a algoritmy paralelních výpočtů
Operační systémy - modelování a algoritmy paralelních výpočtů texty pro distanční studium Doc. Ing. Cyril Klimeš, CSc. Ostravská univerzita v Ostravě, Přírodovědecká fakulta Katedra informatiky a počítačů
VíceProcesy a vlákna - synchronizace
ÚVOD DO OPERAČNÍCH SYSTÉMŮ Ver.1.00 Procesy a vlákna - synchronizace České vysoké učení technické Fakulta elektrotechnická 2010 Studijní materiály a informace o předmětu http://measure.feld.cvut.cz/vyuka/predmety/bakalarske/navody
VíceParalelní programování
Paralelní programování přednášky Jan Outrata únor duben 2011 Jan Outrata (KI UP) Paralelní programování únor duben 2011 1 / 16 Semafory Await synchronizace používající await běží na železe = využívají
VíceSynchronizace Mgr. Josef Horálek
Synchronizace Mgr. Josef Horálek Synchronizace procesu = Kooperující proces je proces, který může ovlivnit nebo být ovlivněn jiným procesem právě spuštěným v systému = Spolupracující procesy mohou sdílet:
VíceZOS 9. cvičení, ukázky kódu. Pavel Bžoch
ZOS 9. cvičení, ukázky kódu Pavel Bžoch Obsah Komunikace mezi procesy Atomické operace TSL a CAS Zámky Semafory Semafory vypsání věty Monitor Bariéra pomocí monitoru Implementace semaforu pomocí monitoru
VíceTéma 36. Petr Husa
Přesné zadání: Téma 36 Petr Husa husap1@fel.cvut.cz Sdílení prostředků, časově závislé chyby, kritické sekce procesu. Synchronizační nástroje, uváznutí - původ, detekce, prevence. Komponenty JOS pro podporu
VíceJak je definována kritická sekce? Jaký je rozdíl mezi aktivním čekáním a blokováním procesů?
1. Historie OS Co to je OS? Základní části OS a v jakém modu běží? umožňuje běh systému, aby s ním uživatel mohl manipulovat. Jádro OS (kernel) běží v kernel modu, utility (editory, shelly, kompilátory)
VíceTest. 11.(vyp) 4 2 3 1. tz. 9 vypadku (100%)
Test Výpadky stránek co je vypadek stranky 7) Co je to vypadok stranky (1b) a) vypadnutie listu zo zosita b) nenajdenie kluca v asociativnej pamati c) vyhodenie stranky z pamati d) udalost, ktora nastane
VíceDistribuovaná synchronizace. Paralelní a distribuované systémy. 11. Přednáška Vzájemné vyloučení. Centralizovaný algoritmus - fronta procesů
Distribuovaná synchronizace Využití kritické sekce při vzájemném vyloučení v distribuovaném systému Paralelní a distribuované systémy 11. Přednáška Vzájemné vyloučení Logicky distribuovaný systém s vlákny
VíceManagement procesu II Mgr. Josef Horálek
Management procesu II Mgr. Josef Horálek Vlákna = Vlákna (Threads) = proces je definován množinou zdrojů výpočetního systému, které používá a umístěním, kde je spuštěn; = vlákno (thread) nazýváme lehký
VíceChapter 6: Process Syncronization
Chapter 6: Process Syncronization Chapter 6: Process Syncronization Background The Critical-Section Problem Peterson s Solution Synchronization Hardware Mutex Locks Semaphores Classic Problems of Synchronization
VíceAnotace. Dynamické programování, diskrétní simulace.
Anotace Dynamické programování, diskrétní simulace. Problémy, které byly Přednášející jde tentokrát do M1, počet platných uzávorkování pomocí n párů závorek, počet rozkladů přirozeného čísla na součet
VíceGrafické znázornění vláken a klasické problémy synchronizace
Grafické znázornění vláken a klasické problémy synchronizace Naďa Jašíková Vít Koumar Jindřich Samec 1 Grafické znázornění vláken a jejich komunikace v UML Unified Modelling Language (UML) se používá k
VíceTÉMATICKÝ OKRUH Počítače, sítě a operační systémy
TÉMATICKÝ OKRUH Počítače, sítě a operační systémy Číslo otázky : 1. Otázka : Procesy, meziprocesová komunikace a její synchronizace. Obsah : 1 Úvod 1.1 Stavy procesů 1.2 Tabulka procesů 1.3 Přepínání mezi
VíceSlužba ve Windows. Služba (service) je program
Služby Windows Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ing. Libor Otáhalík. Dostupné z Metodického portálu www.rvp.cz, ISSN: 1802-4785. Provozuje Národní ústav pro vzdělávání, školské
VíceTéma 5 Synchronizace procesů a problém uváznutí Obsah
Téma 5 Synchronizace procesů a problém uváznutí Obsah 1. Problém soupeření, kritické sekce 2. Vzájemné vyloučení 3. Semafory 4. Klasické synchronizační úlohy 5. Problém uváznutí a časově závislých chyb
Více2) Napište algoritmus pro vložení položky na konec dvousměrného seznamu. 3) Napište algoritmus pro vyhledání položky v binárním stromu.
Informatika 10. 9. 2013 Jméno a příjmení Rodné číslo 1) Napište algoritmus pro rychlé třídění (quicksort). 2) Napište algoritmus pro vložení položky na konec dvousměrného seznamu. 3) Napište algoritmus
Více5 Rekurze a zásobník. Rekurzivní volání metody
5 Rekurze a zásobník Při volání metody z metody main() se do zásobníku uloží aktivační záznam obsahující - parametry - návratovou adresu, tedy adresu, kde bude program pokračovat v metodě main () po skončení
VíceSynchronizace vjj 1
Synchronizace 13.06.18 vjj 1 13.06.18 vjj 2 Synchronizace obraz a zvuk 13.06.18 vjj 3 Synchronizace procesy/vlákna 13.06.18 vjj 4 čeho?!?!?! Synchronizace dvou (a více) paralelně běžících procesů dvou
Více03. Synchronizace procesů. ZOS 2006, L. Pešička
03. Synchronizace procesů ZOS 2006, L. Pešička Administrativa 1. zápočtový test 7.11.2006 (út), EP130, 18:30 praktická cvičení před testem (slide upraven na aktuální termín) Plánování procesů Krátkodobé
VíceUživatelská příručka Evidence příchozí a odchozí pošty a elektronický archiv. V prostředí společnosti. Pražská vodohospodářská společnost a.s.
Uživatelská příručka Evidence příchozí a odchozí pošty a elektronický archiv V prostředí společnosti Pražská vodohospodářská společnost a.s. Obsah 1. ÚVOD... 5 2. PROSTŘEDÍ WORKSPACE... 5 2.1 TECHNOLOGIE
VíceTéma 5 Synchronizace procesů a problém uváznutí
Téma 5 Synchronizace procesů a problém uváznutí Obsah 1. Problém soupeření, kritické sekce 2. Vzájemné vyloučení 3. Semafory 4. Klasické synchronizační úlohy 5. Problém uváznutí a časově závislých chyb
VíceParalelní programování
Paralelní programování cvičení Jan Outrata únor duben 2011 Jan Outrata (KI UP) Paralelní programování únor duben 2011 1 / 13 Cvičení 1 Jazyk C POSIX Threads (UNIX) hlavičkový soubor pthread.h, knihovna
VíceIntervalové stromy. Představme si, že máme posloupnost celých čísel p 0, p 1,... p N 1, se kterou budeme. 1. Změna jednoho čísla v posloupnosti.
Intervalové stromy Představme si, že máme posloupnost celých čísel p 0, p 1,... p N 1, se kterou budeme průběžně provádět tyto dvě operace: 1. Změna jednoho čísla v posloupnosti. 2. Zjištění součtu čísel
VícePavel Procházka. 3. prosince 2014
Jazyk C# (seminář 11) Pavel Procházka KMI 3. prosince 2014 Motivace Dnes už se prakticky nedělají jednojádrové procesory pokud potřebujeme výkon, musíme zapojit všechna jádra Často potřebujeme dělat více
VíceKomunikace eorders. aegis. aegis.cz. Konference Common 2009 Malá Fatra. Evžen Kučera
Komunikace eorders Konference Common 2009 Malá Fatra Evžen Kučera Obsah Požadavky na komunikaci Aegis utility Systém Programové Komunikační Nadstavba pro LeasePlan Kontrola komunikací Další rozvoj Požadavky
VíceKIV/PIA Semestrální práce
KIV/PIA Semestrální práce Diskuzní fórum Tomáš Časta(A10N0057P) casta@students.zcu.cz 1. Architektura aplikace 1.1 MVC Model-view-controller (MVC) je softwarová architektura, která rozděluje datový model
VíceChapter 6: Process Synchronization
Chapter 6: Process Synchronization Module 6: Process Synchronization Background The Critical-Section Problem Peterson s Solution Synchronization Hardware Semaphores Classic Problems of Synchronization
VíceChapter 6: Process Synchronization
Module 6: Process Synchronization Chapter 6: Process Synchronization Background The Critical-Section Problem Peterson s Solution Synchronization Hardware Semaphores Classic Problems of Synchronization
VíceKlíčové pojmy: Cyklus, řídící proměnná, inicializace, test podmínky, přerušení cyklu, vnořování cyklů.
Příkazy cyklu v C# Kapitola vysvětluje použití tří typů cyklů for, while a -while a plňuje jejich použití řau příkladů programů v jazyku C#. V jazyku C by šlo pouze k záměně funkcí pro vstup a výstup.
VíceIB109 Návrh a implementace paralelních systémů. Kolektivní komunikační primitava. RNDr. Jiří Barnat, Ph.D.
IB109 Návrh a implementace paralelních systémů Kolektivní komunikační primitava RNDr. Jiří Barnat, Ph.D. Kvantitativní parametry komunikace B109 Návrh a implementace paralelních systémů: Kolektivní komunikační
VíceSpuštění instalace. nastavení boot z cd v BIOSu vložení CD s instal. médiem spuštění PC. nastavení parametrů instalace (F2 čěština)
Instalace OS Linux Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ing. Libor Otáhalík. Dostupné z Metodického portálu www.rvp.cz, ISSN: 1802-4785. Provozuje Národní ústav pro vzdělávání,
VíceChapter 7: Process Synchronization
Chapter 7: Process Synchronization Background The Critical-Section Problem Synchronization Hardware Semaphores Classical Problems of Synchronization Critical Regions Monitors Synchronization in Solaris
VíceProgramování. Debugging a testování. Martin Urza
Programování Debugging a testování Martin Urza Co je debugging? V počítačích nulté generace byly důvodem některých chyb zkraty, které způsoboval mimo jiné hmyz, jenž do těchto strojů zalézal. Odstraňování
VíceProgramování. Psaní čistého kódu. Martin Urza
Programování Psaní čistého kódu Martin Urza Motivace Pro kompilátor je jedno, jestli je kód oddělen mezerami, odřádkováními či tabulátory. Přeložitelný kód může vypadat třeba i jako ten úchvatně přehledný
VíceTeoretická informatika Tomáš Foltýnek foltynek@pef.mendelu.cz. Paralelní programování
Tomáš Foltýnek foltynek@pef.mendelu.cz Paralelní programování strana 2 Opakování Co je to síť? Co je to tok? Co je to velikost toku? Co je to řez? Co je to velikost řezu? Jaký je vztah mezi velikostí toku
VíceKolekce ArrayList. Deklarace proměnných. Import. Vytvoření prázdné kolekce. napsal Pajclín
Kolekce ArrayList napsal Pajclín Tento článek jsem se rozhodl věnovat kolekci ArrayList, protože je to jedna z nejpoužívanějších. Tento článek není kompletním popisem třídy ArrayList, ale budu se snažit
VíceÚvod do simulace - 1
Tento materiál vznikl jako součást projektu, který je spolufinancován Evropským sociálním fondem a státním rozpočtem ČR. Úvod do simulace - 1 Technická univerzita v Liberci Simulace výrobních systémů 14.11.2012
VíceZOS. Verze 2010-srpen-31, v3 L. Pešička
ZOS Verze 2010-srpen-31, v3 L. Pešička Základní znalosti vhodné k opakování Rozhodně prosím neberte jako jediný materiál na učení ke zkouškám / státnicím obsahuje jen vybrané části Jde zde o zopakování,
VíceOperační systémy. Cvičení 5: Volání jádra, procesy, vlákna.
Operační systémy Cvičení 5: Volání jádra, procesy, vlákna. 1 Obsah cvičení Systémová volání Knihovní funkce jazyka C Procesy informace o procesech vytváření, ukončování procesů, signály POSIX vlákna vytváření,
VícePREPROCESOR POKRAČOVÁNÍ
PREPROCESOR POKRAČOVÁNÍ Chybová hlášení V C# podobně jako v C++ existuje direktiva #error, která způsobí vypsání chybového hlášení překladačem a zastavení překladu. jazyk C# navíc nabízí direktivu #warning,
VíceInfrastruktura UML. Modelování struktury v UML. Superstruktura UML. Notace objektů. Diagramy objektů
Infrastruktura UML v UML Karel Richta listopad 2011 Richta: B101TMM - v UML 2 Superstruktura UML Směr pohledu na systém dle UML Diagramy popisující strukturu diagramy tříd, objektů, kompozitní struktury,
VíceJazykové konstrukce pro paralelní výpočty
Paralelismus se vyskytuje na: Jazykové konstrukce pro paralelní výpočty 1. Úrovni strojových instrukcí 2. Úrovni příkazů programovacího jazyka 3. Úrovni podprogramů 4. Úrovni programů Vývoj multiprocesorových
VícePoslední nenulová číslice faktoriálu
Poslední nenulová číslice faktoriálu Kateřina Bambušková BAM015, I206 Abstrakt V tomto článku je popsán a vyřešen problém s určením poslední nenulové číslice faktoriálu přirozeného čísla N. Celý princip
VícePŘETĚŽOVÁNÍ OPERÁTORŮ
PŘETĚŽOVÁNÍ OPERÁTORŮ Jazyk C# podobně jako jazyk C++ umožňuje přetěžovat operátory, tj. rozšířit definice některých standardních operátorů na uživatelem definované typy (třídy a struktury). Stejně jako
VíceSpojová implementace lineárních datových struktur
Spojová implementace lineárních datových struktur doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava Prezentace ke dni 13. března 2017 Jiří Dvorský (VŠB
VíceČeská letecká servisní a. s.
Česká letecká servisní a. s. 1/20 Česká letecká servisní a. s. Your integrator of the avionics Česká letecká servisní a. s. Česká letecká servisní a. s. 2/20 Úvod do problematiky synchronizace tasků O
VícePojem algoritmus a jeho základní vlastnosti
DUM Algoritmy DUM III/2-T1-1-1 PRG-01A-var1 Téma: Úvod do algoritmů - výklad Střední škola Rok: 2012 2013 Varianta: A Zpracoval: Mgr. Pavel Hrubý VÝKLAD Pojem algoritmus a jeho základní vlastnosti Obsah
VíceAbstraktní datové typy FRONTA
Abstraktní datové typy FRONTA Fronta je lineární datová struktura tzn., že ke každému prvku s výjimkou posledního náleží jeden následník a ke každému prvku s výjimkou prvního náleží jeden předchůdce. Do
VíceMediator motivace. FontDialog. závislosti mezi jednotlivými ovládacími prvky jsou netriviální
Mediator Mediator motivace FontDialog závislosti mezi jednotlivými ovládacími prvky jsou netriviální Mediator - motivace zná pomůcky, koordinuje interakce místo distribuce chování do jednotlivých pomůcek
VíceAbstraktní datové typy
Karel Müller, Josef Vogel (ČVUT FIT) Abstraktní datové typy BI-PA2, 2011, Přednáška 10 1/27 Abstraktní datové typy Ing. Josef Vogel, CSc Katedra softwarového inženýrství Katedra teoretické informatiky,
VíceTabulka. Datová struktura, která umožňuje vkládat a později vybírat informace podle identifikačního klíče. Mohou být:
ADT Tabulka Datová struktura, která umožňuje vkládat a později vybírat informace podle identifikačního klíče. Mohou být: pevně definované (LUT Look Up Table) s proměnným počtem položek Konvence: Tabulka
VíceAlgoritmizace. 1. Úvod. Algoritmus
1. Úvod Algoritmizace V dnešní době již počítače pronikly snad do všech oblastí lidské činnosti, využívají se k řešení nejrůznějších úkolů. Postup, který je v počítači prováděn nějakým programem se nazývá
VíceHomer. prvky. délka. přední 0 zadní 4. Použití fronty BUS STOP. 3 Lisa. 2 Bart. 4 Maggie. 1 Marge. Grafické znázornění předchozí animace:
Fronta Fronta je sekvence first-in-first-out (první do fronty první z fronty) prvků. Prvky mohou být vkládány pouze nakonec (rear) fronty a odstraňovány pouze zpočátku (front) fronty Délka fronty je počet
VíceTTreeView je ten strom vlevo (vzhled se dá upravovat) a TListView je ten seznam vpravo (včetně volitelných módů zobrazení jako ikony).
Delphi lekce 5 TListView a TTreeView Pomalu přecházíme na složitější komponenty a na složitější příklad (uvedeme jen důležité komponenty, tj. ne všechny). Uvedené dvě komponenty jsou velmi užitečné a často
VíceImplementace seznamů do prostředí DELPHI pomocí lineárního seznamu
Implementace seznamů do prostředí DELPHI pomocí lineárního seznamu Ukazatel a dynamické datové struktury v prostředí DELPHI Důležitým termínem a konstrukčním programovým prvkem je typ UKAZATEL. Je to vlastně
VícePracovní listy - programování (algoritmy v jazyce Visual Basic) Algoritmus
Pracovní listy - programování (algoritmy v jazyce Visual Basic) Předmět: Seminář z informatiky a výpočetní techniky Třída: 3. a 4. ročník vyššího stupně gymnázia Algoritmus Zadání v jazyce českém: 1. Je
VíceVlákna a přístup ke sdílené paměti. B4B36PDV Paralelní a distribuované výpočty
Vlákna a přístup ke sdílené paměti B4B36PDV Paralelní a distribuované výpočty Minulé cvičení: Paralelizace nám může pomoct... 1 Minulé cvičení: Paralelizace nám může pomoct... B4B36PDV: Ale ne všechny
VíceParalelní programování
Paralelní programování přednáška 3 Michal Krupka 1. března 2011 Michal Krupka (KI UP) Paralelní programování 1. března 2011 1 / 14 Ještě k atomickým proměnným Další neatomické proměnné Mohou to být proměnné,
VícePetr Štěpán, K13133 KN-E-129 Téma 5. Synchronizace a deadlock
Operační systémy a sítě Petr Štěpán, K13133 KN-E-129 stepan@fel.cvut.cz Téma 5. Synchronizace a deadlock A4B33OSS 1 Problém synchronizace vláken Souběžný přístup ke sdíleným datům může způsobit jejich
VíceLekce 25 IMPLEMENTACE OPERAČNÍHO SYSTÉMU LINUX DO VÝUKY INFORMAČNÍCH TECHNOLOGIÍ
Identifikační údaje školy Číslo projektu Název projektu Číslo a název šablony Autor Tematická oblast Číslo a název materiálu Vyšší odborná škola a Střední škola, Varnsdorf, příspěvková organizace Bratislavská
VíceSpráva procesoru. Petr Krajča. Katedra informatiky Univerzita Palackého v Olomouci. Petr Krajča (UP) KMI/YOS: Přednáška III. 7. listopad, / 23
Operační systémy Správa procesoru Petr Krajča Katedra informatiky Univerzita Palackého v Olomouci Petr Krajča (UP) KMI/YOS: Přednáška III. 7. listopad, 2014 1 / 23 Procesy (1/2) neformálně: proces = běžící
VícePráce s velkými sestavami
Práce s velkými sestavami Číslo publikace spse01650 Práce s velkými sestavami Číslo publikace spse01650 Poznámky a omezení vlastnických práv Tento software a související dokumentace je majetkem společnosti
Vícealkoholu v organismu, jízdu výtahů s lidmi...).
Počítačová simulace Máme úlohu dostatečně těžkou k představení, chceme si vytvořit názor. Simulovat lze různé věci (úraz tedy třebas jeho hojení, šíření alkoholu v organismu, jízdu výtahů s lidmi...).
VíceTéma 4. Synchronizace a deadlock
A3B33OSD 2016/2017 Operační systémy a databáze Petr Štěpán, K13133, KN-E-129 stepan@fel.cvut.cz Michal Sojka, K13135, KN-G-203 sojkam1@fel.cvut.cz Téma 4. Synchronizace a deadlock A3B33OSD 2016/2017 Meziprocesní
VíceInterpret jazyka IFJ2011
Dokumentace projektu Interpret jazyka IFJ2011 Tým číslo 093, varianta b/3/i: 20 % bodů: Cupák Michal (xcupak04) vedoucí týmu 20 % bodů: Číž Miloslav (xcizmi00) 20 % bodů: Černá Tereza (xcerna01) 20 % bodů:
VíceALGORITMIZACE 2010/03 STROMY, BINÁRNÍ STROMY VZTAH STROMŮ A REKURZE ZÁSOBNÍK IMPLEMENTUJE REKURZI PROHLEDÁVÁNÍ S NÁVRATEM (BACKTRACK)
ALGORITMIZACE 2010/03 STROMY, BINÁRNÍ STROMY VZTAH STROMŮ A REKURZE ZÁSOBNÍK IMPLEMENTUJE REKURZI PROHLEDÁVÁNÍ S NÁVRATEM (BACKTRACK) Strom / tree uzel, vrchol / node, vertex hrana / edge vnitřní uzel
VíceZadání Vytvoříme jednoduchý multithread HTTP server v jazyce Java Spustíme si ho na lokálním počítači A otestujeme ho Zdrojový kód je v
Vývoj informačních systémů Námět na praktické cvičení Klient Server (nepovinné) Zadání Vytvoříme jednoduchý multithread HTTP server v jazyce Java Spustíme si ho na lokálním počítači A otestujeme ho Zdrojový
VíceTéma 4. Plánování procesů a synchronizace
Operační systémy a sítě Petr Štěpán, K13133 KN-E-129 stepan@fel.cvut.cz Téma 4. Plánování procesů a synchronizace A4B33OSS Plánovače v OS Krátkodobý plánovač (operační plánovač, dispečer): Základní správa
VíceTřídy a struktury v C++
katedra informatiky FEI VŠB-TU Ostrava 7. prosince 2015 Odvozené a strukturované typy dat v C základní datové typy součást normy jazyka, preprocesor použití netypových maker, raději voĺıme konstanty d
VíceVYSOKÉ UČENÍ TECHNICKÉ V BRNĚ DOKTORSKÁ DISERTAČNÍ PRÁCE
VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ DOKTORSKÁ DISERTAČNÍ PRÁCE srpen 1996 Ing. Petr Hanáček VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ Model pro vyjádření synchronizačních a komunikačních mechanismů DOKTORSKÁ DISERTAČNÍ
VíceArchitektura a koncepce OS OS a HW (archos_hw) Architektura a koncepce OS Jádro OS (archos_kernel) Architektura a koncepce OS Typy OS (archos_typy)
Architektura a koncepce OS OS a HW (archos_hw) Aby fungoval OS s preemptivním multitaskingem, musí HW obsahovat: 1. (+2) přerušovací systém (interrupt system) 2. (+2) časovač Při používání DMA: 1. (+1)
Víceint => unsigned int => long => unsigned long => float => double => long double - tj. bude-li:
13.4.2010 Typová konverze - změna jednoho datového typu na jiný - známe dva základní implicitní ("sama od sebe") a explicitní (výslovně vyžádána programátorem) - C je málo přísné na typové kontroly = dokáže
VíceProgramovací jazyky s podporou vláken Java
Programovací jazyky s podporou vláken Java Co je to vlákno? Hierarchie z pohledu operačního systému: Proces o největší výpočetní entita plánovače o vlastní prostředky, paměť a další zdroje o v závislosti
VícePRG036 Technologie XML
PRG036 Technologie XML Přednáší: Irena Mlýnková (mlynkova@ksi.mff.cuni.cz) Martin Nečaský (necasky@ksi.mff.cuni.cz) LS 2010 Stránka přednášky: http://www.ksi.mff.cuni.cz/~mlynkova/prg036/ 1 Osnova předmětu
VíceB4B35OSY: Operační systémy
B4B35OSY: Operační systémy Lekce 4. Synchronizace a deadlock Petr Štěpán stepan@fel.cvut.cz 25. října, 2018 1 / 57 Outline 1 Plánování procesů/vláken 2 Synchronizace 2 / 57 Plánování procesů/vláken Obsah
VíceCo nabízí Telefonní linka Premium?
Co nabízí Telefonní linka Premium? Služby Telefonní linky Premium Společná zkrácená volba v Podnikové síti Výpis hovorů Čekající hovor Identifikace spojeného účastníka Stejnou zkrácenou volbou zastihnete
VíceMichal Krátký. Úvod do programovacích jazyků (Java), 2006/2007
Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2006/2007 c 2006 Michal Krátký Úvod do programovacích jazyků
VíceNetLogo 4.0.4 Uživatelská příručka
Průvodce programováním v HubNetu Tento průvodce vám poskytne informace potřebné k tomu, abyste porozuměli kódům existujících aktivit HubNetu a mohli je změnit, případně si napsat své vlastní aktivity.
VíceStromy. Karel Richta a kol. Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze Karel Richta a kol.
Stromy Karel Richta a kol. Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze Karel Richta a kol., 2018, B6B36DSA 01/2018, Lekce 9 https://cw.fel.cvut.cz/wiki/courses/b6b36dsa/start
VíceFronta (Queue) Úvod do programování. Fronta implementace. Fronta implementace pomocí pole 1/4. Fronta implementace pomocí pole 3/4
Fronta (Queue) Úvod do programování Michal Krátký 1,Jiří Dvorský 1 1 Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programování, 2004/2005 Fronta uplatňuje mechanismus přístupu FIFO first
VíceKód Producent-Konzument
éma 5 ynchronizace procesů a problém uváznutí Obsah 1. Problém soupeření, kritické sekce 2. Vzájemné vyloučení 3. emafory 4. Klasické synchronizační úlohy 5. Problém uváznutí a časově závislých chyb 6.
VíceKód Producent-Konzument. Je to korektní řešení?
éma 5 ynchronizace procesů a problém uváznutí Obsah 1. Problém soupeření, kritické sekce 2. Vzájemné vyloučení 3. emafory 4. Klasické synchronizační úlohy 5. Problém uváznutí a časově závislých chyb 6.
VíceKarty Prší. Anotace: Abstract: Gymnázium, Praha 6, Arabská 14 předmět Programování, vyučující Tomáš Obdržálek
Gymnázium, Praha 6, Arabská 14 předmět Programování, vyučující Tomáš Obdržálek Karty Prší ročníkový projekt, Tomáš Krejča 1E květen 2014 Anotace: Mým cílem bylo vytvořit simulátor karetní hry prší. Hráč
Více