OS Plánování procesů

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

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

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

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

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

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)

Pronunciation: \ ske-(,)jül, -jəl, Canada also she-, British usually she-(,)dyül\

Procesy a vlákna Mgr. Josef Horálek

Management procesu I Mgr. Josef Horálek

Procesy a vlákna (Processes and Threads)

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

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

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

Von Neumannovo schéma

Plánovanie procesov a vlákien

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

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

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

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

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)

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

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

vjj 1. Priority. Dispatcher

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

Ukázka zkouškové písemka OSY

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

PB002 Základy informačních technologií

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

Principy operačních systémů. Lekce 7: Souborový systém

Operační systémy a databáze

Procesy a vlákna - synchronizace

Výběr zdrojů, zadávání a správa úloh v MetaCentru

Programování systémů reálného času A3M35PSR, A4B35PSR

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

Výběr zdrojů, zadávání a správa úloh

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

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

Principy operačních systémů

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

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

Předmět: Operační systémy

Operační systémy 2. Struktura odkládacích zařízení Přednáška číslo 10

Operační systémy. Tomáš Hudec.

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

Činnost počítače po zapnutí

MetaCentrum - Virtualizace a její použití

Logická organizace paměti Josef Horálek

Lineární datové struktury

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í

Co mi to tu vlastně běží?

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

Stavba operačního systému

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

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

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

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

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

Informační systémy a plánování výroby 2.čast

Přerušení POT POT. Přerušovací systém. Přerušovací systém. skok do obslužného programu. vykonávaný program. asynchronní událost. obslužný.

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

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

Poslední aktualizace: 21. května 2015

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

2.Moderní koncepce OS, architektura jádra: monolitický systém, vrstvený systém, virtuální stroj, mikrojádro.

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

Operační systémy. Přednáška 7: Správa paměti I

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í

Virtualizace MetaCentra

Úvod do Linuxu. SŠSI Tábor 1

Paralelní výpočty ve finančnictví

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

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

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

Principy operačních systémů. Lekce 8: Ovladače periferií

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

Operační systémy 1. Přednáška číslo Souborové systémy

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

Informační systémy plánování výroby - pokročilé rozvrhování

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

Operační systémy. Správa paměti (SP) Požadavky na SP. Spojování a zavedení programu. Spojování programu (linking) Zavádění programu (loading)

Implementace systémů HIPS: historie a současnost. Martin Dráb

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

UŽIVATEL, SKUPINA, PROCES

I/O systém Vnější paměti. PB 169 Počítačové sítě a operační systémy

1. Definice OS: typy OS, abstrakce a služby, systémová volání.

Aplikace. vliv na to, jakou mají strukturu i na to, jak pracné je je vyvinout. Bylo vypozorováno, že aplikace je možné rozdělit do skupin

Systém adresace paměti

Operační systémy pro systémy sběru dat (=DAQ systems). Vývoj aplikačních programů. Operační systémy pro DAQ RTOS VxWorks Windows CE RTX LabVIEW RT

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

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

Dagmar Adamová, Jiří Chudoba Jednalo se o Monte Carlo simulace případů srážek p+p a Pb+Pb. Fungování

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

Disková pole (RAID) 1

Poslední aktualizace: 25. května 2017

Windows a real-time. Windows Embedded

Strojový kód. Instrukce počítače

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

Oborové číslo Hodnocení - část A Hodnocení - část B Hodnocení - část A+B. 1. úloha (4 body) Kolik existuje cest délky 4 v grafu K11? 2.

Transkript:

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 algoritmem historie: dávkové systémy jediná fronta, jediná úloha potřeba multiprogramování, neboť 80 % času bylo CPU nevyužito zdržování na V/V více paměti multiprogramming, timesharing potřeba naplánovat běh procesů optimálně

Typy plánování (dle času) dlouhodobé (long term) které nové úlohy se mají zpracovávat, které ukončit rozhoduje o množství procesů v systému střednědobé (medium term) které procesy se mají odložit nebo vrátit do paměti efektivní práce s omezenou operační pamětí krátkodobé (short term, dispatching) který připravený proces dostane CPU, na jak dlouho

Cíle plánování podle prostředí spravedlnost každý proces stejně času dodržování politik (strategie) rovnováha zatížení snaha využívat všechny části systému zatížené interaktivní systémy minimalizovat odezvu (response time) čas mezi zadáním příkazu a odezvou proporcionalita vyhovět očekáváním uživatelů

Cíle plánování dávkové systémy maximalizovat propustnost (throughput) počet vykonaných úloh za jednotku času (h) minimalizovat obrat (turnaround time) průměrný čas na vykonání úlohy využití CPU využívat maximálně CPU systémy real-time respektovat lhůty zabránění ztráty dat předvídatelnost zabránění degradace kvality např. multimediální systémy

Režimy plánování nepreemptivní proces se musí sám vzdát CPU (nebo blokovat) preemptivní plánovač rozhoduje, kdy který proces má CPU (efektivně) plánovat lze pouze v případě, že je k dispozici přerušení (časovače) časovač tiká typicky na frekvenci 100 Hz přerušení nastává tedy každých 10 ms

Typy procesů vstupně-výstupně orientovaný proces většinu času čeká na dokončení operací V/V typická je krátká výpočetní doba časté používání blokujících systémových volání výpočetně orientovaný proces používá intenzivně procesor blokovaná volání téměř nepoužívá

První přijde, první mele First-Come First-Served (fronta FIFO) nepreemptivní nové úlohy se zařadí do fronty po ukončení aktuálního procesu se přidělí CPU procesu, který čekal ve frontě nejdéle krátké procesy musí zbytečně dlouho čekat zvýhodňuje výpočtově orientované procesy procesy bez V/V čekají pouze jednou procesy s V/V čekají při každém dokončení operace

Nejkratší úloha první Shortest Job First nepreemptivní spustí se proces s nejkratší očekávanou dobou provádění krátké procesy mají přednost závislé na dobrém odhadu délky běhu procesu hrozí vyhladovění dlouhodobých procesů

Nejkratší zbývající následuje Shortest Remaining Time Next preemptivní varianta SJF spustí se proces s nejkratší očekávanou dobou do dokončení dále minimalizuje obrat (turnaround time)

Cyklická obsluha Round-Robin preempce založená na časovači každý proces dostane časové kvantum na CPU přepnutí je prováděno při vypršení kvanta nebo při volání blokujícího systémového volání je třeba optimalizovat délku kvanta Příklad: kvantum 4 ms, context switch 1 ms CPU pracuje produktivně jen 80 % času typické nastavení frekvence časovače je 100 Hz

Prioritní plánování priority based scheduling dává se přednost procesu s vyšší prioritou obvykle více front pro připravené procesy nízká priorita může mít za následek vyhladovění procesu (starvation) proces se již nedostane k CPU, smrt hladem je třeba prioritu přizpůsobovat v závislosti na době čekání nebo historii běhu procesu

Plánování se zárukou Guaranteed Scheduling Fair-Share zaručuje každému uživateli stejné podmínky n uživatelů na systému každý dostane časové kvantum 1/n příklad: uživatel A spustí 9 procesů uživatel B spustí 1 proces při RR má uživatel A 90 % času CPU, B pouze 10 % při FS se využití CPU rozdělí mezi A a B na 50 % B: jeden proces 50 % času CPU A: devět procesů si rozdělí 50 % času, jeden má cca 5,56 %

Loteriové plánování Lottery Scheduling každý proces dostane tikety a periodicky se losuje výherní proces získá čas CPU důležité procesy mohou mít více tiketů procesy jsou si rovny, ale některé jsou si rovnější (parafráze Orwella) kooperativní procesy si mohou předávat tikety lze použít jako aproximace jiných algoritmů snadná implementace

Systémy real-time hard RT deadline musí být splněna soft RT akceptovatelný občasný výpadek události se dělí na periodické aperiodické nelze je předpovědět systém je plánovatelný, pokud suma časů potřebných na obsloužení událostí dělená jejich n periodami je menší nebo rovna jedné C i 1 i=1 T i

Plánování v Unixu založeno na prioritním plánování priorita pro proces je dvojí pro běh v režimu jádra přiřazuje se procesu, když přechází do spícího stavu pevná priorita podle typu systémového volání přerušitelná a nepřerušitelná pro běh v uživatelském režimu nastaví se po návratu z režimu jádra

Plánování v Unixu (obrázek)

Plánování v Linuxu čas CPU je rozdělen do epoch každý proces má vypočítané časové kvantum v rámci epochy je může využívat po částech epocha končí, když všechny běhu schopné procesy vyčerpaly svá kvanta poté se přepočítají časová kvanta VŠECH procesů a nastává nová epocha základní časové kvantum je 100 HZ / 1000, kde HZ = 100 Hz, tj.10 tiků 100 ms platí pro třídu SCHED_RR, jinak je kvantum dynamické

Plánovací položky PCB Linux policy třída plánovače sched_setscheduler(2) statická priorita pro procesy real-time SCHED_FIFO SCHED_RR dynamická pro ostatní procesy (SCHED_OTHER) SCHED_NORMAL SCHED_BATCH SCHED_IDLE rt_priority statická priorita

Třídy plánování SCHED_FIFO procesy real-time statická priorita hodnota rt_priority > 0 CPU má trvale proces s nejvyšší prioritou odebrání CPU pouze v těchto případech: blokující systémové volání preempce procesem s vyšší prioritou zavolání sched_yield(2) proces je vložen na konec fronty pro svou prioritu

Třídy plánování SCHED_RR střídání procesů s prioritou real-time statická priorita hodnota rt_priority > 0 proces běží po omezenou dobu lze získat voláním sched_rr_get_interval(2) typicky 100 ms jinak platí totéž jako pro SCHED_FIFO navíc je preempce po vypršení časového kvanta

Třídy plánování SCHED_OTHER implicitní SCHED_NORMAL, rt_priority = 0 dynamická priorita závisí na době, po kterou proces čekal na přidělení CPU hodnotě nice uživatelsky ovlivnitelný parametr třída SCHED_BATCH (od jádra 2.6.16) jádro vždy předpokládá, že proces je výpočetní proces dostane malou penalizaci vhodné pro neinteraktivní výpočetní procesy třída SCHED_IDLE (od 2.6.23, součást CFS)

Dynamická priorita jádrem určená priorita čekajícím procesům se priorita zvyšuje běžícím procesům je snížena uživatelsky ovlivnitelná část hodnota nice(2) od 20 (maximální priorita) do 19 (minimální priorita) hodnota říká, jak milý (nice) je uživatel na ostatní změna o ±1 znamená zhruba ±10 % času CPU správce (root) smí hodnotu nastavovat libovolně uživatel smí prioritu pouze snižovat (příp. obnovit)

Completely Fair Scheduler novinka jádra 2.6.23 autor Ingo Molnár autorem konceptu Con Kolivas RSDS Rotating Staircase Deadline Scheduler zohledňuje odlišné požadavky systémů desktopové minimální odezva serverové maximální výkon lze za běhu přepínat nepoužívá klasickou frontu procesů nahrazena stromem (red-black tree)