Download as pdf or txt
Download as pdf or txt
You are on page 1of 103

Sistemski softver (operativni sistemi)

Jezgro operativnog sistema

Prof. Boris Damjanović

Boris Damjanović P 1.1


Šta je jezgro OSa?

• Upoznavanje sa osnovama arhitekture računara i


– sa načinom izvršavanja programa na niskom nivou,
– približilo nas je definiciji operativnog sistema koju
je dao
– profesor Abraham Silberschatz (čita se Zilberšac).

• Operativni sistem je
– program koji je najbliže povezan sa
– hardverom računara.

Boris Damjanović P 1.2


Funkcije OS-a

• Iz ove perspektive, možemo da ga posmatramo


– kao dio računarskog sistema koji je
– zadužen za alokaciju hardverskih resursa.

• Pod kontrolom operativnog sistema.


– CPU,
– primarna (opertivna, RAM) memorija,
– sistem datoteka (file system),
– ulazno-izlazni uređaji,
– ali i svi drugi sklopovi

Boris Damjanović P 1.3


Funkcije OS-a

• Operativni sistem ima i kontrolnu funkciju.

• On kontroliše izvršenje korisničkih programa


– da bi spriječio greške.

• Ovo posebno dolazi do izražaja


– kada je u pitanju pristup ulazno-izlaznim uređajima.

Boris Damjanović P 1.4


Funkcije OS-a

• Šta operativni sistem zaista radi?


• Operativni sistemi obavljaju slijedeće funkcije:
– Koordinacija i upravljanje saobraćajem
1. Upravljanje svim resursima
2. Rješava suprotstavljene zahtjeve za korišćenjem
resursa;
3. Spriječava greške i nepravilnu upotrebu resursa.
– Pružalac usluga
» OS pruža usluge koje su svima potrebne.
• Na primjer fajl sistem, sistem prozora ili sistem
biblioteka funkcija koje su svima potrebne.
• Na ovaj način se programer oslobađa programiranja
na niskom nivou.
• Postojanje operativnog sistema omogućava da
programiranje bude lakše, bolje i sa manje grešaka

Boris Damjanović P 1.5


Šta čini operativni sistem?

• Ako bi pokušali da navedemo šta čini neki operativni sistem,


vjerovatno bi došli do slijedećeg spiska:
– Upravljanje memorijom (Memory Management)
– Upravljanje ulazno izlaznim sklopovima (I/O Management)
– Dodjeljivanje procesora (CPU Scheduling)
– Multitasking i multiprogramiranje
(Multitasking/multiprogramming)
– Sistem datoteka (File System).
– Mnogi autori u novije vrijeme ovdje ubrajaju i
komunikacije. To nas dovodi do novih interesantnih pitanja:
» Da li npr. e-mail pripada OS-u?
» Da li upravljanje telefonskim pozivima pripada OS-u?

– Šta od navedenog pripada jezgru?

Boris Damjanović P 1.6


Šta čini operativni sistem?

• Interesantna pitanja se nastavljaju i dalje.


– Da li upravljanje multimedijalnim sadržajima (Multimedia
Support) pripada OS-u?
– Da li je korisnički interfejs (User Interface) dio OS-a?
» Microsoft je nekoliko verzija operativnog sistema Windows bazirao
na operativnom sistemu DOS, koji je funkcionisao iz komandne linije.
» Windows ME objavljen 2000. godine je bio poslednja verzija ovog
operativnog sistema koja je bila bazirana na DOS-u.
» Kod svih verzija ovog OS-a nakon 2000. godine sistem prozora
(windowing system) bio je ugrađen u OS kao njegov sastavni dio.
– Da li je pretraživač interneta (Internet Browser) dio OS-a?
» Poznata je sudska tužba koju je podnijela kompanija Netscape
1998. godine nakon što je Microsoft ugradio svoj pretraživač
interneta, Internet Explorer, koji je predstavljano klon Netscape
Navigator pretraižvača, u svoj operativni sistem.

• Šta od navedenog pripada jezgru?

Boris Damjanović P 1.7


Šta čini operativni sistem?

• Možemo reći da ne postoji univerzalno prihvaćena


definicija operativnog sistema.

• Pojednostavljeno shvatanje je da je opetrativni


sistem “
– sve što dobavljač isporuči kada naručite operativni
sistem”. (Abraham Silberschatz )

Boris Damjanović P 1.8


Šta čini operativni sistem?

• Operativni sistem je
– sloj softvera koji upravlja resursima računara
– za korisnike i za njihove aplikacije
» (profesor Thomas Anderson).

• Operativni sistemi mogu da budu pokrenuti


– na širokom spektru kompjuterskih sistema.

Boris Damjanović P 1.9


Šta čini operativni sistem?

• Operativni sistem može da bude nevidljiv krajnjim


korisnicima,
– kao u slučaju specijalizovanih uređaja poput
» konzola za igranje,
» uređaja u automobilima,
» kućnih uređaja.

• Takođe, operativni sistem može biti


– ključni dio softvera za pokretanje računarskih
sistema opšte namjene,
» poput desktop i laptop računara, mobilnih telefona isl.

Boris Damjanović P 1.10


Računarski sistem opšte namjene

• U slučaju računarskih sistema opšte namjene,


– korisnici su u interakciji sa aplikacijama,
– a aplikacije se izvršavaju u okruženju koje im je
obezbjedio operativni sistem.

Boris Damjanović P 1.11


Jezgro - kernel

• Jedini program koji je


– uvijek pokrenut na nekom računarskom sistemu
– je jezgro (kernel).

• Sve drugo je ili


– sistemski program
» (koji se isporučuje sa operativnim sistemom) i
– li aplikacioni program.

Boris Damjanović P 1.12


OS i jezgro

• Nešto širi pogled na strukturu operativnog sistema opšte


namjene je dat na slici:

Boris Damjanović P 1.13


OS i jezgro

• Na najnižem nivou, hardver nam pruža


– procesore,
– memoriju,
– skup uređaja za spajanje sa okruženjem,
– ali i neke usluge koje su namjenjene da budu iskorišćene od
strane operativnog sistema,
» kao što je prevođenje adresa (address translation).

Boris Damjanović P 1.14


OS i jezgro

• Operativni sistem predstavlja


– najniži sloj softvera u nekom računarskom sistemu,
– sloj koji je najbliži hardveru.
• On sa jedne strane predstavlja sloj koji se prilagođava
– velikom broju raznorodnih hardverskih uređaja koji se
mogu naći na računaru,
• a sa druge strane aplikacijama pruža
– veliki broj servisa koji su uniformni i nezavisni od uređaja i
sisitema na kojem se izvršavaju.

Boris Damjanović P 1.15


OS i jezgro

• Kako operativni sistem mora da zaštiti sebe i druge


aplikacije od potencijalno loše napisanih programa,
– veliki dio operativnog sistema izvršava se u
zaštićenom okruženju.
• Dio operativnog sistema može da se izvršava u
okviru svake aplikacije
– kao sistemska biblioteka (system library).

Boris Damjanović P 1.16


OS i jezgro

• Aplikacioni (korisnički) sloj je


– mnogo više od proste apstrakcije podređenog hardvera.

• Aplikacije se izvršavaju u okruženju koje je


– ograničeno
» (da se spriječi nastajanje štete),
– mnogo moćnije
» (da bi se sakrila hardverska ograničenja) i
– mnogo korisnije
» (putem postojanja zajedničkih servisa)
» nego što je to podređeni hardver sam po sebi.

Boris Damjanović P 1.17


Ako ne bi postojao operativni sistem?

• Kada ne bismo imali operativni sistem,


– čak i najobičnija sekvenca koja se uči u okviru
osnovnih informatičkih predmeta dolazi u pitanje:

• Source Code=>Compiler=>Machine Code=>Hardware

Boris Damjanović P 1.18


Ako ne bi postojao operativni sistem?

• Pretpostavimo da imamo eksternu mašinu


– u kojoj možemo da kompajliramo izvorni kod i
– da proizvedemo mašinski kod.

• Kako da mašinski kod učitamo i pokrenemo


– na željenom hardveru bez operativnog sistema?

• Učitavanje programa je
– funkcija operativnog sistema.

• Operativni sistem je vrlo koristan upravo


– kada se radi o učitavanju programa kojeg treba izvršiti,
– zahvaljujući njegovoj funkciji apstrakcije hardvera.

Boris Damjanović P 1.19


Da li je jednostavnim uređajima potreban OS

• Prvi računarski sistemi su bili veoma jednostavni,


– u smislu da su pokretali po jedan program u jednom
momentu.

• Kontroleri poput onih koji se ugrađuju u liftove ili u


automobile
– izvršavaju samo jednu aplikaciju svo vrijeme svog
postojanja.

• U današnjim automobilima se nalazi


– u prosjeku 100 mini računara.
– Svaki od njih izvršava po jedan zadatak –
» vazdušni jastuci (airbags) ili
» kočnice itd.
• Da li je takvim računarskim sistemima
– potreban operativni sistem?

Boris Damjanović P 1.20


OS u jednostavnim uređajima

• Kod jednostavnih računarskih sistema,


– kada se izostavi njegova zaštitna uloga,
– operativni sistem postaje više skup standardnih
usluga poput
» upravljačkih programa (device drivers),
» interapta (interrupt handlers) i
» matematičkih biblioteka

Boris Damjanović P 1.21


MS DOS (Disk Operating System)

• Na slici dat je prikaz opetativnog sistema MS DOS,


– koji je za današnje uslove veoma jednostavan
• U slučaju MS DOS računarskog sistema, u read only dijelu
memorije nalazio se
– ROM BIOS (Basic Input Output System) u koji su bile upisane rutine za
očitavanje prvog logičkog sektora na hard disku,
– te rutine za obradu interapta koji su služili kao upravljački programi
(device drivers).
• Ovaj dio memorije se više ili manje nalazi i na današnjim računarskim
sistemima.

Boris Damjanović P 1.22


MS DOS (Disk Operating System)

• Na prvom sektoru diska su se nalazie sys datoteke


• U učitanim SYS datotekama
– (IO.SYS i MSDOS.SYS) su se nalazili
– nešto kompleksniji upravljački programi (device drivers).

Boris Damjanović P 1.23


MS DOS (Disk Operating System)

• Nakon učitavanja SYS datoteka u memoriju se


upisivao i
– sistemski program command.com
– koji je bio rezidentan u memoriji.

Boris Damjanović P 1.24


MS DOS (Disk Operating System)

• Command.com je bio interpreter komandne linije


– i on je služio za pokretanje drugih aplikacionih programa,
– koji su se izvršavali „iznad“ programa command.com.
• Nakon završetka rada neke aplikacije,
– operativna memorija (RAM) koju je zauzimao aplikacioni
program
– je bila oslobođena, a
– kontrola je potom vraćana programu command.com.

Boris Damjanović P 1.25


Command.com
• Command.com program izgledao je kao današnji cmd.exe. Pretpostavimo da u MS DOS-u
pokrenemo starinski program za editovanje teksta (edit.com). Tada bi kucali edit u
komandnu linuju, a program bi pokrenuli pritiskom na taster ENTER.

• Program bi bio pokrenut. Procesor i računar su potpuno pripadali pokrenutom programu.

• Po završetku rada editora (edit.com) kontrola je vraćena rezidentnom programu


command.com

Boris Damjanović P 1.26


Rezidentan program

• Izraz rezidentan
– vrijedi malo podrobnije objasniti.
• U vrijeme MS DOS operativnog sistema,
– u memoriji računara mogao je da bude
– učitan samo jedan program koji je računarski sistem
izvršavao.

• Svi drugi programi su tada bili neaktivni i


– zapisni na disketi, hard disku ili nekom drugom (najčešće
magnetnom) medijumu.

• Dakle, svaki regularan program je


– prije izvršenja
– morao da bude učitan u operativnu memoriju (RAM).

Boris Damjanović P 1.27


Rezidentan program

• Nakon pokretanja regularnog programa on je


– preuzimao sve resurse i komandu nad računarskim
sistemom.

• Svaki regularan program je


– nakon svoga završetka
– morao da vrati resurse i
– komandu operativnom sistemu, odnosno programu
command.com.

• Program command.com je dakle


– započinjao i završavao izvršenje svakog aplikacionog
programa.

Boris Damjanović P 1.28


Rezidentan program

• Pošto je bilo previše sporo da se ovaj program


neprekidno
– učitava sa različitih magnetnih medijuma,
– sistemski program command.com je bio neprekidno
(rezidentno) učitan u operativnu RAM memoriju.

• Kako je ovaj program


– doslovno „stanovao“ u operativnoj (RAM) memoriji,
– on se zvao rezidentni (resident - stanovnik) program.

Boris Damjanović P 1.29


Rezidentan program

• Iako u vrijeme multitaskinga i multiprogramiranja može


izgledati čudno,
– u vrijeme ranih računarskih sistema
– kreiranje rezidentnih aplikacionih programa je predstavljalo
pravu umjetnost.

• U doba ranih računarskih sistema,


– ako ste radili u programu za obradu teksta,
– a pojavila se potreba da koristite kalkulator,
» morali ste da napustite program za obradu teksta,
» pokrenete kalkulator i izvršite potrebna izračunavanja,
» zatvorite kalkulator i
» ponovo pokrenete program za obradu teksta da bi tu unijeli
rezultat računanja.

Boris Damjanović P 1.30


Rezidentan program

• Tehnika kojom se izvodilo pisanje rezidentnih


programa oslanjala se na
– korišćenje adrese nekog prekida (interrupt) koji se
mogao pokrenuti sa tastature.

• Adresa na koju je pokazivao navedeni prekid,


– gdje se nalazilo neki uslužni program operativnog
sistema,
– se preusmjeravala na adresu na kojoj je bio učitan
rezidentni aplikacioni program (npr. kalkulator).

• Nakon toga se sa tastature umjesto željenog


prekida
– pokretao pomenuti rezidentni program (npr.
kalkulator).
Boris Damjanović P 1.31
Jednostavni sistemi i problem zaštite

• Problem kod ovakvog pojednostavljenog pristupa bio


je
– potpuni nedostatak zašite.

• Ako bi aplikacioni program odlučio


– da obriše neki dio sistema ili
– da pristupi nekom uređaju,
• on je imao sva prava na raspolaganju.

• Na ovaj način, loše napisan aplikacioni program


– mogao je npr. da potpuno zaključa sistem
» (npr. beskonačna petlja).

Boris Damjanović P 1.32


Problem istovremenog izvršenja

• Kada posmatramo moderne operativne sisteme,


poput onih koji se ugrađuju u
– mobilne uređaje i računare (Android, Windows) ili
– konzole za igranje (XBox ili PS3), postavlja se pitanje
– da li je takvim uređajima dovoljan operativni sistem na
nivou DOS-a
» ili im je potreban operativni sistem koji može da
izvršava više programa od jednom.

Boris Damjanović P 1.33


Problem istovremenog izvršenja

• Odgovor je jasan.
• Čak i operativni sistem koji se danas izvršava
– na jednostavnijim uređajima
– moraju da budu u stanju da pokrenu više od jedne
aplikacije istovremeno.

• Korisnik operativnog sistema Android mora da bude


u stanju
– da odgovori na poziv
– i u momentu dok npr. pregleda slike ili pretražuje
internet.

Boris Damjanović P 1.34


Hardverski OS?

• Današnji razvoj elektronike došao je do stadujuma


u kojem bi
– kompletan operativni sistem mogao da bude
– izveden hardverski, kao čip sa predefinisanim
ponašanjem.

• Osnovno pitanje koje se ovdje postavlja je


– da li se on tada uopšte može
– nazvati operativnim sistemom.

Boris Damjanović P 1.35


Namjerno prazna stranica

• Namjerno prazna stranica

Boris Damjanović P 1.36


Uloge operativog sistema

• Već smo spominjali da operativni sistem ima


trostruku ulogu.
– On ima ulogu sudije, iluzioniste i lijepka.

• Ovakav šablon (design pattern) nije svojstven samo


operativnim sistemima.

• Brojni drugi sistemi,


– poput računarstva u oblacima (Cloud Computing),
– pretraživača Weba (Web Browsers),
– višekorisničke (multilpayer) računarske igre
– sistemi za upravljanje bazama podataka itd.
• profitiraju na osnovu istraživanja koja se provode
u oblasti operativnih sistema.
Boris Damjanović P 1.37
Uloge operativog sistema

• Prikazaćemo kako se ovaj šablon


– može primjeniti na pretraživače interneta.

• Pretraživači interneta poput


– Mozilla Firefoxa, Chrome-a, MS Edge-a,
• imaju sličnu ulogu onoj koju ima operativni sistem.

• Oni učitavaju i prikazuju Web stranice.

Boris Damjanović P 1.38


Uloge operativog sistema

• Mnoge web stranice koriste


– skriptne jezike za prikazivanje dinamičkog sadržaja.

• Ovi skriptovi
– mogu da budu pogrešno napisani i maliciozni.

• Kao i operativni sistemi, čitači moraju da izoluju


– različite korisnike,
– različite web stranice,
– pa čak i različite instance istog čitača weba
• od međusobnog uticaja.

Boris Damjanović P 1.39


Uloge operativog sistema

• Pretraživač interneta (browser) kao sudija.

• Pretraživač mora da obezbjedi


– upotrebljivost kada korisnik ima
– nekoliko otvorenih kartica sa različitim konekcijama ka
web stranicama.

• Takođe, moraju se obezbijediti i izolovati


– različiti skriptovi i priključci (plug-ins) tako da ne mogu da
ga ometu i sruše u radu.

Boris Damjanović P 1.40


Uloge operativog sistema

• Pretraživač interneta (browser) kao iluzionist.

• Mnogi web servisi su geografski distribuirani


– i nalaze se na različitim računarima.

• U radu se može desiti da jedan server padne,


– a da njegovu ulogu preuzima drugi server.

• Pretraživač mora da obezbjedi da se


– tranzicija sa konekcije ka prvom serveru na konekciju ka
drugom serveru
– obavi neprimjetno za samog korisnika.

Boris Damjanović P 1.41


Uloge operativog sistema

• Pretraživač interneta (browser) kao lijepak.

• Pretraživač mora da obezbjedi


– prenosivo (portabilno) izvršno okružeje
– koje će biti u stanju da izvršava skriptove
– bez obzira na
– operativni sistem i hardversku platformu na kojem se on
izvršava.

Boris Damjanović P 1.42


Evaluacija operativnih sistema

• Poželjni kriterijumi za evaluaciju


operativnih sistema su:
– Pouzdanost i dostupnost
– Sigurnost
– Portabilnost
– Performanse
– Prilagodljivost

Boris Damjanović P 1.43


Pouzdanost i dostupnost

• Pouzdanost (reliability) operativnog sistema je


karakteristika koja znači
– da sistem radi tačno ono za šta je napravljen.

• Vrlo sličan koncept pouzdanosti je dostupnost


(availability),
– koji prikazuje postotak vremena koji je sistem bio
upotrebljiv.

Boris Damjanović P 1.44


Sigurnost

• Koncepti koji su veoma slični pouzdanosti


– su sigurnost i privatnost.

• Sigurnost se odnosi na spriječavanje mogućnosti da


– funkcionisanje operativnog sistema bude ugroženo
– od strane malicioznog napadača.

• Privatnost je aspekt (vid) sigurnosti:


– podaci smješteni na računaru moraju da budu
– dostupni samo autorizovanim korisnicima.

Boris Damjanović P 1.45


Portabilnost (portability)

• Operativni sistem pruža aplikacijama


– sloj apstrakcije
– prema podređenom hardveru.

• Portabilna apstrakcija je ona


– na koju ne utiču promjene hadvera.

• Na primjer, operativni sistem Windows 10


– mora da se izvršava korektno
– bez obzira da li se nalazi
– na SSD ili mehaničkom hard disku.

Boris Damjanović P 1.46


Performanse

• Iako se performanse obično vezuju za pojedie


aplikacije,
– dizajn operativnog sistema u velikoj mjeri
– utiče na performanse aplikacija.

• Operativni sistem je taj koji odlučuje


– kada neka aplikacija može biti pokrenuta,
– koliko memorije može da koristi isl.

• On upravlja
– keširanjem datoteka koje aplikacija koristi,
– njenim mrežnim protokom isl.

Boris Damjanović P 1.47


Prilagodljivost

• Pored pouzdanosti, portabilnosti i perfromansi,


– još jedna karakteristika utiče na to da li će neki
operativni sistem biti upotrebljiv.

• To je mogućnost da poznate aplikacije sa drugih


operativnih sistema
– mogu da budu prenesene na navedeni operativni
sistem i
• široka paleta hardverskih sklopova
– koje navedeni operativni sistem podržava.

Boris Damjanović P 1.48


Istorija operativnih sistema

• Već smo spominjali ogroman uticaj koji je imao


– Murov (Moore’s) zakon na razvoj računara i
računarske tehnike.

• Današnji mobilni telefoni imaju


– ogromnu procesnu snagu koja je višestruko veća nego
snaga ranih računarskih sistema.

• Usprkos postojanju ogromnih razlika,


– operativni sistemi moraju danas da
– odgovore na slične izazove kao nekada.

Boris Damjanović P 1.49


Rani operativni sistemi

• Prvi operativni sistemi predstavljali su runtime


(izvršne) biblioteke
– koje su olakšavale programiranje ranih računarskih
sistema.

• Za razliku od današnjih, nekadašnji računarski


sistemi su
– zauzimali ogroman prostor,
– koštali su milione dolara, a
– mogao je da ih koristi samo jedan korisnik u jednom
momentu.

Boris Damjanović P 1.50


Rani operativni sistemi

• Taj korisnik je u toku upotrebe morao


– da resetuje sistem,
– da učita program (bit po bit) i
– da ga pokrene i očita izlaz iz programa prije nego
što slijedeći korisnik dođe na red.

• Ako je program imao neku grešku,


– korisnik je morao da ponovo čeka na svoj red,
nerijetko slijedećeg dana.

Boris Damjanović P 1.51


Rani operativni sistemi

• Možda se može činiti da je


– u ovakvom okruženju operativni sistem bio
nepotreban.

• Ipak, od najveće važnosti bilo je


– da se pokuša smanjiti mogućnost da se napravi
greška u programu.

Boris Damjanović P 1.52


Rani operativni sistemi

• Zbog toga su kreirani operativni sistemi


– da bi se smanjio broj grešaka
– pružanjem standardnog skupa usluga.

• Na primjer, rani operatvni sistemi su pružali


– standardan skup ulazno/izlaznih (input/output, I/O)
rutina
– koje su mogle biti iskorišćene od strane programa.

Boris Damjanović P 1.53


Višekorisnički (multi-user) operativni sistemi

• Slijedeći korak u razvoju operativnih sistema bilo


je
– dijeljenje resursa i
– razvijanje rješenja koja su dosta slična današnjim
operativnim sistemima.

• Ova rješenja su ispravljala nedostatak prvih


operativnih sistema
– kod kojih je procesor bio u stanju mirovanja (iddle)
– dok je korisnik učitavao program,
– bez obzira na to što je dug red korisnika čekao da
počne da koristi kompjuter.

Boris Damjanović P 1.54


Višekorisnički (multi-user) operativni sistemi

• Prva takva rješenja nazvana su zajedničkim imenom


– batch (serija) operating system.

• Batch operativni sistemi su radili


– tako što su izvršavali serije zadataka.

• Ovakav operativni sistem se izvršava u


jednostavnoj petlji:
– učitaj,
– izvrši i
– oslobodi memoriju po izvršenju svakog pojedinog
programa (posla).

Boris Damjanović P 1.55


Višekorisnički (multi-user) operativni sistemi

• Ovi operativni sistemi su uskoro prošireni


– na takav način da su mogli da
– izvršavaju više aplikacija odjednom.

• Koncept izvršavanja više aplkacija odjednom


• nazvan je
• multiprogramming ili multitasking (time sharing).

Boris Damjanović P 1.56


Multiprogramiranje

• Multiprogramiranje (multiprogramming) je
– koncept po kome je u memoriju učitano više
programa,
– ali se u jednom trenutku izvršava samo jedan,
– dok ostali čekaju.

• Multiprogramiranje je
– povećavalo iskorišćenost procesora
– na takav način
– da je procesor uvijek imao šta da izvršava.

Boris Damjanović P 1.57


Multiprogramiranje

• U momentu kada program koji se izvršava


– pređe na neku instrukcije
» za koju nije potrebna usluga procesora
» (npr. U/I operacija, pristup nekom
perifernom uređaju),
– tada se izvršenje prenosi na slijedeći program
koji je rezidentno učitan u memoriju.

Boris Damjanović P 1.58


Multitasking (time sharing)

• Multitasking (time sharing) koncept kod


koga su
– programi učtani u primarnu memoriju, ali se,
– radi izvršavanja na jednom procesoru,
– dijeli vrijeme koje će
– procesor potrošiti na izvršenje svakog od njih.

Boris Damjanović P 1.59


Multitasking (time sharing)

• U jednom momentu
– CPU izvršava jedan program neko vrijeme
– dok ostali čekaju.

• Nakon toga, CPU prelazi na izvršenje slijedećeg


programa,
– kojeg izvršava određen period vremena,
– pa na izvršenje slijedećeg itd.

• Nešto kasnije će biti riječi o još jednom važnom


koceptu
– pod imenom višenitnost (multithreading).

Boris Damjanović P 1.60


Virtuelne mašine

• Kada su se pojavili multitasking operativni sistemi


pojavilo se pitanje
– kako dibagirati odnosno kako ispraviti uočenu
grešku u samom operativnom sistemu.

• Ovaj nedostatak otklonile su


– virtuelne mašine.

Boris Damjanović P 1.61


Virtuelne mašine

• Gostujući operativni sistem aplikacijama može da


– pruži iluziju kao da se zaista
– izvršavaju na podređenom hardveru.
» Aplikacije kao da na raspolaganju imaju posvećen
procesor, neoganičenu količinu operativne memorije isl.

Boris Damjanović P 1.62


Virtuelne mašine

• Gostujući operativni sistem


– izvršava instrukcije,
– pristupa U/I uređajima itd.
» a aplikacijama se čini kao da se on izvršava na pravom
hardveru.

Boris Damjanović P 1.63


Namjerno prazna stranica

• Namjerno prazna stranica

Boris Damjanović P 1.64


Operativni sistemi sa dijeljenjem vremena
(time sharing)
• Praistorija UNIX operativnog sistema
– počinje u sredini šezdesetih godina prošlog
vijeka kada se udružuju
» MIT, Bell Labs i General Electric da bi
– razvili operativni sistem sa dijeljenjem vremena
(time-sharing)
– u okviru razvoja operativnog sistema pod imenom
Multics.

Boris Damjanović P 1.65


Operativni sistemi sa dijeljenjem vremena
(time sharing)
• Ideja ovakvog operativnog sistema bila je da se
kombinuju
– multiprogramiranje i
– multitasking
• da bi se povećala iskorišćenost procesora.

• Ovaj inovativni projekt je bio


– zamišljen preglomazno za svoje vrijeme.

Boris Damjanović P 1.66


Operativni sistemi sa dijeljenjem vremena
(time sharing)
• Zbog toga je grupa istraživača
– Ken Thompson, Dennis Ritchie, M. D. McIlroy, i J. F.
Ossanna
• odlučila da napusti razvoj Multics-a i
– da se posveti izradi znatno manjeg sistema pod
imenom UNIX.

• Operativni sistem UNIX je postao temelj za izradu


– brojnih operativnih sistema među kojima se izdvajaju
» MacOSX,
» Linux i
» Android.

Boris Damjanović P 1.67


Operativni sistemi sa dijeljenjem vremena
(time sharing)
• Na drugoj strani,
– operativni sistem MVS (Multiple Virtual Storage)
kompanije IBM
– izvršio je uticaj na VMS (Virtual Memory System)
operativni sistem kompanije DEC i
– posredno i na moderne verzije Windows operativnog
sistema.

• VMS se često naziva i VAX/VMS –


– po skupu instrukcija VAX koji je razvijala korporacija
DEC,
– takođe od 1991. godine OpenVMS da bi se istakla
podrška open source sistemima poput UNIX-a.
» Njegov izvorni kod se može naručiti.

Boris Damjanović P 1.68


Operativni sistemi sa dijeljenjem vremena
(time sharing)
• Na slici je punom linijom prikazan operativni sistem koji je
naslijednik nekog sistema na višoj poziciji na dijagramu.
• Isprekidanom linijom prikazan je uticaj jednog sistema na neki
drugi sistem.

Boris Damjanović P 1.69


Moderni operativni sistemi

• Danas postoji veliki broj različitih uređaja koji


pred vlastite operativne sisteme postavljaju
različite zahtjeve.

• Operativni sistemi za desktop, laptop i notebook


računare predstavljaju sisteme na kojima
– najčešće jedan korisnik izvršava
– veliki broj aplikacija i na kojima se nalazi
– veliki broj U/I uređaja.

– Primjeri ovih operativnih sistema su Windows 10,
MacOS X, Linux.

Boris Damjanović P 1.70


Moderni operativni sistemi

• Operativni sistemi za smartphne.


• Smartphone je mobilni telefon koji u sebi
– ima ugrađen računar.

• Zahtjevi koji se postavljaju pred operativne


sisteme za ovakve uređaje su
– specifični u smislu podrške različitom skupu
– senzora i aplikacija koje ih koriste,
– korišćenju baterije i pristupu privatnosti.

Boris Damjanović P 1.71


Moderni operativni sistemi

• Operativni sistemi za servere.


• Velike kompanije svoje serverske mašine grupišu u data
centre,
– u kojima se nalazi ogroman broj računara od kojih
– svaki (obično) izvršava jednu aplikaciju – web server.

• Zahtevi koje operativni sistemi moraju da izvršavaju na


ovakvim mašinama se
– bitno razlikuju od tradicionalnih jednokorisničkih mašina.

• Cilj njihovog projektovanja je da omoguće obradu velikog


broja upita po sekundi i
– što veći protok podataka uz što manje kašnjenje.

• Kompanija Google je početkom 2018. godine


– obrađivala prosječno 40000 upita po sekundi (3.5 milijardi upita dnevno).
– U članku www.websitehostingrating.com/internet-statistics-facts/ se tvrdi da
Google u januaru 2019. obrađuje 7 milijardi upita dnevno
Boris Damjanović P 1.72
Moderni operativni sistemi

• Grozdovi (cluster) servera.


• Radi obezbjeđenja otpornosti na grešku i brzine odziva,
– web stranice se često implementiraju kao
– distribuirani grozdovi računara koji su smješteni na
– jednoj ili više lokacija u svijetu, da bi bili što bliže
korisnicima.

• Na primjer, ako jedan kompjuter „padne“ zbog nekog kvara,


– drugi računar odmah preuzima njegovu ulogu.

• A ako se poveća broj upita prema jednoj web stranici,


– tada zahtjevi mogu da budu raspoređeni između više mašina.

Boris Damjanović P 1.73


Moderni operativni sistemi

• Virtuelne mašine.
• Monitori virtuelnih mašina su operativni sistemi
– koji su u stanju da izvršavaju druge operativne
sisteme kao da su oni aplikacije.

• Primjeri ovakvih operativnih sistema su


– VMWare, Xen i Windows Virtual PC.

• Na ovaj način se na nekom sereveru može pokrenuti


– veći broj različitih operativnih sistema koji dijele
isti hardver a izvršavaju različite servise.

Boris Damjanović P 1.74


Moderni operativni sistemi

• Ugrađeni (embedded) sistemi.

• Računari su danas postali jeftini u tolikoj mjeri


– da je moguća njihova ugradnja u specijalizovane i
potrošačke uređaje.

• Oni se danas javljaju u


– automobilskoj industiriji,
– avio industriji,
– medicinskoj elekronici,
– ali i kućnim uređajima poput TV uređaja ili šporeta
(štednjaka).

Boris Damjanović P 1.75


Proces

• Postupak kreiranja tradicionalnog programa u nekom


današnjem računarskom sistemu
– počinje unosom izvornog koda koji unosi programer.

• Nakon toga, izvorni kod se prevodi pomoću kompajlera da bi se


– proizveo mašinski kod koji se može izvršavati na datoj
platformi.

• Navedeni mašinski kod se tada u formi


– izvršnog programa (executable image) snima u neku
datoteku.

• Kompajler osim mašinskih instrukcija


– definiše i memorijski prostor za statičke varijable
– koji se takođe smješta u izvršnu datoteku.

Boris Damjanović P 1.76


Proces

• Da bi pokrenuo program, operativni sistem najprije


– kopira navedenu datoteku (executable image) u primarnu
memoriju računara.

• Operativni sistem tada obezbjeđuje inicijalni prostor za


– stack memoriju koja se koristi za izvršenje potprograma i
– za dinamičku heap memoriju, u kojoj će biti vrijednosti
dinamički alociranih struktura.

Boris Damjanović P 1.77


Proces

• Nakon što program učita u primarnu (RAM) memoriju,


– operativni sistem može postaviti pokazivač instrukcija
(instruction pointer)
– na prvu instrukciju učitanog programa nakon čega počinje
njegovo izvršenje.
– Pokazivač instrukcija se često naziva i programski brojač
(program counter).

Boris Damjanović P 1.78


Proces

• Kompletan postupak kreiranja tradicionalnog


programa

Boris Damjanović P 1.79


Proces

• Da bi pokrenuo više instanci istog programa,


– operativni sistem može da učita više istih kopija
programa –
– njegovih instrukcija (mašinskog koda), podataka,
heap i stack memorija.

• Ipak, većina operativnih sistema danas će držati


– samo jednu kopiju instrukcija (mašinskog koda),
– čak i kada se istovremeno izvršava više instanci
programa.

Boris Damjanović P 1.80


Proces

• Program ne radi ništa sve dok


– njegove instrukcije ne počne da izvršava CPU.

• Kada procesor (CPU) počne sa njegovim


izvršavanjem,
– on postaje proces.

• Npr. program za obradu teksta


– koji se izvršava na nekom računaru je proces.

• Sistemski program
– koji šalje podatke na štampač je proces, ili je dio
nekog procesa.

Boris Damjanović P 1.81


Proces

• Razlika između programa i procesa je u tome što


je
– program pasivan entitet, kao što je sadržaj datoteke
na disku.

• S druge strane, proces je aktivan entitet.

• Proces koji izvršava samo jednu


– programsku nit (thread)
– ima jedan programski brojač koji uvijek pokazuje na
slijedeću instrukciju koju treba izvršiti.

Boris Damjanović P 1.82


Proces

• Procesor (CPU) izvršava instrukcije jednu po jednu


sve
– dok se proces (odnosno ono što često zovemo
program) ne završi.

• Višenitni (multithreaded) programi


– od sistema moraju da dobiju više pokazivača
instrukcija (programskih brojača),
– od kojih svaki pokazuje na slijedeću instrukciju koju
data nit mora da izvrši.

Boris Damjanović P 1.83


Proces

• Na ovaj način se može obezbijediti da se


– unutar jednog procesa poput pretraživača interneta
– kreiraju npr. dvije programske niti, od kojih će
» jedna preuzimati sadržaj sa interneta
» dok će ga druga iscrtavati na ekranu korisnika.

• Ove dvije niti unutar jednog procesa


– mogu da se izvršavaju paralelno.

• Ova činjenica postaje posebno važna


– kada se ima u vidu da se današnji računarski sistemi
– sve više oslanjaju na više jezgara mikroprocesora.

Boris Damjanović P 1.84


Proces

• Operativni sistem vodi računa


– o različitim procesima koji se izvršavaju unutar
operativnog sistema pomoću
– strukture koja se naziva process control block (PCB).

• Ova struktura čuva sve informacije o nekom


procesu
– koje su operativnom sistemu potrebne da bi ga
izvršio, poput
– informacije o lokaciji na kojoj je on smješten u
memoriji,
– gdje se njegova datoteka nalazi na disku,
– koji korisnik ga je pokrenuo,
– kakve privilegije proces ima itd.

Boris Damjanović P 1.85


Proces

• Pošto moderni operativni sistemi


– dozvoljavaju da jedan proces može da bude
– podijeljen u više programskih niti,
• informacije o izvršenju svake pojedine niti
– su izdvojene u posebnu strukturu koja se naziva
thread control block (TCB).

• Svaka pojedina nit predstavljena je


• jednom ovakvom strukturom u kojoj se drže podaci
– o identifikacionom broju niti,
– sadržaju registara
» stack pointer (pokazivač steka) i
» Instruction pointer (pokazivač instrukcije još se
naziva i program counter - programski brojač).
Boris Damjanović P 1.86
Proces

• Kako je prikazano na slici, računarski sistem je zbir


više procesa, od kojih
– neki procesi pripadaju operativnom sistemu
(izvršavaju kod sistemskih programa),
– dok su drugi korisnički procesi (izvršavaju kod
korisničkih programa).

Boris Damjanović P 1.87


Proces

• Svaka od ovih aktivnosti


– ima svoj vlastiti programski brojač.
• Na ovaj način, operativni sistem može da izvršava
– više niti unutar procesa na isti način kao što
– izvršava više procesa koji se nalaze unutar primarne
memorije.

Boris Damjanović P 1.88


Proces

• Pojam procesa se mijenjao tokom vremena.

• Prvobitno, naziv proces nosio je koncept koji se


danas naziva nit,
– odnosno sekvenca instrukcija koja ima svoj
– programski brojač i koja se izvršava u sistemu.

• Naziv proces osmišljen je u tom vremenu


– da bi se u toku izvršenja obezbjedila međusobna
zaštita između različitih aplikacija.

Boris Damjanović P 1.89


Proces

• Sa pojavom multiprocesorskih sistema,


– počeli su da se javljaju procesi (današnje niti) koji su
mogli da se izvršavaju paralelno,
– ali u okvirima jedne aplikacije.

• Takvi procesi su u to doba zvani


– lagani (lightweight) procesi, ali je
– na kraju naziv nit (thread) ušao u upotrebu.

• Sve to je dovelo do terminologije koja je danas usvojena:


– procesi izvršavaju programe pri čemu se
– svaki proces izvršava uz pomoć jedne ili više niti
(threads).

Boris Damjanović P 1.90


Namjerno prazna stranica

• Namjerno prazna stranica

Boris Damjanović P 1.91


Mehanizmi i politike

• Današnji operativni sistemi moraju da


– pruže punu koordinaciju i zaštitu sistema,
– da upravljaju interakcijom među različitim
korisnicima,
– da omoguće da se više programa izvršava
istovremeno,
– da multipleksiraju i zaštite hardverske resurse,
poput U/I uređaja itd.

• Moderni sistemi treba da pruže skup zajedničkih


usluga kao što je
– fajl sistem,
– sistem prozora ili
– sistem biblioteka koje su svima potrebne.

Boris Damjanović P 1.92


Mehanizmi i politike

• Dodavanje ovolikog stepena kompleksnosti može


– izgledati problematično kada je u pitanju
– neki uređaj koji treba da izvršava samo jednu
aplikaciju.

• Međutim, sva zaštita koju operativni sistem
– pruža drugim aplikacijama
– potrebna je i kada se samo jedna aplikacija nalazi u
sistemu.

Boris Damjanović P 1.93


Mehanizmi i politike

• Bez postojanja operativnog sistema


– svi navedeni koncepti se gube.

• U slučaju neke greške u aplikaciji,


– kada postoji operativni sistem,
– neće biti zaključan cijeli sistem,
– već ćemo imati mogućnost da dobijemo neku debug
informaciju i
– da veoma brzo ponovo pokrenemo sistem.

Boris Damjanović P 1.94


Mehanizmi i politike

• U slučaju kada se više aplikacija istovremeno izvršava na


jednom računarskom sistemu,
– važna mogućnost koju nam pruža operativni sistem je da
je on u stanju
– da zaštiti aplikacije od međusobnog uticaja (da jedna ne
sruši drugu)
– te da zaštiti sebe od aplikacija.

• Znači, cilj je zaštiti korisničke programe od mogućnosti


– da sruše jedan drugog i
– da sruše operativni sistem.

• Za rješavanje ovog problema


– možemo koristiti mehanizme i politike.

Boris Damjanović P 1.95


Mehanizmi i politike

• Mehanizmi pomoću kojih se to može postići jesu


– prevođenje adresa (address translation)
– a drugi je dualni režim rada (dual mode operation).

• Jednostavna politika pomoću koje se može


poboljšati zaštita je
– da se primjeni pravilo da programima (procesima)
– nije dozvoljeno da očitavaju niti upisuju podatke u
memoriju
» koja pripada drugim programima i
» koja pripada operativnom sistemu.

Boris Damjanović P 1.96


Prevođenje adresa (address translation)

• Prevođenje adresa (address translation).


• Adresni prostor koji pripada nekom programu
– je skup adresa iz kojih taj program
– očitava vrijednosti i u koji on upisuje vrijednosti.

• Kernel ima svoj adresni prostor,


– a svaki korisnički program ima svoj adresni prostor.

Boris Damjanović P 1.97


Prevođenje adresa (address translation)

• U postupku prevođenja adresa


– Uzimaju se (fiktivne) adrese u koje navedeni
program piše i iz kojih čita
– pa se one potom prevode u stvarne fizičke adrese.

• Ovo prevođenje se često izvodi hardverski


– pomoću kontrolera koji se naziva MMU (Memory
Management Unit).

Boris Damjanović P 1.98


Prevođenje adresa (address translation)

• Na slici je prikazano izvršenje


• dva programa Prog1, i Prog2, koji imaju vlastite adresne
prostore.
• Prog1 ima vlastiti adresni prostor
– koji MMU (Memory Management Unit)
– prevodi u (fizičke) lokacije na RAM memorijskom čipu.

Boris Damjanović P 1.99


Prevođenje adresa (address translation)

• Program Prog2 takođe ima vlastiti adresni prostor


– koji MMU
– prevodi u (fizičke) lokacije na RAM memorijskom
čipu.
• Zahvaljujući procesu prevođenja, koji obavlja
MMU,
– ova dva prostora se ne preklapaju.

Boris Damjanović P 1.100


Prevođenje adresa (address translation)

• Na ovaj način je spriječeno da


– program Prog1 prepiše prostor koji pripada programu
Prog2 i obrnuto.

• Ovaj mehanizam prikazuje princip po kojem se


– hardverski sklopovi uključuju u strukturu
operativnog sistema.

Boris Damjanović P 1.101


Dualni režim rada (Dual Mode Operation)

• Translaciona mapa se često naziva


– page table (tabela stranica)
– a nalazi se u operativnoj (RAM) memoriji.

• Osnovni problem koji se pri prevođenju adresa


može javiti jeste da
– neki program možda može da
– prepiše i poremeti svoju ili tuđu translacionu mapu.

• Da se ovo ne bi desilo, potreban nam je drugi


mehanizam
– koji se naziva dual mode operation.

Boris Damjanović P 1.102


Dualni režim rada (Dual Mode Operation)

• Većina hardvera koja danas postoji na tržištu omogućava rad


u
– najmanje dva načina rada (modes of operation). Postoje
» mod jezgra (mod kernela) i
» korisnički mod.

• Mod jezgra je zaštićeni mod u kom se izvršava


• samo kernel operativnog sistema i
– za koji važe posebna pravila i
• korisnički mod u kom se
– izvršavaju normalni programi.
• Kod ovakvih sistema, hardveru je dodat najmanje jedan bit
(mode bit),
– koji pokazuje trenutni režim rada:
– mod jezgra (0) ili
– mod korisničkog procesa (1).

Boris Damjanović P 1.103

You might also like