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



Podobné dokumenty
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

Procesy a vlákna (Processes and Threads)

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

Management procesu I Mgr. Josef Horálek

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

Procesy a vlákna - synchronizace

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

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

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

2010/2011 ZS. Operační systém. prostředky, zablokování

Paralelní programování

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

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

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)

Operační systémy. Přednáška 2: Procesy a vlákna

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

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

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)

vjj 1. Priority. Dispatcher

PB002 Základy informačních technologií

ZOS OPAKOVÁNÍ. L. Pešička

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

Von Neumannovo schéma

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

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

Paralelní programování

OS Plánování procesů

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í

Procesy a vlákna Mgr. Josef Horálek

Téma 3. Procesy a vlákna

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

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

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

Pavel Procházka. 3. prosince 2014

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

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

OS Deadlock a prevence

Co mi to tu vlastně běží?

Ukázka zkouškové písemka OSY

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

Paralelní programování

Vláknové programování část I

Téma 3 Procesy a vlákna

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

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

Synchronizace Mgr. Josef Horálek

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

Přednáška. Vstup/Výstup. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012

Paralelní programování

Principy operačních systémů

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

PRINCIPY OPERAČNÍCH SYSTÉMŮ

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

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

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

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

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

Přednáška 11. Historie MS Windows. Architektura Windows XP. Grafické a znakové rozhraní. Úlohy, procesy a vlákna.

4. Úvod do paralelismu, metody paralelizace

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

Přednáška 1. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012

Paralelní programování

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

Logická organizace paměti Josef Horálek

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

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

Stavba operačního systému

Vlákna a přístup ke sdílené paměti. B4B36PDV Paralelní a distribuované výpočty

Inovace výuky prostřednictvím ICT v SPŠ Zlín, CZ.1.07/1.5.00/ Vzdělávání v informačních a komunikačních technologií

ZOS. Verze 2010-srpen-31, v3 L. Pešička

Poslední aktualizace: 25. května 2017

Operační systémy 2: Zápočtové úkoly

Poslední aktualizace: 21. května 2015

Matematika v programovacích

SUPERPOČÍTAČE DANIEL LANGR ČVUT FIT / VZLÚ

Operační systémy. Tomáš Vojnar IOS 2009/2010. Vysoké učení technické v Brně Fakulta informačních technologií Božetěchova 2, Brno

Ovladače pro Windows. Ovladače Windows A4M38KRP. Str. 1

Real Time programování v LabView. Ing. Martin Bušek, Ph.D.

Management procesu II Mgr. Josef Horálek

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

ČÁST 1. Základy 32bitového programování ve Windows

Téma 36. Petr Husa

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

Vlákna Co je to vlákno?

Přednáška. Správa paměti I. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012

Činnost počítače po zapnutí

Paralelní programování

08. Deadlock Přidělování paměti. ZOS 2006, L. Pešička

OPS Paralelní systémy, seznam pojmů, klasifikace

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

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

Přijímací zkouška - informatika

Systém adresace paměti

Správa paměti. doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 /

Pár odpovědí jsem nenašla nikde, a tak jsem je logicky odvodila, a nebo jsem ponechala odpověď z pefky, proto je možné, že někde bude chyba.

PROGRAMOVÁNÍ ŘÍDÍCÍCH SYSTÉMŮ

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

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

Paralelní programování

Transkript:

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ě: proces = běžící program (vykonává činnost) proces: pamět ový prostor kód programu data statická a dynamická (halda) zásobník registry Obecný životní cyklus procesu nový (new) proces byl vytvořen připravený (ready) proces čeká, až mu bude přidělen CPU běžící (running) CPU byl přidělen procesor a právě provádí činnost čekající (waiting) proces čeká na nějakou událost (např. na vyřízení I/O požadavku) ukončený (terminated) proces skončil svou činnost Petr Krajča (UP) KMI/XOSY: Přednáška III. 11. březen, 2011 2 / 18

Procesy (2/2) multi-tasking: zdánlivě souběžný běh více procesů informace o procesu má OS uloženy v process control block (PCB) obsahuje informace: identifikace procesu informace o stavu adresu instrukce, kterou bude program pokračovat stav registrů informace k plánování procesů informace o přidělené paměti informace o použivaných I/O zařízeních, otevřených souborech, atd. zásadní role při předávání procesoru mezi procesy uložení stavu CPU (context switch) = jde řešit softwarově nebo s podporou HW kooperativní vs. preemptivní multitasking preemptivní multitasking = velikost časového kvanta potřeba plánování Petr Krajča (UP) KMI/XOSY: Přednáška III. 11. březen, 2011 3 / 18

Plánování procesů (1/2) Požadavky férovost každému procesu by v rozumné době měl být přidělen CPU efektivita maximální využití CPU maximalizace odvedené práce (throughput) minimalizace doby odezvy minimalizace doby průchodu systémem (turnaround) Round robin Priority každý proces má pevně stanovené kvantum připravené procesy jsou řazeny ve frontě a postupně dostavají CPU spravedlivý připravené procesy jsou řazeny podle priorit riziko vyhladovění reálně se používají heuristické algoritmy sdílející obě vlastnosti Petr Krajča (UP) KMI/XOSY: Přednáška III. 11. březen, 2011 4 / 18

Plánování procesů (2/2) Různé typy úloh interaktivní dávkové zpracování pracující v realném čase intenzivní na CPU vs. I/O Symmetric Multi-processing přibývá problém, jak vybrat procesor = přesun procesu = vyprázdnění cache řešení: oddělené planování pro každý procesor nebo maska affinity (definuje procesor na kterém může proces běžet) Petr Krajča (UP) KMI/XOSY: Přednáška III. 11. březen, 2011 5 / 18

Vlákna (Threads) OS umožňují rozdělení procesu na víc vláken základní entitou vykonávající program není proces, ale vlákno proces se skládá z jednoho a více vláken každé vlákno má svůj zásobník + registry = přepnutí vláken v rámci procesu rychlejší vlákna v rámci procesu sdíĺı pamět ový prostor, data, prostředky = jednoduché sdílení prostředků = nové problémy se synchronizací Realizace vztah kernel thread - user thread kernel thread vlákno, jak jej vídí OS user thread vlákno z pohledu uživatelského prostoru 1:N vlákna jsou realizovaná v uživatelském prostoru (problém s planováním) 1:1 k jednomu vlánku v uživatelském prostoru existuje jedno v jaderném prostoru (nejčastější použití) M:N vlákna v uživatelském prostředí jsou mapována na menší počet jaderných vláken Petr Krajča (UP) KMI/XOSY: Přednáška III. 11. březen, 2011 6 / 18

Procesy a vlákna v Unixech původně základní entitou byl proces procesy tvoří hierarchii rodič-potomek (navrcholu je proces init) vytvoření procesu pomocí volání fork(), které vytvoří klon procesu přepsání procesu pomocí exec komunikace mezi procesy: zasílání signálů, roury,... možnost nastavit niceness procesu (prioritu od -20 do 20) vlákna do Unixu přidána až později (implementace se v rámci různých OS liší) v Linuxu (pthreads) vnitřně implementovány stejně jako procesy (task), ale sdíĺı pamět ový prostor Petr Krajča (UP) KMI/XOSY: Přednáška III. 11. březen, 2011 7 / 18

Procesy a vlákna ve Windows Windows NT navrženy s vlákny jako základní entitou pro běh aplikace proces sdružuje vlákna, plánování se účastní vlákno sofistikovaný systém priorit při plánování vláken priorita vlákna je odvozená od třídy priority procesu proměnlivá velikost kvant priority boost dochazí k dočasnému zvýšení priority po dokončení I/O operace po dokončení čekání na semafor probuzení vlákna, jako reakce na UI vlákno již dlouhodobu něběželo Petr Krajča (UP) KMI/XOSY: Přednáška III. 11. březen, 2011 8 / 18

Synchronizace vláken a procesů příklad: přičtení jedničky dvěma procesy 1 proměnná X = 1 2 A: načte hodnotu do registru 3 A: zvýší hodnotu v registru o jedna 4 B: nacte hodnotu do registru 5 A: uloží hodnotu do paměti (X = 2) 6 B: zvýší hodnotu v registry o jedna 7 B: uloží hodnotu do paměti (X = 2) řešení atomické operace nebo synchronizace je potřeba zajistit, aby v průběhu manipulace s určitými zdroji s nimi nemohl manipulovat někdo jiný (vzájemné vyloučení) Petr Krajča (UP) KMI/XOSY: Přednáška III. 11. březen, 2011 9 / 18

Atomický přístup do paměti vícevláknové aplikace/víceprocesorové počítače (+ out-of-order provádění operací) obecně přístupy do paměti nemusí být atomické (záležitost CPU) kĺıčové slovo volatile často záleží na překladači memory barriers umožňují vynutit si synchronizaci (záležitost CPU) Atomické operace Compare-and-Swap (CAS): ověří jestli se daná hodnota rovná požadované a pokud ano, přiřadí ji novou (CMPXCHG) Fetch-and-Add: vrátí hodnotu místa v paměti a zvýší jeho hodnotu o jedna (XADD) Load-link/Store-Conditional (LL/CS): načte hodnotu a pokud během čtení nebyla změněna, uloží do ní novou hodnotu umožňují implementovat synchronizační primitiva na vyšší úrovni Petr Krajča (UP) KMI/XOSY: Přednáška III. 11. březen, 2011 10 / 18

Synchronizační primitiva slouží k řízení přístupu ke sdíleným prostředkům Petersonův algoritmus (umožňuje implementovat vzájemné vyloučení dvou procesů, pomocí běžných operací) Mutex & Kritická sekce potřebujeme zajistit, aby kód pracující se sdílenými zdroji mohlo použít jen jedno vlákno/proces = kritická sekce realizace pomocí mutexu dvě operace: vstoupit do kritické sekce (pokud je v kritické sekci jiný proces/vlákno), proces čeká opustit kritickou sekci (pokud na vstup do kritické sekce čeká jiné vlákno), je v puštěno Semafor chráněná proměnná obsahující počítadlo s nezápornými čísly operace P: pokud je hodnota čísla nenulová sníží hodnotu o jedna, jinak čeká, až bude hodnota zvýšena operace V: zvýší hodnotu o jedna Petr Krajča (UP) KMI/XOSY: Přednáška III. 11. březen, 2011 11 / 18

Deadlock uváznutí systém se dostal do stavu, kdy nemůže dál pokračovat Užívání prostředků request požadavek na prostředek, není-li k dispozici, proces čeká use vlákno s prostředkem pracuje release uvolnění prostředku pro další použití Podmínky vzniku Mutual exclusion alespoň jeden prostředek je výlučně užíván jedním procesem Hold & wait proces vlastní alespoň jeden prostředek a čeká na další No preemption prostředek nelze násilně odebrat Circular wait cyklické čekání (proces A vlastní prostředek 1, chce prostředek 2, který drží B a současně žádá o 1) Petr Krajča (UP) KMI/XOSY: Přednáška III. 11. březen, 2011 12 / 18

Řešení deadlocku (1/4) Ignorace,,neřešení, v praxi často používané Detekce (detection & recovery) pokud vznikne deadlock, je detekován a některý proces odstraněn k detekci se používá alokační graf prostředků a graf čekání alokační graf: orientovaný graf dva typy uzlů prostředek, proces hrana proces-prostředek proces čeká na prostředek hrana prostředek-proces prostředek je vlastněn procesem graf čekání vznikne vynecháním uzlů prostředků a přidáním hran P n P m pokud existovaly hrany P n R a R P m, kde P n a P m jsou procesy a R je prostředek deadlock vznikne, pokud je v grafu čekání cyklus Kdy má smysl provádět detekci? Jak vybrat obět? Petr Krajča (UP) KMI/XOSY: Přednáška III. 11. březen, 2011 13 / 18

Řešení deadlocku (2/4) Zamezení vzniku (prevention) snažíme se zajistit, že některá z podmínek není splněna zamezení výlučnému vlastnění prostředků (často nelze z povahy zařízení) zamezení držení a čekání proces zažádá o všechny prostředky hned na začatku problém s odhadem pĺıtvání a hladovění množství prostředků nemusí být známé předem jde použít i v průběhu procesu (ale proces se musí vzdát všech prostředků) zavedení možnosti odejmout prostředek vhodné tam, kde lze odejmout prostředky tak, aby nešlo poznat, že byly odebrány zamezení cyklickému čekání zavedení globálního číslování prostředků a možnost žádat prostředky jen v daném pořadí Petr Krajča (UP) KMI/XOSY: Přednáška III. 11. březen, 2011 14 / 18

Řešení deadlocku (3/4) Vyhýbání se uváznutí (avoidance) procesy žádají prostředky libovolně systém se snaží vyhovět těm požadavkům, které nemohou vést k uváznutí je potřeba znát předem, kolik prostředků bude vyžádáno tomu je přizpůsobeno plánovaní procesů bezpečný stav existuje pořadí procesů, ve kterém jejich požadavky budou vyřízeny bez vzniku deadlocku systém, který není v bezpečném stavu, nemusí být v deadlocku systém odmítne přidělení prostředků, pokud by to znamenalo přechod do nebezpečného stavu (proces musí čekat) Petr Krajča (UP) KMI/XOSY: Přednáška III. 11. březen, 2011 15 / 18

Řešení deadlocku (4/4) Algoritmus na bázi alokačního grafu vhodný pokud existuje jen jedna instance každého prostředku do alokačního grafu přidáme hrany (proces-prostředek) označující potenciální žádosti procesu a prostředky žádosti a prostředek se vyhoví pouze tehdy, pokud konverze hrany na hranu typu (prostředek-je vlastněn-procesem) nepovede ke vzniku cyklu Bankéřův algoritmus vhodný tam, kde je větší počet prostředků daného typu na začátku každý proces oznamí, kolik prostředků jakého typu bude maximálně potřebovat při žádosti o prostředky systém ověří, jestli se nedostane do nebezpečného stavu pokud nelze vyhovět, je proces pozdržen porovnávají se volné prostředky, s aktualně přidělenými a maximálními Petr Krajča (UP) KMI/XOSY: Přednáška III. 11. březen, 2011 16 / 18

Bankéřův algoritmus (1/2) uvažujme m prostředků a n procesů matice n m max počet prostředků, které bude každý proces žádat assigned počet přiřazených prostředků jednotlivým procesům needed počet prostředků, které bude každý proces ješte potřebovat (evidentně needed = max assigned) vektory velikosti m E počet existujících prostředků P počet aktuálně držených prostředků A počet dostupných zdrojů (evidentně A = E P) Algoritmus 1 najdi řádek i v needed takový, že needed[i] A, pokud takový není, systém není v bezpečném stavu 2 předpokládej, že proces skončil a uvolnil své zdroje, i.e., A A + assigned[i] 3 opakuj body 1 a 2, dokud nejsou odstraněny všechny procesy nebo není jasné, že systém není v bezpečném stavu Petr Krajča (UP) KMI/XOSY: Přednáška III. 11. březen, 2011 17 / 18

Bankéřův algoritmus (2/2) K L M N A 3 0 1 1 B 0 1 0 0 C 1 1 1 0 D 1 1 0 1 E 0 0 0 0 assigned K L M N A 1 1 0 0 B 0 1 1 2 C 3 1 0 0 D 0 0 1 0 E 2 1 1 0 needed E = 6, 3, 4, 2 P = 5, 3, 2, 2 A = 1, 0, 2, 0 podmínku splňuje proces D = odebrán a A 2, 1, 2, 1 podmínku splňuje proces A = odebrán a A 5, 1, 3, 2 podmínku splňuje proces B = odebrán a A 5, 2, 3, 2 podmínku splňuje proces C = odebrán a A 6, 3, 4, 2 podmínku splňuje proces E = odebrán a A 6, 3, 4, 2 Petr Krajča (UP) KMI/XOSY: Přednáška III. 11. březen, 2011 18 / 18