Analýza meraní efektívnosti prioritných tried vlákien a procesov
Merania prebiehali na dvoch operačných systémoch ako sme už uviedli, predmetom merania sú serverové edície Windows 2003 server RC2 a Windows 2008 server. Tieto operačné systémy sú preemptívne zo zdieľaním času, ktoré využívajú plánovanie pomocou viacerých front so spätnou väzbou podľa priorít. Hardwarová konfigurácia osobného počítača je uvedená v prílohe. V každej prioritnej triede boli namerané všetky priority vlákien. Na meranie potrebných časových závislostí používame vlastnú aplikáciu, ktorej zdrojový kód je taktiež v prílohe. Aplikácia pozostáva z sčítavania 6 čísel vo formáte int, ktoré sú definované ako objekty volatile. Uvedená deklarácia znemená, že obsah premennej môže meniť operačný systém, iný proces či hardvér počítača. Program vykonáva 6 sčítavaní rôznych 3 čísel v každom spustenom vlákne. Počet nastavených vlákien pre meranie bolo tridsať, cyklus opakovania procesu bol nastavený na hodnotu desať miliónov.
Windows 2003 server RC2
Ako prvý bol meraný Windows 2003 server RC 2. V operačnom systéme boli spustené iba nevyhnutné procesy systému. Ide o procesy zaradené do skupín systém, local service, network service. Pri meraní bol vypnutý proces Explorer.exe, ktorý zabezpečuje komunikáciu medzi používateľom a operačným systémom. Z meraní môžeme vidieť, že v niektorých prípadoch sa operačný systém nespráva vždy rovnako ako je uvedené na obrázku č. 5, taktiež na obrázkoch č. 9, č. 10, ktoré nájdeme v prílohe.
Na obrázku č.5 vidíme priemerné časy trvania voľnej priority vlákien pri všetkých prioritných triedach procesu. Pri voľnej priorite procesu sú časy vyššie ako pri iných prioritných triedach, avšak časy by mali byť približne rovnaké čo vyplýva z tabuľky č. 1. Prioritná trieda reálneho času má podľa nameraných výsledkov najkratšie časy, čo môžeme vidieť z obrázka. Anomálie sú spôsobené pravde podobne systémovými procesmi, ktoré majú vyššiu prioritu, tie sú prednostne prideľované správcom na procesor. Pretože sme nemali v systéme spustenú žiadnu inú aplikáciu, náš proces bol prideľovaný na procesor okamžite, prerušiť chod vlákien na procesore dokázali iba systémové funkcie.
Pri pohľade na obrázok č.6, ktorý znázorňuje časy pri nastavenej priorite vlákna na normálnu prioritu pri všetkých prioritných triedach vidíme inakšiu situáciu.
Môžeme vidieť že časy zostupne klesajú, takto sa správajú všetky nasledovné priority ako vyššia normálna, najvyššia a kritického času, ktoré sú uvedené v prílohe.
Porovnávaním všetkých kombinácií dospejeme k záveru, že spracovanie matematického výpočtu bolo najrýchlejšie v prioritnej triede reálneho času. V rámci prioritnej triedy reálneho času podľa tabuľky č. 1 a podľa nameraných výsledkov v tabuľke č. 3 je najrýchlejší s nastavením priority kritického času vlákna.
Ak porovnáme maximálne dosiahnuté časy na obrázku č. 5 a obrázku č. 6 vidíme, že namerané časy sú vyššie, čo má za následok cyklické obsluhovanie procesu, ak nie je v systéme vo fronte užívateľských procesov spustený žiadny iný proces s vyššou prioritou. K nárastu časov výpočtu prispelo aj zmenšenie časového kvanta prideleného každému vláknu ako pri najnižšej prioritnej triede, kde je časové kvantum najväššie, čo malo za následok časté prepínanie kontextu. Uvedený fakt výrazne ovplyvnil dĺžku obsluhy paralelne bežiacich vlákien.
Windows 2008 server
Ako druhý bol meraný Windows 2008 server. Taktiež boli spustené iba nevyhnutné procesy systému, t.j. local service, network service, systém. Aj v tomto prípade bol vypnutý proces Explorer.exe, pretože pracuje vo vyššej prioritnej triede, čo by mohlo mať za následok častejšie prerušenia výpočtu, teda vlákien pri nižších prioritných triedach procesov. Aj pri tomto operačnom systéme môžeme pozorovať podobné správanie na obrázku č. 7, kde je nastavená voľná prioritná trieda vlákien. Namerané časy umožňujú vysloviť ten istý názor, ako pri meraní Windows 2003 server. Namerané časy sú približne rovnaké až na triedu reálneho času, čo už bolo spomínané. V tomto taktiež prípade dochádzalo k anomáliám spôsobených tým istým činiteľom, t.j. systémovými procesmi, ktoré majú najvyššiu prioritu pri prideľovaní na procesor.
Podobne vyzerala aj najnižšia priorita vlákien, ktorú graficky spracovanú nájdeme v prílohe. U ostatných prioritách vlákien, ktoré sú v prílohe môžeme vidieť skoro zostupné klesanie, anomálie boli spôsobené pravdepodobne nejakým systémovým procesom.
Rozdiel medzi operačnými systémami je pozorovateľný pri prioritách vlákien normálnej a vyšších priorít. Tento jav najlepšie môžeme vidieť na obrázku č. 8, kde je nastavená najvyššia priorita vlákien.
Vidíme, že časy dosiahnuté pri prioritných triedach normálnej a vyššej prioritnej triede sú takmer totožné. Aj v tomto operačnom systéme môžeme vysloviť záver, že pri nastavení vyšších prioritných tried procesov je dochádza k nárastu časov potrebných pre výpočet, čo má za následok zníženie časového kvanta procesu. Ten istý poznatok sme spomínali pri operačnom systéme Windows 2003 server RC 2.
Záver
Cieľom tejto práce bolo poukázať na správanie sa paralelne bežiacich vlákien v operačných systémoch pomocou opisu prvkov ako sú vlákna, ich vytváranie, synchronizácia a algoritmy spracovania. Pre vybrané operačné systémy bola vytvorená aplikácia na meranie časov matematického výpočtu vo vybranom programovacom jazyku. Dôležitou úlohou bolo nastavovanie rôznych prioritných tried a priorít vlákien operačného systému. Z nameraných výsledkov usudzujeme efektívne využitie postupu pri matematických výpočtoch. Z graficky spracovaných výsledkov meraní vidíme, že v novšom operačnom systéme t.j. Windows 2008 server sa zmenil algoritmus a obsluha spracovania vo vyšších prioritách vlákien. Z tabuliek č. 3 a č. 4, ktoré sú uvedené v prílohe môžeme vysloviť záver, že operačný systém Windows 2008 vo viacerých nastaveniach priorít a prioritných tried efektívnejšie spracovával matematický výpočet. Časový parameter dĺžky spracovania vlákien je nižší o 0.2 až 0.6 sekundy, v porovnaní s Windows 2003 server, čo je veľmi veľa pri spracovaní procesov. Windows 2003 server bol efektívnejší pri nastavení vyššej prioritnej triedy procesu, pri nastavení vyšších priorít vlákien ako nižšia normálna priorita vlákna. Časy výpočtu boli kratšie o 0.2 sekundy v porovnaní s Windows 2008 server. Uvedená skutočnosť nám ponúka použitie operačného systému Windows 2003 server na realizáciu matematických výpočtov paralelných vlákien pre dané prioritné triedy. Z nameraných výsledkov vyplýva že, pri nezaťaženom operačnom systéme Windows žiadnou užívateľskou aplikáciou sa javí veľmi výhodné voliť nižšie priority vlákien. Za účelom dosiahnutia najrýchlejšieho spracovania dát je účelné voliť nižšie priority vlákien ako je normálna priorita pri akejkoľvek prioritnej triede procesu, pretože namerané časy sú skoro totožné. Naopak pri zaťaženom systéme nejakou užívateľskou aplikáciou pre urýchlenie spracovania dát je treba voliť vyššiu prioritu vlákien pre vyššie prioritné triedy ako normálna prioritná trieda. Prioritná trieda reálneho času nemá v nastavovaní priorít u bežného užívateľa význam, pretože pri nastavení tejto prioritnej triedy systém prestáva reagovať na povely užívateľa, pretože tieto povely majú nižšiu prioritu ako bežiace vlákna s prioritou reálneho času a systém sa tak stáva neinteraktívnym.
Použitá literatúra
- Kvasnica, P. 2009. Operačné systémy I. 1.vyd. Trenčín: Trenčianska univerzita Alexandra Dubčeka, 2009, 139s. ISBN 978-80-8075-412-9
- Martincová, P. 1997. Operačné systémy. Žilina: Žilinská univerzita, 1997, 166s.
- Madnik – Donovan. 1983, Operačný systémy, 1.vyd. Praha: SNTL, 1983
- Roubíček, L. a kol. 2000. Windows 2000 server Správa systému. 1.vyd. Praha: Computer Press, 2000, 577s. ISBN 80-7226-291-2
- Plášil, F. 1992. Operačný systémy, Praha: SNTL,1992
- Cada, O. 1993. Operačný systém, Grada,1993
- DEITEL, Harvey, M. 1990. Operating systems, 2.vyd, Addison Wesley, 1990, ISBN 0-201-50939-3
- Microsoft. 2010. Scheduling pirorities. [online]. 2010, [22.11.2009] Dostupné na internete: http://msdn.microsoft.com/en-us/library/ms685100(VS.85).aspx