Obsah

AP6, IN6 Plánování v operačních systémech

Zadání

(Správa a plánování činnosti procesorů. Systémy souborů. Správa a plánování činnosti V/V zařízení)

Správa a plánování činnosti procesorů

Procesorů je ve výpočetních systémech téměř vždy méně, než procesů, OS musí rozhodnout, který proces dostane přidělen čas procesoru a na jak dlouho.
Cílem je dosažení maximálního využití CPU (v dnešní době všech jejich jader) pomocí multithreadingu (současný běh více procesů).
Běh programu se vyznačuje střídáním dávek instrukcí, a čekání na I/O. Čekání na I/O se využije pro zpracovávání instrukcí jiného procesu.

Typy plánování

Dispečer - plánovač CPU

Vybírá mezi procesy, které sídlí v hlavní paměti ty, které jsou připravené k běhu – ready
Plánovací rozhodnutí vydává dispečer v okamžiku, kdy proces:

Z rozhodnutí dispečera může nastat, že proces přechází ze stavu běžící do stavu připravený

Nepreemptivní plánování (bez předbíhání)

Preemptivní plánování (s předbíháním)

algoritmus předání

dispečerské zpoždění = doba, kterou potřebuje OS pro pozastavení běhu jednoho procesu a pro start běhu jiného procesu

Kritéria optimálního plánování

Plánovací algoritmus First Come First Serve

Jednoduchý algoritmus plánování bez předbíhání (nepreemptivní). Procesy se řadí ve FIFO frontě, jakmile se uvolní procesor, první proces ve frontě je přiřazen procesoru. Předchozí proces se zařadí na konec fronty jakmile se dostane opět do stavu „ready“.

Prioritní plánovací algoritmus

Procesům přiřazeny priority (p), plánovač vždy preferuje procesy s vyšší p. Preemptivní (procesor je procesu s nízkou p odebrán a přiřazen procesu s vyšší) i nepreemptivní (procesor není vzat procesu, dokud neskončí dávku) varianta. Procesy seskupeny do prioritních tříd.

Plánovací algoritmus Shortest Job First

Z čekajících procesů vybírá ten s nejkratší dávkou pro CPU. Ta je ovšem dopředu známa jenom velmi zřídka, proto se používá exponenciální průměrování na základě historie velikostí dávek procesu.
Požívá se jak preemptivní (pokud je ve frontě proces, který by běžel méně, než stávající proces je stávajícímu procesu procesor odebrán), tak nepreemptivní varianta.

Exponenciální průměrování

Vypočítává odhady pro délku trvání procesu na základě předchozího chování programu.
Používá se parametr vlivu historie - říká jak moc má algoritmus přihlížet na historii běhu programu.

Plánovací algoritmus Round Robin

Preemptivní algoritmus plánování s FIFO frontou. Proces na CPU dostane časové kvantum q (délky desítky až stovky ms), po vypršení je zařazen na konec fronty kde je n procesů.

Systémy souborů

Systém souborů je součást operačního systému (ale nemusí být plně implementovaný v jádru OS!), který řeší správu sdílených zdrojů na vnějších pamětech.

Cíle systému souborů

Operace se souborem

Zamykání souborů

Záleží na druhu OS, jestli soubor zamkne a ovlivní tím dalšího přístupu k souboru

Rozlišují se dva druhy zámků
• sdílený (shared) - všechny procesy mohou ze souboru číst, ale žádný nesmí zapisovat
• výlučný (exclusive) - k souboru může přistupovat výhradně jeden proces.

Přístupové metody k souborům

doba přístupu (seek time) je dána:

minimalizace doby vystavení

Plánování činnosti disku

Toto plánování je pravděpodobně jen pro disky s kruhovitým tvarem. Např. flash paměti mají přístup mnohem rychlejší a používají jiné metody(protože se netočí, ale jsou adresovány přímo?)

příklad plánování FCFS

FCFS - First come, first served

příklad plánování SSTF

SSTF - Shortest Seek Time First

příklad plánováni SCAN

SCAN (někdy také výtah) Funguje podobně jako výtah, který nemá tlačítko pro přivolání - jezdí od okraje do středu a zpět a vyřizuje požadavky podle pořadí zpřístupňovaných stop

příklad plánování C-SCAN

C-SCAN Jednosměrný výtah - obdoba SCAN, ale požadavky jsou vyřizovány pouze po jedné cestě dle pořadí zpřístupňovaných stop, zpět se vrací bez vyřizování požadavků. Průměrné doby čekání jsou tak rozloženy rovnoměrněji.

příklad plánování C-LOOK

C-LOOK Varianta C-SCAN, raménko se opakovaně pohybuje z kraje směrem ke středu a zpět a vrací se po dosažení posledního požadavku v tomto směru bez vyřizování požadavků a požadavky vyřizuje podle pořadí zpřístupňovaných stop.

Volba strategie plánování disku

Správa a plánování činnosti V/V zařízení

Základní představa - k počítači máme připojeny různé I/O(=V/V) zařízení a musíme ošetřit organizaci přístup k těmto zařízením(aby se například 2 procesy netiskly data na tiskárně ve stejnou chvíli).

Takhle nějak to vypadá, software se v našem případě = OS

Techniky provádění I/O:

polling(vyzývání) programovaný I/O, činné čekání, synchronní operace
busy-wait - OS čeká aktivně na uvolnění I/O, nedělá nic jiného, než že zjišťuje stav I/O zařízení - zdržuje procesor.
Někdy se také používá polling tak, že procesor počítá a vždy po určitém čase zkontroluje pollované zařízení zda už je ready, pokud ne, tak se vrátí k počítání - zdržuje méně.

přerušení

DMA (direct memory access) náhrada programovaného I/O, není využíván procesor, ale speciální DMA řadič
typicky pro velké toky dat (dnes už všechny HDD)
Příklad: zobrazení videa - proces potřebuje data v paměti, aby je mohl dekódovat+zobrazit, procesor ale data do paměti nepřenáší - řekne DMA řadiči, že data potřebuje v paměti, DMA se postará o jejich přenos, po dokončení přenosu informuje procesor pomocí přerušení a procesor řeší ve spolupráci s grafickou kartou jejich zobrazení.

blokující/neblokující I/O:

IO subsystémy v jádru

Dle druhu OS, nemusí být přítomny všechny
plánování (I/O plánovače)

buffering - zařízení A generuje data rychleji, než je zařízení B zvládne zpracovat, data pak uložíme do bufferu, a B si čte dle potřeby. I naopak(B generuje pomaleji, ale A potřebuje souvislý zdroj - nagenerejume do bufferu a A pak přečte)

caching - kopie(pouze kopie!) dat uložena v rychlé paměti - k dosažení vysokého výkonu.

spooling V daném okamžiku může vstupně výstupní zařízení provádět jen jednu úlohu, požadavky do fronty. Pro realizaci fronty požadavků (úloh) je většinou využit souborový systém s přímým přistupem (disk, ramdisk). Např. tiskárna, magnetická páska

rezervace - exklusivní přístup k zařízení pro proces, nutná ochrana proti uváznutí)

Co byste ještě měli znát?

Předměty

FI:PB152 Operační systémy doc. Ing. Jan Staudek, CSc.
FI:PA150 Principy operačních systémů doc. Ing. Jan Staudek, CSc.

Kam dál

Úloha OS, prostředky počítače, představa virtuálního počítače - od Helenky :) (PDF) Operační systémy z FIT VUT (PDF) FCFS Na ČWUT wiki Plánování práce procesorů (PDF)

Zdroje

zdroj: Jan Staudek, skripta PB152 Operační systémy, 07_planovani.pdf
další texty: http://www.kai.vslib.cz/~kolar/os/old/part04.html

Vypracoval

Základ vložil: Musil Marek
dopracuje: Marek Babák do 19.6.08
99%, z mé strany hotovo, pokud máte něco k doplnění, upřesnění, opravení, tak to tam rovnou napište