19
Operacijski sustavi Uvod u operacijske sustave Što je to operacijski sustav ? Važno je znati da nemaju sva računala operacijski sustav. Računalo koje upravlja mikrovalnom pećnicom, npr. ne treba operacijski sustav. Takvo računalo ima vrlo jednostavnu zadaću pa bi mu operacijski sustav bio nepotreban teret. Takvo i slična računala jednostavno izvršavaju samo jedan program cijelo vrijeme. Za računala koja imaju veću složenost od navedenog operacijski sustav je ključ efikasnosti i lakšeg razvoja aplikacija. Sva desktop računala imaju operacijski sustav. Najrašireniji operacijski sustavi su Windows, Unix i Macintosh porodice os- ova. Postoje na stotine operacijskih sustava za različite namjene, robotika, sustave za rad u stvarnom vremenu, tvornice itd... Dvije najosnovnije stvari koje os radi su: Rukuje hardware i software dijelom računala. To uključuje procesor, memoriju, hard disk itd... Pruže stabilno i konzistentno sučelje preko kojeg aplikacije komuniciraju sa uređajima, bez da znaju sve detalje o istim Prvi zadatak je vrlo važan jer u toku rada računala više programa istovremeno zahtijeva razne resurse računala, procesor, memoriju, disk... Na taj način OS balansira između zahtjeva za ispravan rad računala i ograničenosti resursa kojima raspolaže. Drugi zadatak pružanja stabilnog i konzistentnog sučelja je posebno važan jer postoji više računala različite građe na kojemu se izvršava isti OS. Konzistento sučelje odnosno 1

os1

  • Upload
    dubi001

  • View
    17

  • Download
    4

Embed Size (px)

DESCRIPTION

Opis operacijskih sustava

Citation preview

Page 1: os1

Operacijski sustavi

Uvod u operacijske sustave

Što je to operacijski sustav ?

Važno je znati da nemaju sva računala operacijski sustav. Računalo koje upravlja mikrovalnom pećnicom, npr. ne treba operacijski sustav. Takvo računalo ima vrlo jednostavnu zadaću pa bi mu operacijski sustav bio nepotreban teret. Takvo i slična računala jednostavno izvršavaju samo jedan program cijelo vrijeme.

Za računala koja imaju veću složenost od navedenog operacijski sustav je ključ efikasnosti i lakšeg razvoja aplikacija. Sva desktop računala imaju operacijski sustav. Najrašireniji operacijski sustavi su Windows, Unix i Macintosh porodice os-ova. Postoje na stotine operacijskih sustava za različite namjene, robotika, sustave za rad u stvarnom vremenu, tvornice itd...

Dvije najosnovnije stvari koje os radi su: Rukuje hardware i software dijelom računala. To

uključuje procesor, memoriju, hard disk itd... Pruže stabilno i konzistentno sučelje preko kojeg

aplikacije komuniciraju sa uređajima, bez da znaju sve detalje o istim

Prvi zadatak je vrlo važan jer u toku rada računala više programa istovremeno zahtijeva razne resurse računala, procesor, memoriju, disk... Na taj način OS balansira između zahtjeva za ispravan rad računala i ograničenosti resursa kojima raspolaže.

Drugi zadatak pružanja stabilnog i konzistentnog sučelja je posebno važan jer postoji više računala različite građe na kojemu se izvršava isti OS. Konzistento sučelje odnosno Application Program Interface (API) omogućava programeru da razvija program na jednom računalu sa sigurnošću da će se taj isti ispravno izvršavati i na svim ostalim računalima koja koriste isti OS. Također u slučaju prelaska na novi, brži i bolji hardware programi i dalje rade ispravno.

Podjela operacijskih sustava

Operacijski sustavi za rad u stvarnom vremenu (Real-time operating systems (RTOS)) – koriste se za upravljanje strojeva, instrumenata, industrijskih postrojenja itd. RTOS uglavnom imaju jako skromno sučelje prema korisniku i uglavnom se izvode kao crna kutija koja obavlja određeni zadatak. Vrlo bitan segment RTOS-a je taj da osigura da se određeni zadaci uvijek izvršavaju jednako dugo. U nekom stroju jednako kobno može biti preuranjeno pomicanje

1

Page 2: os1

određenog dijela iz razloga što je neki resurs računala tad bio slobodan, kao i kašnjenje u slučaju preopterećenosti sustava.

Jedan korisnik jednozadaćni OS (single-user single task) – kao što ime govori ova vrsta sustava omogućava korisniku da obavlja samo jedan zadatak u jednom trenutku. Vrlo dobar primjer takovog OS-a je PalmOS koji se koristi na Palm ručnim računalima. MSDOS je također takav OS.

Jedan korisnik višezadaćni OS (single-user multi-tasking) – Windows i Mac OS-ovi su primjer operacijskih sustava gdje je korisniku omogućeno da pokreće nekoliko programa u isto vrijeme.

Višekorisnički i višezadaćni OS (multi-user i multi-tasking) – U ovakvom sustavu je omogućeno da više korisnika istovremeno radi na računalu i da svaki od njih pokreće više programa. Unixoidni OS-ovi su primjer takvog OS-a.

2

Page 3: os1

Podizanje operacijskog sustava

CPU učitava boot program iz ROM-a (npr. BIOS kod PC). Boot program :

- Provjerava konfiguraciju sustava (broj procesora, koliko ima memorije, broj i tip uređaja ...).

- Gradi konfiguracijsku strukturu koja opisuje hardware.- Učitava operacijski sustav i predaje mu konfiguracijsku strukturu.

Inicijalizacija operacijskog sustava - Inicijaliziraju se strukture podataka jezgre OS-a (kernel)- Inicijalizira se stanje svih hardverskih uređaja- Kreiraju se neki osnovni procesi.

Nakon što su pokrenuti osnovni procesi, OS starta korisničke aplikacije ako je moguće, inače ulazi u idle petlju.

Petlja čekanja (idle loop)- OS se izvršava u beskonačnoj petlji (UNIX).- OS izvršava neke sistemske operacije i podešavanja.- OS zaustavlja procesor i ide u low-power mod (prijenosna računala).

OS se “budi” na- prekide (interrupts) od hardverskih uređaja- iznimke (exceptions) od korisničkih programa (dijeljenje nulom, nedozvoljena

instrukcija, greška sabirnice ...)- sistemskih poziva iz korisničkih programa

Osnovne zadaće OS-a:

upravljanje procesorom - efikasnost, na višezadaćnim OS-ovima omogućavanje istovremenog izvođenja više programa

upravljanje memorijom – odvajanje programa u zasebne memorijske prostore upravljanje ulazno izlaznim uređajima upravljanje uređajima za pohranu podataka API – pružanje programerima stabilne okoline u kojoj se razvijaju aplikacije, te

aplikacijama konzistentnu okolinu u kojoj se izvršavaju korisničko sučelje – omogućavanje interakcije između korisnika i računala

Postoji još mnogo funkcija koje obavlja OS, no navedenih šest su najosnovnije koje svaki OS mora obavljati.

Upravljanje procesorom (CPU)

CPU je mozak računala a glavni zadatak mu je da dobavlja instrukcije iz memorije i izvršava ih. Te instrukcije, po redoslijedu, dekodira određujući njen tip i operande te ih izvršava. Svaka procesorska jedinica ima poseban skup (set) instrukcija koje može izvršiti. Procesorske jedinice sadrže registre unutar kojih se čuvaju ključne varijable i privremeni rezultati. Jedan od tih registara je i programski brojač (PC - program counter) koji sadrži memorijsku adresu one instrukcije koja je u redu za izvršavanje. Drugi važan registar je pokazivač na stek (SP - stack pointer) koji pokazuje na tkz.

3

Page 4: os1

radni stek u memoriji. Treći bitan registar je PSW (Program Status Word) ili flags registar koji se sastoji od različitih bitova koji opisuju različita stanja i događaje (carry, interrupt, overflow, sign ...).

Glavni poslovi koje obavlja OS, a tiču se procesora su slijedeći: osiguravanje da svaki proces i aplikacija dobija dovoljno procesorskog vremena

na raspolaganje da bi se izvršavala ispravno iskoristiti procesorsku snagu na što efikasniji način

Osnovna jedinica kojom OS rukuje je proces ili thread. Proces je dakle program koji je kontroliran od strane korisnika, neke aplikacije ili OS-a.

OS procesima dodjeljuje vrijeme procesora u kojem oni obavljaju svoje zadatke. U jednozadaćnim sustavima to je vrlo jednostavno. Jedan proces ima na raspolaganju procesor cijelo vrijeme i prekida sa radom samo toliko koliko je potrebno da obradi sve prekide i korisničke akcije.U višezadaćnim sustavima je problem raspodijele procesorskog vremena složeniji utoliko što tada više procesa dijeli jedan procesor, a treba postići privid da se više programa izvršava istovremeno. Način na koji se to postiže je da OS predaje procesor svakom pojedinom procesu na neko kratko vrijeme. Ta se izmjena naziva context switching i događa se preko tisuću puta u sekundi. Cijeli postupak oko raspodijele procesorskog vremena je poznat kao CPU Scheduling.

4

Page 5: os1

Do sada smo govorili uglavnom o jednoprocesorskim računalima. U računalima gdje imamo na raspolaganju više procesora OS mora raspodijeliti posao između više procesora na način da postigne što veću efikasnost. Prema tome kako se procesi raspodijeljulju na više procesora možemo napraviti podjelu OS-ova na slijedeća dva tipa:

asimetrične simetrične

Asimetrični operacijski sustavi koriste jedan procesor za izvršavanje sistemskih programa, a ostale procese raspoređuju na ostale procesore.Simetrični OS-ovi pokušavaju sistemske programe i programe koje pokreće korisnik ravnomjerno raspodijeliti na sve procesore.

5

Page 6: os1

Upravljanje memorijom

Druga značajna komponenta računala je memorija. Memorija je mjesto na kojem procesor računala pronalazi programe i podatke kada radi posao koji mu je dodijeljen. Kada ne bi bilo glavne(radne) memorije tada bi procesorska jedinica morala komunicirati sa diskom što bi izazvalo veliku sporost u pristupu podacima i uopće sporiji rad računala. Kada god procesorska jedinica pristupa hard disku ili nekoj vanjskoj jedinici kao npr. tipkovnici, većina podataka ide prvo u random access memory (RAM). Procesor zatim smješta dijelove podataka u cache memoriju a neke specijalne instrukcije u registre.U većini računala ova izmjena podataka između procesora i RAM-a se događa milijun puta u sekundi. Glavna memorija se često naziva RAM ( Random Access Memory – memorija sa izravnim pristupom).

Tabela ispod prikazuje tipična vremena pristupa procesora registrima, cache memoriji, RAM memoriji i hard disku.

Tip memorije Vrijeme pristupa Kapacitetregistri procesora 1 ns < 1KB

cache 2 ns 1 MBglavna (RAM) memorija 10 ns 64-1024 MB

hard disk 10 ms 10-200 GB

Moderni operacijski sustavi upravljaju memorijom tako se svakoj aplikaciji čini da ona posjeduje cjelokupan memorijski adresni prostor. OS te virtualne adresne prostore odvaja i tako se osigurava stabilnost cjelokupnog sustava (rušenje jedne aplikacije ne dovodi do rušenja drugih aplikacija ili samog OS-a).

Magnetski disk - Hard disk

On je za dva reda veličine jeftiniji nego RAM po byte-u i često dva reda veličine veći po dimenzijama, dok mu je najveći nedostatak vrijeme direktnog pristupa koje je tri i više redova veličine sporije nego kod RAM-a (razlog je u tome što je hard disk u stvari mehanički uređaj). Znajući glavne vrline (jako veliki i jeftin memorijski kapacitet), i mane (sporost pristupa) moramo biti jako pažljivi pri dizajniranju sustava koji koristi hard diskove.

Disk ima funkciju zapisivanja/čitanja na ili s magnetske površine. Treba naglasiti da se magnetski mediji koriste za trajno čuvanje podataka.

6

Page 7: os1

Dvije stvari u vezi sa diskom omogućuju mu da brzo dođe do bilo kojeg dijela površine. Prva stvar je rotacija. Disk se brzo vrti, pa svi dijelovi njegovog oboda prolaze bez velikog odlaganja pokraj bilo koje zadane točke. Disk se sastoji od jedne ili više metalne ploče koje rotiraju brzinama 5400, 7200 ili 10800 okretaja/minuti. Druga stvar koja omogućuje pomicanje po površini diska je način na koji se kreće magnetska glava za čitanje/snimanje. Na sličan način onome kod ručice gramofona, ona zapravo može prijeći disk od vanjske prema unutrašnjoj strani. Uobičajeno je da glava simultano čita i gornju i gornju površinu ploče

Površina diska je podijeljena na staze (tracks) koje čine koncentrične krugove s početkom na vanjskom rubu diska. Staze su podijeljene na sektore, svaki sektor sadrži obično 512 byte-a. Broj staza varira s tipom diska. Tvrdi diskovi imaju od 500 pa sve do preko 1000 staza. Bez obzira koliki je broj staza, svaka se identificira brojem, počevši sa stazom nula na vanjskom rubu diska.

OS osigurava efikasnu upotrebu hard diska tako što na različite načine pokušava optimizirati vrijeme pristupa. Obično se dio prostora na hard disku uzima i kao proširenje glavne memorije računala.Ulazno-Izlazni uređaji (I/O Devices)

Ulazno-izlazni uređaji se sastoje od dva dijela: kontrolera (controller) i uređaja (device). Kontroler je čip ili skup čipova na pločici koji fizički upravlja uređajem. Kontroler prihvaća instrukcije operacijskog sustava i dalje upravlja uređajem. Software koji komunicira sa kontrolerom dajući mu instrukcije zove se upravljački program ili device driver.

Sabirnice (Buses)

Sabirnica je jedan ili više vodiča koji prenose podatke s jednog ili više izvora do jednog ili više odredišta u računalu. Intel Pentium sustav može imati razne vrste sabirnica i to cache, local, memory, PCI, SCSI, USB, IDE i ISA - svaka sa različitim brzinama prijenosa podataka i funkcijama. Dvije najvažnije sabirnice su izvorno IBM PC ISA ( Industry Standard Architecture ) i PCI ( Peripheral Component Interconnect) sabirnica. ISA sabirnica radi na 8.33 MHz i može prenijeti 2 bajta odjednom pri maksimalnoj brzini od 16.67MB/sec te se koristi za komunikaciju sa sporijim ulazno/izlaznim uređajima. PCI sabirnica radi na 66MHz i prenosi 8 bajta u vremenu za brzine podataka od 528 MB/sec. U ovoj konfiguraciji centralna procesorska jedinica (CPU) “razgovara” sa čipom PCI bridge preko lokalne sabirnice i PCI bridge čip “razgovara” sa memorijom preko memorijske sabirnice često pokrenute na 100 MHz. Sustav može imati tri specijalizirane sabirnice: IDE, USB i SCSI. IDE sabirnica “spaja” vanjske uređaje kao što su diskovi i CD-ROM sa sustavom. USB ( Universal Serial Bus) je napravljena da “spoja” sve sporije ulazno-izlazne jedinice kao npr. miš i tipkovnica sa računalom. SCSI (Small Computer System Interface) sabirnica je namijenjena za brze diskove, skenere i druge uređaje koji trebaju znatnu pojasnu širinu (bandwidth). SCSI sabirnica može postići brzine prijenosa 160 MB/sec.

7

Page 8: os1

API

Application program interface (API) omogućuje programeru da upravlja raznim dijelovima računala bez da zna svaki detalj o radu određenog uređaja.Primjer:Programer želi spremiti neke podatke u datoteku na disku. Za kreiranje datoteke će koristiti slijedeću funkciju

MakeFile("proba.dat").

Operacijski sustav zna sve potrebno u magnetskom disku da bi uspješno kreirao datoteku. Također operacijski sustav je taj koji brine o dozvolama za čitanje i pisanje u tu datoteku. Svaki tip uređaja ima svoj driver koji zna upravljati njime. No svi oni imaju standardno sučelje prema programeru (API). Na taj način je programer siguran da će njegov program raditi ispravno bez obzira na različite uređaje koji su priključeni na sustav.

API na neki način čini virtualni stroj kojem pristupa programer, a implementacija virtualnog stroja ovisi o vrsti uređaja od kojih je računalo sastavljeno.

Korisničko sučelje

Korisničko sučelje omogućuje korisniku da "komunicira" sa računalom. Korisnička sučelja se uglavnom dijele na dvije kategorije:

grafička shell

Red hat linux OS

Najproširenija grafička sučelja danas su Windows, Macintosh i X Windows. Grafička sučelja su najpopularnija na današnjem tržištu.

8

Aplikacija

Sučelje virtualnog stroja

Operacijski sustav

Sučelje uređaja

Hardware

Page 9: os1

Na Unix OS-ovima se često koriste i shell-ovi u koje se unose naredbe koje OS onda izvršava. Najpopularniji su C Shell (csh) i advanced Bourne shell (bash).Važno je shvatiti da su korisnička sučelja samo programi koji čine sloj iznad OS-a i koriste API koji im pruže OS. Osnovu OS-a čini jezgra dok se razni grafički izvršavaju zasebno iako su ponekad u čvrstoj svezi sa jezgrom sustava.

Korisnički i jezgrin mod rada operacijskog sustava

Moderni procesori podržavaju više različitih modova rada, naime svaki mod ima određenu razinu prava za izvršavanje instrukcija procesora. Operacijski sustavi iskorištavaju tu činjenicu radi odvajanje i zaštite samog operacijskog sustava (odnosno njegovog glavnog dijela – jezgre) i računalnih resursa od korisničkih aplikacija. Prema tome postoje dva moda rada OS-a: Jezgrin (kernel) mod – potpuna kontrola nad svim resursima (može adresirati

fizičke adrese uređaja), omogućen pristup svim instrukcijama procesora. To je mod u kojemu rade upravljački programi (device drivers) i razni sistemski programi koji obavljaju radnje nužne za ispravan rad samog operacijskog sustava.

Korisnički mod – ograničen pristup resursima, ne mogu se izvršavati sve instrukcije procesora. To je mod u kojem se izvršavaju korisničke aplikacije i pojedini dijelovi operacijskog sustava.

Međutim, korisničke aplikacije prilikom svog rada pozivaju različite funkcije operacijskog sustava te pristupaju I/O uređajima. Ako je za sve to odgovorna jezgra OS-a mora postojati način da se pređe iz korisničkog u jezgrin mod, obavi traženi posao i vrati se nazad u korisnički mod. Štoviše, mnoge korisničke aplikacije (npr. grafički intenzivne) veći dio vremena provedu u jezgrinom modu.

Postoje tri suštinska načina(događaja) kako se prelazi iz korisničkog u jezgrin mod: prekidi iznimke sistemski pozivi

Važna činjenica je da procesor računala može biti prekinut u izvršavanju od strane sklopovlja ili pozivom određene instrukcije. U tom trenutku procesor mora moći spremiti svoje stanje da bi nakon obrade događaja mogao nastaviti sa normalnim izvođenjem. To stanje se zove i minimalni kontekst procesora, odnosno skup registara procesora koji mogu biti zaprljani prilikom obrade događaja.

Gdje se smješta taj minimalni kontekst?

Za to se koristi dio memorije koji se naziva stack. Kad dođe do prekida kontekst se smješta na stack, kad se prekid riješi u procesor se učitava spremljeni kontekst te se rad nastavlja točno na onom mjestu na kojem je bio prekinut.

9

Page 10: os1

Prekidi

Prekidi su asinkroni događaji koje izazivaju različiti hardverski uređaji da bi notificirali procesor o specifičnom događaju koji mora biti obrađen (npr. prekid može izazvati pritisak tipke na tipovnici, pomicanje miša, istek vremenskog intervala timer-a procesora, završetak čitanja/pisanja na disk).

Što se događa prilikom obrade prekida (prije prekida procesor izvršava naredbe korisničke aplikacije)? Procesor poziva OS na određenoj adresi (interrupt handler), postavlja se supervizor

bit procesora i ulazi se u jezgrin mod. Sprema se minimalni kontekst procesora i povratna adresa na stek . Identificira se uređaj i određuje tip zahtjeva. Poziva se odgovarajuća proceduru koja se treba izvršiti (u terminolgiji 80x86 obitelji

procesora ISR – Interrupt Service Rutine). Treba napomenuti da se može pozvati interna procedura jezgre operacijskog sustava, odnosno procedura koju isporučuju pisci upravljačkih programa. Što će se pozvati ovisi o vrsti uređaja i tipu prekida.

Nakon što se procedura izvrši obnavlja se stanje korisničke aplikacije koja je prekinuta, odnosno sa steka se učitavaju registri i u PC se sprema sačuvana povratna adresa (kod 80x86 poziva se IRET naredba).

Resetira se supervizor bit i vraća se iz jezgrinog moda u korisnički mod. Korisnički program se nastavlja točno na mjestu gdje je prekinut.

Važno! Omogućavanje uređajima da prekinu procesor jako pomaže boljoj iskoristivosti procesora. Uzmimo kao primjer aplikaciju koja treba učitati 100 MB podataka sa hard diska. OS pošalje zahtjev uređaju za čitanje podataka i nastavi dalje sa radom (npr. odabere neku drugu aplikaciju za izvršavanje). Kad uređaj pročita tražene podatke prekidom se notificira operacijski sustav da su podaci pročitani. Bez uvođenja prekida OS bi morao u određenim vremenskim intervalima provjeravati uređaj je li završio zadaću.

Iznimke

Iznimke su sinkroni automatski izazvani događaji koje se javljaju kao posljedica nepredviđenog/izvanrednog izvršavanja programa. Na primjer, pokušaj dijeljenja broja s nulom izazvat će odgovarajuću iznimku. Iznimke su sinkroni događaji zato što će se uvijek ponoviti prilikom izvršavanja neke aplikacije (naravno uz iste ulazne podatke).Drugi tipični primjeri iznimki su :

prekoračenje steka (stack overflow) prekoračenje maksimalne vrijednosti (floating point overflow) nedozvoljen pristup memoriji (memory access violation) nedozvoljena instrukcija (invalid opcode) točka prekida (debugger breakpoint)

Što se događa prilikom obrade iznimke ? Procesor poziva OS na određenoj adresi (exception trap handler), postavlja se

supervizor bit i ulazi se u jezgrin mod. Identificira se uzrok iznimke (npr. dijeljenje s nulom).

10

Page 11: os1

Ako korisnički program ima ugrađeno rukovanje prepoznatom iznimkom (exception handling) , onda OS prilagođava stanje korisničkog programa tako da on može zvati svoju proceduru za rukovanje iznimkom (vrši se povratak u korisnički mod). Korisnički program može pokušati promjeniti uvjete koji su doveli do iznimke te ponovo izvršiti instrukciju koja je izazvala iznimku ili može potpuno promijeniti put izvršavanja.

Ako korisnički program nema specificirano rukovanje iznimkama, onda ga OS ubija i predaje kontrolu nekom drugom korisničkom programu ako je moguće (obično se prikazuje dijalog s informacijama o grešci).

Sistemski pozivi – pozivi API funkcija

Prilikom rada neke aplikacije često se javlja potreba za različitim uslugama koje su implementirane od strane operacijskog sustava. To se izvodi preko mehanizma sistemskih poziva pomoću kojih aplikacija postavlja zahtjeve prema operacijskom sustavu. Naime OS implementira sučelje, obično preko funkcija u programskom jeziku C/C++, kojim izlaže svoje funkcionalitete aplikacijskim programerima (API).

Kako je većina sistemskih funkcija implementirana od strane same jezgre OS-a (to je slučaj kod UNIX i Win32 obitelji operacijskih sustava), sistemski poziv znači i prelaz iz korisničkog u jezgrin mod. Kako te sistemske funkcije mogu biti prilično kompleksne mnoge aplikacije veći dio vremena i provode u jezgrinom modu.Što se događa prilikom poziva sistemske funkcije ?

Korisnički program izaziva programski prekid (software interrupt ili trap) izvršavajući određenu instrukciju (npr. INT 0x2E kod Windows-a 2000).

Procesor poziva OS na određenoj adresi, postavlja se supervizor bit i ulazi se u kernel mod.

OS identificira zahtjev i ulazne parametre. Izvršava se zahtijevana operacija. Postavljaju se određeni registri procesora tako da sadrže rezultate operacije. Izvršava se određena instrukcija (IRET) i vraća se iz kernel moda u korisnički mod

(resetira se supervizor bit). Korisnički program prima rezultate i nastavlja s izvođenjem.

11

Page 12: os1

Interna struktura operacijskog sustava

Pri razvoju modernih operacijskih sustava potrebno je voditi računa o nekoliko međusobno suprostavljenih zahtjeva:

Efikasnost rada OS-a. Stabilnost i pouzdanost rada OS-a. Lakoća, kvaliteta i cijena samog razvojnog procesa novog OS-a (dizajn,

implementacija, testiranje).

Uvažavajući ove činjenice dizajneri se obično odlučuju za dva različita pristupa.

Monolitna struktura

Tipični predstavnici ove strukture su razne vrste UNIX operacijskih sustava. Osnovno obilježje je da su glavne funkcije OS-a implementirane unutar jezgre. Naime većina OS-a i upravljački programi se izvršavaju u jezgrinom modu. Ovakav pristup poboljšava efikasnost rada operacijskog sustava, međutim svaka greška u nekom upravljačkom programu ili funkciji samog OS-a ruši cijeli sustav.

Pojednostavljena struktura UNIX-a:

Kernel

Command InterpreterFile SystemSecurityNetwork SupportMemory ManagementCPU SchedulingProcess ManagementDevice Management

Hardware

12

Page 13: os1

Pojednostavljena struktura Windows 2000:

Microkernel struktura

Drugi pristup bi bio razbiti operacijski sustav u dijelove, tako da jezgra obavlja samo najosnovnije poslove a sve je drugo implementirano kao programi u korisničkom načinu rada. Tipičan primjer ove strukture je – Mach OS, razvijen na sveučilištu Carnagie Mellon. Ovakva modularna struktura čini samu implementaciju i održavanje OS-a puno lakšom ali pati od neefikasnosti. Zbog toga postoje razne implementacije koje značajan broj modula ipak ostvaruju u jezgrinom modu.

Primjer microkernel strukture:

13