Operativni sistemi – Osnovni koncepti

Operativni sistemi – Osnovni koncepti

Računarstvo se razvija velikom brzinom, ali su osnovni_principi funkcionisanja zajednički za sve generacije racunarskih sistema.

Savremeni računari se sastoje od jednog ili više procesora, memorije, većeg broja ulazno-izlaznih uređaja, komunikacione opreme itd.

Međutim, da bi ovaj hardver imao upotrebnu vrednost potreban je softver koji ce ga učiniti upotrebljivim za korisnike razlicitih profila.

Osnovni zadaci operativnih sistema su da omoguće što efikasniju realizaciju sledećih aktivnosti:

  • Upravljanje procesima;

  • Upravljanje memorijom;

  • Upravljanje ulazno-izlaznim uređajima;

  • Upravljanje podacima;

  • Upravljanje mrežama.


Upravljanje procesima, odnosno programima u izvršavanju, podrazumeva njihovo kreiranje, izvršavanje, dodeljivanje resursa procesima, sinhronizaciju, donošenje odluka o tome koji proces ce imati priliku da se izvršava na procesoru u određenom trenutku itd.

Upravljanje memorijom se odnosi na raspoređivanje procesa u okviru radne memorije, a upravljanje ulazno-izlaznim uredajima na kontrolu i transfer podataka između uređaja i ostatka sistema.

Upravljanje podacima podrazumeva čuvanje podataka, vođenje evidencije o njima, manipulaciju sa njima itd.

Poslednja funkcija i danas neizostavni deo operativnih sistema je upravijanje mrežama koje podrazumeva umrežavanje i komunikaciju između računara.

Operativni sistemi predstavijaju staru oblast računarstva koja se razvija uporedo sa napretkom računara. Kada su osnovni zadaci operativnih sistema u pitanju, najveća razlika u odnosu na prve operativne sisteme je u _upravljanju mrežama. Naime, računarske mreže nisu postojale u današnjem obliku u trenutku začetka prvih generacija operativnih sistema tako da rad sa njima nije bio jedan od prioriteta.


Funkcije jezgra operativnog sistema

Jezgro (kernel) je deo operativnog sistema u koji su smeštene najvažnije funkcije koje obezbeđuju osnovne servise operativnog sistema. Ono je odgovorno za funkcionisanje sistema i ima zadatak da upravlja hardverskim i softverskim resursima na najnižem nivou.

To je deo  softvera koji se prvi učita pri pokretanju računarskog sistema i ostaje u njoj do završetka rada odnosno isključivanja sistema.

Jezgro se obično nalazi u posebnom delu radne memorije i stalno je aktivno. To je srce operativnog sistema i najniži je sloj u hijerarhiji računarskog sistema koji nije hardverski (ili apstrakcija hardvera). U njemu su definisana pravila i dozvole kojima se reguliše funkcionisanje celokupnog sistema. U sistemu se, osim jezgra, mogu izvršavati aplikativni i sistemski programi.

Sistemski programi ne moraju biti deo jezgra operativnog sistema. 

 

Sistemski pozivi

Usluge koje operativni sistem moze da pruži aplikativnim programima ostvaruju se uz pomoć sistemskih poziva. Programi uz pomoć sistemskih poziva komuniciraju sa jezgrom i pomoću njega dobijaju mogućnost da izvrše osetljive operacije u sistemu.

Praktično, sistemski pozivi su skup funkcija koji predstavlja interfejs ka operativnom sistemu. Na primer, aplikativni program može pristupiti hardveru (hard disku, štampaču itd.) ili uraditi neku operaciju sa procesima jedino korišćenjem odgovarajućeg sistemskog poziva (slika 1.3.). Sistemski pozivi su implementirani tako da dozvole samo operacije koje ne mogu biti štetne po računarski sistem.

Sistemskim pozivom se jasno definiše koje su dozvoljene operacije kada je odgovarajuća usluga operativnog sistema u pitanju. Na ovakav način se pristup hardveru štiti od potencijalno štetnih operacija korisnika.

Procesori savremenih računarskih sistema imaju mogućnost rada u bar dva različita režima rada: korisničkom (user mod) i sistemskom (supervisor, kernel mod). U sistemskom režimu moguće je izvršiti sve instrukcije, dok je broj instrukcija koje je dozvoljeno izvršiti u korisničkom režimu redukovan. Naime, instrukcije za osetljive operacije poput pristupa ulazno-izlaznim uređajima, zaštićenim delovima memorije itd. moguće je izvršiti samo u sistemskom režimu rada procesora. Na slici 1.4. prikazan je primer koji ilustruje poziv funkcije za čitanje (read) iz C biblioteke koja se sistemskim pozivom (sys_read) iz sistemskog moda obraća hardveru.

Aplikativni programi se veći deo vremena izvršavaju u_ korisničkom režimu, dok je sistemski režim predviđen za posebno osetljive operacije koje izvodi operativni sistem.

Pri korišćenju sistemskog poziva prelazi se iz korisničkog u sistemski režim i dalju kontrolu preuzima operativni sistem. Ključni deo operativnog sistema koji reaguje u ovakvim situacijama je jezgro.

Sistemski pozivi koriste jezgro da bi omogućili različite servise operativnog sistema. Svi programi, često uključujuci i sistemske, funkcionišu na nivou iznad jezgra u korisničkom režimu rada. Sistemske aktivnosti, koje se pokreću sistemskim pozivima poput pristupa hardveru, obavljaju se na nivou jezgra, odnosno u sistemskom režimu rada. Zbog osetljivosti poslova kojima se jezgro bavi, ono se obično učitava u poseban, zaštićeni deo memorije i time čuva od neželjenih promena.

Pri dizajniranju operativnih sistema često se teži da se više aktivnosti odvija u korisničkom režimu umesto u sistemskom jer se na taj način povećava stabilnost sistema. U tom slučaju, eventualne greške pri izvršavanju programa ili problemi uglavnom ne mogu da ugroze funkcionisanje sistema.

Kada aplikativni programi izvrše sistemski poziv, parametri sistemskog poziva se postave na predviđene lokacije u memoriji. Zatim, menja se režim rada u sistemski u kojem su, za razliku od korisničkog režima, dozvoljene sve operacije koje procesor može da uradi (slika 1.5.). Tada jezgro preuzima kontrolu i na osnovu parametara sistemskog poziva izvršava željenu operaciju. Po završetku operacije režim rada se ponovo prebacuje u korisnički, a rezultati se vraćaju programu koji je izvršio sistemski poziv.

Neki procesori podržavaju više različitih režima rada koji se mogu iskoristiti pri dizajniranju operativnih sistema. U situacijama kada procesori ne podržavaju dovoljno režima, oni se mogu realizovati na nivou operativnih sistema.

Korisničko okruzenje

Mnogi korisnici operativni sistem doživljavaju kroz korisničko okruženje.

Ono ima zadatak da olakša korišćenje ostalih delova operativnog sistema, a i celokupnog računarskog sistema. Razvoj korisničkih okruženja pratio je razvoj računara jer su poboljšanja karakteristika računarskih sistema kao i povećavanja njihove kompleksnosti obično povlačila i zahteve za olakšavanje njihovog korišćenja.

Korisnička okruženja se mogu podeliti na tekstualna i grafička. Međutim, pošto se uz pomoć karaktera mogu improvizovati grafički elementi u okviru ekrana, ispravnija podela bi bila na linijska i ekranska.

Pod linijskim korisničkim okruženjima podrazumevaju se konzole, terminali, komandne linije itd. koje omogućavaju da se operativnim sistemom upravlja kucanjem tekstualnih komandi — linija teksta. Ovakva okruženja su se među prvima pojavila u računarstvu.

Komandni interpreter je najvažniji deo linijskog korisničkog okruženja i njegova uloga je da naredbe i podatke koje korisnik unese u tekstualnom obliku prepozna i naloži operativnom sistemu izvršavanje odgovarajucih operacija (slika 1.6.).

Za razliku od linijskih, ekranska korisnička okruzenja pružaju mogućnost da se operativnim sistemom upravlja korišćenjem cele povrsine ekrana (slika 1.7.). Osim uz pomoć tastature, komande i manipulacije sa podacima se mogu izvoditi uz pomoć miša i sličnih ulaznih uređaja. U poslednje vreme veoma su popularni korisnički interfejsi koji omogućavaju da se komande zadaju dodirima prstiju po ekranima osetljivim na dodir.

Radna površina je osnovni deo ekranskog korisničkog okruženja na kojoj su aplikacije i podaci predstavljeni vizuelnim elementima. Ovi elementi na različite načine reaguju na komande koje se zadaju uz pomoć miša, tastature itd.

Savremeni operativni sistemi obično korisnicima pružaju mogućnost da koriste obe vrste okruženja (slika 1.8.).

Drajveri

Ulazno-izlazni uređaji imaju svoje kontrolere koji se koriste pri komunikaciji sa ostalim delovima sistema. Sa druge (softverske) strane nalaze se drajveri (drivers — upravljački programi) koji se nadograđuju na kontrolere i omogućavaju komunikaciju, odnosno upravijanje ulazno izlaznim uređajima. Oni se programiraju tako da za različite tipove iste vrste uredaja (štampaca, hard diskova, tastatura itd.) definišu jedinstven skup dozvoljenih instrukcija. Različiti uređaji mogu zahtevati posebne naredbe ili parametre za izvršavanje, a zadatak drajvera je da apstrahuju ove razlike i naprave uniformni interfejs. Na taj način se rad sa ulazno izlaznim uređajima dosta olakšava jer se izbegava pisanje posebnih programa za svaki tip uređaja, već se jasno definisanim skupom funkcija omogućava pisanje univerzalnih programa za uređaje iste klase. Na slici 1.9. ilustrovana je pozicija drajvera u računarskom sistemu.

Drajveri su detaljno kasnije obrađeni.