Základy Operačných Systémov: Kompletný Prehľad pre Študentov
Správa procesov (Správa procesov) sa zaoberá riadením bežiacich programov v systéme: ako sa vytvárajú, plánujú, prepínajú a synchronizujú. Tento materiál vysvetľuje základné pojmy, plánovanie procesov, problémy súvisiace s prioritami a kritickými sekciami a konkrétne mechanizmy používané v operačných systémoch.
Definícia: Proces je bežiaci program identifikovaný jedinečným PID, aktuálnym stavom vykonávania a kontextom potrebným na jeho obnovenie.
Definícia: Démon je proces bežiaci na pozadí, ktorý zvyčajne obsluhuje udalosti bez užívateľskej interakcie.
Plánovanie určuje poradie, v akom procesy získavajú CPU. Rozdeľujeme plánovanie na nepreemptívne a preemptívne.
Definícia: Preemptívne plánovanie umožňuje systému odobrať CPU procesu (napr. prerušením); nepreemptívne plánovanie to neumožňuje.
Použitie tabuľky pre prehľad.
| Algoritmus | Typ | Charakteristika | Výhody | Nevýhody |
|---|---|---|---|---|
| FCFS (First Come, First Served) | nepreemptívny | FIFO, proces sa mení len keď sa bežiaci vzdá CPU | jednoduché | Dlhé čakanie pre krátke úlohy (convoy effect) |
| Round-Robin | preemptívny | Každý proces má časové kvantum | férové pre interaktívne úlohy | Nevhodné nastavenie kvanta znižuje výkon |
| SJF (Shortest Job First) | nepreemptívny | Vyberie najkratší ďalší čas | optimálne priemerné čakanie | Hrozí starnutie (starvation) |
| SRT (Shortest Remaining Time) | preemptívny | Preemptívna verzia SJF | lepšie pre krátke úlohy | potreba odhadu zostávajúceho času |
| Viacúrovňové plánovanie | môže byť oboje | Rôzne fronty podľa priority, v každej iný algoritmus | flexibilné | Môže spôsobovať starnutie |
| Viacúrovňové s spätnou väzbou | preemptívny | Nové procesy začínajú v najvyššej priorite a postupne klesajú | zabraňuje monopolizácii CPU | Zložitejšie nastavenie |
| CFS (Completely Fair Scheduler) | preemptívny | Snaží sa rozdeliť CPU podľa váh; používa Red-Black strom | férové rozdelenie CPU | zložitejšie implementačne |
Predstavte si tri interaktívne programy A, B, C s kvantom 50 ms. CPU bude prechádzať medzi nimi každých 50 ms, čo znižuje odozvu používateľského rozhrania v porovnaní s FCFS.
Popis: Nízko-prioritný proces vlastní zdroj, vysokoprioritný proces čaká; proces s priemernou prioritou prebehne a zablokuje obnovenie zdroja.
Riešenia:
Definícia: Inverzia priorít je situácia, v ktorej nízka priorita bráni dokončeniu vyššie prioritného procesu kvôli držbe zdroja
Už máš účet? Prihlásiť sa
Klíčová slova: Operačné systémy, Správa súborov - koncepty a prehľad, Správa súborov - súborové systémy a ukladanie, Správa procesov, Synchronizácia, Programovanie v C, Správa pamäti
Klíčové pojmy: Proces má PID a stavy new, ready, running, waiting, terminated, Dispatcher vykonáva prepínanie kontextu, Plánovač prideľuje CPU podľa algoritmu (FCFS, RR, SJF, SRT, CFS), Preemptívne vs nepreemptívne plánovanie: preemptívne umožňuje odobrať CPU, Round-Robin používa časové kvantum pre férovosť, SJF optimalizuje priemerné čakanie, hrozí starvation, Inverzia priorít riešená priority inheritance alebo ceiling, Kritická sekcia: vzájomné vylúčenie a dostupnosť, Data race vzniká pri nekontrolovanom súbehu s aspoň jedným zápisom, Livelock: procesy bežia, ale neposúvajú sa dopredu, Viacúrovňové plánovanie umožňuje rôzne politiky podľa priorít, CFS udržiava per-process runtime a vyberá najmenší strávený čas