You are on page 1of 4

©ta je operativni sistem?

Generalno, ne postoji kompletna i adekvatna definicija operativnih sistema. Lakąe je


definisati operativne sisteme po onome ąto oni rade, nego po onome ąto oni jesu.
Postoji nekoliko različitih pogleda na operativne sisteme, koji su se razvijali uporedo
sa razvojem istih, u kojima je počesto prisutna analogija sa nekim generalnim
sistemima kao naprimjer u samom druątvu. Operativni sistem moľemo uporediti sa
vladom. Komponente računarskog sistema su hardware, software, i podaci, a
operativni sistem osigurava sredstva za pravilno koriątenje navedenih komponenti.
Poput vlade operativni sistemi ne izvrąavaju operacije radi sebe samih, nego
jednostavno osiguravaju okruľenje u kojem drugi programi mogu obavljati koristan
posao. Operativni sistem moľemo vidjeti i kao resource allocator (raspoređivač
resursa), koji se u računarskom sistemu ponaąa kao menadľer kompjuterskih
resursa kao ąto su: CPU time ili ciklusi na procesoru, memorija, ulazno-izlazni uređaji
itd., koje operativni sistem dodjeljuje specifičnim programima i korisnica kako bi oni
obavili «koristan» posao. Postoji naravno joą mnogo različitih pogleda i
intuitivnih definicija operativnih sistema, ali ona koja se najčeąće koristi u
kompjuterskim naukama kaľe da je operativni sistem jedan program koji se cijelo
vrijeme izvrąava na kompjuteru, poznatiji pod nazivom kernel, s tim da se svi ostali
dijelovi softvera posmatraju kao aplikativni programi

Svrha operativnih sistema

Svrha operativnih sistema je da osigura okruľenje u kojima korisnici mogu izvrąavati


svoje programe.Svrha kao opątiji pojam se sastoji iz ciljeva koji imaju precizniju
definiciju. Primarni cilj operativnog sistema jeste da računar učini prikladnim i
jednostavnim za upotrebu. A sekundarni cilj je da koristi hardware na ąto efikasniji
način. Ova dva cilja prikladnost i efikasnost su često međusobno suprotstavljena.U
proąlosti se veća paľnja poklanjala efikasnosti negoli prikladnosti i komforu samog
koriątenja računara, da bi se kasnije počelo viąe paľnje poklanjati samom korisniku
računara.

Rani sistemi (eng. Bare Machines)

Rani sistemi (eng. Bare Machines)


Rani sistemi su bili fizički jako velike maąine koje su se pokretale sa konzole.
Programer, koji je također bio i operator računarskog sistema, podnosio je čitav teret
upravljanja računarom. Operativni sistem nije postojao. Program se prvo unosio
ručno u memoriju, pomoću binarnih prekidača, papirnih traka ili neąto kasnije,
buąenih kartica. Neophodno je bilo prijaviti vrijeme na računarskom sistemu
unaprijed. Ukoliko bi se desilo da je korisnik zavrąio svoj posao na računarskom
sistemu, prije isteka prijavljenog vremena, ostatak vremena se nije mogao iskoristiti,
a ukoliko im je trebalo viąe vremena morali su se ponovo prijavljivati. Nakon ąto se
program loadovao u memoriju na mukotrpan način dugotrajnog pritiskanja prekidača
ili stalnih izmjena papirnih traka, tada bi se pomoću odgovarajućih dugmadi odredila
početna adresa i započelo bi se sa izvrąavanjem programa. Kako se program
izvrąavao, programer odnosno operator je mogao monitorisati izvrąavanje pomoću
izlaznih lampica na konzoli. Ukoliko bi se desila greąka, programer je mogao
zaustaviti izvrąavanje programa, ispitati sadrľaj memorije i registara i debugirati tj.
ispraviti greąku direktno sa konzole. Rezultat izvrąavanja programa se ątampao ili
punchovao(poseban način zapisivanja podataka buąenjem) na papirne trake ili
kartice.

Kako je vrijeme prolazilo, dodatni softver i hardver se razvijao kako bi se olakąalo


gore navedeno mukotrpno i dugotrajno koriątenje računarskog sistema. Ulazi u
sistem su postali efikasniji:čitači kartica (eng. card readers), uređaji za trake (eng.
tape drives), magnetne trake, također uporedo sa ulazima, razvijali su se i
izlazi:linijski ątampači (eng. line printers), uređaji za trake (eng. tape drives),
buąene kartice (eng. card punches), magnetne trake. Postojale su i upravljačke
kartice, koje su definisale način koriątenja hardvera od strane programa. Sa
softverske strane razvijali su se asembleri, loaderi i linkeri, a sve s ciljem da se
olakąa posao programera. Također su razvijene i biblioteke pojedinih funkcija. To je
omogućilo da se gotove funkcije mogu kopirati u novi program, bez da se ponovo
piąu, ąto je znatno skratilo vrijeme programiranja.

Posebno značajne funkcije ili rutine bile su one koje su izvrąavale ulazno/izlazne
operacije (čitanje i pisanje sa uređaja u memoriju i obratno). Svaki novi ulazno-
izlazni uređaj imao je svoje specifične karakteristike i zahtjevao je posebno
programiranje. Tada se doąlo na ideju da se za svaki uređaj piąu posebne sabrutine,
poznatije kao device driveri , u danaąnje vrijeme jako često koriąten pojam.Glavna
prednost ovih drajvera bila je u tome ąto su znali za pojedini uređaj način koriątenja
bafera, flegova, registara, kontrolnih bita i statusnih bita, drugim riječima omogućili
su vrlo jednostavnu upotrebu određenih uređaja. Svaki tip uređaja imao je svoj
vlastiti drajver. Naprimjer, jednostavan zadatak čitanja karaktera sa uređaja za
čitanje papirnih traka (eng. paper-tape reader), uključivao je veoma sloľen niz
specifičnih operacija. Radije nego da se neophodni kod piąe svaki put, prilikom
obavljanja navedenog zadatka čitanja, drajver se jednostavno koristio iz biblioteke
gotovih sabrutina.

Kasnije,pojavom Fortrana, Cobola i drugih programskih jezika, znatno je olakąan


programerov posao, ali istovremeno operacije na računarskom sistemu su se
usloľnjavale. Evo jednog ilustrativnog primjera o pripremi fortranovog programa za
izvrąavanje: Dakle, da bi se pripremio program u Fortranu za izvrąavanje, programer
je prvo trebao loadovati Fortranov kompajler u računar. Inače, kompajler se čuvao
na magnetnim trakama, tako da je bilo potrebno prethodno namontirati
odgovarajuću traku na uređaj za trake (eng. tape drive). Program se čitao preko
čitača kartica, a potom se zapisivao na drugu traku. Fortranov kompajler je davao
tzv. assembly-language output kojeg je bilo potrebno asemblirati. Zbog toga je bilo
neophodno namontirati sljedeću traku koja je sadrľavala asembler. Izlaz iz asemblera
je trebalo linkovati sa odgovarajućim bibliotečkim rutinama za podrąku. Konačno,
binarna objektna forma (razumljiva hardveru) programa bivala je spremna za
izvrąavanje. Naravno ona bi se loadovala u memoriju i debagirala sa konzole kako je
to navedeno ranije.

Ono ąto se da zaključiti iz navedenog primjera jeste činjenica da se dosta vremena


troąilo u tzv. set-up fazi izvrąavanja programa, dakle u fazi pripreme za izvrąavanje
programa.

Moľemo također pobrojati faze neophodne za izvrąavanje programa:

1.loadovanje kompajlera
2.pokretanje kompajlera
3.unloadovanje kompajlera iz memorije
4.loadovanje asemblera
5.pokretanje asemblera
6.unloadovanje asemblera
7.loadovanje objektnog programa
8.pokretanje objektnog programa
Ukoliko bi se desila greąka u bilo kojoj od ovih faza, sve se moralo ponovo raditi
ispočetka. Također svaka od ovih faza, podrazumijevala je i montiranja magnetnih
traka,papirnih traka i buąenih kartica. Dakle, glavni problem predstavljalo je set-up
vrijeme, jer u trenutku dok su se trake montirale i čitale ili dok je programer
izvrąavao operacije sa konzole, centralna procesorska jedinica je bila besposlena.
Treba napomenuti i činjenicu da je u vrijeme ranih računara, računarsko vrijeme bilo
izuzetno cijenjeno. Bilo je vrlo malo dostupnih računara koji su koątali i po nekoliko
miliona dolara. Također, trebalo je uzeti i troąkove električne energije, hlađenja,
programiranja itd. Upravo navedene činjenice uzrokovale su da se poboljąanje
iskoriątenosti vremena dobije upoąljavanjem profesionalnog operatera, koji je bio
vjeąt u rukovanju sa različitim karticama i vrijeme se nije gubilo između poslova.
Naravno operater nije mogao debagirati program, jer on nije razumio isti. Međutim,
bez obzira na to, uvođenjem profesionalnog operatera, programeru je skinut teret
zamornih i za njegov posao beskorisnih poslova montiranja, mijenjanja kartica i
slično. Druga uąteda vremena postignuta je reduciranjem set-up vremena tako ąto
su poslovi sa sličnim potebama bili grupisani i bivali izvrąavani u računarskom
sistemu kao cjelina (eng. batch). Naprimjer, pretpostavimo da je operater dobio
jedan fortranski program, jedan cobolski program, pa opet jedan fortranski program.
Ako ih on pokreće tim redoslijedom onda će biti neophodno troąiti set-up vrijeme za
Fortran, potom za Cobol, pa opet Fortran. Ukoliko bi on pokrenuo dva Fortran
programa u vidu batcha, onda bi se utroąilo jedno set-up vrijeme manje od
prethodnog slučaja, jer je za batch potrebno samo jedno set-up vrijeme.

Multiprogramirani sistemi (eng. Multiprogrammed Batched


Systems)

Multiprogramirani sistemi (eng. Multiprogrammed Batched Systems)


(1960e do danas)

Spooling sistemi su imali nedostatak u činjenici da korisnik nije mogao postići


maksimalnu iskoriątenost CPU-a ili U/I uređaja. Tada se doąlo na ideju da bi
operativni sistem umjesto jednog programa u memoriji trebao omogućiti
istovremeno smjeątanje nekoliko programa. Upravo ova činjenica imala je veliki, a
moľda i presudan značaj za razvoj savremenih operativnih sistetema, jer je
omogućila multiprogramiranje (istovremeno izvrąavanje nekoliko različitih poslova) u
pravom smislu te riječi. U multiprogramiranim sistemima, opeativni sistemi imaju
jednostavnu ulogu da prebacuju kontrolu sa jednog joba na drugi. Kada je potrebno
da jedan job čeka na neki resurs ili neku operaciju, CPU prebaci kontrolu na drugi
job. Bitno je naglasiti da je multiprogramiranje prva instanca gdje operativni sistem
mora donositi odluku za korisnika.

Multiprogramirane operativne sisteme moľemo uprediti sa poslom advokata. Advokat


ima nekoliko klijenata kojima pruľa svoje usluge. Dok jedan slučaj čeka da dođe na
sud, advokat moľe da zastupa drugi slučaj aktivno na sudu. Za to vrijeme prvi klijent
moľe sređivati papirologiju i sl.

Kod multiprogramiranih operativnih sistema se susreću dva nova pojma:

1.job scheduling- ąto bi se moglo prevesti kao raspoređivanje poslova


2.CPU scheduling- podrazumijeva dodjeljivanje procesora po određenom pravilu
različitim poslovima, drugim riječima znači raspoređivanje procesora
Prvi pojam, job scheduling susrećemo u situaciji kada je potrebno dovesti nekoliko
poslova koji se nalaze na nekom rezervnom skladiątu, a koje se nazava job pool, u
glavnu memoriju koja nije dovoljna da prihvati sve poslove odjednom. Tada
operativni sistem treba odlučiti koje će poslove dovesti u memoriji.

Drugi pojam se odnosi na situaciju kada su već određeni poslovi dovedeni u


memoriju i čekaju na izvrąenje. Tada CPU treba odlučiti koje poslove da usluľi, a da
se sačuva ravnopravnost u izvrąavanju različitih poslova.

You might also like