Určenie doby výpočtu vybraných úloh v prostredí súčasných operačných systémov

Z Kiwiki
Skočit na navigaci Skočit na vyhledávání
Tnu wiki.png
Trenčianska Univerzita Alexandra Dubčeka v Trenčíne
Fakulta Mechatroniky
Fm wiki.png
Určenie doby výpočtu vybraných úloh v prostredí súčasných operačných systémov

zadanie práce
Diplomová práca


Autor:
Pedagogický vedúci:

Ing. Peter Kvasnica, PhD.

Študijný odbor: Mechatronika

Akademický rok

2009/2010

Abstrakt

Táto práca sa zaoberá testovaním jednotlivých operačných systémov so zameraním sa na spôsoby vykonávania jednotlivých procesov. V práci budeme testovať konkrétny typ úlohy, kde budeme hodnotiť výsledný čas spracovania zadanej úlohy v konkrétnom operačnom systéme. Výsledne časy nám poslúžia na porovnanie jednotlivých operačných systémov medzi sebou a tak určiť, ktorý operačný systém dosiahol najlepší čas spracovania testovanej úlohy v priebehu celého testu.

Abstract

This work deals with testing of individual operational systems and focuses on particular ways of executing these proceses. This work will be testing one particular type of problem, where the final processing time will be measured and evaluated in a chosen operational system. The results will serve us to compare other operational systems with each other and state which operational system achieved the best processing time througout the test.

Úvod

Základ programového prostredia, ktoré sa používa pri realizácii riadiacich úloh tvorí operačný systém. Vlastnosti a chovanie operačného systému určujú praktické možnosti výsledného riadenia a do značnej miery i algoritmy riadiacich aplikácií. Operačný systém dovoľuje spúšťať všetky programy, údaje prehľadne prenášať, uložiť, riadiť a zároveň „paralelne“ používať. Označenie operačný systém je teda súbor programov, ktorý umožňuje efektívnu obsluhu a použitie počítača na plnenie rôznych úloh.

V úvode práce opisujeme základnú stavbu a fungovanie operačného systému so zameraním sa na priebeh jednotlivých procesov v operačnom systéme. Ako vzorku pre testovanie doby výpočtu danej úlohy sme vybrali päť operačných systémov, ktoré budú nainštalované na jednom počítači aby bolo možné zhodnotenie výsledkov. Na daných operačných systémoch budeme testovať konkrétny program, ktorý pracuje s rôznymi dátovými typmi a pracuje s maticami o rôznej veľkosti. Namerané výsledné časy spracovania danej úlohy v závere porovnáme medzi sebou a určíme, ktorý operačný systém dokázal najlepšie pracovať s danou úlohou a dosiahol tak najlepší výsledný čas spracovania.


Operačný systém

Operačný systém je najdôležitejší program počítača. Funguje ako prostredník medzi používateľmi a technickým vybavením ( hardvérom ) počítačového systému. Jeho hlavným cieľom je zabezpečiť prístup používateľov k programom a efektívne využívanie daného hardvéru. Architektúra operačného systému je vo všeobecnosti takáto [3]:

  • Správu procesov ( programy zavedené do pamäte na vykonanie ) - umožňuje vytváranie a ukončovanie procesov. Chráni CPU pred zahltením chybnými programami.
  • Správu operačnej pamäte - zabezpečuje jej efektívne využívanie, kontroluje obsadenosť úsekov pamäte a voľné oblasti prideľuje procesom. Zabezpečuje ochranu pamäte jedného procesu pred ostatnými procesmi.
  • Správu systému súborov sekundárnej pamäte - stará sa o ukladanie údajov, aby si používatelia navzájom nemenili údaje. Proces pokúšajúci sa zapisovať do súboru musí mať na zápis právo pridelené vlastníkom súboru, inak sa mu to nepodarí.
  • Správa vstupno-výstupných zariadení - procesor poskytuje virtuálne ovládače vstupno-výstupných zariadení, ktoré zabezpečujú rovnaký prístup k rovnakým skupinám zariadení.
  • Používateľské rozhranie - zabezpečuje komunikáciu používateľa s procesmi. Môže ísť o textové rozhranie, ktoré s používateľom komunikuje pomocou klávesnice a textu zobrazovaného na monitore a o grafické rozhranie. Grafické rozhranie je intuitívnejšie, používateľ nemusí poznať príkazy naspamäť, ale programy spúšťa i ovláda výberom z ponúk najrôznejších menu a ikôn. Grafická komunikácia s procesmi je často prehľadnejšia a informatívnejšia než textová.
  • Podporu bezpečnosti a spoľahlivosti výpočtového systému - ochraňuje systém proti strate údajov pri výpadku napätia, proti neoprávnenej alebo neodbornej manipulácii, ktorá by mohla poškodiť programové produkty.

Architektúra operačného systému

Vo všeobecnosti rozoznávame tieto súčasti operačného systému:

  1. Jadro ( výkonná časť ) operačného systému – sústava vzájomne prepojených a spolupracujúcich programových modulov nachádzajúcich sa v operačnej pamäti.
    Zaisťuje komunikáciu s hardwérom a poskytuje aplikáciám svoje služby, ako správu procesov, správu pamäte, podporu siete a pod.
  2. Monitor OS ( od slova monitorovať = sledovať ) – zabezpečuje komunikáciu systému s užívateľom.
  3. Ovládače ( drivers ) – obslužné programy vstupno-výstupných zariadení. Zvyčajne predstavujú rozhranie pre komunikáciu so zariadeniami prostredníctvom určitej počítačovej zbernice ku ktorej je pripojený hardvér. Toto rozhranie poskytuje príkazy na posielanie dát od a ku zariadeniu, a tak je nevyhnutné pre operačný systém a softvérové aplikácie. Ovládač je hardvérovo závislý počítačový program, ktorý je špecifický pre určitý OS. Umožňuje iným programom, pracovať transparentne s hardvérovým zariadením a zvyčajne poskytuje nevyhnutné spracúvanie prerušení. Na obr. 1 je znázornená zjednodušená schéma architektúry PC s vonkajšími zariadeniami, na ovládanie ktorých slúžia ovládače.

OS má z hľadiska úrovne programov niekoľko vrstiev. Vrstva na najnižšej úrovni zaisťuje priamy styk s technickými prostriedkami osobného počítača. Táto vrstva sa nazýva BIOS. Služby BIOS-u používa samotné jadro operačného systému. Služby jadra operačného systému následne používajú rôzne nadstavby a hlavne aplikácie spúšťané pod operačným systémom. Často je užívateľské rozhranie vo forme nadstavby operačného systému. Spôsob, akým užívateľ zadáva pokyny pre operačný systém a v akej forme dostáva správy o výsledku prevedenia operácie, je označovaný ako užívateľské rozhranie.

Obr. 1.1 Zjednodušená schéma architektúry PC [4]

Základné pojmy

Multitasking je vykonávanie viacerých úloh súčasne ( súbežné spracovanie ). Pri jednoprocesorových systémoch sa multitasking simuluje tak, že procesor striedavo vykonáva časti jednotlivých zadaných procesov, a navonok sa tvári, že sa vykonávajú súčasne. Je tomu tak preto, že prepínanie medzi procesmi sa vykonáva automaticky v krátkych časových intervaloch, napr. každú 1ms. Multitasking sa delí na preemptívny a nepreemptívny. Preemptívny multitasking vnucuje procesom násilné prepínanie na základe údajov časovača. Vďaka tomu počítač nemožno zahltiť jednou aplikáciou, ktorá by nepripustila ostatné procesy k činnosti. Pri nepreemptívnom multitaskingu o prideľovaní procesoru akoby „rozhodujú“ všetky procesy v spolupráci so správcom procesora.

K prepnutiu dochádza, keď to práve vykonávaný proces dovolí. Iný proces teda danú úlohu nemôže prerušiť. Až vtedy, keď proces „uzná za vhodné“, že už môže odovzdať riadenie, procesor je pridelený ďalšiemu procesu. Nevýhodou nepreemptívneho multitaskingu je možné „zrútenie“ sa systému v prípade zacyklenia niektorej z úloh. Vtedy je jediným riešením len zásah zvonku ( reštart ).

Multithreading je súčasné vykonávanie viacerých častí jednotlivého programu. Vnútorná realizácia je podobná ako u multitaskingu.

Multiprocessoring je schopnosť OS využívať viacero procesorov a medzi ne rozdeľovať vykonávanie viacerých úloh, resp. časti jednotlivej úlohy.


Obr. 1.2 Vzájomné súvislosti modulov jadra a procesov operačného systému umožňujúceho multitasking [1]

Orientovaný graf na obr. 2 znázorňuje vzájomnú súvislosť medzi modulmi jadra. Na danom grafe je vidieť, že modul VOLANIE_SLUŽIEB zabezpečuje prístup k modulom BDOS a ČASOVÝ_MODUL. Následne modul BIOS využíva modul SYNCHRONIZÁCIA_PROCESOV a ten využíva moduly INFORMÁCIE O_PROCESOCH a PRIDELOVANIE_PROCESORU. Daný graf dôrazňuje ako modul VOLANIE_SLUŽIEB slúži pre viacej procesov súčasne.