Základy operačných systémov - matus

download.matus.in

Základy operačných systémov - matus

JURAJ ŠTEFANOVIČ

Základy operačných systémov

FIIT STU Bratislava

2005


J.Štefanovič: Základy operačných systémov U.2

ÚVOD

ČO UČEBNICA OBSAHUJE A ČO NEOBSAHUJE • DVE DEFINÍCIE

OPERAČNÉHO SYSTÉMU • JADRO OPERAČNÉHO SYSTÉMU

CIELE TEJTO

UČEBNICE

Tento text opisuje v piatich kapitolách základné princípy a algoritmy, na ktorých

sú založené architektúry operačných systémov. Opis je zameraný na tri základné

okruhy problematiky: správa paralelných procesov, správa pamäte a konštrukcia

systémov súborov. Tieto okruhy boli historicky prvé pri vzniku architektúr

operačných systémov. Neskoršie k nim pribudli ďalšie témy, predovšetkým

počítačové komunikačné siete a problematika bezpečnosti v elektronickom

prostredí, ktoré sú však svojim rozsahom samostatnou témou a tento text

základnej učebnice o operačných systémoch sa s nimi nezaoberá. Ciele tejto

učebnice sú:

• vysvetlenie princípov tých algoritmov, ktoré sú podstatou základnej

funkcie všetkých operačných systémov a v čase písania textu sú

pravdepodobne nadčasové, kým technický vývoj nerozhodne inak,

• uvedenie množiny základných pojmov v slovenskom a v anglickom

jazyku, ktoré sa týkajú princípov architektúry operačných systémov,

• základná orientácia čitateľa v problematike do tej miery, aby bol

schopný samostatne vyhľadávať ďalšie zdroje informácií podľa potreby.

PREDPOKLADANÉ

ZNALOSTI

Štúdium tejto publikácie si vyžaduje len základné znalosti o architektúre

počítačov, predovšetkým pochopenie štruktúry procesora, jeho inštrukcií

a funkcie pamäte. Programátorské príklady sú uvádzané v programovacom

jazyku C a nevyžadujú si pokročilejšiu znalosť tohto jazyka.


Úvod, obsah U.3

ČO UČEBNICA

OBSAHUJE

V piatich kapitolách učebnica vysvetľuje tieto štyri okruhy problematiky:

• správa paralelne bežiacich procesov (prvá a druhá kapitola),

• správa prideľovanej pamäte (tretia kapitola),

• systémy súborov na ukladanie údajov (štvrtá a piata kapitola),

• koncepcie architektúry jadra operačných systémov (poznámky a záver).

ČO UČEBNICA

NEOBSAHUJE

Učebnica nemá vo svojom stručnom rozsahu zaradené tieto dve ďalšie dôležité

témy:

o

o

komunikačné siete,

bezpečnosť a ochrana údajov.

Keďže cieľom tu bolo vytvoriť základný učebný text, tak tieto tri témy pre

pokročilých (správcov a tvorcov hardvéru a softvéru) je potrebné hľadať

v ďalších špecializovaných publikáciách:

o

o

o

komunikačné rozhrania (shell, grafické rozhranie a iné)

nástroje na tvorbu softvéru (knižnice a volania systémových služieb)

vstupno-výstupné zariadenia (hardvérové rozhrania a ovládače)

POUŽITÉ ZNAČENIE

V texte sú osobitným typom písma odlíšené:




dôležité pojmy,

dôležité pojmy v anglickom jazyku (ktoré možno použiť ako kľúčové

slová pri vyhľadávaní ďalších informácií na internete),

príkazy_v_programovacom_jazyku.

V programátorských príkladoch sú všetky volania služieb systému a knižničné

funkcie uvedené principiálnymi názvami a v generickom tvare, pri reálnej

implementácii záleží od konkrétneho systému a knižnice funkcií, ako budú takéto

volania a funkcie vyzerať a akým spôsobom sa použijú.

DEFINÍCIA 1:

ČO JE TO OPERAČNÝ

SYSTÉM?

Na počiatku všetkých vecí existoval počítač obsahujúci procesor, pamäť a nejaký

technický prostriedok, pomocou ktorého sa do počítača vložil program, ktorý mal

bežať a produkovať výsledky. Ďalším vývojom vznikli dve veľmi dôležité (a v

princípe čisto softvérové) veci:



programy na tvorbu programov,

programy na manipuláciu s programami.


J.Štefanovič: Základy operačných systémov U.4

DEFINÍCIA 2:

ROZŠÍRENIE

HARDVÉRU ZA POMOCI

SOFTVÉRU, ČIŽE

OPERAČNÝ SYSTÉM

„Programami na tvorbu programov“ v tomto prípade rozumieme kompilátory

a linkery vyšších programovacích jazykov, takže pri tvorbe softvéru nie sme

nútení pracovať výlučne na úrovni strojových inštrukcií, alebo aj priamo kódu

procesora, čo by pri súčasnej zložitosti softvéru a systémov asi ani nebolo

realizovateľné. Pod „programami na manipuláciu s programami“ rozumieme

všetky softvérové prostriedky, ktoré používanie počítača umožňujú, zjednodušujú

a robia ho efektívnym. Namiesto kopírovania jedného programu do pamäte

počítača, potom jeho spustenia a následne kopírovania ďalšieho programu má

používateľ k dispozícii operačný systém (operating system), ktorý umožňuje

všetky programy a údaje prehľadne uložiť, prenášať, riadiť a paralelne používať.

Označenie operačný systém teda patrí súboru programov, ktorý umožňuje

efektívnu obsluhu a použitie počítača. Tiež možno operačný systém označiť ako

vrstvu služieb, v hierarchii celého systému počítača.

V 60.rokoch dvadsiateho storočia vznikli ambiciózne projekty s cieľom vytvoriť

prvé skutočne komplexné operačné systémy. Výsledky týchto projektov boli

poznačené dobovou nedokonalosťou (hlavne nízkou kapacitou) hardvéru

a vtedajšou nízkou úrovňou znalostí softvérového inžinierstva, ktoré malo

problém vysporiadať sa s návrhom a odladením veľmi rozsiahlych a zložitých

programov. Na troskách týchto prvých projektov sa začiatkom 70. rokov zjavila

spolu s prvými ľuďmi na Mesiaci a prvým Boeingom 747 aj koncepcia

operačného systému UNIX, ktorý predstavoval najznámejšie novodobé

a prakticky dobre použiteľné riešenie. Systém UNIX vznikol spolu

s programovacím jazykom C, pričom v jazyku C bola jeho značná časť aj

implementovaná. Išlo tu teda o uplatnenie efektívneho prístupu, keď „programy

na tvorbu programov“ pomohli vytvoriť „programy na manipuláciu

s programami“. Po desaťročiach ďalšieho vývoja existujú potomkovia UNIXu

v rôznych verziách komerčných aj nekomerčných produktov a tiež je tu LINUX.

Ďalšie rodiny operačných systémov vznikli v súvislosti s nástupom rôznych

hardvérových platforiem – osobných počítačov, mobilných komunikačných

zariadení, riadiacich počítačov a podobne. Princípy vysvetľované v tejto učebnici

sa buď týkajú pravdepodobne všetkých systémov, alebo aspoň sa z nich pri

tvorbe a vývoji vychádzalo.

Operačné systémy tvoria základ, bez ktorého by sa nedali realizovať také

rozsiahle informačné technológie, ako je napríklad systém niekoľkých miliónov

súčasne aktívnych mobilných telefónov, alebo systém každodennej správy

miliónov bankových operácií.

Vznik prvého mikroprocesora bol kedysi vedený myšlienkou, vytvoriť taký

univerzálny číslicový obvod, pri ktorom by už viac nebolo potrebné vyvíjať

ďalšie a ďalšie schémy zapojenia, ale stačilo by meniť a vyvíjať softvér v jeho

pamäti, aby ten istý obvod mohol plniť rozličné požiadavky zákazníkov a

konštruktérov. Tento princíp je na vyššej úrovni konštruovania reprezentovaný

operačným systémom. Operačný systém je nadstavbou hardvéru počítača, takže

používateľ vlastne neprichádza do kontaktu so samotným hardvérom (neskúma

jeho nastavenie a správanie sa), ale prichádza do kontaktu s operačným

systémom a svoje rozlične sa meniace požiadavky na počítač realizuje ovládaním


Úvod, obsah U.5

operačného systému a volaním (spúšťaním) jeho služieb, teda programov.

Zo systémového pohľadu sa operačné systémy považujú za nadstavbu, doplnenie

a rozšírenie počítačového hardvéru. Ako príklad možno uviesť používanie

magnetického disku na zápis a čítanie údajov. Disk je zariadenie, ktoré sa ovláda

elektronickými povelmi a umožňuje zapisovať dodané postupnosti bitov na

svojom magnetickom povrchu, rozdelenom na stopy a sektory. Na zjednodušenie

použitia disku je k dispozícii ovládací program (ovládač, driver), ktorý pozná

organizáciu disku a jeho povely, takže komunikácia s diskom prostredníctvom

ovládača je oveľa jednoduchšia. Na vyššej úrovni je k dispozícii implementácia

systému súborov, takže používateľ disku pracuje len s tzv. súbormi (files), ktoré

pomenúva, zapisuje do nich postupnosti znakov a potom ich číta. Systémovo je

teda hardvér disku zapúzdrený aspoň do dvoch vrstiev softvéru (ovládač a systém

súborov) a vzniká tak funkčný modul s jednoduchým rozhraním pre používateľa,

ktorý sa už samotným diskom nemusí vôbec zaoberať, dokonca ani nemusí

poznať, či skutočne ukladá svoje informácie na magnetický disk, alebo je to

pamäťový čip, alebo iné zariadenie.

Tri klasické základné súčasti hardvéru počítača ako fyzického stroja sú procesor,

pamäť a magnetický disk. Operačný systém je nadstavbou, sprostredkujúcou

vrstvou služieb na rozhraní medzi používateľom a fyzickým strojom. Softvér

operačného systému a hardvér počítača tvoria takto dohromady komplexný stroj,

v ktorom sú aj fyzické a aj „informačné“ súčiastky rovnocennými partnermi. Tri

čiastkové pohľady na takýto stroj sú znázornené na nasledujúcich obrázkoch.

Hardvérové časti sú naznačené najvnútornejšími elipsami, ktoré obklopuje

softvérové rozhranie.

PRÍKLAD: OPERAČNÝ

SYSTÉM AKO VRSTVA

SLUŽIEB PRE

PROCESY

PRÍKLAD: PERAČNÝ

SYSTÉM AKO VRSTVA

SLUŽIEB PRE PAMÄŤ


J.Štefanovič: Základy operačných systémov U.6

PRÍKLAD: OPERAČNÝ

SYSTÉM AKO VRSTVA

SLUŽIEB NA

UKLADANIE ÚDAJOV

PRENOSITEĽNOSŤ

OPERAČNÉHO

SYSTÉMU

JADRO OPERAČNÉHO

SYSTÉMU A VOLANIE

JEHO SLUŽIEB

Vývoj smeruje ku konštruovaniu takých zariadení, ktorých neoddeliteľnou

súčasťou je softvér, ako rozhranie medzi samotným hardvérom zariadenia

a vonkajším používateľom. Jednoduchým príkladom je pamäťový disk počítača.

Po prívodnom kábli sa prenášajú povely a informácie pre špecializovaný

procesor vložený dovnútra disku, ktorý ich prijíma a sám riadi hardvérovú časť,

pričom môže poskytovať aj komplexné služby, napríklad diagnostiku

technického stavu magnetického disku. Zložitejším príkladom je Airbus, kde

medzi pilotom a samotným hardvérom lietadla je vložený sprostredkujúci

medzičlánok – viackrát zálohovaný riadiaci počítač, ktorý prijíma želania pilota

a podľa nich sa snaží optimálne manipulovať s lietadlom.

Softvér, ktorý je medzičlánkom medzi používateľom a strojom, možno

architektonicky rozdeliť na tie časti, ktoré potrebujú niesť informácie

o konkrétnom hardvéri, pretože ho priamo ovládajú, a na tie časti, ktoré

vykonávajú hardvérovo nezávislé činnosti. Softvér operačného systému má teda

dve principiálne od seba oddeliteľné časti (hierarchické vrstvy) – ovládače

zariadení a samotný operačný systém. Používatelia sa často stretávajú s tým, že

po pripojení ďalšieho zariadenia k počítaču operačný systém často už úplne

automaticky vyhľadáva potrebný ovládač, čo je však aj zdrojom problémov, ak

požadovaný ovládač nie je k dispozícii, alebo ak sa v danom počítači nespráva

podľa očakávania. Zatiaľ čo ovládače zariadení úzko súvisia s konkrétnym

hardvérom počítača, tak samotný operačný systém býva vytvorený ako

univerzálne použiteľný súbor programov, ktorý je prenositeľný (portable), teda

môže pracovať na viacerých druhoch počítačov, ak sú pre ne k dispozícii

príslušné ovládače.

Operačný systém je súbor programov, z ktorých tie najdôležitejšie trvale bežia

v počítači od počiatku jeho zapnutia a obsluhujú základné potreby používateľa

a jeho programov. Tieto trvale bežiace programy sa označujú ako jadro (kernel)

operačného systému. Obsluha potrieb používateľa sa deje tak, že používateľ ako

fyzická osoba komunikuje (najčastejšie myšou a klávesnicou) s programom

označovaným ako shell („mušľa“, ktorá v sebe uzatvára hardvér a softvér pred

pohľadom zvonku). Shell pracuje ako tzv. interpreter príkazov používateľa

(command interpreter). Sleduje text z klávesnice používateľa a vykonáva akcie

v systéme podľa jeho želaní (prípadne je to doplnené pohybom myši ako


Úvod, obsah U.7

ukazovateľa po obrazovke). Obsluha potrieb používateľských programov sa deje

tak, že programy vykonávajú volania systémových služieb - systémové volania

(system calls, tiež označované aj ako volania jadra systému). Pri systémovom

volaní odovzdá používateľský program požiadavku operačnému systému a počká

na jej obslúženie, napríklad požiadavku prečítať určenú časť súboru z disku.

Systémové volania sú pre programátorov štandartne k dispozícii ako knižnice

softvéru, takže napríklad ak chceme aby náš program vytváraný v jazyku C

napísal na obrazovku text, nestaráme sa o detaily počítača, ale použijeme

knižničnú funkciu printf(). Táto funkcia v sebe obsahuje operácie, ktoré

zabezpečia všetko potrebné za účasti operačného systému. Použitím funkcie

fprintf máme prístup do súborov, funkcia malloc nám zabezpečuje

organizovanie pamäte, a tak ďalej.

Množina všetkých existujúcich druhov volaní služieb operačného systému je

komunikačným rozhraním služieb operačného systému, podľa ktorého sú

vytvárané všetky programy, ktoré v rámci daného operačného systému môžu

pracovať. Pri prenose programu do prostredia iného operačného systému je

problémom (ne)kompatibilita rozhraní. Na jednej strane je snaha riešiť tento

problém technickou normalizáciou (napríklad normou ANSI - poznámky k nej

možno nájsť priamo v knižniciach funkcií), na druhej strane je tu však realita

obchodných vzťahov a rivality medzi jednotlivými producentmi softvéru.

* * *

Tento text som napísal ako učebnú pomôcku k prednáškam z predmetu Operačné

systémy. Použité moje fotografie sú z viedenskej ZOO, operačného systému

Windows a zo slovenských reálií. Za všetky chyby a nejasnosti sa

ospravedlňujem. Pokiaľ sa nazbiera dostatočné množstvo pripomienok

a námetov, môže vzniknúť ďalšia verzia.

Juraj Štefanovič 23.12.2005

http://www.fiit.stuba.sk/~stefanovic

FIIT STU Bratislava

Fakulta Informatiky a Informačných Technológií

Slovenskej Technickej Univerzity


J.Štefanovič: Základy operačných systémov U.8

OBSAH

Úvod

1 Paralelné procesy

1.1 Proces, jeho prerušenie a plánovanie 1.1

1.2 Vznik a zánik procesov 1.11

1.3 Správa paralelných procesov 1.16

1.4 Vlákna 1.22

2 Komunikácia a synchronizácia

2.1 Komunikácia medzi procesmi 2.1

2.2 Vzájomné vylučovanie procesov 2.8

2.3 Uviaznutie procesov 2.26

3 Správa pamäte

3.1 Prideľovanie pamäte 3.1

3.2 Organizácia pamäte, stránkovanie 3.7

3.3 Virtuálna pamäť 3.11

3.4 Výmena stránok 3.14

4 Systémy súborov

4.1 Sekundárna pamäť je „disk“ 4.1

4.2 Umiestnenie súboru na logickom disku 4.7

4.3 Špeciálne typy súborov 4.12

4.4 Zásobníková pamäť 4.14

5 Vlastnosti súborov

5.1 Vlastnosti súborových systémov 5.1

5.2 Špeciálne typy súborových systémov 5.4

5.3 Fyzický disk 5.7

5.4 Kilobity a kilobajty 5.10

Záver Z.1

Odporúčaná literatúra Z.5

Kľúčové pojmy Z.6

More magazines by this user
Similar magazines