1 / 29

Informácie o prednáškach

Informácie o prednáškach. Prednášky nájdete od pondelka na adrese http://s.ics.upjs.sk/~schmotze/OS.html Keby nefungovalo, k ópia je na adrese http://neuron-ai.tuke.sk/~schmotze/OS.html Otázky a pripomienky mi zasielajte mailom na adresu Milan.Schmotzer @e-zones.sk.

Download Presentation

Informácie o prednáškach

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Informácie o prednáškach • Prednášky nájdete od pondelka na adrese http://s.ics.upjs.sk/~schmotze/OS.html • Keby nefungovalo, kópia je na adrese http://neuron-ai.tuke.sk/~schmotze/OS.html • Otázky a pripomienky mi zasielajte mailom na adresu Milan.Schmotzer@e-zones.sk

  2. Operačné systémy2. prednáška nadiaľku Správa procesov

  3. Proces • Proces je program zavedený do OP • Pozostáva z častí: • Kód programu (binárny „text“) • Dáta programu: • Zásobník (volanie funkcií) • Globálne dáta (premenné) • Hromada (na prideľovanie ďalších dát)

  4. Poznámky • Keď si napríklad v Unixe spustí 100 ľudí program, tak bude existovať jediná kópia jeho kódu v operačnej pamäti (OP), ale 100 kópií dát – každý totiž edituje svoje vlastné fotografie, texty • Tým sa šetrí pamäť • Aby operačný systém (OS) rozlíšil, kto čo robí, proces má svoje stavy.

  5. Stavy procesu • Novovytvorený (new) ešte nebeží • Bežiaci (running) je práve vykonávaný pomocou CPU (centrálneho procesora) • Pripravený (ready) čaká vo fronte na pridelenie CPU • Čakajúci (waiting) je pozastavený, čaká na dokončenie I/O operácie, na ukončenie svojho potomka, komunikáciu, sleep(37);

  6. Ukončený (terminated) proces skončil prácu a OS procesu pridelenú OP bude považovať za voľnú

  7. Životný cyklus procesu v OP • To isté, čo stavy, ale inak opísané: • Pripustenie (admit) do stavu pripravený • Naplánovanie (dispatch) do stavu bežiaci • Čakanie (na stlačenie klávesu) • Ukončenie

  8. Tabuľka procesov • Tu si OS drží informácie o procesoch • „riadok“ tabuľky je PCB = process control block, je tam uložený kontext procesu: • PID (identifikačné číslo procesu) • stav procesu • obsahy registrov vrátane registrov CS:IP (to umožňuje viacerým ľuďom spúšťať rovnaký program nad rôznymi dátami) • informácie pre plánovač procesov

  9. údaje o pridelenej OP, • účtovnícke informácie (koľko „strojového“ času, teda CPU milisekúnd program spotreboval) • stav I/O (priradené zariadenia, otvorené súbory)

  10. Plánovanie procesov • Dlhodobé – poradovník úloh (u Windows nie je, ale ak treba spustiť 1000 úloh a systém si vyberá, ktoré, lebo naraz vie len 10 obslúžiť, tak to je to) • Strednodobé (odkladanie stránok) • Krátkodobé (ktorému procesu z fronty prideliť CPU?)

  11. Prepínanie kontextu procesov • Pri prepínaní procesov sa pozastavovaný proces odloží do jemu pridelenej PCB • OS pre proces, ktorý bude bežať, naplní registre dátami z jeho PCB • Voláme to prepínanie kontextu a zaberá to čas. Rovnako sa aj spracúva prerušenie – je to akoby prepnutie kontextu na obsluhu prerušnia

  12. Proces vytvára jeho rodič • Rodič môže počkať na dokončenie procesu alebo pracovať nezávisle (či dokonca skončiť). Ak skončí, z potomka bude po ukončení „zombia“ – nebude mať komu vrátiť návratovú chybovú hodnotu • O zombie sa postará OS: Prvý proces prehlási za rodiča a ten čas od času „preberá“ a zabúda návratové hodnoty

  13. Strom procesov • Procesy vytvárajú strom počnúc procesom stvoriteľom spúšťaným po zavedení OS • Rodič môže mať viacerých potomkov • Potomkovia sú rovnocenní • U Linuxu je strom procesov vo virtuálnom adresári /proc (ten nie je uložený na disku, simuluje ho pre vás OS)

  14. Unix – virtuálny adresár /proc • Každý proces má v tomto adresári podadresár so svojim PID číslom a v ňom pridelenú pamäť, názov programu i s argumentmi ako bol spustený apod. • V /proc sú aj užitočné informácie, napríklad súbor cpuinfo o CPU alebo version o verzii linuxu, uptime o tom, ako dlho systém beží, meminfo o vyuziti OP

  15. Ukončenie procesu • OS uzavrie súbory, ktoré proces neuzavrel • OS uvoľní terminál, klávesnicu, okno procesu • Ak treba, OS aj násilne ukončí potomkov

  16. Plánovač úloh • vytvára procesy z prijatých úloh a rozhoduje, ktorá z nich bude pripustená na zavedenie a stane sa z nej proces. (Ostatné musia čakať.) Úlohe prideľuje vybrané prostriedky. (Po jej skončení prostriedky počítača uvoľní.)

  17. Plánovač procesov • realizuje technológiu multitaskingu – viacúlohovosti OS, t.j. podľa prioritných pravidiel rozhoduje, ktorému z pripravených procesov bude pridelený procesor (CPU) a na ako dlhý časový interval. Pracuje iba nad úlohami, ktoré už plánovač úloh zaviedol do pamäte a vytvoril z nich procesy.

  18. Dispatcher (dispečer) • Sleduje stav procesu. Stará sa o ukladanie obsahov registrov procesora do PCB (pri prepínaní sa procesora na iný proces) apod.

  19. Monotaskové prideľovanie CPU • Ak môže bežať iba jeden proces (nie je multiprogramovanie), používame často • FCFS – first comed first served, spustíme procesy podľa poradia • SJF – shortest job first, najprv časovo najkratšiu úlohu – potrebujeme ale odhad, ako dlho bude úloha spracovávaná. Príkladom ste aj vy – dakto tlačí 100 strán a poviete ale pusť ma prvú, ja tlačím len 3 strany...

  20. Multitaskové prideľovanie CPU • Cyklická obsluha (tzv. Round Robin): Každú milisekundu CPU vykonáva iný proces z fronty. Primitívna obsluha! • Spravodlivá obsluha: ak bol procesu odobratý CPU lebo p. na niečo čakal, bude vo fronte zaradený na spracovanie skôr. • Cyklická obsluha so spätnou väzbou: Nový proces dostane toľko času, koľko ho už doteraz dostali iné procesy

  21. Multitaskové prideľovanie CPU • Prioritná stratágia: Proces dostane taký pomer výkonu CPU, aký si zakúpila firma alebo ako je to dôležité – obsluha jadrového reaktora = real time • Limitovaná cyklická obsluha: Ak proces dohromady vyčerpal pridelený limit sekúnd, potom je obsluhovaný iba ak by systém inak bol v nečinnosti.

  22. Multitaskové prideľovanie CPU • Stratégia rešpektujúca vyváženosť systému: Už pri výbere úlohy sa vyberá tá s najväčšími nárokmi na I/O. (Tým sa chce dosiahnuť vysoká využívanosť I/O zariadení u niektorých systémov.) • Stratégia preferujúca interaktívny prístup: Ak proces komunikuje s používateľom, ihneď mu je pridelený strojový čas – chceme tým dosiahnuť čo najkratšiu dobu odozvy (BeOS).

  23. Multitaskové prideľovanie CPU • Algoritmus plánovania podľa typu úlohy sa snaží o prioritách rozhodovať tak, aby čo najlepšie vyvážil využitie I/O (kedy procesor zaháľa) a využitie CPU (vtedy zasa zaháľajú I/O zariadenia). • Windows a Linux implementujú prioritnú a spravodlivú obsluhu s ohľadom na reálny čas

  24. Unix • sa snaží dosiahnuť akú takú spravodlivosť premenlivými prioritami (stanovené priority procesov sú preň len odporúčaním, v skutočnosti priority podľa vlastného uváženia mení)

  25. Kreditný systém Unixu • Unix používa kreditný systém, priorita = počet kreditov. Vždy sa na spracovanie vyberá proces s najvyšším počtom kreditov a odčíta sa od jeho počtu kreditov číslo 1. Ak sú kredity všetkých pripravených (nečakajúcich) procesov nulové, dôjde k rekreditácii všetkých procesov, aj čakajúcich, takto:

  26. Rekreditácia priorít procesov • Kredity = priorita + staré_kredity / 2 • staré_kredity sú nenulové, a teda sa využijú, len u procesov, ktoré čakali na I/O operáciu, napríklad na vstup od používateľa. • Takto sa hráme na spravodlivú obsluhu, lebo proces, ktorý čakal, bude mať dočasne vyššiu prioritu.

  27. Windows • Priorita procesu v popredí, to je procesu, s ktorým sa práve pracuje (je mu pridelená klávesnica a myš), je trojnásobne vyššia. Tak má proces rýchlu odozvu a pri rovnakom výkone počítača pracuje počítač pre používateľa svižnejšie. • Windows používa tabuľku tried priorít a v nej spravodlivo priority (zverejním nabudúce)

  28. Reálny čas – real time • Proces zaručene musí reagovať do určitého okamihu... • Hard realizácia nepoužíva pevné disky (ale ROM) ani odkladanie stránok ani zložité adresovanie. Je dokonalá a vždy OK. • Soft realizácia používa priority u bežného OS – real time aplikácia bude uprednostnená vždy keď nečaká na I/O.

  29. Koniec prezentácie • Môžete už odísť na obed. • Opakujem, že prednášky nájdete od budúceho pondelka na adrese http://s.ics.upjs.sk/~schmotze/OS.html • Kópia je na adresehttp://neuron-ai.tuke.sk/~schmotze/OS.html • Pripomienky mi zasielajte mailom na adresu Milan.Schmotzer@e-zones.sk

More Related