Téma 4. Plánování procesů a synchronizace

Rozměr: px
Začít zobrazení ze stránky:

Download "Téma 4. Plánování procesů a synchronizace"

Transkript

1 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

2 Plánovače v OS Krátkodobý plánovač (operační plánovač, dispečer): Základní správa procesoru/ů Vybírá proces, který poběží na uvolněném procesoru přiděluje procesu procesor (CPU) vyvoláván velmi často, musí být extrémně rychlý Střednědobý plánovač (taktický plánovač) Úzce spolupracuje se správou hlavní paměti Taktika využívání omezené kapacity FAP při multitaskingu Vybírá, který proces je možno zařadit mezi odložené procesy uvolní tím prostor zabíraný procesem ve FAP Vybírá, kterému odloženému procesu lze znovu přidělit prostor ve FAP Dlouhodobý plánovač (strategický plánovač, job scheduler) Vybírá, který požadavek na výpočet lze zařadit mezi procesy, a definuje tak stupeň multiprogramování Je volán zřídka (jednotky až desítky sekund), nemusí být rychlý V interaktivních systémech (typu Windows) se prakticky nepoužívá a degeneruje na přímé předání práce krátkodobému plánovači A4B33OSS Plánování procesů a synchronizace 2

3 Středně dobý plánovač - swapping Běžící proces musí mít alespoň pro aktuální části svého LAP přidělen prostor ve FAP jinak by nemohl pracovat I když se používá princip virtuální paměti příliš mnoho procesů ve FAP (alespoň částečně) snižuje výkonnost systému jednotlivé procesy obdrží malý prostor ve FAP a aktuální úsek LAP ve FAP se jim vyměňuje příliš často (problém výprasku ) OS musí paměťový prostor některých procesů odložit takové procesy nemohou běžet odložení swap-out, okopírování na disk obnova swap-in, zavedení do FAP Přibývají tak další dva stavy procesů odložený čekající čeká na nějakou událost a, i kdyby byl v paměti, stejně by nebyl schopen běhu odložený připravený nechybí mu nic kromě místa v paměti A4B33OSS Plánování procesů a synchronizace 3

4 Sedmistavový diagram procesů Nový Dlouhodobé plánování Start Start Odlož (není místo v paměti) Krátkodobé plánování (dispečer) Odložený připravený Obnov Odlož Připravený Běž Preempce Běžící Konec Ukončený Událost nastala Odložený čekající Obnov Odlož Událost nastala Čekající Čekej na událost Uvažujeme odložené (suspendované) procesy Střednědobé plánování A4B33OSS Plánování procesů a synchronizace 4

5 Plánovač CPU (dispečer) a typy plánování Dispečer pracuje s procesy, které jsou v hlavní paměti a jsou schopné běhu, tj. připravené (ready) Existují 2 typy plánování nepreemptivní plánování (plánování bez předbíhání, někdy také kooperativní plánování), kdy procesu schopnému dalšího běhu procesor není násilně odnímán Používá se zpravidla jen v uzavřených systémech, kde jsou předem známy všechny procesy a jejich vlastnosti. Navíc musí být naprogramovány tak, aby samy uvolňovaly procesor ve prospěch procesů ostatních preemptivní plánování (plánování s předbíháním), kdy procesu schopnému dalšího běhu může být procesor odňat i bez jeho souhlasu (tedy kdykoliv) Plánovač rozhoduje (vstupuje do hry) v okamžiku, kdy některý proces: 1. přechází ze stavu běžící do stavu čekající nebo končí 2. přechází ze stavu čekající do stavu připravený 3. přechází ze stavu běžící do stavu připravený První dva případy se vyskytují v obou typech plánování Poslední je charakteristický pro plánování preemptivní A4B33OSS Plánování procesů a synchronizace 5

6 Kriteria krátkodobého plánování Uživatelsky orientovaná čas odezvy doba od vzniku požadavku do reakce na něj doba obrátky doba od vzniku procesu do jeho dokončení konečná lhůta (deadline) požadavek dodržení stanoveného času dokončení předvídatelnost Úloha by měla být dokončena za zhruba stejnou dobu bez ohledu na celkovou zátěž systému Je-li systém vytížen, prodloužení odezvy by mělo být rovnoměrně rozděleno mezi procesy Systémově orientovaná průchodnost počet procesů dokončených za jednotku času využití procesoru relativní čas procesoru věnovaný aplikačním procesům spravedlivost každý proces by měl dostat svůj čas (ne hladovění či stárnutí ) vyvažování zátěže systémových prostředků systémové prostředky (periferie, hlavní paměť) by měly být zatěžovány v čase rovnoměrně A4B33OSS Plánování procesů a synchronizace 6

7 Plánovací algoritmy Ukážeme plánování: FCFS (First-Come First-Served) SPN (SJF) (Shortest Process Next) SRT (Shortest Remaining Time) cyklické (Round-Robin) zpětnovazební (Feedback) Příklad používaný v tomto textu pro ilustraci algoritmů Proces Čas příchodu Potřebný čas (délka CPU dávky) A 0 3 B 2 6 C 4 4 D 6 5 E 8 2 Chování se ilustruje tzv. Ganttovými diagramy A4B33OSS Plánování procesů a synchronizace 7

8 w Plánování FCFS FCFS = First Come First Served prostá fronta FIFO Nejjednodušší nepreemptivní plánování Nově příchozí proces se zařadí na konec fronty Průměrné čekání může být velmi dlouhé w Příklad: A B C D E Průměrné čekání bychom mohli zredukovat: Např. v čase 9 je procesor volný a máme na výběr procesy C, D a E TAvg 3,6 5 A B TAvg 4, C D E A4B33OSS Plánování procesů a synchronizace 8

9 Vlastnosti FCFS FCFS je primitivní nepreemptivní plánovací postup w Průměrná doba čekání T Avg silně závisí na pořadí přicházejících dávek Krátké procesy, které se připravily po dlouhém procesu, vytváří tzv. konvojový efekt Všechny procesy čekají, až skončí dlouhý proces Pro krátkodobé plánování se FCFS samostatně fakticky nepoužívá. Používá se pouze jako složka složitějších plánovacích postupů A4B33OSS Plánování procesů a synchronizace 9

10 Plánování SPN SPN = Shortest Process Next (nejkratší proces jako příští); též nazýváno SJF = Shortest Job First Opět nepreemptivní Vybírá se připravený proces s nejkratší příští dávkou CPU Krátké procesy předbíhají delší, nebezpečí stárnutí dlouhých procesů Je-li kritériem kvality plánování průměrná doba čekání, je SPN optimálním algoritmem, což se dá exaktně dokázat Příklad: A B C D E w TAvg 3,6 5 A4B33OSS Plánování procesů a synchronizace 10

11 Plánování SRT SRT = Shortest Remaining Time (nejkratší zbývající čas) Preemptivní varianta SPN CPU dostane proces, který potřebuje nejméně času do svého ukončení Jestliže existuje proces, kterému zbývá k jeho dokončení čas kratší, než je čas zbývající do skončení procesu běžícího, dojde k preempci Může existovat procesů se stejným zbývajícím časem, a pak je nutno použít jakési arbitrážní pravidlo Příklad: A B C D E w T Avg = =2,0 A4B33OSS Plánování procesů a synchronizace 11

12 Motivace plánování CPU Maximálního využití CPU se dosáhne uplatněním multiprogramování Jak? Běh procesu = cykly alternujících dávek [: CPU dávka, I/O dávka :] CPU dávka se může v čase překrývat s I/O dávkami dalších procesů A4B33OSS Plánování procesů a synchronizace 12

13 Typický histogram délek CPU dávek 100 Frekvence Délka CPU dávky [ms] A4B33OSS Plánování procesů a synchronizace 13

14 Odhad délky příští dávky CPU procesu Délka příští dávky CPU skutečného procesu je známa jen ve velmi speciálních případech Délka dávky se odhaduje na základě nedávné historie procesu Nejčastěji se používá tzv. exponenciální průměrování Exponenciální průměrování t n skutečná délka n-té dávky CPU τ n+1 odhad délky příští dávky CPU α, 0 α 1 parametr vlivu historie τ n+1 = αt n + (1 α)τ n Příklad: α = 0,5 τ n+1 = 0,5t n + 0,5τ n = = 0,5(t n + τ n ) τ 0 se volí jako průměrná délka CPU dávky v systému nebo se odvodí z typu nejčastějších programů τ 0 =8, α=0,5 A4B33OSS Plánování procesů a synchronizace 14

15 Prioritní plánování (1) Každému procesu je přiřazeno prioritní číslo Prioritní číslo preference procesu při výběru procesu, kterému má být přiřazena CPU CPU se přiděluje procesu s nejvyšší prioritou Nejvyšší prioritě obvykle odpovídá (obvykle) nejnižší prioritní číslo Ve Windows je to obráceně Existují se opět dvě varianty: Nepreemptivní Jakmile se vybranému procesu procesor předá, procesor mu nebude odňat, dokud se jeho CPU dávka nedokončí Preemptivní Jakmile se ve frontě připravených objeví proces s prioritou vyšší, než je priorita právě běžícího procesu, nový proces předběhne právě běžící proces a odejme mu procesor SPN i SRT jsou vlastně případy prioritního plánování Prioritou je predikovaná délka příští CPU dávky SPN je nepreemptivní prioritní plánování SRT je preemptivní prioritní plánování A4B33OSS Plánování procesů a synchronizace 15

16 Prioritní plánování (2) Problém stárnutí (starvation): Procesy s nízkou prioritou nikdy nepoběží; nikdy na ně nepřijde řada Údajně: Když po řadě let vypínali v roce 1973 na M.I.T. svůj IBM 7094 (jeden z největších strojů své doby), našli proces s nízkou prioritou, který čekal od roku Řešení problému stárnutí: zrání procesů (aging) Je nutno dovolit, aby se procesu zvyšovala priorita na základě jeho historie a doby setrvávání ve frontě připravených Během čekání na procesor se priorita procesu zvyšuje A4B33OSS Plánování procesů a synchronizace 16

17 Cyklické plánování Cyklická obsluha (Round-robin) RR Z principu preemptivní plánování Každý proces dostává CPU periodicky na malý časový úsek, tzv. časové kvantum, délky q (~ desítky ms) V čistém RR se uvažuje shodná priorita všech procesů Po vyčerpání kvanta je běžícímu procesu odňato CPU ve prospěch nejstaršího procesu ve frontě připravených a dosud běžící proces se zařazuje na konec této fronty Je-li ve frontě připravených procesů n procesů, pak každý proces získává 1/n-tinu doby CPU Žádný proces nedostane 2 kvanta za sebou (samozřejmě pokud není jediný připravený) Žádný proces nečeká na přidělení CPU déle než (n 1)q časových jednotek A4B33OSS Plánování procesů a synchronizace 17

18 Cyklické plánování (2) Efektivita silně závisí na velikosti kvanta Veliké kvantum blíží se chování FCFS Procesy dokončí svoji CPU dávku dříve, než jim vyprší kvantum. Malé kvantum => časté přepínání kontextu => značná režie Typicky Dosahuje se průměrné doby obrátky delší oproti plánování SRT Výrazně lepší je čas odezvy Průměrná doba obrátky se může zlepšit, pokud většina procesů se době q ukončí Empirické pravidlo pro stanovení q: cca 80% procesů by nemělo vyčerpat kvantum Příklad: A B C D E A4B33OSS Plánování procesů a synchronizace 18

19 Zpětnovazební plánování Základní problém: Neznáme předem časy, které budou procesy potřebovat Východisko: Penalizace procesů, které běžely dlouho Řešení: Dojde-li k preempci přečerpáním časového kvanta, procesu se snižuje priorita Implementace pomocí víceúrovňových front pro každou prioritu jedna Nad každou frontou samostatně běží algoritmus určitého typu plánování obvykle RR s různými kvanty a FCFS pro frontu s nejnižší prioritou A4B33OSS Plánování procesů a synchronizace 19

20 Víceúrovňové fronty - Windows Připravení procesu Fronta priorita 0 Aktivace Procesor Opuštění fronty připravených Preempce vyčerpáním kvanta Fronta priorita 1 Aktivace Procesor Opuštění fronty připravených Preempce vyčerpáním kvanta Fronta priorita n Aktivace Procesor Opuštění fronty připravených Proces opouštějící procesor kvůli vyčerpání časového kvanta je přeřazen do fronty s nižší prioritou Fronty s nižší prioritou mohou mít delší kvanta Problém stárnutí ve frontě s nejnižší prioritou Řeší se pomocí zrání (aging) v jistých časových intervalech (~ 10 1 s) se zvyšuje procesům priorita, a tak se přemísťují do vyšších front A4B33OSS Plánování procesů a synchronizace 20

21 O(1) plánovač Linux O(1) - rychlost plánovače nezávisí na počtu běžících procesů je rychlý a deterministický Dvě sady víceúrovňových front Na začátku první sada obsahuje připravené procesy, druhá je prázdná Při vyčerpání časového kvanta je proces přeřazen do druhé sady front do nové úrovně Vzbuzené procesy jsou zařazovány podle toho, zda ještě nevyužily celé svoje časové kvantum do aktivní sady front, nebo do druhé sady front Pokud je první sada prázdná, dojde k prohození první a druhé sady front procesů Heuristika pro odhad interaktivních procesů a jejich udržování na nejvyšších prioritách s odpovídajícími časovými kvanty A4B33OSS Plánování procesů a synchronizace 21

22 Zcela férový plánovač Linux od verze (Completely Fair Scheduler) Nepoužívá fronty, ale jednu strukturu, která udržuje všechny procesy uspořádané podle délky již spotřebovaného času čím méně proces spotřeboval strojového času, tím větší má nárok na přidělení procesoru Pro rychlou implementaci se používá vyvážený binární červeno-černý strom, zaručující složitost úměrnou log(n) počtu procesů Nepotřebuje složité heuristiky pro detekci interaktivních procesů Jediný parametr je časové kvantum: pro uživatelské PC se volí menší pro větší pro serverové počítače větší kvantu omezuje režii s přepínáním procesů a tím zvyšuje propustnost serveru Žádný proces nemůže zestárnout, všechny procesy mají stejné podmínky A4B33OSS Plánování procesů a synchronizace 22

23 Plánování v multiprocesorech Přiřazování procesů (vláken) procesorům: Architektura master/slave Klíčové funkce jádra běží vždy na jednom konkrétním procesoru Master odpovídá za plánování Slave žádá o služby mastera Nevýhoda: dedikace Přetížený master se stává úzkým místem systému Symetrický multiprocesing (SMP) Všechny procesory jsou si navzájem rovny Funkce jádra mohou běžet na kterémkoliv procesoru SMP vyžaduje podporu vláken v jádře Proces musí být dělen na vlákna, aby SMP byl účinný Aplikace je sada vláken pracujících paralelně do společného adresního prostoru Vlákno běží nezávisle na ostatních vláknech svého procesu Vlákna běžící na různých procesorech dramaticky zvyšují účinnost systému A4B33OSS Plánování procesů a synchronizace 23

24 Symetrický multiprocesing (SMP) Dvě řešení: Jedna společná fronta pro všechny procesory Každý procesor svojí frontu a migrace procesů mezi procesory Jedna společná (globální) fronta pro všechna vlákna Fronta napájí společnou sadu procesorů Fronta může být víceúrovňová dle priorit Každý procesor si sám vyhledává příští vlákno Přesněji: instance plánovače běžící na procesoru si je sama vyhledává... Problémy Jedna centrální fronta připravených sledů vyžaduje používání vzájemného vylučování v jádře Kritické místo v okamžiku, kdy si hledá práci více procesorů Předběhnutá (přerušená) vlákna nebudou nutně pokračovat na stejném procesoru nelze proto plně využívat cache paměti procesorů Každý procesor svoji frontu Heuristická pravidla, kdy frontu změnit SMP používáno ve Windows, Linux, Mac OS X, Solaris, BSD4.4 A4B33OSS Plánování procesů a synchronizace 24

25 Poznámky k plánování v multiprocesorech Používají se různá (heuristická) pravidla (i při globální frontě): Afinita vlákna k CPU použij procesor, kde vlákno již běželo (možná, že v cache CPU budou ještě údaje z minulého běhu) Použij nejméně využívaný procesor Mnohdy značně složité při malém počtu procesorů ( 4) může přílišná snaha o optimalizaci plánování vést až k poklesu výkonu systému Tedy aspoň v tom smyslu, že výkon systému neporoste lineárně s počtem procesorů při velkém počtu procesorů dojde naopak k nasycení, neboť plánovač se musí věnovat rozhodování velmi často (končí CPU dávky na mnoha procesorech) Režie tak neúměrně roste A4B33OSS Plánování procesů a synchronizace 25

26 Systémy reálného času (RT) Obvykle malé systémy se specializovaným použitím Často vestavěné (embedded) Správná funkce systému závisí nejen na logickém (či numerickém) výsledku ale i na čase, kdy bude výsledek získán Správně určený výsledek dodaný pozdě je k ničemu Úlohy a procesy reagují na události pocházející zvenčí systému a navenek dodávají své výsledky Nastávají v reálném čase a potřebná reakce musí být včasná Příklady Řízení laboratorních či průmyslových systémů Robotika Řízení letového provozu Telekomunikační aplikace (digitální ústředny) Vojenské systémy velení a řízení... A4B33OSS Plánování procesů a synchronizace 26

27 Charakteristiky OS RT Determinismus Operace jsou prováděny ve fixovaných, předem určených časech nebo časových intervalech Reakce na přerušení musí proběhnout tak, aby systém byl schopen obsluhy všech požadavků v požadovaném čase (včetně vnořených přerušení) Uživatelské řízení Uživatel (návrhář systému) specifikuje: Priority Práva procesů Co musí vždy zůstat v paměti Spolehlivost Degradace chování může mít katastrofální důsledky Zabezpečení Schopnost systému zachovat v případě chyby aspoň částečnou funkcionalitu a udržet maximální množství dat A4B33OSS Plánování procesů a synchronizace 27

28 Požadavky na OS RT Extrémně rychlé přepínání mezi procesy či vlákny OS musí být malý Multiprogramování s meziprocesními komunikačními nástroji semafory, signály, události Speciální souborové systémy s velkou rychlostí RAM disky, souvislé soubory Plánování založené na prioritách Pozor: preempce je ale časově náročná Minimalizace časových úseků, kdy je vypnut přerušovací systém Zvláštní hardwarové vybavení hlídací časovače (watch-dog timers) a alarmy A4B33OSS Plánování procesů a synchronizace 28

29 Plánování CPU v RT systémech Tabulkou řízené statické plánování Určuje pevně, kdy bude který proces spuštěn tak, aby včas skončil Nejčastější případ v uzavřených systémech s předem známými procesy a jejich vlastnostmi Preemptivní plánování se statickými prioritami Používá klasický prioritní plánovač s fixními prioritami Může být problematické kvůli velké režii spojené s preempcí Dynamické plánování Za běhu určuje proveditelnost (splnitelnost požadavků) V tzv. přísných RT systémech (Hard real-time systems) téměř nepoužitelné vlivem velké režie Hard real-time systems musí přísně zaručovat dokončení časově kritických procesů do předepsaného termínu A4B33OSS Plánování procesů a synchronizace 29

30 Periodické plánování dle konečného termínu Procesům jde zejména o včasné dokončení v rámci zadané periody běžících procesů Např. v daných intervalech je třeba vzorkovat napětí z čidel O každém procesu je znám Potřebný čas (horní hranice délky CPU dávky) Termín začátku a nejzazšího konce každého běhu periodicky spouštěného procesu Předpoklady (zjednodušení) Termín dokončení je identický s počátkem následující periody Požadavky na systémové prostředky (či potřebu čekání na jejich přidělení) budeme ignorovat A4B33OSS Plánování procesů a synchronizace 30

31 Příklad 1 3 periodické procesy Proces Perioda p i Procesní čas T i T i /p i A ,333 B ,375 C ,100 A4B33OSS Plánování procesů a synchronizace 31

32 Plánovatelnost v periodických úlohách Relativní využití strojového času Ti Proces i využije poměrnou část ri celkového p strojového času, kde T i je procesní čas a p i je jeho perioda i Celkové využití je i 1 i 1 Aby vše mohlo pracovat musí platit (fyzikální podmínka plánovatelnosti) r N r i N Ti p i r N i 1 Ti p i 1 Náš Příklad 1 3 r= i=1 T i p i = =0,808 < 1 A4B33OSS Plánování procesů a synchronizace 32

33 Plánování RMS Algoritmus RMS = Rate Monotonic Scheduling Statické priority Prio i p i (kratší perioda = menší číslo ~ vyšší priorita) Používá se pro procesy s následujícími vlastnostmi Periodický proces musí skončit během své periody Procesy jsou vzájemně nezávislé Každý běh procesu (CPU dávka) spotřebuje konstantní čas Předpokládá se, že preempce nastává okamžitě (bez režie) Poznatek Plánování je úspěšné, pokud se všechny procesy stihnou v době odpovídající periodě procesu s nejdelší periodou A4B33OSS Plánování procesů a synchronizace 33

34 Plánování EDF EDF = Earliest Deadline First Upřednostňuje proces s nejbližším termínem dokončení Dynamické priority Plánovač vede seznam připravených procesů uspořádaný podle požadovaných časů dokončení a spustí vždy ten s nejbližším požadovaným termínem dokončení Použitelné i v následujících situacích Procesy nemusí být přísně periodické ani nemusí mít konstantní dobu běhu Pokud preempce nastává okamžitě, pak při plánování periodických procesů lze dodržet dokončovací termíny i při vytížení téměř 100% Vlastnosti Algoritmus není analyticky plně prozkoumán Následky přetížení nejsou známy a nejsou předvídatelné Není známo chování v případech, kdy dokončovací termín a perioda jsou různé A4B33OSS Plánování procesů a synchronizace 34

35 Příklad 1 (pokračování) Proces Perioda p i Procesní čas T i A B C 50 5 r=0,808 Oba algoritmy fungují Dokonce chvílemi zbývá volný čas k běhu nějakého procesu na pozadí A4B33OSS Plánování procesů a synchronizace 35

36 Opět 3 periodické procesy Příklad 2 Proces Perioda p i Procesní čas T i T i /p i Suma A ,500 B ,375 C ,100 R = 0,975 < 1 Plánovatelné A4B33OSS Plánování procesů a synchronizace 36

37 Plánování RMS podrobněji Dobře analyticky zpracovaný algoritmus zaručující dodržení termínů dokončení, pokud při N procesech platí (postačující podmínka) [Liu & Layland 1973]: r lim N N i 1 N Ti p i N N N 2 1 ln ; N N N , , , , , , A4B33OSS Plánování procesů a synchronizace 37

38 Plánování RMS podrobněji (2) Jak je to s použitelností RMS? P i p i T i T i /p i Σ(T i /p i ) A ,286 0, B ,375 0,661 C ,100 0,761 P i p i T i T i /p i Σ(T i /p i ) 3( 3 2 1) 0, A ,333 0, B ,375 0,708 C ,100 0,808 P i p i T i T i /p i Σ(T i /p i ) A ,250 0, B ,200 0,450 C ,500 0, Havárie - P 3 nestihnut P i p i T i T i /p i Σ(T i /p i ) A ,250 0, B ,400 0,650 C ,350 1,000 A4B33OSS Plánování procesů a synchronizace 38

39 Plánování RMS podrobněji (3) Lehoczky, Sha & Ding [1989] podrobili RMS analýze znovu. Výsledek: Mějme procesy P i, i 1 N pi pi 1, i 1 N 1 Soustřeďme se na procesy 1...i, (i=1...n) a určeme vždy W ( t) L i i i T min j 1 j t / p j, L ( t), L ( t) {0 t Ti } i {1 i N} i L W ( t) / t, max i L i W i (t) reprezentuje kumulativní potřeby procesů P 1... P i v časovém úseku [0, t] t 4,5,8,10,12,13 A4B33OSS Plánování procesů a synchronizace 39

40 Plánování RMS podrobněji (4) Příklady použití uvedené teorie RMS zhavaruje i p i T i T i /p i Σ(T i /p i ) L i (4) L i (5) L i (6) L i L ,250 0,250 0,250 0,400 0,333 0, ,200 0,450 0,500 0,600 0,667 0,500 1, ,500 0,950 1,250 1,200 1,167 1,167 RMS bude funkční i p i T i T i /p i Σ(T i /p i ) L i (4) L i (5) L i (8) L i (10) L i (12) L i (15) L i (16) L i (20) L i L ,250 0,250 0,250 0,400 0,250 0,300 0,250 0,267 0,250 0,250 0, ,400 0,650 0,750 0,800 0,750 0,700 0,750 0,667 0,750 0,650 0,650 1, ,350 1,000 2,500 2,200 1,625 1,400 1,333 1,133 1,188 1,000 1,000 A4B33OSS Plánování procesů a synchronizace 40

41 Problém synchronizace vláken Souběžný přístup ke sdíleným datům může způsobit jejich nekonzistenci nutná koordinace procesů Synchronizace běhu procesů Čekání na událost vyvolanou jiným procesem Komunikace mezi procesy (IPC = Inter-process Communication) Výměna informací (zpráv) Způsob synchronizace, koordinace různých aktivit Sdílení prostředků problém soupeření či souběhu (race condition) Procesy používají a modifikují sdílená data Operace zápisu musí být vzájemně výlučné Operace zápisu musí být vzájemně výlučné s operacemi čtení Operace čtení (bez modifikace) mohou být realizovány souběžně Pro zabezpečení integrity dat se používají kritické sekce A4B33OSS Plánování procesů a synchronizace 41

42 Synchronizace vláken A4B33OSS Plánování procesů a synchronizace 42

43 Úloha Producent-Konzument Ilustrační příklad Producent generuje data do vyrovnávací paměti s konečnou kapacitou (bounded-buffer problem) a konzument z této paměti data odebírá V podstatě jde o implementaci komunikačního kanálu typu roura Zavedeme celočíselnou proměnnou count, která bude čítat položky v poli. Na počátku je count = 0 Pokud je v poli místo, producent vloží položku do pole a inkrementuje count Pokud je v poli nějaká položka, konzument při jejím vyjmutí dekrementuje count b[0] b[1] b[2] b[3] b[4]... b[k-1] out in b[0] in... privátní proměnná producenta out... privátní proměnná konzumenta b[1] b[2] in b[3] b[4] out... b[k-1] A4B33OSS Plánování procesů a synchronizace 43

44 Sdílená data: #define BUF_SZ = 20 typedef struct { } item; item buffer[buf_sz]; int count = 0; Kód Producent-Konzument Producent: void producer() { int in = 0; item nextproduced; while (1) { /* Vygeneruj novou položku do proměnné nextproduced */ while (count == BUF_SZ); /* nedělej nic */ buffer[in] = nextproduced; in = (in + 1) % BUF_SZ; count++; } } Konzument: void consumer() { int out = 0; item nextconsumed; while (1) { while (count == 0) ; /* nedělej nic */ nextconsumed = buffer[out]; out = (out + 1) % BUF_SZ; count--; /* Zpracuj položku z proměnné nextconsumed */ } } Je to korektní řešení? A4B33OSS Plánování procesů a synchronizace 44

45 Problém soupeření (race condition) count++ bude obvykle implementováno takto: P 1 : registr 0 count move count,d0 P 2 : registr 0 registr add D0,#1 P 3 : count registr 0 move D0,count count-- bude obdobně implementováno jako: K 1 : registr 1 count move count,d1 K 2 : registr 1 registr 1 1 sub D1,#1 K 3 : count registr 1 move D1,count Vlivem Murphyho zákonů, může nastat následující posloupnost prokládání producenta a konzumenta (nechť na počátku count = 3) Interval Běží Akce Výsledek P 1 producent registr 1 count registr 1 = 3 P 2 producent registr 1 registr registr 1 = 4 K 1 K 2 P 3 K 3 konzument konzument producent konzument registr 2 count registr 2 registr 2-1 count registr 1 count registr 2 registr 2 = 3 registr 2 = 2 count = 4 count = 2 Na konci může být count == 2 nebo 4, ale programátor zřejmě chtěl mít 3 (což se většinou podaří) Je to důsledkem nepředvídatelného prokládání procesů/vláken vlivem možné preempce A4B33OSS Plánování procesů a synchronizace 45

46 Kritická sekce Problém lze formulovat obecně: Jistý čas se proces zabývá svými obvyklými činnostmi a jistou část své aktivity věnuje sdíleným prostředkům. Část kódu programu, kde se přistupuje ke sdílenému prostředku, se nazývá kritická sekce procesu vzhledem k tomuto sdílenému prostředku (nebo také sdružená s tímto prostředkem). Je potřeba zajistit, aby v kritické sekci sdružené s jistým prostředkem, se nacházel nejvýše jeden proces Pokud se nám podaří zajistit, aby žádné dva procesy nebyly současně ve svých kritických sekcích sdružených s uvažovaným sdíleným prostředkem, pak je problém soupeření vyřešen. Modelové prostředí pro řešení problému kritické sekce Předpokládá se, že každý z procesů běží nenulovou rychlostí Řešení nesmí záviset na relativních rychlostech procesů A4B33OSS Plánování procesů a synchronizace 46

47 Požadavky na řešení problému kritických sekcí 1. Vzájemné vyloučení podmínka bezpečnosti (Mutual Exclusion) Pokud proces P i je ve své kritické sekci, pak žádný další proces nesmí být ve své kritické sekci sdružené s týmž prostředkem 2. Trvalost postupu podmínka živosti (Progress) Jestliže žádný proces neprovádí svoji kritickou sekci sdruženou s jistým zdrojem a existuje alespoň jeden proces, který si přeje vstoupit do kritické sekce sdružené se tímto zdrojem, pak výběr procesu, který do takové kritické sekce vstoupí, se nesmí odkládat nekonečně dlouho. 3. Konečné čekání podmínka spravedlivosti (Fairness) Proces smí čekat na povolení vstupu do kritické sekce jen konečnou dobu. Musí existovat omezení počtu, kolikrát může být povolen vstup do kritické sekce sdružené se jistým prostředkem jiným procesům než procesu požadujícímu vstup v době mezi vydáním žádosti a jejím uspokojením. A4B33OSS Plánování procesů a synchronizace 47

48 Možnosti řešení problému kritických sekcí Základní struktura procesu s kritickou sekcí do { enter_cs(); critical section leave_cs (); non-critical section } while (TRUE); Klíčem k řešení celého problému kritických sekcí je korektní implementace funkcí enter_cs() a leave_cs(). A4B33OSS Plánování procesů a synchronizace 48

49 Řešení na aplikační úrovni (1) Vzájemné vyloučení s aktivním čekáním Zamykací proměnné Kritickou sekci ochráníme" sdílenou zamykací proměnnou přidruženou ke sdílenému prostředku (iniciálně = 0). proměnná lock Před vstupem do kritické sekce proces testuje tuto proměnnou a, je-li nulová, nastaví ji na 1 a vstoupí do kritické sekce. Neměla-li proměnná hodnotu 0, proces čeká ve smyčce (aktivní čekání busy waiting). while(lock!= 0); /* Nedělej nic a čekej */ lock = 1 Při opouštění kritické sekce proces tuto proměnnou opět nuluje lock = 0; Nevyřešili jsme však nic: souběh jsme přenesli na zamykací proměnnou Myšlenka zamykacích proměnných však není zcela chybná A4B33OSS Plánování procesů a synchronizace 49

50 Řešení na aplikační úrovni (2) Striktní střídání dvou procesů nebo vláken Zaveďme proměnnou turn, jejíž hodnota určuje, který z procesů smí vstoupit do kritické sekce. Je-li turn == 0, do kritické sekce může P 0, je-li == 1, pak P 1. P 0 P 1 while(true) { while(turn!=0); /* čekej */ while(true) { while(turn!=1); /* čekej */ critical_section(); turn = 1; noncritical_section(); critical_section(); turn = 0; noncritical_section(); } } A4B33OSS Plánování procesů a synchronizace 50

51 Řešení na aplikační úrovni (3) Petersonovo řešení střídání dvou procesů nebo vláken Řešení pro dva procesy P i (i = 0, 1) dvě globální proměnné: int turn; boolean interest[2]; Proměnná turn udává, který z procesů je na řadě při přístupu do kritické sekce V poli interest procesy indikují svůj zájem vstoupit do kritické sekce; interest[i] == TRUE znamená, že P i tuto potřebu má Prvky pole interest nejsou sdílenými proměnnými j = 1 i; interest[i] = TRUE; turn = j; while (interest[j] && turn == j) ; /* čekání */ /* KRITICKÁ SEKCE */ interest[i] = FALSE; /* NEKRITICKÁ ČÁST PROCESU */ Náš proces bude čekat jen pokud druhý proces je na řadě a současně má zájem do kritické sekce vstoupit Všechna řešení na aplikační úrovni obsahují aktivní čekání, nebo používají funkci sleep/usleep A4B33OSS Plánování procesů a synchronizace 51

52 Hardwarová podpora pro synchronizaci Zamykací proměnné rozumné, avšak je nutná atomicita Jednoprocesorové systémy mohou vypnout přerušení Při vypnutém přerušení nemůže dojít k preempci Nelze použít na aplikační úrovni (vypnutí přerušení je privilegovaná akce) Nelze jednoduše použít pro víceprocesorové systémy Který procesor přijímá a obsluhuje přerušení? Moderní systémy nabízejí speciální nedělitelné (atomické) instrukce Tyto instrukce mezi paměťovými cykly nepustí sběrnici pro jiný procesor Instrukce TestAndSet atomicky přečte obsah adresované buňky a bezprostředně poté změní její obsah (tas MC68k, tsl Intel) Instrukce Swap (xchg) atomicky prohodí obsah registru procesoru a adresované buňky Např. IA32/64 (I586+) nabízí i další atomické instrukce Prefix LOCK pro celou řadu instrukcí typu read-modify-write (např. ADD, AND, s cílovým operandem v paměti) A4B33OSS Plánování procesů a synchronizace 52

53 Hardwarová podpora pro synchronizaci (2) Příklad použití instrukce tas Motorola enter_cs: tas bnz ret lock enter_cs leave_cs: mov lock, #0 ret Příklad použití instrukce xchg IA32 enter_cs: mov EAX, #1 xchg lock, EAX jnz ret enter_cs // Kopíruj lock do CPU a nastav lock na 1 // Byl-li lock nenulový, vrať se na testování // Byl nulový návrat a vstup do kritické sekce // Vynuluj lock a odemkni kritickou sekci // 1 do registru EAX // Instrukce xchg lock, EAX atomicky prohodí // obsah registru EAX s obsahem lock. // Byl-li původní obsah proměnné lock nenulový, // skok na opakované testování = aktivní čekání // Nebyl návrat a vstup do kritické sekce leave_cs: mov lock, #0 ret // Vynuluj lock a odemkni tak kritickou sekci A4B33OSS Plánování procesů a synchronizace 53

54 Synchronizace bez aktivního čekání Aktivní čekání mrhá strojovým časem Může způsobit i nefunkčnost při rozdílných prioritách procesů Např. vysokoprioritní producent zaplní pole, začne aktivně čekat a nedovolí konzumentovi odebrat položku (samozřejmě to závisí na metodě plánování procesů a na to navazující dynamicky se měnící priority) Blokování pomocí systémových atomických primitiv sleep() místo aktivního čekání proces se zablokuje wakeup(process) probuzení spolupracujícího procesu při opouštění kritické sekce void producer() { while (1) { /* Vygeneruj položku do proměnné nextproduced */ if (count == BUFFER_SIZE) sleep(); // Je-li pole plné, zablokuj se buffer[in] = nextproduced; in = (in + 1) % BUFFER_SIZE; count++ ; if (count == 1) wakeup(consumer); // Bylo-li pole prázdné, probuď konzumenta } } void consumer() { while (1) { if (count == 0) sleep(); // Je-li pole prázdné, zablokuj se nextconsumed = buffer[out]; out = (out + 1) % BUFFER_SIZE; count-- ; if (count == BUFFER_SIZE-1) wakeup(producer); // Bylo-li pole plné, probuď producenta /* Zpracuj položku z proměnné nextconsumed */ } } Výše uvedené řešení obsahuje chybu, oba dva procesy se mohou zaseknout. Najdete ji? A4B33OSS Plánování procesů a synchronizace 54

55 Synchronizace bez aktivního čekání (2) Předešlý kód není řešením: Zůstalo konkurenční soupeření count je opět sdílenou proměnnou Konzument přečetl count == 0 a než zavolá sleep(), je mu odňat procesor Producent vloží do pole položku a count == 1, načež se pokusí se probudit konzumenta, který ale ještě nespí! Po znovuspuštění se konzument domnívá, že pole je prázdné a volá sleep() Po čase producent zaplní pole a rovněž zavolá sleep() spí oba! Příčinou této situace je ztráta budícího signálu Lepší řešení: Jednině OS umí uspat a vzbudit procesy Semafory A4B33OSS Plánování procesů a synchronizace 55

56 Semafory Obecný synchronizační nástroj (Edsger Dijkstra, NL, [ ]) Semafor S Systémem spravovaný objekt Základní vlastností je celočíselná proměnná (obecný semafor) Též čítající semafor Binární semafor (mutex) = zámek hodnota 0 nebo 1 Dvě standardní atomické operace nad semaforem wait(s) [někdy nazývaná acquire() nebo down(), původně P (proberen)] signal(s) [někdy nazývaná release() nebo up(), původně V (vrhogen)] Sémantika těchto operací: wait(s) { signal(s) { while (S <= 0) S++; S--; ; // čekej // Čeká-li proces před // semaforem, pusť ho dál } } Tato sémantika stále obsahuje aktivní čekání Skutečná implementace však aktivní čekání obchází tím, že spolupracuje s plánovačem CPU, což umožňuje blokovat a reaktivovat procesy (vlákna) A4B33OSS Plánování procesů a synchronizace 56

57 Implementace a užití semaforů Implementace musí zaručit: Žádné dva procesy nebudou provádět operace wait() a signal() se stejným semaforem současně Implementace semaforu je problémem kritické sekce Operace wait() a post() musí být atomické Aktivní čekání není plně eliminováno, je ale přesunuto z aplikační úrovně (kde mohou být kritické sekce dlouhé) do úrovně jádra OS pro implementaci atomicity operací se semafory Užití: mutex mtx; // Volání systému o vytvoření semaforu, // inicializován na hodnotu 1 wait(mtx); // Volání akce nad semaforem, která může // proces zablokovat Critical_Section; post(mtx); // Volání akce nad semaforem, která může // ukončit blokování procesu čekajícího // před semaforem A4B33OSS Plánování procesů a synchronizace 57

58 Implementace semaforů Struktura semaforu typedef struct { int value; struct process *list; // Hodnota semaforu // Fronta procesů stojících před semaforem } semaphore; Operace nad semaforem jsou pak implementovány jako nedělitelné s touto sémantikou void wait(semaphore S) { S.value= S.value - 1; if (S.value < 0) block(s.list); } void post(semaphore S) { S.value= S.value + 1 if (S.value <= 0) { if(s.list!= NULL) { } } } // Je-li třeba, zablokuj volající proces a zařaď ho // do fronty před semaforem (S.list) // Je-li fronta neprázdná... // vyjmi proces P z čela fronty wakeup(p); // a probuď P A4B33OSS Plánování procesů a synchronizace 58

59 Implementace semaforů (2) Záporná hodnota S.value udává, kolik procesů stojí před semaforem Fronty před semaforem: Vždy FIFO Nejlépe bez uvažování priorit procesů, jinak vzniká problém se stárnutím Operace wait(s) a post(s) musí být vykonány atomicky OS na jednom procesoru nemá problém, OS rozhoduje o přepnutí procesu Více jader problém i pro OS Jádro bude používat atomické instrukce či jiný odpovídající hardwarový mechanismus na synchronizaci skutečného paralelizmu Instrukce xchg, tas, či prefix lock musí umět zamknout sběrnici proti přístupu jiných jader, či zamknout a aktualizovat cache systémem cache snooping A4B33OSS Plánování procesů a synchronizace 59

60 Producent-Konzument se semafory Tři semafory mutex s iniciální hodnotou 1 pro vzájemné vyloučení při přístupu do sdílené paměti used počet položek v poli inicializován na hodnotu 0 free počet volných položek inicializován na hodnotu BUF_SZ void producer() { while (1) { /* Vygeneruj položku do proměnné nextproduced */ wait(free); wait(mutex); buffer [in] = nextproduced; in = (in + 1) % BUF_SZ; post(mutex); post(used); } } void consumer() { while (1) { wait(used); wait(mutex); nextconsumed = buffer[out]; out = (out + 1) % BUF_SZ; post(mutex); post(free); /* Zpracuj položku z proměnné nextconsumed */ } } A4B33OSS Plánování procesů a synchronizace 60

61 To je dnes vše. Otázky? A4B33OSS 61

Téma 4 Plánování práce procesorů

Téma 4 Plánování práce procesorů Téma 4 Plánování práce procesorů Obsah 1. Plánování a jeho charakteristiky 2. Plánovací algoritmy a jejich vlastnosti 3. Zpětnovazební plánování 4. Obecný plánovač 5. Plánování v multiprocesorech 6. Systémy

Více

Přidělování CPU Mgr. Josef Horálek

Přidělování CPU Mgr. Josef Horálek Přidělování CPU Mgr. Josef Horálek Přidělování CPU = Přidělování CPU je základ multiprogramového OS = pomocí přidělování CPU různým procesům OS zvyšuje výkon výpočetního systému; = Základní myšlenka multiprogramování

Více

Principy operačních systémů. Lekce 6: Synchronizace procesů

Principy 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íce

B4B35OSY: Operační systémy

B4B35OSY: 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íce

Petr Štěpán, K13133 KN-E-129 Téma 5. Synchronizace a deadlock

Petr Š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íce

Téma 4 Plánovánípráce procesorů

Téma 4 Plánovánípráce procesorů Téma 4 Plánovánípráce procesorů Obsah 1. Plánování a jeho charakteristiky 2. Plánovací algoritmy a jejich vlastnosti 3. Zpětnovazební plánování 4. Obecný plánovač 5. Plánování v multiprocesorech 6. Systémy

Více

Procesy a vlákna - synchronizace

Procesy 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íce

Téma 4. Synchronizace a deadlock

Té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íce

Operační systémy. Přednáška 4: Komunikace mezi procesy

Operač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íce

OS Plánování procesů

OS Plánování procesů OS Plánování procesů Tomáš Hudec Tomas.Hudec@upce.cz http://asuei01.upceucebny.cz/usr/hudec/vyuka/os/ Plánování scheduling scheduler plánovač rozhoduje, který proces (vlákno) má CPU řídí se plánovacím

Více

Operační systémy. Přednáška 3: Plánování procesů a vláken

Operační systémy. Přednáška 3: Plánování procesů a vláken Operační systémy Přednáška 3: Plánování procesů a vláken 1 Plánovací algoritmy Určují, který z čekajících procesů (vláken) bude pokračovat. Typy plánování dlouhodobé (long-term scheduling) určuje, které

Více

Služba ve Windows. Služba (service) je program

Služ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íce

ÚVOD DO OPERAČNÍCH SYSTÉMŮ

ÚVOD DO OPERAČNÍCH SYSTÉMŮ ÚVOD DO OPERAČNÍCH SYSTÉMŮ Ver.1.00 Procesy a vlákna Plánování procesů (Process Scheduling) Č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íce

Management procesu I Mgr. Josef Horálek

Management procesu I Mgr. Josef Horálek Management procesu I Mgr. Josef Horálek Procesy = Starší počítače umožňovaly spouštět pouze jeden program. Tento program plně využíval OS i všechny systémové zdroje. Současné počítače umožňují běh více

Více

Paralelní programování

Paralelní 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íce

Spuš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)

Spuš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íce

Operační systémy a databáze

Operační systémy a databáze Operační systémy a databáze Petr Štěpán, K13133 KN-E19 stepan@fel.cvut.cz Téma 3. Procesy a vlákna Pojem Výpočetní proces Výpočetní proces (job, task) spuštěný program Proces je identifikovatelný jednoznačné

Více

Téma 5 Synchronizace procesů a problém uváznutí Obsah

Té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íce

Principy operačních systémů. Lekce 5: Multiprogramming a multitasking, vlákna

Principy operačních systémů. Lekce 5: Multiprogramming a multitasking, vlákna Principy operačních systémů Lekce 5: Multiprogramming a multitasking, vlákna Multiprogramování předchůdce multitaskingu Vzájemné volání: Implementován procesem (nikoliv OS) Procesu je přidělen procesor,

Více

Principy operačních systémů. Lekce 4: Správa procesů

Principy operačních systémů. Lekce 4: Správa procesů Principy operačních systémů Lekce 4: Správa procesů Základní pojmy Program = zápis algoritmu v programovacím jazyce Je statický (neměnný) Proces = instance programu běžícího v počítači Je tvořen nejen

Více

Synchronizace Mgr. Josef Horálek

Synchronizace 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íce

Architektura 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) 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íce

PB153 Operační systémy a jejich rozhraní

PB153 Operační systémy a jejich rozhraní PB153 Operační systémy a jejich rozhraní Uváznutí 1 Problém uváznutí Existuje množina blokovaných procesů, každý proces vlastní nějaký prostředek (zdroj) a čeká na zdroj držený jiným procesem z této množiny

Více

Přidělování zdrojů (prostředků)

Přidělování zdrojů (prostředků) Přidělování zdrojů (prostředků) Proces potřebuje zdroje (prostředky) hardware (I/O zařízení, paměť) software (data, programy) Klasifikace zdrojů (z hlediska multitaskingového režimu) Násobně použitelné

Více

OPERAČNÍ SYSTÉMY VYSOKÁ ŠKOLA BÁŇSKÁ TECHNICKÁ UNIVERZITA OSTRAVA FAKULTA STROJNÍ PŘIDĚLOVÁNÍ PROCESORU. doc. Dr. Ing. Oldřich Kodym.

OPERAČNÍ SYSTÉMY VYSOKÁ ŠKOLA BÁŇSKÁ TECHNICKÁ UNIVERZITA OSTRAVA FAKULTA STROJNÍ PŘIDĚLOVÁNÍ PROCESORU. doc. Dr. Ing. Oldřich Kodym. VYSOKÁ ŠKOLA BÁŇSKÁ TECHNICKÁ UNIVERZITA OSTRAVA FAKULTA STROJNÍ OPERAČNÍ SYSTÉMY PŘIDĚLOVÁNÍ PROCESORU doc. Dr. Ing. Oldřich Kodym Ostrava 2013 doc. Dr. Ing. Oldřich Kodym Vysoká škola báňská Technická

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.

Ř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íce

Procesy a vlákna (Processes and Threads)

Procesy a vlákna (Processes and Threads) ÚVOD DO OPERAČNÍCH SYSTÉMŮ Ver.1.00 Procesy a vlákna (Processes and Threads) Správa procesů a vláken České vysoké učení technické Fakulta elektrotechnická 2012 Použitá literatura [1] Stallings, W.: Operating

Více

Téma 5 Synchronizace procesů a problém uváznutí

Té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íce

Přidělování paměti II Mgr. Josef Horálek

Přidělování paměti II Mgr. Josef Horálek Přidělování paměti II Mgr. Josef Horálek Techniky přidělování paměti = Přidělování jediné souvislé oblasti paměti = Přidělování paměti po sekcích = Dynamické přemisťování sekcí = Stránkování = Stránkování

Více

Paralelní programování

Paralelní programování Paralelní programování přednášky Jan Outrata únor duben 2011 Jan Outrata (KI UP) Paralelní programování únor duben 2011 1 / 14 Atomické akce dále nedělitelná = neproložitelná jiným procesem izolovaná =

Více

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é

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é 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íce

Téma 36. Petr Husa

Té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íce

Vlákno (anglicky: thread) v informatice označuje vlákno výpočtu neboli samostatný výpočetní tok, tedy posloupnost po sobě jdoucích operací.

Vlákno (anglicky: thread) v informatice označuje vlákno výpočtu neboli samostatný výpočetní tok, tedy posloupnost po sobě jdoucích operací. Trochu teorie Vlákno (anglicky: thread) v informatice označuje vlákno výpočtu neboli samostatný výpočetní tok, tedy posloupnost po sobě jdoucích operací. Každá spuštěná aplikace má alespoň jeden proces

Více

Výpočet v módu jádro. - přerušení (od zařízení asynchronně) - výjimky - softvérové přerušení. v důsledku událostí

Výpočet v módu jádro. - přerušení (od zařízení asynchronně) - výjimky - softvérové přerušení. v důsledku událostí Výpočet v módu jádro v důsledku událostí - přerušení (od zařízení asynchronně) - výjimky - softvérové přerušení řízení se předá na proceduru pro ošetření odpovídající události část stavu přerušeného procesu

Více

2010/2011 ZS. Operační systém. procesy a vlákna. interakce a synchronizace

2010/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íce

Ukázka zkouškové písemka OSY

Ukázka zkouškové písemka OSY Ukázka zkouškové písemka OSY Jméno a příjmení:.......................................... Odpovězte na otázky zaškrtnutím příslušného políčka. Otázky označené znakem mohou mít více než jednu správnou odpověď.

Více

Řízení IO přenosů DMA řadičem

Řízení IO přenosů DMA řadičem Řízení IO přenosů DMA řadičem Doplňující text pro POT K. D. 2001 DMA řadič Při přímém řízení IO operací procesorem i při použití přerušovacího systému je rychlost přenosu dat mezi IO řadičem a pamětí limitována

Více

Přednáška. Implementace procesů/vláken. Plánování vláken. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012

Přednáška. Implementace procesů/vláken. Plánování vláken. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012 Přednáška Implementace procesů/vláken. Plánování 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

Více

03. Synchronizace procesů. ZOS 2006, L. Pešička

03. 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íce

Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti MI-SOC: 6 OPERAČNÍ SYSTÉMY REÁLNÉHO ČASU doc. Ing. Hana Kubátová, CSc. Katedra číslicového návrhu Fakulta informačních technologii ČVUT

Více

Obsah. Kapitola 1 Hardware, procesory a vlákna Prohlídka útrob počítače...20 Motivace pro vícejádrové procesory...21

Obsah. Kapitola 1 Hardware, procesory a vlákna Prohlídka útrob počítače...20 Motivace pro vícejádrové procesory...21 Stručný obsah 1. Hardware, procesory a vlákna... 19 2. Programování s ohledemna výkon... 45 3. Identifikování příležitostí pro paralelizmus... 93 4. Synchronizace a sdílení dat... 123 5. Vlákna v rozhraní

Více

Paralelní programování

Paralelní 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íce

Pavel Procházka. 3. prosince 2014

Pavel 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íce

Stavy procesů. Požadavky na OS při práci s procesy

Stavy procesů. Požadavky na OS při práci s procesy Téma 3 Obsah 1. Výpočetní procesy a jejich stavy 2. Stavový diagram procesů 3. Plánovače a přepínání kontextu 4. Typy plánování 5. Vznik a zánik procesu 6. Způsoby kooperace procesů 7. Proces a vlákna

Více

Procesy a vlákna. A3B33OSD (J. Lažanský) verze: Jaro 2014

Procesy a vlákna. A3B33OSD (J. Lažanský) verze: Jaro 2014 Téma 3 Obsah 1. Výpočetní procesy a jejich stavy 2. Stavový diagram procesů 3. Plánovače a přepínání kontextu 4. Typy plánování 5. Vznik a zánik procesu 6. Způsoby kooperace procesů 7. Proces a vlákna

Více

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, / 23

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, / 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íce

Stavy procesů. Požadavky na OS při práci s procesy

Stavy procesů. Požadavky na OS při práci s procesy Téma 3 Obsah 1. Výpočetní procesy a jejich stavy 2. Stavový diagram procesů 3. Plánovače a přepínání kontextu 4. Typy plánování 5. Vznik a zánik procesu 6. Způsoby kooperace procesů 7. Proces a vlákna

Více

Principy počítačů a operačních systémů

Principy 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íce

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.

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

Více

Vzájemné vyloučení procesů

Vzájemné vyloučení procesů PDV 10 2017/2018 Vzájemné vyloučení procesů Michal Jakob michal.jakob@fel.cvut.cz Centrum umělé inteligence, katedra počítačů, FEL ČVUT Příklad Bankovní server v cloudu. Dva zákaznici současně vloží 10

Více

Procesy a vlákna IPC Komunikace mezi procesy (IPC = Inter-Process Communication)

Procesy 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íce

Správa procesoru. Petr Krajča. Katedra informatiky Univerzita Palackého v Olomouci. 11. březen, 2011

Správa procesoru. Petr Krajča. Katedra informatiky Univerzita Palackého v Olomouci. 11. březen, 2011 Operační systémy Správa procesoru Petr Krajča Katedra informatiky Univerzita Palackého v Olomouci 11. březen, 2011 Petr Krajča (UP) KMI/XOSY: Přednáška III. 11. březen, 2011 1 / 18 Procesy (1/2) neformálně:

Více

Přerušovací systém s prioritním řetězem

Přerušovací systém s prioritním řetězem Přerušovací systém s prioritním řetězem Doplňující text pro přednášky z POT Úvod Přerušovací systém mikropočítače může být koncipován několika způsoby. Jednou z možností je přerušovací systém s prioritním

Více

Pojem operační systém (OS) OS jako rozšíření počítače Skrývá komplikované detaily hardware Poskytuje uživateli virtuální stroj, který se snáze ovládá

Pojem operační systém (OS) OS jako rozšíření počítače Skrývá komplikované detaily hardware Poskytuje uživateli virtuální stroj, který se snáze ovládá Pojem operační systém (OS) OS jako rozšíření počítače Skrývá komplikované detaily hardware Poskytuje uživateli virtuální stroj, který se snáze ovládá a programuje OS jako správce systémových prostředků

Více

Koncepce DMA POT POT. Při vstupu nebo výstupu dat se opakují jednoduché činnosti. Jednotlivé kroky lze realizovat pomocí speciálního HW.

Koncepce DMA POT POT. Při vstupu nebo výstupu dat se opakují jednoduché činnosti. Jednotlivé kroky lze realizovat pomocí speciálního HW. p 1 Koncepce DMA Při vstupu nebo výstupu dat se opakují jednoduché činnosti. Jednotlivé kroky lze realizovat pomocí speciálního HW. Čekání na připravenost V/V Přenos paměť V/V nebo V/V paměť Posun pointeru

Více

09. Memory management. ZOS 2006, L.Pešička

09. Memory management. ZOS 2006, L.Pešička 09. Memory management ZOS 2006, L.Pešička Správa paměti paměťová pyramida absolutní adresa relativní adresa počet bytů od absolutní adresy fyzický prostor adres fyzicky k dispozici výpočetnímu systému

Více

3. Počítačové systémy

3. Počítačové systémy 3. Počítačové systémy 3.1. Spolupráce s počítačem a řešení úloh 1. přímý přístup uživatele - neekonomické. Interakce při odlaďování programů (spusť., zastav.,krok, diagnostika) 2. dávkové zpracování (batch

Více

Von Neumannovo schéma

Von Neumannovo schéma Multitasking Von Neumannovo schéma RAM 3 ADD SUB ZA input 20 28 010 100 registr dat 2 registr instrukcí op. code adr 7 LOAD 28 mikroprogramy 30 32 LOAD 28 ADD 20 registr adres 1 4 6 R W 30 čítač instrukcí

Více

Operační systémy. Přednášky pro výuku předmětu. I ng. Antonín Vaněk, CSc. DFJP, Univerzita Pardubice září 2003

Operační systémy. Přednášky pro výuku předmětu. I ng. Antonín Vaněk, CSc. DFJP, Univerzita Pardubice září 2003 Operační systémy Přednášky pro výuku předmětu Operační systémy I ng. Antonín Vaněk, CSc. DFJP, Univerzita Pardubice září 2003 Kapitola 11 OS pro MP, RT a vestavěné systémy Multiprocesorové systémy Kategorie

Více

Princip funkce počítače

Princip funkce počítače Princip funkce počítače Princip funkce počítače prvotní úlohou počítačů bylo zrychlit provádění matematických výpočtů první počítače kopírovaly obvyklý postup manuálního provádění výpočtů pokyny pro zpracování

Více

Zablokování (Deadlock) Mgr. Josef Horálek

Zablokování (Deadlock) Mgr. Josef Horálek Zablokování (Deadlock) Mgr. Josef Horálek Deadlock = V multiprogramovém prostředí si mohou různé prostředky konkurovat v získaní konečného počtu zdrojů = může se tedy stát, že čekající proces svůj stav

Více

MS WINDOWS II. Jádro. Správa objektů. Správa procesů. Zabezpečení. Správa paměti

MS WINDOWS II. Jádro. Správa objektů. Správa procesů. Zabezpečení. Správa paměti MS WINDOWS II Jádro Správa objektů Správa procesů Zabezpečení Správa paměti JÁDRO I ntoskrnl.exe napsán v C (příp. assembler) základní mechanismy poskytované executivám trap dispečink synchronizace přístupů

Více

Pohled do nitra mikroprocesoru Josef Horálek

Pohled do nitra mikroprocesoru Josef Horálek Pohled do nitra mikroprocesoru Josef Horálek Z čeho vycházíme = Vycházíme z Von Neumannovy architektury = Celý počítač se tak skládá z pěti koncepčních bloků: = Operační paměť = Programový řadič = Aritmeticko-logická

Více

Vlákna Co je to vlákno?

Vlákna Co je to vlákno? Vlákna 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 na OS možnost preemptivního multitaskingu

Více

Systém adresace paměti

Systém adresace paměti Systém adresace paměti Základní pojmy Adresa fyzická - adresa, která je přenesena na adresní sběrnici a fyzicky adresuje hlavní paměť logická - adresa, kterou má k dispozici proces k adresaci přiděleného

Více

07. Plánování procesů Deadlock. ZOS 2006, L. Pešička

07. Plánování procesů Deadlock. ZOS 2006, L. Pešička 07. Plánování procesů Deadlock ZOS 2006, L. Pešička Pozvánka na přednášku Xen na ZČU architektura migrace virtuálního stroje reálná konfigurace na ZČU praktická ukázka konfigurace a instalace virtuálního

Více

Algoritmizace diskrétních. Ing. Michal Dorda, Ph.D.

Algoritmizace diskrétních. Ing. Michal Dorda, Ph.D. Algoritmizace diskrétních simulačních modelů Ing. Michal Dorda, Ph.D. 1 Úvodní poznámky Při programování simulačních modelů lze hlavní dílčí problémy shrnout do následujících bodů: 1) Zachycení statických

Více

Metody připojování periferií BI-MPP Přednáška 2

Metody připojování periferií BI-MPP Přednáška 2 Metody připojování periferií BI-MPP Přednáška 2 Ing. Miroslav Skrbek, Ph.D. Katedra počítačových systémů Fakulta informačních technologií České vysoké učení technické v Praze Miroslav Skrbek 2010,2011

Více

Téma 3 Procesy a vlákna

Téma 3 Procesy a vlákna Téma 3 Procesy a vlákna Obsah 1. Výpočetní procesy a jejich stavy 2. Stavový diagram procesů 3. Plánovače a přepínání kontextu 4. Typy plánování 5. Vznik a zánik procesu 6. Způsoby kooperace procesů 7.

Více

Pojem Výpočetní proces. Požadavky na OS při práci s procesy. Stavy procesů

Pojem Výpočetní proces. Požadavky na OS při práci s procesy. Stavy procesů Téma 3 Procesy a vlákna Obsah 1 Výpočetní procesy a jejich stavy 2 Stavový diagram procesů 3 Plánovače a přepínání kontextu 4 Typy plánování 5 Vznik a zánik procesu 6 Způsoby kooperace procesů 7 Proces

Více

Lineární datové struktury

Lineární datové struktury Lineární datové struktury 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 TUO) Lineární datové

Více

Činnost počítače po zapnutí

Činnost počítače po zapnutí Projekt: Inovace oboru Mechatronik pro Zlínský kraj Registrační číslo: CZ.1.07/1.1.08/03.0009 Činnost počítače po zapnutí Paměť RWM(Read Write Memory - paměť pro čtení a zápis, označovaná také jako RAM)

Více

Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti MI-SOC: 6 PROGRAMOVÁNÍ PRO REÁLNÝ ČAS doc. Ing. Hana Kubátová, CSc. Katedra číslicového návrhu Fakulta informačních technologii ČVUT v

Více

Principy operačních systémů. Lekce 7: Obrana proti deadlocku

Principy operačních systémů. Lekce 7: Obrana proti deadlocku Principy operačních systémů Lekce 7: Obrana proti deadlocku Deadlock Deadlock = uváznutí, zablokování Vznik problému: proces drží určité prostředky, požaduje přidělení dalších prostředků, tyto nedostane

Více

Procesy a vlákna Mgr. Josef Horálek

Procesy a vlákna Mgr. Josef Horálek Procesy a vlákna Mgr. Josef Horálek Procesy a vlákna = Základním úkolem jádra je = Správa běžících procesů a vláken: = vytváření = plánování = nastavování = ukončování Proces, vlákno, úloha = Proces běžící

Více

OS MP, RT a vestavěné systémy

OS MP, RT a vestavěné systémy OS MP, RT a vestavěné systémy Tomáš Hudec Tomas.Hudec@upce.cz http://asuei01.upceucebny.cz/usr/hudec/vyuka/os/ Kategorie počítačových systémů SISD (single instruction, single data) jeden procesor zpracovává

Více

Principy operačních systémů. Lekce 1: Úvod

Principy operačních systémů. Lekce 1: Úvod Principy operačních systémů Lekce 1: Úvod Sylabus Lekce 1: Úvod 2 Literatura Lekce 1: Úvod 3 Operační systém Základní programové vybavení počítače, které se zavádí do počítače při jeho startu a zůstává

Více

VÝUKOVÝ MATERIÁL. 3. ročník učebního oboru Elektrikář Přílohy. bez příloh. Identifikační údaje školy

VÝUKOVÝ MATERIÁL. 3. ročník učebního oboru Elektrikář Přílohy. bez příloh. Identifikační údaje školy VÝUKOVÝ MATERIÁL Identifikační údaje školy Číslo projektu Název projektu Číslo a název šablony Autor Tematická oblast Číslo a název materiálu Anotace Vyšší odborná škola a Střední škola, Varnsdorf, příspěvková

Více

Logická organizace paměti Josef Horálek

Logická organizace paměti Josef Horálek Logická organizace paměti Josef Horálek Logická organizace paměti = Paměť využívají = uživatelské aplikace = operační systém = bios HW zařízení = uloženy adresy I/O zařízení atd. = Logická organizace paměti

Více

Architektury počítačů a procesorů

Architektury počítačů a procesorů Kapitola 3 Architektury počítačů a procesorů 3.1 Von Neumannova (a harvardská) architektura Von Neumann 1. počítač se skládá z funkčních jednotek - paměť, řadič, aritmetická jednotka, vstupní a výstupní

Více

Konzistentnost. Přednášky z distribuovaných systémů

Konzistentnost. Přednášky z distribuovaných systémů Konzistentnost Přednášky z distribuovaných systémů Pro a proti replikaci 1. Zvýšení spolehlivosti. 2. Zvýšení výkonnosti. 3. Nutnost zachování škálovatelnosti systému co do počtu komponent i geografické

Více

Architektura rodiny operačních systémů Windows NT Mgr. Josef Horálek

Architektura rodiny operačních systémů Windows NT Mgr. Josef Horálek Architektura rodiny operačních systémů Windows NT Mgr. Josef Horálek = Velmi malé jádro = implementuje jen vybrané základní mechanismy: = virtuální paměť; = plánování vláken; = obsluha výjimek; = zasílání

Více

Cvičení 9 - Monitory. monitor m; var proměnné... procedure p; begin... end; begin inicializace; end;

Cvič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íce

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

Operační systémy. Přednáška 1: Úvod

Operač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 K1 Přednášející Jan Trdlička email: trdlicka@fel.cvut.z kancelář: K324 Cvičení pondělí, úterý, středa Informace

Více

PB002 Základy informačních technologií

PB002 Základy informačních technologií Operační systémy 25. září 2012 Struktura přednašky 1 Číselné soustavy 2 Reprezentace čísel 3 Operační systémy historie 4 OS - základní složky 5 Procesy Číselné soustavy 1 Dle základu: dvojková, osmičková,

Více

Architektury paralelních počítačů II.

Architektury paralelních počítačů II. Architektury paralelních počítačů II. Sekvenční konzistence paměti Implementace synchronizačních událostí Ing. Miloš Bečvář s použitím slajdů Prof. Ing. Pavla Tvrdíka, CSc. Osnova přednášky Opakování definice

Více

Kód Producent-Konzument

Kó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íce

Kód Producent-Konzument. Je to korektní řešení?

Kó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íce

Úloha OS, prostředky počítače, představa virtuálního počítače

Úloha OS, prostředky počítače, představa virtuálního počítače Úloha OS, prostředky počítače, představa virtuálního počítače OS softwarová nadstavba HW společně s HW představuje virtuální počítač rozhraní mezi uživatelem a systémem prostředí pro provádění programů

Více

Systémy pro sběr a přenos dat

Systémy pro sběr a přenos dat Systémy pro sběr a přenos dat Centralizované SPD VME, VXI Compact PCI, PXI, PXI Express Sběrnice VME 16/32/64 bitová paralelní sběrnice pro průmyslové aplikace Počátky v roce 1981 neustále se vyvíjí původní

Více

Principy operačních systémů

Principy operačních systémů Principy operačních systémů Struktura programového vybavení Uživatelské programy Jádro operačního systému Interpret příkazů Hardware BIOS Služby OS Služební programy Operační systém Operační systém je

Více

ZOS 9. cvičení, ukázky kódu. Pavel Bžoch

ZOS 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íce

Operační systémy. Jednoduché stránkování. Virtuální paměť. Příklad: jednoduché stránkování. Virtuální paměť se stránkování. Memory Management Unit

Operační systémy. Jednoduché stránkování. Virtuální paměť. Příklad: jednoduché stránkování. Virtuální paměť se stránkování. Memory Management Unit Jednoduché stránkování Operační systémy Přednáška 8: Správa paměti II Hlavní paměť rozdělená na malé úseky stejné velikosti (např. 4kB) nazývané rámce (frames). Program rozdělen na malé úseky stejné velikosti

Více

Počítač jako prostředek řízení. Struktura a organizace počítače

Počítač jako prostředek řízení. Struktura a organizace počítače Řídicí počítače - pro řízení technologických procesů. Specielní přídavná zařízení - I/O, přerušovací systém, reálný čas, Č/A a A/Č převodníky a j. s obsluhou - operátorské periferie bez obsluhy - operátorský

Více

Česká letecká servisní a. s.

Č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íce

Operační systém. Logické prostředky výpoč etního systému jsou:

Operační systém. Logické prostředky výpoč etního systému jsou: Operační systém Pojmy Výpoč etní systém (například počíta č) je stroj na zpracování dat provádějící samočinn ě př edem zadané operace. Instrukce nejkratší, již dále nedělitelný povel, těmto povelům rozumí

Více

Rozvrhování výroby. František Koblasa Technická univerzita v Liberci. TU v Liberci

Rozvrhování výroby. František Koblasa Technická univerzita v Liberci. TU v Liberci Tento materiál vznikl jako součást projektu EduCom, který je spolufinancován Evropským sociálním fondem a státním rozpočtem ČR. Rozvrhování výroby Technická univerzita v Liberci INVESTICE DO ROZVOJE VZDĚLÁVÁNÍ

Více

Paměťový podsystém počítače

Paměťový podsystém počítače Paměťový podsystém počítače typy pamětových systémů počítače virtuální paměť stránkování segmentace rychlá vyrovnávací paměť 30.1.2013 O. Novák: CIE6 1 Organizace paměťového systému počítače Paměťová hierarchie...

Více