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



Podobné dokumenty
OS Plánování procesů

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

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)

Management procesu I Mgr. Josef Horálek

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.

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

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

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

Procesy a vlákna (Processes and Threads)

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

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

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

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

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

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

Základy informatiky. 2. Přednáška HW. Lenka Carr Motyčková. February 22, 2011 Základy informatiky 2

Sběrnicová struktura PC Procesory PC funkce, vlastnosti Interní počítačové paměti PC

2 Hardware a operační systémy

Procesy a vlákna Mgr. Josef Horálek

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

Procesy a vlákna - synchronizace

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

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

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

Princip funkce počítače

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

X36UNX. UNIX - signály. jejich význam a použití. Martin Plicka -

Linux Teorie operačních systémů a realita

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

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

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

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

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

Profilová část maturitní zkoušky 2014/2015

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

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í

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

OS Procesy a vlákna. Tomáš Hudec. Tomas.Hudec@upce.cz.

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

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

Sběrnicová struktura PC Procesory PC funkce, vlastnosti Interní počítačové paměti PC

Architektura počítače

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

Přednášky o výpočetní technice. Hardware teoreticky. Adam Dominec 2010

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

Činnost počítače po zapnutí

Operační systémy 2. Přednáška číslo 1. Úvod do OS

Principy operačních systémů

PB002 Základy informačních technologií

PRINCIPY OPERAČNÍCH SYSTÉMŮ

Logická organizace paměti Josef Horálek

Téma 3. Procesy a vlákna

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

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

Architektury počítačů a procesorů

Profilová část maturitní zkoušky 2015/2016

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

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

Windows a real-time. Windows Embedded

Sběrnicová struktura PC Procesory PC funkce, vlastnosti Interní počítačové paměti PC

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

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

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

Technické prostředky počítačové techniky

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

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

Základní deska (1) Parametry procesoru (2) Parametry procesoru (1) Označována také jako mainboard, motherboard

Gymnázium Vysoké Mýto nám. Vaňorného 163, Vysoké Mýto

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

Činnost CPU. IMTEE Přednáška č. 2. Několik úrovní abstrakce od obvodů CPU: Hodinový cyklus fáze strojový cyklus instrukční cyklus

Hardware - komponenty počítačů Von Neumannova koncepce počítače. Von Neumannova koncepce počítače

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

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

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

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

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

Stavba operačního systému

PROCESOR. Typy procesorů

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

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)

a co je operační systém?

Systém adresace paměti

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

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řidělování paměti II Mgr. Josef Horálek

konec šedesátých let vyvinut ze systému Multics původní účel systém pro zpracování textů autoři: Ken Thompson a Denis Ritchie systém pojmnoval Brian

Témata profilové maturitní zkoušky

Ukázka zkouškové písemka OSY

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

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

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

SÁM O SOBĚ DOKÁŽE POČÍTAČ DĚLAT JEN O MÁLO VÍC NEŽ TO, ŽE PO ZAPNUTÍ, PODOBNĚ JAKO KOJENEC PO PROBUZENÍ, CHCE

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

Vstupně - výstupní moduly

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

Paralelní programování

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

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

Strojový kód k d a asembler procesoru MIPS SPIM. MIPS - prostředí NMS NMS. 32 ks 32bitových registrů ( adresa registru = 5 bitů).

Transkript:

1. Definice os, typy os, služby a vrstvy, systémová volání, virtuální počítač Definice: -softwarova nadstavba HW -společně s hw představuje virtualni počitač -je rozhranim mezi živitelem a systemem (laik, efektivni využiti, programatorům vyvoj a laděni) -prostředi pro provaděni programů (efektivně předava a odebira řizeni programům,chrani a izoluje programy a data) -zobecněne rozhrani pro přistup k systemovym prostředkům (poskytuje služby virtualniho počitače, řeši rozdily jednotliveho hardware, programatorům zpřistupňuje paměť,soubory a VV zažizeni) Typy OS: Mainframe os (mnoho IO),serverove (unix,windows 2000),viceprocesorove(clustery,paralelni),osobni počitače,real-time os (VxWorks),vestavěne- PalmOS(Pda, TV),smartcard OS Vrstvy: Koncovy uživatel (aplikace, nastroje), programator,systemove rozhrani(virtualni počitač),operačni system,navrhař os, hardware Služby: tvorba programů (editory, kompilatory), provaděni programů (zavedeni, spuštěni,inicializace periferii,planovani pořadi),přistup k IO a souborům (provaděni IO operaci, konverze formatů dat),přistup k systemu (sprava a přidělovani prostředků,ochrana přistupu k privatnim prostředkům a datům),detekce chyb (hw,sw,neschopnost os splnit-nelze najit soubor),reakce na chyby(ohlašeni,opakovani operace,nasilne ukončeni programu),sledovani činnosti systemu(statistiky o použiti prostředků,monitorovani vykonnosti) Systémová volání: Volani jadra OS, většinou přes knihovnu (parametry na stack,volani fce v knihovně,nastaveni registru na typ volani,trap-skok do jadra OS, jadro:dispatch,volani ovladače, navrat) Typy-procesy(vznik,nahrazeni,čekani na ukončeni, ukončeni),soubory(otevřeni,zavřeni,čteni,zapis,stat),adresaře a souborove systemy(vytvořeni,zrušeni,odkazy),ostatni(změna prav,signal,zjištěni času) Win32 API-vrstva mezi funkcemi a aplikacemi, založeno na udalostech,extremně velike 2.Moderní koncepce OS, architektura jádra: monolitický systém, vrstvený systém, virtuální stroj, mikrojádro. Koncepce OS: procesy správa paměti správa vstupů a výstupů správa úložišť systémová volání

Dělení OS dle struktury : monolitické OS (The Big Mess) vše v jednom vnitřně nečleněné jádro z hlediska hierarchie volání procedur každá procedura může volat libovolnou jinou mohou mít i strukturu: hlavní program (obsahuje dispatcher) obslužné procedury užitkové procedury procedury mají pevně definované rozhraní vícevrstvé OS vrstva smí volat jen procedury stejné nebo nejbližší nižší vrstvy MULTICS Dijkstra: THE (Technishe Hogeschool Eindhoven): 5 operátor 4 uživatelské programy 3 správa V/V zařízení, buffering 2 komunikace mezi procesy a konzolí operátora 1 správa paměti 0 alokace CPU a multiprogramming virtuální stroje srdcem je VM monitor multiprogramming IBM VM/370 + OS/360 nebo CMS nepravé virtuální stroje (VM86) JVM (Java VM) model klient-server, mikrojádro (microkernel) trend moderních OS mikrojádro správa komunikace mezi procesy klientské procesy správa paměti, FS, náročné na implementaci GNU/Hurd (Hird of Unix-Replacing Daemons, Hird = Hurd of Interfaces Representing Depth) QNX [kjuniks] unixový real-time OS (pro vestavěná zařízení) 3.Návrh OS a jeho bezpečnost: důvody náročnosti implementace OS, principy jeho vývoje, zabezpečení, typy útoků a prevence, ochrana systému, dat, uživatelů, procesů. PŘEDNÁŠKA Č.10

4. Provádění instrukce, porušitelnost programu a instrukce, události, signály, přerušovací systém -provaděni instrukce:cpu ověřuje požadavky na přerušeni vždy před načtenim nove instrukce.pokud přerušeni neni povoleno nebo požadovano CPU načte nasledujici instrukci, pokud je požadovano/povoleno-uloži se obsah PC a PSW např. do zasobniku a do PC a PSW se nahraje přerušovaci vektor, tim se změni adresa přišti instrukce a nastaveni přerušovaciho systemu -přerušitelnost- IO program předa IO modulu povel a povoli přerušeni, program může pokračovat dal dokud neni třeba provest dalši IO operaci, v OS takovy program pozastaven dokud IO operace neni dokončena a procesor je zaměstnan jinou praci -start os, prvni proces (init), čeka se na udalost (event) je signalizovana přerušenim -pokud neběži žadne uživatelske procesy, nejsou žadne IO operace,neni žadny uživatel kteremu by bylo nutno odpovidat je OS nečinny, když nastane udalost->generuje se přerušeni(signalizuji různe udalosti), generovany HW nebo SW. Prioritni přerušovaci system-požadavek s vyšši prioritou může přerušit provaděni obslužne rutiny přerušeni s nižši prioritou, obsluha přerušeni s nižši prioritou se dokonči až po obslouženi všech požadavků s vyšši prioritou (přerušeni z LAN ma přednost před přerušenim z tiskarny, protože vyrovnavaci paměť je nutne rychle uvolnit pro dalši data). Časovač: časovač = timer = Časovač je čitač, ktery je zvyšovan (resp. snižovan) o jedničku vnitřnim hodinovym signalem mikropočitače. Jeho učelem je tedy odměřovat čas. -generuje přerušeni v pravidelnych intervalech, sdileni času, navrat procesů z delta listuobslužna rutina hlida, kolik času procesu zbyva do naplněni přiděleneho kvanta, zajisti přeplanovani, opakovane volani zajišťuje plnohodnotny multitasking - z delta listu jsou procesy s nulovou deltou zařazovany do ready fronty - obslužna rutina přerušeni časovače, efektivni, assembler, pokud v jejim průběhu dojde k přeplanovani, bude trvat nezanedbatelnou dobu Sdílení času: multitasking neboli současny běh vice uloh je mechanismus. Může byt realizovan různymi způsoby (přepinanim kontextů, přidělovanim časovych kvant, jako kooperativni multitasking) a může sloužit různym učelům - tomu, aby vice uživatelů sdilelo jeden počitač (pak jde o tzv. sdileni času), nebo tomu, aby si jeden uživatel mohl na svem počitači provozovat vice uloh současně, připadně oběma učelům současně. Víceúlohový (multitasking, multiprogramming, timesharing) o OS umožňuje spravu vice procesů na jednoprocesorovem systemu o běh vice uloh (procesů) ve sdileni času o ochrana paměti, planovani procesů Víceuživatelský (multi-user) o možnost současne prace vice uživatelů o identifikace a vzajemna ochrana uživatelů o OS uživateli vytvaři virtualni prostředi tvařici se, jako by měl počitač sam pro sebe: nikdo nebude bez jeho povoleni čist jeho soubory, nikdo nebude zasahovat do běhu jeho programů, bude moci použivat periferni jednotky počitače (tiskarny, vstupni jednotky,..) atd.

5. Vstupně-výstupní zařízení: techniky programování vstupu a výstupu, DMA. Paměť cache, střední přístupová doba. -hw pro ovladani periferii, disky, klavesnice, display,tiskarna, komunikařni zařizeni (lan modem) IO logika -zajišťuje interakci modulu s CPU přes řidici čast sběrnice, je zde implementovan protokol systemove sběrnice (PCI,AGP) IO operace IO program připravi IO modul pro požadovanou akci tim, že odešle potřebne přikazy a data, pote io program čeka na dokončeni,testovanim stavu IO modulu CPU provadi neproduktivni činnost,po dokončeni operace předava IO program řizeni zpět programu uživatele Techniky IO komunikace -programovany io přenos-nepouživa se,bez přerušeni, cpu čeka Io přenos s přerušenim-činnost CPU přerušena po dokončeni IO operace,pro přenos se spotřebuje čast času CPU -IO přenos s přimym přistupem do paměti (DMA)-data se přenašeji po blocich přio mezi IO modulem a paměti (bez učasti CPU), program pouze iniciuje DMA (odkud, kam, kolik),cpu předa požadavek DMA modulu-> DMA provede přenos, CPU volne,o dokončeni je CPU informovan přerušenim, omezuje přistup k operačni paměti Sběrnice-komunikace časti počitače mezi sebou, CPU, AGP, PCI,IDE,USB; spravuje je os *plug n play, bios DMA (Direct Memory Access) je způsob, kterým počítače umožňují hardwarovému subsystému přímý přístup do operační paměti tzn. bez účasti procesoru. Pomocí DMA mohou počítače přenášet data mezi zařízeními a operační pamětí s podstatně menšími nároky na procesor. DMA používá mnoho komponent například řadiče disků, grafické karty, síťové karty nebo zvukové karty. Cache rychlá paměť obvykle drahá cache rychlá mezipaměť (např. OP a CPU) využívá principu lokality odkazů v paměti tendence odkazovat se do omezené oblasti paměti např. cyklus v programu činitel úspěšnosti (Hit Ratio) se pak bude blížit 1 i při malé kapacitě paměti cache střední přístupová doba: TS = TC + (1 HR)T OP (TC << TOP) HR blízko 1 přístup je blízký přístupu do cache

6.Požadavky OS na hw pro jeho implementaci, procesor,správa, adresování paměti CPU- Central Processing Unit zpracovává instrukce RISC Reduced Instruction Set Computer CISC Complete Instruction Set Computer zpracování instrukcí má obvykle tyto fáze fetch načtení instrukce decode dekódování execute provedení ALU aritmeticko-logické jednotky FPU numerický koprocesor (Floating Point Unit) registry: program counter, instruction register, stack pointer PSW (program status word) příznaky CNZV C = carry, N = negative, Z = zero, V = overflow ostatní registry (obecné, datové, adresní, privátní, ) zvyšování výkonu superskalární CPU (instrukční paralelismus) spekulativní provádění instrukcí více pipeline více jader -dva režimy user/kernel (instrukce TRAP systemova volani,skok z režimu user do režimu kernel) *registry os-program counter(adresa dalši instrukce),stack pointer,program status word(stav procesoru-pracovni režim,atd.) *registry user-datove (přechodne uloženi dat),adresni(paměťove adresy dat a instrukci) Paměť-uloženi dat,registy-cache-ram-diskova cache-pevne disky-vyměnna media *virtualni/fyzicka adresa,memory management unit,kontext switch IO-zařizeni-řadič, OS praci s nim zjednodušuje,ovladače začleněny do jadra,spuštěny při startu/za běhu,přerušeni (dokud požadavek nevyřizen je zaměstnan procesor jinou praci),registry zařizeni, IO porty, direct memory acces 7.Implementace procesu v OS: proces a program, tabulka procesů, přepínání kontextu, stav procesu, třístavový a sedmistavový model. Proces-konkretni provedeni určiteho programu, program lze provadět opakovaně s různymi daty, v danem okamžiku lze jeden program provadět vicekrat Sprava procesů: typicka funkce jadra OS (Process management), vytvařeni a ukončovani,planovani a spouštěni,přepinani procesů,synchronizace procesů,podpora komunikace procesů,udržovani řidicich bloků procesů Vznik a zánik procesu vznik procesu při inicializaci systému systémové volání požadavek uživatele, start dávky

ukončení procesu normální (dobrovolné) při chybě (dobrovolné) fatální chyba (nedobrovolné) zabití (jiným procesem, jádrem) Tabulky Os udržuje tabulky-ovladani paměti, ovladani IO, ovladani souborů, ovladani procesů Tabulka ovladani procesů-process image tvoři tyto komponenty:program,data,zasobnik,atributy procesu(jedinečny numericky identifikator,stav procesu(kontext),řidici informace procesu) Postup při vytvořeni procesu-přiděleni identifikatoru, alokovani mista v paměti,inicializace řidiciho bloku PCB,nastaveni odkazů,uloženi zaznamu o aktivaci procesu Přepinani-při přerušeni-proces vyčerpal kvotu, IO operace byla dokončena Pro OS-konkretni provedeni určiteho programu -prokladat časově provaděni mnoha procesů s cilem maximalizovat využiti CPU,přiděleni požadovanych systemovych prostředků,podpora komunikace procesů a vytvařeni novych procesů uživatelem Stavy procesů 3-stavový model: běžící (running) používá CPU připravený (ready) pozastaven jádrem OS blokovaný (blocked) čekající na vnější událost 7-stavový model: běžící (running) používá CPU připravený (ready) pozastaven jádrem OS blokovaný (blocked) čekající na vnější událost nový (new)-nelze zatím spustit (nemá ještě všechny prostředky) ukončený (exit)-již se nemůže spustit, ale je třeba ještě držet v paměti jeho informace odložený blokovaný (blocked,suspended)-blokovaný proces zabírá paměť, více takových procesů pak ubírá paměť běžícím, proto se proces z paměti odloží na disk (swap) odložený připravený (ready, suspended)-nastala již událost, na niž blokovaný proces čekal, ale proces je stále ještě na disku 8.Procesy v OS UNIX/Linux: vznik a zánik procesu, funkce fork(), exec(), exit(); hierarchie procesů, stavy procesů v Linuxu, příkaz ps, adresář /proc; signály a jejich zpracování. Vznik nového procesu. vznik noveho procesu (cat) je na žadost volani jadra. Volani jadra, ktera znamenaji vznik noveho procesu jsou fork a exec. Běžici proces vytvoři kopii sebe sama, procesy vykonavaji stejny kod. Rozlišeni rodič a potomek na urovni identifikatoru procesu. Segment kodu je explicitně spojen s novym procesem.

Procesy vykonavaji různy kod. Bez ohledu na vznik procesu je důležite, zda Rodičovsky proces pozastavuje svou činnost po dobu běhu potomka. Rodič a potomek sdili paměť. Funkce fork vytvoři klon jako novy proces. Jako kdyby se na jednom mistě procesor rozhodl vydat se dvěma cestami v programu. Jeden proces pokračuje na jednu stranu, druhy proces pokračuje na druhou stranu. Oba maji v bodě rozděleni stejne vychozi podminky. Avšak oba procesy ziskaji kompletně svůj stav pro sebe. Operačni system zajisti, že při změně paměti obdrži každy proces svou kopii. ukončení _exit #include <unistd.h> void _exit(int status); Hierarchická struktura procesů Vznik noveho procesu je iniciovan jinym procesem. Vznika tedy hierarchicka struktura procesů z pohledu rodičů a děti, protože každy rodič může mit teoreticky neomezeny počet děti. Každy proces přitom musi mit nějakeho rodiče vyjma prvniho, ktery je kořenem teto stromove struktury běžicich procesů. Prvni proces vznika při startu operačniho systemu z iniciativy jadra a ma čiselnou identifikaci 0. Proces je vždy pojmenovan podle jmena souboru s řidicim programem. Prvni proces ma obvykle jmeno sched (nebo swapper) a jeho funkce je prace pro odkládací oblast (swap area) ostatnich procesů. Jeho prvni aktivita je ovšem žadost o vznik noveho procesu, ten ma PID=1, jeho jmeno je init a je to proces označovany jako prapředek všech dalšich procesů. init je proces, ktery podle tabulky /etc/inittab startuje nove procesy zajišťujici chod operačniho systemu (jde o procesy zajištěni frontovani požadavků na tiskarnu, obsluhy požadavků sitě, oživeni terminalů uživatelů nebo grafickych adapterů atd.). init je proces, ktery řidi praci dvou zakladnich režimů operačniho systemu: režimu víceuživatelského (multi user) nebo jednouživatelského (single user). Režim je zajištěn během odpovidajicich procesů, tj. skupinou procesů. Režim viceuživatelsky znamena běh procesů, ktere umožňuji uživatelům přihlašovat se a pracovat se svymi daty. Jednouživatelsky je režim, ktery podporuje praci pouze jednoho uživatele (privilegovaneho uživatele) na periferii systemove konzoly a všechny dalši aktivity systemu pro praci periferii jsou utlumeny (je určen pro udržbu systemu). Jiny režim ale neznamena žadne omezeni prace jadra pro procesy, všechny funkce jadra jsou tytež. Příkazy pro procesy (UNIX) seznam procesů: ps(1), pstree(1) všechny procesy: ps -ef sledování zátěže: top(1), prstat(1) sledování délky fronty procesů: xload(1) nebo uptime(1), také cat /proc/loadavg sledování využití procesoru: mpstat(1) např. 10 měření po 1 sekundě: mpstat 1 10 Stavy procesů (Linux) stavy procesů jak je vypisuje ps(1): R připravený nebo běžící (runnable/running) S blokovaný (sleep) Z ukončený (defunct, zombie) T pozastavený nebo krokovaný (stopped, traced)

D nepřerušitelný spánek (uninterruptible sleep) X mrtvý (dead) nemělo by se nikdy vyskytovat W paging jen před jádrem 2.6 /proc/sys sysctl (system control) soubory, změnou těchto souborů je možne měnit nastaveni jadra za běhu a ovlivňovat jeho chovani Signály -signaly umožňuji oznamit procesům vyskyt udalosti v systemu - jde o kratke zpravy, kde se procesům oznami čislo signalu - standardni rozhrani specifikuje POSIX. Čisla některych signalů zavisi na HW, označuji se symbolickymi konstantami SIG -signaly slouži dvěma hlavnim učelům: - uvědomit proces, že nastala určita udalost - přinutit proces vykonat funkci na zpracovani signalu (signal handler) seznam všech signalu v POSIX vypišeme v konzoly přikazem kill -n implicitní zpracování signálu -na přichod signalu může proces nechat k vyřizeni jadru, což ve většině připadů znamena ukončeni prace procesu (odtud zapis kill). Dale může signal ignorovat, anebo ho zachytit a reagovat na něj určitou akci. Signal č. 9 (SIGKILL) nelze zachytit ani ignorovat. V připadě ukončeni procesu jadrem u signalů v tabulce označenych znakem '*' jadro proces ukonči a v pracovnim adresaři procesu vytvaři obraz paměti procesu v době přichodu signalu a uklada jej do souboru se jmenem "core". Po přichodu signalu je funkci předano řizeni a pokud ona sama neukonči činnost prace procesu, po navratu z ni proces pokračuje od mista přichodu signalu zpracování signálu programem -systemova volani umožňuji programatorovi zasilat signaly a určit jak budou použity číslo označení implicitně význam 1 SIGHUP ukončeni odpojeni terminalu, 2 SIGINT ukončeni přerušeni z klavesnice, 3 SIGQUIT * konec s uloženim obrazu paměti, 4 SIGILL * neznama instrukce, 5 SIGTRAP * ladici přerušeni, 6 SIGABRT * ukončeni z důvodu v/v, 7 SIGEMT * instrukce EMT, 8 SIGFPE * kolize realneho čisla, 9 SIGKILL ukončeni okamžite ukončeni procesu, 10 SIGBUS * kolize sběrnice, 11 SIGSEGV * selhani segmentace, 12 SIGSYS * chybny tvar volani jadra, 13 SIGPIPE ukončeni zapisovanou rouru nikdo nečte, 14 SIGALRM ukončeni konec časoveho intervalu, 15 SIGTERM ukončeni ukončeni, 16 SIGUSR1 ukončeni prvni signal definovany uživatelem, 17 SIGUSR2 ukončeni druhy signal definovany uživatelem, 18 SIGCHLD ignorovani změna stavu synovskeho procesu,

19 SIGPWR ignorovani kolize zdroje, 20 SIGWINCH ignorovani změna velikosti okna, 21 SIGPOLL ukončeni přiznak při praci s PROUDY, 22 SIGSTOP pozastaveni signal pozastaveni procesu, 23 SIGTSTP pozastaveni pozastaveni procesu uživatelem, 24 SIGCONT ignorovani pokračovani v činnosti, 25 SIGTTIN pozastaveni čekani na vstup, 26 SIGTTOU pozastaveni čekani na vystup, 27 SIGXCPU * konec časoveho kvanta procesoru, 28 SIGXFSZ * překročeni stanovene delky souboru. Tabulka signálů 9.Vlákna: možné implementace vláken, obecné problémy při implementaci; posixová vlákna: mutex, podmínková proměnná a jejich použití. vlákno odlehčený proces má následující položky samostatně: program counter, registry, stack, stav ostatní je sdíleno s ostatními vlákny procesu multithreading možnost běhu více vláken problém globálních proměnných implementace vláken bez podpory OS pomocí knihovních funkcí problémy: blokovaná volání převést na neblokovaná page-fault stránka není v operační paměti obvykle pracné (potřeba plánovače vláken) implementace v jádře OS vzdálená volání více režie není potřeba neblokovaných volání hybridní implementace (např. Solaris) Pthreads je POSIX-ovy standard definujici API pro vytvařeni a synchronizaci vlaken a specifikace chovani těchto vlaken Pthreads jsou zakladem pro vlakna v tradičnich UNIX-ech Knihovna Pthreads pracuje s uživatelskymi vlakny, takže nepotřebuje podporu v JOS Příklad: Samostatné vlakno, ktere počita součet prvnich n celych čisel Synchronizace vláken: pravidla, pomoci kterych častečně kontrolujeme běh vlaken, se souhrnně nazyvaji synchronizace vlaken. Obecně existuje několik mechanismů synchronizace vlaken (jedna se napřiklad o mutexy, semafory, monitory, mechanismus randez-vous a o některe dalši

mechanismy) Mutexu Nejprve si položme otazku, co je to kriticka sekce. Za kritickou sekci považujeme tu čast kodu vlakna, ktera operuje nad sdilenymi daty a hrozi, že paralelně může jine vlakno operovat nad stejnymi daty. Důsledkem může byt nekonzistence dat. Napřiklad jedno vlakno zvyši sdilenou proměnnou A o jedna a dale s ni počita, kdežto druhe vlakno proměnou A zmenši o dvě a dale s ni počita. Pokud se poštěsti, tak se instrukce mohou proložit tak, že ani jedno vlakno neda spravny vysledek. Tomuto je třeba zabranit a to tim, že do te časti, ktera pracuje s proměnnou A může vstoupit pouze jedno vlakno, druhe musi čekat až to prvni skonči. Takoveto kriticke sekce, kde může byt v jednom okamžiku pouze jedno vlakno, nazyvame MUTEX (MUTual EXclusion). Mutex ma dva stavy - zamčeny (locked - některe vlakno je uvnitř) a odemčeny (unlocked - v mutexu nikdo neni). Podmínková proměnná: Čekani na mutex v operaci mutex_lock() může byt implementovano jako programova smyčka (tzv. busy-wait čekani), pročež nejsou mutexy (na rozdil od semaforů) dobre pro čistě synchronizačni učely (kdy jedno vlakno čeka neodhadnutelnou dobu na dosaženi nějakeho bodu v programu jineho vlakna). V takovem připadě je lepši vyrobit semafor jako objekt kombinaci zamek plus podminkova proměnna (viz dale). Objekt podminkova proměnna implementuje "kontejner pro čekani vlaken" (tj. prostor-čekarnu, implementačně nějaky seznam vlaken) na splněni přislušne podminky. Čekani je "pasivni", tj. všechna vlakna nachazejici se "v čekarně" jsou ve stavu waiting. 10.Plánovač. Cíle plánování, režimy plánování, plánovací kriteria pro plánovací algoritmy, plánovací algoritmy. scheduler plánovač vybírá připravený proces pro běh přiděluje CPU odebírá CPU běžícím procesům preempce aktivuje se také při systémových voláních řídí se plánovacím algoritmem Rozhoduje ktery proces ma CPU Cíle plánování podle prostředí:spravedlnost,dodržovani politik,využiti všech časti systemu 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 plánování: o dlouhodobe (Long-Term Scheduling) - určuje, ktere programy budou zpracovany systemem o střednědobe (Medium-Term Scheduling) - součast odkladaci funkce o kratkodobe (Short-Term Scheduling) - při přerušeni od časovače nebo V/V zařizeni, systemove volani, signaly,... o V/V (I/O Scheduling) - určuje, ktery V/V požadavek bude obsloužen volnym V/V zařizenim Kriteria kratkodobeho planovani: o uživatelske hledisko o doba zpracovani = doba, ktera uplyne od spuštěni do uplynuti procesu o doba odpovědi = doba, ktera uplyne od okamžiku zadani požadavku do doby prvni reakce o dosaženi meze = zaručeni ukončeni procesu do dane meze o předvidatelnost = proces by měl pokažde běžet "stejně" dlouho bez ohledu na zatiženi systemu systemove hledisko Plánovací algoritmy: First come first served-nove ulohy do fronty,po ukončeni aktualniho přidělen nejdele čekajici,kratke procesy čekaji dlouho, zvyhodňuje vypočtove procesy (procesy s IO čekaji při každem dokončeni) Shortest job first-nepreemptivni, spusti se proces s nejkratši očekavanou dobou provedeni, zavisle na dobrem odhadu delky běhu Shortest remaining time next-shortest remaining time next, vyžaduje odhad doby provaděni, preemptivni varianta SJF Round-robin-preempce založena na časovači,procesu je přiřazeno časove kvantum cpu,přepnuti při vypršeni kvanta nebo při volani blokovaci systemove fce, je třeba optimalizovat delku kvanta Prioritni planovani-přednost proces s vyšši prioritou,nizka priorita může mit za nasledek vyhladověni (starvation), nutno prioritu přizpůsobovat v zavislosti na době čekani nebo historii běhu procesu Planovani se zarukou-např. časove kvantum dle 1/počet uživatelů Lottery scheduling-periodicky se losuje o čas CPU, kooperativni procesy si mohou čas předavat Fairshare-bere v potaz i uživatele Real-time systemy: hard RT-deadline musi byt splněna; soft RT-občasny vypadek Udalosti-periodicke, aperiodicke (nedaji se předpovědět) -system je planovatelny pokud suma časů potřebnych na obslouženi udalosti dělena jeho periodou pro všechny udalosti je <1