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

Z Kiwiki
Skočit na navigaci Skočit na vyhledávání
(Vytvorená stránka „Kategória:Študentské práce Kategória:Bakalárske práce Kategória:Informatika Kategória:operačné systémy {{Praca_uvod|3|Nastavenie priority proces…“)
 
()
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||||||||}}
  
= =  
+
=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:
 +
<ul>
 +
<li>Premenná trieda obsahuje pod procesy s prioritou od 1 do 15.</li>
 +
<li>Trieda reálneho času obsahuje pod procesy s prioritou od 16 do 31.</li>
 +
</ul>
 +
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:
 +
<ul>
 +
<li>Trieda priority reálneho času</li>
 +
<li>Trieda vysokej priority</li>
 +
<li>Trieda vyššej normálnej priority</li>
 +
<li>Trieda normálnej priority</li>
 +
<li>Trieda nižšej normálnej priority</li>
 +
<li>Trieda voľnej priority</li>
 +
</ul>
 +
 
 +
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ú:
 +
<ul>
 +
<li>Priorita kritického času</li>
 +
<li>Najvyššia priorita </li>
 +
<li>Vyššia normálna priorita</li>
 +
<li>Normálna priorita</li>
 +
<li>Nižšia normálna priorita</li>
 +
<li>Najnižšia priorita</li>
 +
<li>Nečinná priorita</li>
 +
</ul>
 +
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ú:
 +
<ul>
 +
<li>Trieda priorít reálneho času – 24</li>
 +
<li>Trieda vysokej priority – 12</li>
 +
<li>Trieda vyššej normálnej priority – 10</li>
 +
<li>Trieda normálnej priority – 8</li>
 +
<li>Trieda nižšej normálnej priority – 6</li>
 +
<li>Trieda voľnej priority – 4</li>
 +
</ul>
 +
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é:
 +
<ul>
 +
<li>Procesy na pozadí</li>
 +
<li>Procesy v popredí</li>
 +
</ul>
 +
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. 
 +
 
 +
 
obsah kapitoly
 
obsah kapitoly
  
 
=Záver=
 
=Záver=

Verzia zo dňa a času 14:05, 16. február 2010

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
  • Trieda vysokej priority
  • 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ú:

  • Priorita kritického času
  • Najvyššia priorita
  • Vyššia normálna priorita
  • Normálna priorita
  • Nižšia normálna priorita
  • 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ú:

  • Trieda priorít reálneho času – 24
  • Trieda vysokej priority – 12
  • Trieda vyššej normálnej priority – 10
  • 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é:

  • Procesy na pozadí
  • Procesy v popredí

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.


obsah kapitoly

Záver