Plánovanie procesov v OS Windows: Rozdiel medzi revíziami

Z Kiwiki
Skočit na navigaci Skočit na vyhledávání
()
Riadok 5: Riadok 5:
 
{{Praca_uvod|3|Nastavenie priority procesu a vplyv na jeho činnosť v operačnom systéme|Procesy|Plánovanie procesov|Plánovanie procesov v OS Windows||||||||}}
 
{{Praca_uvod|3|Nastavenie priority procesu a vplyv na jeho činnosť v operačnom systéme|Procesy|Plánovanie procesov|Plánovanie procesov v OS Windows||||||||}}
 
__TOC__
 
__TOC__
= =
+
=Plánovanie procesov v operačnom systéme Windows=
Operačný systém implementuje Win32 aplikácie. Win32 aplikácia je primárna pre rodinu operačných systémov MS Windows.
 
Windowsové aplikácie bežia ako oddelené procesy, kde každý proces môže obsahovať jeden alebo viac pod procesov.
 
Plánovane prebieha nad pod procesmi a nie nad procesmi. Plánovač procesov v operačnom systéme Windows používa priority, preemptívny plánovací algoritmus. Plánovač zabezpečuje pod procesom s vysokou prioritou neustáli beh. Časť jadra operačného systému, ktorá vybavuje plánovanie sa nazýva dispečer. Pod proces vybraný pre beh dispečerom, bude bežať pokiaľ tomu nezabraní pod proces s vyššou prioritou, pokiaľ neskončí, kým mu neskončí pridelené časové kvantum alebo pokiaľ nečaká na nejakú I/O operáciu. Ak pod proces s vyššou prioritou bude pripravený pre spracovanie a na procesore beží pod proces s nižšou prioritou, bežiaci pod proces bude prerušený a procesor sa pridelí pod procesu s vyššou prioritou ktoré je zatiaľ v stave čakajúci.  Windows nie je operačný systém s tvrdým prideľovaním času, pretože nie je schopný garantovať  že pod proces reálneho času  sa začne vykonávať v rámci nejakého špecifického časového limitu.
 
Dispečer využíva tridsaťdva stupňovú schému priorít rozhodovania poradia vykonávania pod  procesov. Šestnásť priorít je určených pre pod procesy s premenlivou prioritou, ktorých sa v systéme nachádza väčšina. Ostávajúcich šestnásť je vyčlenených pre pod procesy reálneho času, to sú procesy ktoré vyžadujú okamžitú reakciu procesora. Priority sú rozdelené do dvoch tried:
 
*Premenná trieda obsahuje pod procesy s prioritou od 1 do 15.
 
*Trieda reálneho času obsahuje pod procesy s prioritou od 16 do 31.
 
 
Dispečer používa front pre každé prioritné plánovanie, prechádza nastavenia priorít pod procesov vo fronte od najnižšej až po najvyššiu pokiaľ nenájde pod proces, ktoré je pripravené pre beh. Ak žiadne takéto vlákno nenájde, dispečer vykoná špeciálne vlákno nazývané nečinné vlákno, ktoré obsluhuje operačnú pamäť. Každá prioritná trieda má samostatnú frontu procesov, ktoré čakajú na pridelenie procesora. Tieto fronty sa uchovávajú v tzv. dispečerskej databáze. V dispečerskej databáze sa nachádzajú aj informácie o stave procesu a informácie na ktorom procesore sa proces vykonáva.
 
Win32 aplikácie určujú viac prioritných tried do ktorých proces môže patriť. Sú to triedy:
 
  
*Trieda priority reálneho času
+
Operačný systém implementuje Win32-bitové aplikácie. Win32 aplikácia je primárna pre rodinu operačných systémov Microsoft Windows.
*Trieda vysokej priority
+
Windowsové aplikácie bežia ako oddelené procesy, kde každý proces môže obsahovať jedeno alebo viac vlákien. Takýto operačný systém nazývame multivláknový (Roubíček, 2000). Vlákna môžeme považovať za podprocesy procesov.
*Trieda vyššej normálnej priority
 
*Trieda normálnej priority
 
*Trieda nižšej normálnej priority
 
*Trieda voľnej priority
 
  
Všetky triedy priorít okrem triedy priority reálneho času sú premenné triedy, zanemená to, že priority procesov sa môžu meniť medzi. Priorita vlákien a procesov sa mení na závislosti posledného využitia procesora. Ak proces využil celé svoje pridelené časové kvantum jeho priorita sa zníži. Ako náhle proces čaká na I/O operáciu potom sa jeho priorita zvýši. Priorita sa zvyšuje vo väčšej miere pre interaktívne procesy t.j. ak proces čaká na vstup z klávesnice jeho priorita nadobudne väčšiu hodnotu ako čakajúci proces na I/O operáciu na diskovom zariadení.  V rámci každej prioritnej triedy sa nachádzajú aj tzv. relatívne priority. Táto metóda je využívaná  vo viacerých systémoch so zdieľaním času. Tieto priority sú prioritami pod procesov vytvorených procesom. Relatívne priority sú:
+
==Charakteristika vlákna==
*Priorita kritického času
+
Vlákno je systémový objekt, ktorý môže vznikať iba v rámci procesu, preto je viditeľný len vo vnútri procesu (Roubíček, 2000).  
*Najvyššia priorita
+
Základné komponenty, ktoré vlákno obsahuje:
*Vyššia normálna priorita
+
* Počítadlo inštrukcií,
*Normálna priorita
+
* Sadu registrov,
*Nižšia normálna priorita
+
* Zásobník (Martincová, 1997).
*Najnižšia priorita
 
*Nečinná priorita
 
  
Prioritu procesu tvorí prioritná trieda procesu a relatívna priorita t.j. priorita pod procesu. Pod proces je zaradený do prioritnej triedy procesu podľa procesu, ktorý ho vytvára t.j. nachádzajú sa v tej istej prioritnej triede. Priorita pod procesu sa môže nepatrne znižovať alebo zvyšovať v rozmedzí relatívnej priority. Vzťah priorít je znázornený v tabuľke 1. Triedy priorít procesov reprezentujú rozsah pre relatívne priority pod procesov. Predvolene, hodnota relatívnej priority je nastavená na normálovú hodnotu pre každú špecifickú triedu priorít. Číselne vyjadrenú hodnotu relatívnej priority nazývame základnou prioritou. Hodnoty základných priorít  pre prioritné triedy nastavených na normálovú prioritu sú:
+
Vlákna vytvorené procesom medzi sebou zdieľajú dáta a prostriedky svojho procesu. Vlákna pracujú obdobne ako procesy, môžu taktiež vytvárať potomkov. Pri čakaní na systémové volanie sa vlákno môže zablokovať, kým je zablokované vykonáva sa iné vlákno procesu. Vlákna sú na sebe závisle na rozdiel od procesov. Vlákna môžu iným vláknam čítať alebo zapisovať do zásobníka (Kvasnica, 2009). Využívanie vlákien nám prináša veľa výhod napr.:
*Trieda priorít reálneho času – 24
+
* Zrýchlenie vykonávania programov,
*Trieda vysokej priority – 12
+
* Paralelizácia algoritmov v programe,
*Trieda vyššej normálnej priority – 10
+
* Využitie multiprocesorových architektúr (Roubíček, 2000).
*Trieda normálnej priority – 8
 
*Trieda nižšej normálnej priority – 6
 
*Trieda voľnej priority – 4
 
  
Pri spustení interaktívneho programu v systéme užívateľom, systém potrebuje obzvlášť dobrý výkon na udržanie jeho interaktivity s užívateľom, preto Windows má špeciálne plánovacie pravidlo pre procesy v triede normálnej priority. Windows rozlišuje dva typy procesov a to nasledovné:
+
Vlákna v operačnom systéme Windows môžu nadobúdať stavy, ktoré sú reprezentované numerickými hodnotami od 0 do 7 :
*Procesy na pozadí
+
 
*Procesy v popredí
+
* 0 – inicializované,
 +
* 1 – pripravené – vlákno je pripravené pre spustenie na procesore,
 +
* 2 – spustené,
 +
* 3 – úsporný režim – vlákno je pripravené použiť procesor,
 +
* 4 – ukončené,
 +
* 5 – systém čaká - vlákno nie je pripravené pre spustenie, pretože čaká na I/O operáciu, ktorá musí skončiť, pred pokračovaním vlákna,
 +
* 6 – prechod – vlákno nie je pripravené pre spustenie, pretože čaká na prostriedok napr. kód stránkovaný na disk,
 +
* 7 – neznámy – vlákno sa nachádza v neznámom stave (Kvasnica, 2009).
 +
 
 +
===Vlákna na používateľskej úrovni===
  
Procesy v popredí sú väčšinou zobrazované na obrazovke.  Ak sa proces presunie medzi procesy v popredí plánovač mu zvýši pridelený čas na procesore podľa nejakého faktoru, zvyčajne býva tri. Toto zvýšenie časového kvanta procesu o faktor tri má za následok zvýšenie doby behu na procesore na trojnásobok t.j. trojnásobné časové kvantum.
 
 
=Záver=
 
=Záver=
 
=Bibliografia=
 
=Bibliografia=

Verzia zo dňa a času 17:15, 2. august 2010

Plánovanie procesov v operačnom systéme Windows

Operačný systém implementuje Win32-bitové aplikácie. Win32 aplikácia je primárna pre rodinu operačných systémov Microsoft Windows. Windowsové aplikácie bežia ako oddelené procesy, kde každý proces môže obsahovať jedeno alebo viac vlákien. Takýto operačný systém nazývame multivláknový (Roubíček, 2000). Vlákna môžeme považovať za podprocesy procesov.

Charakteristika vlákna

Vlákno je systémový objekt, ktorý môže vznikať iba v rámci procesu, preto je viditeľný len vo vnútri procesu (Roubíček, 2000). Základné komponenty, ktoré vlákno obsahuje:

  • Počítadlo inštrukcií,
  • Sadu registrov,
  • Zásobník (Martincová, 1997).

Vlákna vytvorené procesom medzi sebou zdieľajú dáta a prostriedky svojho procesu. Vlákna pracujú obdobne ako procesy, môžu taktiež vytvárať potomkov. Pri čakaní na systémové volanie sa vlákno môže zablokovať, kým je zablokované vykonáva sa iné vlákno procesu. Vlákna sú na sebe závisle na rozdiel od procesov. Vlákna môžu iným vláknam čítať alebo zapisovať do zásobníka (Kvasnica, 2009). Využívanie vlákien nám prináša veľa výhod napr.:

  • Zrýchlenie vykonávania programov,
  • Paralelizácia algoritmov v programe,
  • Využitie multiprocesorových architektúr (Roubíček, 2000).

Vlákna v operačnom systéme Windows môžu nadobúdať stavy, ktoré sú reprezentované numerickými hodnotami od 0 do 7 :

  • 0 – inicializované,
  • 1 – pripravené – vlákno je pripravené pre spustenie na procesore,
  • 2 – spustené,
  • 3 – úsporný režim – vlákno je pripravené použiť procesor,
  • 4 – ukončené,
  • 5 – systém čaká - vlákno nie je pripravené pre spustenie, pretože čaká na I/O operáciu, ktorá musí skončiť, pred pokračovaním vlákna,
  • 6 – prechod – vlákno nie je pripravené pre spustenie, pretože čaká na prostriedok napr. kód stránkovaný na disk,
  • 7 – neznámy – vlákno sa nachádza v neznámom stave (Kvasnica, 2009).

Vlákna na používateľskej úrovni

Záver

Bibliografia

  1. Kvasnica, Operačné systémy I, TnUAD, Trenčín 2009
  2. Madnick, Donovan, Operační systémy, SNTL, Praha 1983
  3. Basch, Princípy operačního systému UNIX, SAS, preklad Felbáb, Praha 1993
  4. Microsoft Windows 2000 Server Správa systému, Computer Press, preklad Roubíček, Praha 2000