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

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

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

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

Procesy a vlákna (Processes and Threads)

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

OS Plánování procesů

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

Management procesu I Mgr. Josef Horálek

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

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

Von Neumannovo schéma

Procesy a vlákna Mgr. Josef Horálek

vjj 1. Priority. Dispatcher

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

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

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)

Přednáška 6. Procesy a vlákna (vznik, stavy, atributy). Signály. Nástroje pro práci s procesy a vlákny. Úvod do Operačních Systémů Přednáška 6

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

Stavba operačního systému

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

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

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

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

Procesy a vlákna - synchronizace

Téma 3. Procesy a vlákna

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

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

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

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

PB002 Základy informačních technologií

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

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

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

Co mi to tu vlastně běží?

MetaCentrum - Virtualizace a její použití

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

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. Správa paměti (SP) Požadavky na SP. Spojování a zavedení programu. Spojování programu (linking) Zavádění programu (loading)

Windows a real-time. Windows Embedded

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

Logická organizace paměti Josef Horálek

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

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

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

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í

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

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

PRINCIPY OPERAČNÍCH SYSTÉMŮ

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

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

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

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

Management procesu II Mgr. Josef Horálek

Přednáška 1. 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í

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

OS řady Microsoft Windows

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

Operační systémy a databáze

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague

Principy operačních systémů. Lekce 2: Správa paměti

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

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

Desktop systémy Microsoft Windows

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

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague

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

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í

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

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

monolitická vrstvená virtuální počítač / stroj modulární struktura Klient server struktura

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

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

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

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

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

Základní principy konstrukce systémové sběrnice - shrnutí. Shrnout základní principy konstrukce a fungování systémových sběrnic.

a co je operační systém?

Ukázka zkouškové písemka OSY

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

Systém adresace paměti

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague

BI-JPO. (Jednotky počítače) M. Sběrnice

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

2010/2011 ZS. Operační systém. úvod základní architektury

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

Základní typy struktur výpočetních systémů

Vlákna Co je to vlákno?

Při překrývání se využívá toho, že ne všechny moduly programu jsou vyžadovány současně. Jakmile skončí využívání jednoho

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

MS WINDOWS I. řada operačních systémů firmy Microsoft *1985 -? Historie. Práce ve Windows XP. Architektura. Instalace. Spouštění

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)

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

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

Matematika v programovacích

4EK201 Matematické modelování. 8. Modely hromadné obsluhy

Bootkity v teorii a praxi. Martin Dráb martin.drab@ .cz

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.

Transkript:

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 projektem financovaným z Evropského sociálního fondu a rozpočtu hlavního města Prahy. Praha & EU: Investujeme do vaší budoucnosti 1

Implementace procesu OS spravuje tabulku (pole struktur), která se nazývá tabulka procesů, s jednou položkou pro jeden proces, nazývanou process control block (PCB). PCB obsahuje informace o procesu a jeho vláknech, které jsou nutné pro správu procesů a vláken. Velikost tabulky procesů se obvykle odvozuje od konfigurace systému (např. od velikosti fyzické paměti). Obvykle ji lze změnit pomocí příslušného parametru jádra. 2

Položky PCB Informace pro identifikaci procesu (process identification) jméno procesu, číslo procesu (PID), rodičovský proces (PPID), vlastník procesu (EUID, RUID, SUID,...), seznam vláken, Stavové informace procesoru (processor state information) pro každé kernel vlákno hodnoty viditelných registrů CPU, hodnoty řídících a stavových registrů CPU (program counter, program status word (PSW), status information, ) ukazatel na zásobník, 3

Položky PCB Informace pro správu procesu (process control information) Vlákno stav vlákna, priorita, informace nutné pro plánování informace o událostech, na které proces čeká, informace pro meziprocesovou komunikaci, Proces informace pro správu paměti (ukazatel na tabulku stránek, ) alokované a používané prostředky (otevřené soubory, ) 4

Příklad: Struktura procesu v Solarisu Source: Solaris Internals 5

Implementace vláken v uživatelském prostoru Run-time system: množina funkcí, která spravuje vlákna. Vlákna jsou implementována pouze v uživatelském prostoru. Jádro o vláknech nemá žádné informace. 6

Implementace vláken v uživatelském prostoru Výhody Vlákna mohou být implementována v OS, které nepodporuje vlákna. Rychlé plánování vláken. Každý proces může mít svůj vlastní plánovací algoritmus. Nevýhody Jak budou implementována blokující systémová volání? (změna systémových volání na neblokující nebo požití systémového volání select) Co se stane když dojde k výpadku stránky? Žádný clock interrupt uvnitř procesu (jedno vlákno může okupovat CPU během celého časového kvanta procesu). 7

Implementace vláken v prostoru jádra Jádro má tabulku vláken, která obsahuje informace o všech vláknech v systému. 8

Implementace vláken v prostoru jádra Výhody Žádný problém s blokujícími systémovými voláními. Nevýhody Vytváření, ukončování a plánování vláken je pomalejší. 9

Hybridní implementace vláken Jádro se stará pouze o kernel-level threads a plánuje je. Některé kernel-level threads mohou mít user-level threads. User-level threads jsou vytvářená, ukončovaná a plánovaná uvnitř procesu. 10

Příklad: Solaris MxN model 11

Příklad: Solaris 1x1 model 12

Příklad implementace: Solaris Kernel threads: základní jednotky, které mohou být plánovány a spuštěny na jednom nebo více CPU. Lightweight process (LWP): mapování mezi ULT a kernel vlákny. Každý LWP podporuje jedno nebo více ULT a je mapováno na jedno kernel vlákno. User-level thread (ULT): implementovaný pomocí knihovny vláken v adresovém prostoru procesu (neviditelný pro OS). Process: normální Unixový proces. Task: množina procesů, které sdílejí některé kvóty. Project: množina procesů, které sdílejí kvóty a limity (maximální počet procesů, čas CPU, paměť, ). Zóna: virtuální instance OS (množina systémových a uživatelských procesů, které využívají pouze zdroje přidělené dané zóně). 13

Příklad implementace: Windows XP Thread: jednotka plánována jádrem. Fiber: vlákno spravované celé v uživatelském prostoru. Process: jednotka, která alokuje zdroje. Každý proces má aspoň jedno vlákno (thread). Job: množina procesů, které sdílejí kvóty a limity (maximální počet procesů, čas CPU, paměť, ). 14

Plánování vláken Typy úloh Interaktivní Dávkové Reálného času 15

Plánování vláken Pří přidělování CPU vláknům jádro OS rozhoduje Které vlákno poběží Na kterém CPU/jádru Kdy poběží a jak dlouho 16

Kritéria plánování Uživatelské hledisko doba zpracování (turnaround time) doba, která uplyne od spuštění do ukončení vlákna doba odezvy (response time) doba, která uplyne od okamžiku zadání požadavku do doby první reakce dosažení meze (deadlines) zaručení ukončení vlákna do dané meze předvídatelnost (predictability) vlákno by měl pokaždé běžet stejně dlouho bez ohledu na zatížení systému 17

Kritéria krátkodobého plánování Systémové hledisko propustnost (throughput) počet vláken dokončených za jednotku času vyžití procesoru (processor utilization) spravedlivost (fairness) zamezit hladovění (starvation) prosazení priorit (enforcing priorities) možnost uplatnit zvolenou plánovací strategii vyvážení V/V (balancing resources) snaha udržet V/V prostředky maximálně vytížené 18

Typy vláken Orientované na CPU (CPU-bound processes) CPU využíváno po dlouhou dobu, málo časté čekání na V/V. Orientované na V/V (I/O-bound processes) CPU využito po krátkou dobu, velmi časté čekání na V/V. Reálného času (Realtime) Vlákno musí zareagovat na událost během daného intervalu. 19

Kdy plánujeme? Vytvoření nového vlákna Ukončení běžícího vlákna Běžící vlákno je zablokován z důvodu provádění systémového volání Důvod zablokování může hrát roli při plánování (např. vlákno A čeká až vlákno B opustí kritickou sekci). Většinou ale plánovač nemá k dispozici tuto informaci. Přerušení od V/V zařízení Vybereme nějaké ready vlákno nebo blocked vlákno čekající na V/V? Přerušení od časovače Plánovací rozhodnutí při každém přerušení od časovače nebo při k- tém přerušení od časovače. 20

Strategie plánování Plánování bez předbíhání (nonpreemtive scheduling) Vlákno běží dokud nepožádá o nějakou službu jádro nebo neskončí. Vlákno může blokovat systém a musí spolupracovat pouze když žádá službu jádra. Používá se v některých systémech pro speciální třídy procesů/vláken. Plánování s předbíháním (preemptive scheduling) Běžící vlákno je zablokován automaticky po uplynutí časového kvanta. Jediná možná strategie v RT-systémech a více uživatelských systémech. 21

Plánování v dávkových systémech First-Come First-Served (FCFS) Plánování bez předbíhání pomocí jedné FIFO fronty vláken. Když je běžící vlákno zablokováno, první vlákno ve frontě bude pokračovat. Když se zablokované vlákno stane opět ready, je zařazeno na konec fronty. Výhody: jednoduché na pochopení i implementování. Nevýhody: FCFS může zpomalit vlákna orientované na V/V. 22

Plánování v dávkových systémech Shortest Job First (SJF) Plánování bez předbíhání, které předpokládá, že doba výpočtu je známa předem. Plánovač spouští nejdříve vlákna s nejmenší dobou výpočtu. SJF minimalizuje průměrnou dobu zpracování. Job A B C D Run Time[min] 8 4 4 4 Run Order A,B,C,D Turnaround 8 12 16 20 Average Turnaround 14 min Run Order D,C,B,A Turnaround 20 12 8 4 Average Turnaround 11 min 23

Plánování v interaktivních systémech Round-Robin Scheduling (RR) Plánování s předbíháním. Ready vlákna čekají ve frontě FIFO. Každý vlákno dostane přiděleno CPU na časové kvantum. Po uplynutí časového kvanta, běžící vlákno je pozastaveno a uloženo na konec FIFO fronty, první vlákno ve FIFO frontě dostane přiděleno CPU. Délka časového kvanta je důležitý parametr: Krátké čas. kvantum nízká efektivita CPU. Dlouhé čas. kvantum špatná doba odezvy. Rozumný kompromis je 20-50ms. 24

Plánování v interaktivních systémech Priority Scheduling (PS) Každé vlákno má přidělenu prioritu. Ready vlákna se stejnou prioritou jsou seskupeny do prioritních tříd. CPU je přidělováno vláknům z nejvyšší prioritní třídy. Vlákna z nejvyšší prioritní třídy se střídají metodou round-robin. Ostatní vlákna čekají. 25

Plánování v interaktivních systémech Varianty prioritního plánování bez předbíhání s předbíháním Problém statická priorita dynamická priorita fixní časové kvantum pro všechny prioritní třídy různě velká časová kvanta pro různé prioritní třídy hladovění (starvation) vlákno s nízkou prioritou nedostane CPU. Řešení vláknu, které čeká déle než je stanovený limit, je dočasně zvýšena priorita 26

Příklad: zvýhodnění vláken orientovaných na V/V Vlákna orientovaná na V/V stráví většinu času čekáním na dokončení V/V operací. Vlákna orientovaná na V/V by měly dostat CPU co nejdříve, aby mohly opět zahájit V/V operaci. Každému vláknu nastavíme dynamickou prioritu P=t q /t u t q je časové kvantum a t u je čas skutečně strávený na CPU. Např. proces, který využil 2ms ze 100ms čas. kvanta dostane prioritu 50. Zatím co proces, který běžel 50ms (ze 100ms čas. kvanta) dostane prioritu 2. 27

Příklad: redukování režie na přepínání kontextu Operační systém CTSS (MQ) Přepínání kontextu bylo velmi pomalé, neboť počítač (IBM 7094) mohl mít v paměti pouze jeden proces. Proto bylo vhodné nastavit velké časové kvantum, abychom redukovali režii na přepínání kontextu. Proces v nejvyšší třídě běží po dobu jednoho čas. kvanta. Proces v následující třídě poběží po dobu dvou čas. Kvant, Pokud proces využije celé čas. kvantum, bude přesunut do následující nižší třídy. Např. proces, jehož doba výpočtu je 100q, dostane 1q, 2q, 4q, 8q, 16q, 32q, 64q. Z posledního čas. intervalu (64q) využije pouze 37q. v MQ dojde pouze k 7 přepnutím kontextu v RR by došlo ke 100 přepnutím kontext. 28

Windows XP plánování vláken Plánování CPU je po vláknech a je implementováno v jádru. Používá prioritní plánování s předbíháním CPU je přidělováno ready vláknům s nejvyšší prioritou metodou round robin CPU může vlákno využívat po dobu časového kvanta, pokud ho nepřeruší vlákno s vyšší prioritou časové kvantum může být různě velké pro různé systémy/vlákna 29

Windows XP plánování vláken Jádro: rozlišuje 32 priorit real-time úrovně (16-31) dynamické úrovně (1-15) systémová úroveň (0) Windows API Základní priority procesů (Realtime, High, Above Normal, Normal, Below Normal, Idle) Základní priority vláken (Time critical, Highest, Above Normal, Normal, Below Normal, Lowest, Idle) 30

Windows XP plánování vláken Proces základní prioritu (base priority), viz. předchozí tabulka implicitně se dědí od rodiče při spuštění procesu (např. funkcí CreateProcess() nebo příkazem start /úroveň program) po spuštění (např. funkcí SetPriorityClass() nebo aplikací Task Manager) Vlákno základní priorita (base priority), dědí se od základní priority procesu aktuální priorita (dynamic priority) Plánování se děje na základě aktuální priority vlákna. Jádro může dočasně modifikovat aktuální prioritu vlákna (kromě real-time úrovně 16-31). 31

Windows XP plánování vláken Interrupt levels x Priority levels 32

Windows XP plánování vláken Zobrazení informací o procesech/vláknech aplikace Správce úloh (CTRL-ALT-DEL) příkaz tasklist.exe další nástroje z www.sysinternals.com aplikace Process explorer (ProcExp.exe) 33

Solaris plánování vláken 34

Solaris plánování vláken Timesharing (TS) normální uživ. Procesy, prioritní plánování s předbíháním, různě velká čas. Kvanta procesy orientované na CPU mají prioritu nižší než procesy orientované na V/V procesy, které nedostaly CPU během určitého času, budou mít zvýšenou prioritu. Interactive (IA) podobné jako TS, ale priorita procesů v aktivním okně se rychleji zvyšuje. Fixed Priority (FX) přidělená priorita není měněna jádrem prioritní plánování s předbíháním, různě velká čas. kvanta 35

Solaris plánování vláken System (SYS) systémové vlákna, prioritní plánování bez předbíhání, fixní priorita. Real Time (RT) RT procesy, nejvyšší priorita (pouze obsluha přerušení má vyšší) plánování s předbíháním, fixní priorita. Fair Share (FSS) pro vlákna, která jsou součástí projektu priorita je přidělena, měněna podle limitů nastavených na projekt 36

Solaris plánování vláken Informace o parametrech plánování dispadmin -c TS -g # t s _ q u a n t u m t s _ t q e x p t s _ s l p r e t t s _ m a x w a i t t s _ l w a i t P R I O R I T Y # L E V E L 5 0 0 0 1 0 5 1 0 # 0 5 0 0 0 1 1 5 1 1 # 1 5 0 0 1 1 2 5 1 2 # 2 5 0 0 1 1 3 5 1 3 # 3 5 0 0 2 1 4 5 1 4 # 4 5 0 0 2 1 5 5 1 5 # 5 4 5 0 3 1 6 5 1 6 # 6 4 5 0 3 1 7 5 1 7 # 7.................. 5 0 4 8 5 9 5 5 9 # 5 8 5 0 4 9 5 9 5 5 9 # 5 9 37

Solaris plánování vláken ts_quantum Aktuální časové kvantum pro danou prioritu. ts_tqexp Nová priorita pro proces, který využil celé čas. Kvantum. ts_slpret Nové priorita pro proces, který nevyužil celé čas. Kvantum. ts_maxwait Pokud proces nedostal během tohoto intervalu CPU, tak bude mít novou prioritu ts_lwait. PRIORITY LEVEL Aktuální priorita procesu. 38

Jak změnit plánovací třídu procesu? dispadmin Solaris plánování vláken Jak změnit prioritu procesu? priocntl s c třída t časové_kvantum p priorita program nice +10 příkaz 39