Operačný systém

Podľa článkov zo seriálu Operačné systémy v PC Revue z roku 1997-98 autora Rastislava JUHÁSA.

Operačný systém je základný prostriedok počítača, ktorý spravuje jeho najdôležitejšie elementy: Operačnú pamäť, procesor, periférne zariadenia a systém súborov. OS zabezpečuje ich vzájomnú kontinuitu a synchrónnosť. Súčasne zabezpečuje komunikáciu používateľa s počítačom na najnižšej úrovni, umožňuje využívať mnohé programové prostriedky (software) tým, že zabezpečuje ich zavádzanie do operačnej pamäte.

História.
Vývoj OS je úzko spätý s vývojom počítačov. Počítače, ako aj k nim vyvíjané OS môžeme zatriediť do nasledujúcich vývojových generácií:
0. generácia (1940-46) komunikácia na úrovni strojového kódu, vonkajšie pamäťové riadenie
1. generácia (1946-50) dávkové spracovanie, vnútorné pamäťové riadenie
2. generácia
(1950-63) viac úloh v operačnej pamäti, multiprogramový OS
3. generácia (1964-80) všeobecné použitie OS, viac úloh v operačnej pamäti, zlepšená správa pamäte, sekvenčné vykonávanie úloh, množstvo účelových programov
4. generácia (1980-??) sieťové OS, On-Line spracovanie, multiprogramovanie, paralelné vykonávanie úloh

V začiatkoch PC mal výhradné postavenie operačný systém MS-DOS firmy Microsoft (1981). Bol vypracovaný a používaný na počítačoch IBM PC/XT a PC/AT s mikroprocesormi Intel8088 až 80386. Preto sa stal štandardom medzi operačnými systémami. Vďaka tomu ho mohli používať na všetkých počítačoch tohto typu a on im dovoloval využívať rovnaké aplikačné programy.

Úloha (program, aplikácia) - špecifikovaná požiadavka zadávaná používateľom, ktorá sa môže ďalej individuálne členiť na jednotlivé kroky úlohy
Proces - najelementárnejšia, ďalej nedeliteľná časť úlohy definovaná procesorom.

Ak používateľ spúšťa úlohu, resp. program (napr. textový editor). Pre OS to znamená najskôr celú úlohu zaviesť do operačnej pamäte (modul prideľovania operačnej pamäte) z nejakého periférneho zariadenia (modul prideľovania periférnych zariadení a systém (súborov), ďalej pri spracovaní jednotlivých krokov úlohy rozčleniť úlohu na procesy (modul pridelenia procesora), ktoré sú následne spracované. Po vykonaní úlohy OS musí úlohu uvoľniť z operačnej pamäte, pokiaľ nejde o úlohu rezidentnú alebo paralelne spracúvanú s inými aplikáciami, tzv. multitasking.

4. Prideľovanie procesora.
Úloha alokovaná do operačnej pamäte sama osebe nemá nijaký efekt, je to len základný predpoklad jej spracovania. O spracovanie úlohy a interpretáciu jej výsledkov pomocou výstupu na periférne zariadenie sa stará centrálna, riadiaca, logická a aritmetická jednotka (CPU - procesor).
Plánovanie úloh: Každá úloha zadaná používateľom sa člení na procesy (ďalej nedeliteľné časti úlohy), a to z toho dôvodu, že procesor je schopný spracovať v určenom strojovom čase len jeden proces. Plánovač úloh (prvý modul prideľovania procesora) sleduje čas zadania všetkých úloh, ktoré boli zadané a ešte neboli ukončené. V OS často nastáva skutočnosť, že v istom momente sú už zadané viaceré úlohy a plánovač má rozhodnúť, ktorá zo zadaných úloh bude prijatá a následne spracovaná vo forme procesov. Ak plánovač úloh vyberie úlohu na spracovanie, pridelí jej základné údaje: údaj o stave úlohy (rozpracovanosti), prioritu úlohy (prednosť pred ostatnými prijatými úlohami) a časový odhad spracovania úlohy. V stave prijatej úlohy plánovač úloh musí zvážiť jej podmienky ďalšieho postupu:
- pamäťové nároky úlohy, spôsob pridelenia pamäte, dostatok voľných periférnych zariadení potrebných pre úlohu, spôsob členenia úlohy na procesy.
Plánovanie procesov: Plánovač procesov rozdelí pripravenú úlohu na procesy a každému procesu pridelí istý časový limit spracovania procesu, ktorý závisí od stavu súčasného procesu a od priority ostatných procesov. Plánovač procesov eviduje procesy a realizuje ich synchronizáciu. Sleduje, aby sa úloha ukončila až vtedy, keď všetky jej procesy sú ukončené a spracované.
Podľa spôsobu vybavovania úloh a podľa poradia ich spracovania delíme OS na dve veľké skupiny:
Monoprogramové OS - zadané úlohy sa vykonávajú sekvenčne (za sebou) to znamená, že OS môže spracovať ďalšiu úlohu, až keď ukončí predošlú. V monoprogramových OS sa môžu uplatniť nasledujúce stratégie, ktoré rozhodujú o poradí spracovania úloh:
FIFO, kdeOS vybavuje úlohy v takom poradí , v akom boli zadané do systému.
JSF, uprednostňuje tú úlohu, ktorá má v danom momente najkratší odhad priebehu.
Multiprogramové OS - úlohy sa vykonávajú paralelne (súčasne) tzv. multitasking. Ich spracovanie sa začne hneď pri zadaní úlohy bez ohľadu na to, či už sa vykonávajú nejaké úlohy, alebo nie. Samozrejme, že čas spracovania paralelných úloh sa predlžuje adekvátne násobkom počtu paralelných úloh.

5. Prideľovanie periférnych zariadení.
Každé periférne zariadenie (PZ) je prepojené s OS. Za pridelenie PZ procesu zodpovedá modul prideľovania PZ sledovaním stavov všetkých PZ pomocou dátových štruktúr UCB (Unit Control Block). PZ predstavujú základné hardvérové prostriedky, pomocou ktorých používateľ komunikuje so systémom alebo ich systém potrebuje na dočasné alebo trvalé uchovávanie dát. Každé PZ je vybavené tzv. vstupno-výstupným procesorom (V/V), ktorý sa v OS nazýva V/V kanál. Ten zabezpečuje priamu výmenu dát medzi systémom a samotným PZ. PZ je zapojené na matičnú dosku počítača pomocou radiča, ktorý predstavuje elektronické prepojenie PZ a počítača. Na jeden radič je možné pripojiť viacero PZ a na V/V kanál viacero radičov. OS, aby korektne obsluhoval a čo najefektívnejšie využíval PZ, musí obsahovať jeho programový systémový ovládač, dodávaný väčšinou výrobcom PZ. V súčasnosti každý OS umožňuje priebežne inštalovať nové, zdokonalené ovládače PZ.

Klasifikácia periférnych zariadení.
1. Pevne pridelené (Dedicated) - tie PZ, ktoré sú jednému procesu pridelené po celú dobu jeho trvania.
2. Zdieľané PZ (Shared) - tie PZ, ktoré môžu byť zdieľané viacerými procesmi, napr. disk.
3. Virtuálne (Virtual) - niektoré PZ je simulované iným PZ.
4. Spoločné - tie PZ, ktoré môžu používať všetky procesy bez ohľadu na stav PZ a na stav celého systému, napr. hodiny reálneho času.

Každé PZ má pridelenú informáciu o jeho stave, resp. o jeho zaneprázdnenosti. Môže nadobúdať hodnoty voľný (nepridelené nijakému procesu) alebo pridelený. Pomocou týchto informácií sa rozhoduje o pridelení PZ procesom, ktoré o dané PZ požiadajú.
V súvislosti so sledovaním stavov PZ a samotným pridelením PZ vôbec, sa môže vyskytnúť kritická situácia, nazývaná Dead Lock, ktorá vyústi prevažne do zablokovania systému alebo jeho zrútenia. Ide o moment, keď dva procesy majú pridelené rôzne PZ a v tom istom čase požiadajú navzájom o PZ, ktoré ani jeden z procesov nemôže uvoľniť. Potom jeden proces čaká na uvoľnenie PZ druhého procesu a naopak. OS nevie, v akej hierarchii má procesy vybaviť, a vzniká zacyklenie.

6. Systém súborov.
Systém súborov v hierarchii prideľovania prostriedkov v OS stojí na poslednej úrovni a patrí medzi základné mechanizmy manipulácie s dátami. Zabezpečuje logickú i fyzickú organizáciu dát na vonkajšom pamäťovom médiu (disku) a ich zoskupovanie do určitých homogénnych skupín.
Za súbor považujeme každú samostatne identifikovateľnú množinu dát (väčšinou podľa mena súboru). Od pojmu súbor odvodzujeme pojem systém súborov, ktorý predstavuje súhrn všetkých súborov a ich organizáciu do štruktúrovanej podoby. Systém súborov predstavuje posledný modul OS, ktorý sleduje stav uchovávaných dát pomocou tabuliek súborov, tzv. adresáre súborov, ktoré obsahujú mená súborov, adresu, pravidlá prístupu k súborom a adresárom. Ďalej realizuje stratégiu uloženia informácií na základe prístupových práv k súborom. Cieľom prístupových práv je efektívnejšie využitie pamäte, efektívnejšie vybavovanie procesov, ochrana dát proti nežiadúcemu prístupu. Modul systému súborov rozhoduje o pridelení prostriedkov (súborov) jednotlivým procesom, pričom sa rešpektujú prístupové práva procesu k súboru - dva procesy nemôžu mať v tom istom čase pridelený ten istý súbor bez ohľadu na to, či ho využívajú na čítanie lebo zápis. Rovnako rozhoduje o uvoľnení súborov.

Úrovne systému súborov.
1. Fyzický systém súborov - predstavuje fyzické uloženie (na disku) jednotlivých súborov. V prevažnej väčšine sa súbory členia na ďalšie segmenty, ktoré sa zapisujú na disk. Segmenty jedného súboru nemusia byť umiestnené za sebou, ale môžu byť zreťazené do nesúvislej oblasti.
2. Logický systém súborov - predstavuje logickú hierarchiu súborov na sprehľadnenie usporiadania súborov. Do tohto systému zaraďujeme všetky adresáre a ich ďalšie podadresáre.
3. Ochrana súborov - ide o zamedzenie podvojného používania rovnakéhio súboru, ako aj nežiaduceho prístupu používateľa k súboru. Sem zaraďujeme prístupové práva k súborom.

File System (systém súborov)
je špeciálny formát na pamäťovom médiu, pomocou ktorého sa uchovávajú dáta. Pomocou súborového systému počítač zapisuje dáta na disk s istými pravidlami tak, ako ich bolo možné rýchlo "vytiahnuť", modifikovať či zmazať. Obsahuje názov súboru, veľkosť, čas vzniku, prípadne prístupové práva atď. Typy systému súborov: FAT, FAT32, NTFS, Ext2, Ext3, ...
FAT / FAT16 (File Allocation Table):
systém súborov, ktorý používa systém MS-DOS a iné systémy založené na systéme Windows na organizovanie a spravovanie súbov. Tabuľka umiestnenia súborov (FAT) je údajová štruktúra, ktorú vytvára systém Windows pri formátovaní zväzku použitím systému súborov FAT alebo FAT32. Systém Windows ukladá informácie o každom súbore do tabuľky FAT, takže súbory sa môžu neskôr obnoviť.
FAT32:
derivát systému súborov FAT. Podporuje menšiu veľkosť klastrov a väčšie zväzky ako FAT, čo vedie k efektívnejšiemu využívaniu priestoruna zväzku so systémom súborov FAT32.
NTFS:
pokročilý systém súborov, ktorý poskytuje výkon, bezpečnosť, spoľahlivosť a rozšírené funkcie, ktoré nenájdete v žiadnej verzii systému súborov FAT. Napríklad zväzok so systémom súborov NTFS zaručuje konzistenciu pri použití štandardnej prihlasovacej operácie a obnovovacích techník. Ak sa systém náhle ukončí, systém NTFS použije svoj súbor denníka a informácie kontrolného bodu na obnovenie konzistencie systému súborov. V systémoch MS Windows 2000/XP poskytuje systém súborov NTFS rozšírené funkcie ako napríklad zabezpečenie priečinkov, kódovanie, diskové kvóty a kompresiu.
Ext2:
systém súborov využívaný OS Linux. Súborový systém ext2 logicky rozdeľuje disk na malé bloky. Bloky môžu byť obsadené alebo voľné. Veľkosť blokov možno stanoviť na 1, 2 alebo 4kB. Maximálna veľkosť súboru na diskovom formáte ext2 je 2 GB, maximálna dĺžka mena súboru je 255 znakov. Súborom sa uchováva čas ich vytvorenia, posledného prístupu a modifikácie.

Organizácia súborov.
Spôsob uloženia súborov na vonkajšom pamäťovom médiu:
- sekvenčná organizácia: Súbory sú uložené na médiu tesne za sebou v celej svojej dĺžke. Prístup k takýmto súborom je tiež sekvenčný, t.j. postupne sa prechádza všetkými súbormi od prvého až po požadovaný.
- relatívna organizácia: Každý súbor má svoj identifikačný kľúč. K takto uloženým súborom pristupujeme priamy využitím príslušného exaktného identifikátora.

Súbory môžu byť logicky zoskupované do adresárov. Rovnako aj adresáre môžu mať vlastné podadresáre súborov (s výnimkou jednoúrovňovej organizácie adresárov). Podľa počtu možných úrovní adresárov rozlišujeme dve základné organizácie:
- jednoúrovňová organizácia adresárov: všetky súbory sú zoskupené len v jednom adresári, ktorý nemá nijaké vlastné podadresáre. Tento jediný adresár sa nazýva hlavný alebo ROOT.
- adresáre so stromovou štruktúrou: každý adresár môže mať ľubovoľný počet súborov a podadresárov, ktoré môžu mať rovnako akýkoľvekpočet súborov a podadresárov. Ide o viacúrovňovú organizáciu adresárov, pričom len cez adresáre na vyššej úrovni máme prístup k ich podadresárom.

OS môže prideľovať diskovú pamäť dvoma rôznymi spôsobmi a technikami:
- spojité prideľovanie diskovej pamäte: súbor sa uloží na disk nečlenený. OS zisťuje či je dostatočne veľký voľný úsek diskovej pamäte na pridelenie súboru.
- nespojité prideľovanie diskovej pamäte: súbory sú rozdelené do nespojitých blokov, bloky sú následne uložené do nesúvislej oblasti diskus