Struktura operacijskega sistema


Operacijski sistem zagotavlja programom okolje in storitve, potrebne za njihovo izvajanje. Sestavlja ga več sistemskih komponent:

Upravljanje procesov,
Upravljanje s primarnim pomnilnikom,
Upravljanje s sekundarnim pomnilnikom,
Upravljanje z vhodno-izhodnimi napravami,
Upravljanje z datotečnim sistemom,
Sistem zaščite (dostop programov, procesov, uporabnikov, ugotavljanje napak),
Sodelovanje v mreži (porazdeljeni sistemi),
Interpretiranje ukazov.

Vmesnik med procesi in operacijskim sistemom predstavljajo sistemski klici. Z njimi zahtevajo (uporabniški) programi neko storitev operacijskega sistema. Po drugi strani pa lahko pride do prekinitev izvajanja uporabniških programov tudi s strani operacijskega sistema.

Splošno sliko strukture operacijskega sistema prikazuje spodnja slika:

Operacijski sistem interaktira neposredno z aparaturno opremo, programom pa zagotavlja storitve tako, da so le-ti izolirani od aparaturne opreme. Na celoten sistem lahko gledamo kot na množico plasti. Aplikacijski programi predstavljajo zunanje plasti, sam operacijski sistem pa predstavlja sistemsko jedro (kernel). Aplikacijski programi lahko zahtevajo od jedra izvedbo posameznih storitev s takoimenovanimi sistemskimi klici.

Praviloma pozna računalnik dva režima izvajanja nekega procesa: uporabniški režim (user mode) in sistemski režim (kernel mode, system mode). Normalno so naši programi v uporabniškem režimu. Šele ko to zahtevamo s primernim sistemskim klicem, preide proces v sistemski režim. V takem stanju izvedejo rutine v jedru zahtevano storitev in nato vrnejo klicočemu programu kodo s statusom izvedbe (error code).Proces se povrne v uporabniški režim.

Proces lahko preide iz uporabniškega v sistemski nivo tudi zaradi izjemnega dogodka (exception), kakršnega predstavlja na primer poskus izvedbe nelegalne instrukcije. Tako v primeru nepredvidenega dogodka kot tudi v primeru namernega sistemskega klica pride do takoimenovane programske prekinitve (ali pasti), ki povzroci preklop v sistemski režim in klic ustrezne servisne rutine jedra.

Do prekinitve programa lahko pride tudi zaradi aparaturne prekinitve (zahtevek z neke periferne naprave). Tudi v tem primeru pride do preklopa iz uporabniškega režima v sistemski (če se v tem še ne nahajamo) in do izvedbe ustrezne prekinitvene rutine.

Ko je proces v sistemskem režimu, lahko pride do preklopa na drug proces. Pri takem preklopu se mora seveda ohraniti stanje (prekinjenega) procesa tako, da se bo kasneje lahko nemoteno nadaljeval. Pravimo, da ima proces nek kontekst in da pride do preklopa konteksta (context switch).

V sodobnejših operacijskih sistemih zasledimo organiziranost operacijskega sistema po konceptih klijent- strežnik (client-server). Tu so komponente operacijskega sistema majhne in samostojne. Vsak strežnik teče kot poseben proces v uporabniškem režimu. Jedro skrbi le za komunikacijo med takimi strežniki (message passing). Govorimo o mikro-jedru. Tak sistem je bolj varen pred izpadi in bolj fleksibilen. Njegov koncept prikazuje spodnja slika:

Konkretni primeri:
     Zgradba operacijskega sistema UNIX
     Zgradba operacijskega sistema Windows NT


V obdobju večprocesorskih sistemov ločimo med simetričnimi (SMP) in asimetričnimi modeli. V prvem primeru nimamo nekega "glavnega" procesorja. pri asimetričnih modelih pa operacijski sistem uporablja en procesor, aplikacije pa druge. Primer simetričnega operacijskega sistema je Windows 2000.