121
SADRAJ: UVOD .................................................................................................................................... 1 1. UVOD U OPERATIVNE SISTEME .................................................................................... 4 1.1 TA JE OPERATIVNI SISTEM ............................................................................... 5 1.2 ZADATAK OPERATIVNOG SISTEMA.................................................................. 6 1.3 POJAM FAJLA-DATOTEKE.................................................................................. 10 1.4 POJAM PROCESA .................................................................................................. 11 1.5 STRUKTURA OPERATIVNOG SISTEMA ........................................................... 13 1.6 PODJELA OPERATIVNIH SISTEMA PREMA STRUKTURI ............................. 15 2. SLOJEVI OPERATIVNOG SISTEMA............................................................................... 20 2.1 SLOJ ZA UPRAVLJANJE PROCESIMA ............................................................... 20 2.2 SISTEMSKI PROCESI ............................................................................................ 28 2.3 SLOJ ZA UPRAVLJANJE FAJLOVIMA ............................................................... 31 2.4 SLOJ ZA UPRAVLJANJE RADNOM MEMORIJOM .......................................... 50 2.5 SLOJ ZA UPRAVLJANJE KONTROLERIMA I/O URE AJA ............................ 61 2.6 SLOJ ZA UPRAVLJANJE PROCESOROM........................................................... 68 3. MRTVE PETLJE ................................................................................................................. 70 4. KOMUNIKACIJA SA OPERATIVNIM SISTEMOM ....................................................... 72 4.1 PROGRAMSKI NIVO KOMUNIKACIJE SA OPERATIVNIM SISTEMOM...... 72 4.2 INTERAKTIVNI NIVO KOMUNIKACIJE SA OPERATIVNIM SISTEMOM ... 72 5. KLASIFIKACIJA OPERATIVNIH SISTEMA .................................................................. 78 5.1 OPERATIVNI SISTEMI REALNOG VREMENA ................................................. 78 5.2 OPERATIVNI SISTEMI ZA INTELIGENTNE KARTICE ................................... 79 5.3 MULTIPROCESORSKI OPERATIVNI SISTEMI ................................................. 79 5.4 DISTRIBUIRANI OPERATIVNI SISTEMI ........................................................... 79 5.5 MRENI OPERATIVNI SISTEMI.......................................................................... 87 DODATAK 1: Windows XP................................................................................................ 88 DODATAK 1: Linux ......................................................................................................... 108 LITERATURA ................................................................................................................... 120

Operativni_Sistemi

Embed Size (px)

Citation preview

Page 1: Operativni_Sistemi

SADR�AJ: UVOD .................................................................................................................................... 1 1. UVOD U OPERATIVNE SISTEME .................................................................................... 4 1.1 �TA JE OPERATIVNI SISTEM ............................................................................... 5 1.2 ZADATAK OPERATIVNOG SISTEMA.................................................................. 6 1.3 POJAM FAJLA-DATOTEKE.................................................................................. 10 1.4 POJAM PROCESA .................................................................................................. 11 1.5 STRUKTURA OPERATIVNOG SISTEMA........................................................... 13 1.6 PODJELA OPERATIVNIH SISTEMA PREMA STRUKTURI............................. 15 2. SLOJEVI OPERATIVNOG SISTEMA............................................................................... 20 2.1 SLOJ ZA UPRAVLJANJE PROCESIMA............................................................... 20 2.2 SISTEMSKI PROCESI ............................................................................................ 28 2.3 SLOJ ZA UPRAVLJANJE FAJLOVIMA............................................................... 31 2.4 SLOJ ZA UPRAVLJANJE RADNOM MEMORIJOM .......................................... 50 2.5 SLOJ ZA UPRAVLJANJE KONTROLERIMA I/O URE AJA ............................ 61 2.6 SLOJ ZA UPRAVLJANJE PROCESOROM........................................................... 68 3. MRTVE PETLJE ................................................................................................................. 70 4. KOMUNIKACIJA SA OPERATIVNIM SISTEMOM....................................................... 72 4.1 PROGRAMSKI NIVO KOMUNIKACIJE SA OPERATIVNIM SISTEMOM...... 72 4.2 INTERAKTIVNI NIVO KOMUNIKACIJE SA OPERATIVNIM SISTEMOM ... 72 5. KLASIFIKACIJA OPERATIVNIH SISTEMA .................................................................. 78 5.1 OPERATIVNI SISTEMI REALNOG VREMENA................................................. 78 5.2 OPERATIVNI SISTEMI ZA INTELIGENTNE KARTICE ................................... 79 5.3 MULTIPROCESORSKI OPERATIVNI SISTEMI ................................................. 79 5.4 DISTRIBUIRANI OPERATIVNI SISTEMI ........................................................... 79 5.5 MRE�NI OPERATIVNI SISTEMI.......................................................................... 87 DODATAK 1: Windows XP................................................................................................ 88 DODATAK 1: Linux ......................................................................................................... 108 LITERATURA................................................................................................................... 120

Page 2: Operativni_Sistemi

Operativni sistemi ______________________________________________________________________________

_____________________________________________________________________________________________________________ 1

UVOD

Istorija ovje anstva je istorija neprekidnog tehnolo�kog napretka: od to ka do satelita i dalje.

Ljudi pronalaze na ine za pobolj�anje svakodnevnog �ivota, proizvodnje, komunikacije, putovanja itd. Odre eni periodi u istoriji su obilje�eni nagla�enim razvojem u nekoj tehnolo�koj oblasti. Tako je period u kome �ivimo obilje�en informatikom i komunikacijama.

Kroz vjekove ovjek je smi�ljao sredstva da sebi olak�a (automatuzuje) proces ra unanja. Sredinom pro�log vijeka (1945. god.) je konstruisan prvi ra unar (computer). To je bilo ogroman elektronski ure aj. Dana�nji ra unari su mnogo manji, bolji i jeftiniji. Oni su postali nezaobilazni u poslovnom, ali i u privatnom �ivotu. Ra unar je ure aj koji vr�i obradu informacija. Zato se informacionim tehnologijama (information tehnologies) nazivaju tehnologije koje se koriste za bilo koji oblik ra unarske (automatske) obrade informacija (podataka).

Pomo u ra unara informacije (podaci) mogu da se: - obra uju (ra unanje, crtanje, obrada teksta, kreiranje zvuka i pokretne slike, ...), - pamte (trajno ili privremeno ) i - razmjenjuju (bez obzira na udaljenost).

Da bi razmjenjivali informacije ljudi moraju da komunicijaju. Pronalaskom telefona (1876. god.) prenos informacija se automatizovao i ubrzano razvijao. Danas je prenos infomacija skoro trenutan u okviru planete zahvaljuju i savremenim sredstvima komunikacije: telefonu, telefaksu, mobilnom telefonu, radiju, televiziji i ra unarskim mre�ama. Tehnologije koje se koriste za prenos informacija u raznim oblicima nazivaju se komunikacionim tehnologijama (communication tehnologies).

Infromaciono-komunikacione tehnologije (Information Communication Tehnologies) ili ICT je skup tehnologija koje se koriste pri automatskoj obradi informacija i njihovom prenosu nekim komunikacionim sredstvom.

Ra unar je ure aj (hardware) koji obra uje, pamti ili razmjenjuje informacije. Na in na koji

to radi je odre en u programu. Program (software) je niz komandi koje odre uju �ta treba uraditi sa podacima. Zna i, dva neodvojiva dijela ra unara su::

- hardver � ure aj (hardware ) i - softver � program (software).

Po�to hardver ne mo�e da radi bez softvera, a softver nema smisla bez hardvera jasno je da oni ine ra unar. Na primjer, ako zamislimo da je ljudsko bi e ra unar, onda bi hardver predstavljale elije (tkiva, organi, ...), a misli i ideje bi predstavljali softver.

Harderom treba upravljati, tj. na neki na in treba �natjerati� procesor da sabere dva broja, disk da zapamti odre enu sliku, monitor da prika�e podatke kako treba, pointer da prati kretanje mi�a, �tampa da od�tampa �eljene podatek itd. To je posao softvera ili programa. Dakle, ispravan hardver ne radi ako nema softvera. Tip softvera koji upravlja hardverom zove se sistemski softver (jer upravlja sistemom) ili operativni sistem. Softver ne slu�i samo da upravlja hardverom nego i za pru�anje usluga korisniku ( ovjeku). Tako su za razne poslove kreirani razli iti programi. Ako �elite da otkucate neki tekst odre eni program vam nudi tu mogu nost. Ako �elite da kreirate neku sliku koristi ete neki drugi

Page 3: Operativni_Sistemi

Operativni sistemi ______________________________________________________________________________

_____________________________________________________________________________________________________________ 2

program. ak i korisnik mo�e napraviti neki svoj program za neku posebnu cvrhu. Ova vrsta softvera koja pru�a razne usluge korisnicima tj. ima konkretnu primjenu (application) u svakodnevnom poslu se zove aplikativni softver (primijenjeni ili upotrebni program). Dakle, softver dijelimo na:

- sistemski (operativni sistem za upravljanje hardverom) i - aplikativni (primjenjivi).

Softver se kreira pomo u nekog programskog jezika. Najpoznatiji programski jezici su: Basic, Pascal, Fortran, C, C++, Java, Delphi, VisualBasic itd. Ve ina dana�njih operativnih sistema je kreirana (�napisana�) u C-u.

Operativni sistem (sistemski softver) je skup programa koji upravljaju harverom, podacima i izvr�avaju naredbe korisnika. Funkcije operativnog sistema su:

- upravljanje procesorom (CPU), - upravljanje memorijom (RAM), - upravljanje I/O ure ajima, - upravljanje podacima i - upravljanje aplikacijama.

Dakle, OS kontroli�e i upravlja ra unarom uz pomo instrukcija korisnika. Ako bi grafi ki prikazali odnos korisnika i ra unara onda bi to izgledalo kao na slici 1. Naime, korisnik radi na nekoj aplikaciji (unosi tekst, slu�a muziku, projektuje, ra una, ...). Aplikacija koristi operativni sistem da bi izvr�ila obradu podataka na hardveru.

Slika 1. Odnos korisnika i djelova ra unara

Raniji OS (MS DOS, UNIX, VMS, ...) su radili u tzv. tekstualnom modu. To zna i da je korisnik kucao tekstualne naredbe koje su uglavnom bile komplikovane. Kori� enje ra unara je bilo dosta neprakti no i te�ko za u enje. To je bio jedan od razloga za�to je malo ljudi tada koristilo ra unare. Poznato je da obrada jedne slike tra�i mnogostruko vi�e ra unarskih resursa od obrade bilo kog teksta. Razvojem hardvera ra unari su imali sve bolje performanse i rad sa grafikom je postajao sve lak�i. To je bio preduslov za pojavu tzv. grafi ki orjentisanih operativnih sistema (Windows, Linux, Mac OS). Ovi OS su uveli pojam pokaziva a (pointer) koji se koristi kao ka�iprst. Pomjeranje ovog pointera se obavlja pomo u mi�a. Ovim pointerom se biraju komande ili sli ice koje se zatim startuju nekim od tastera mi�a. Ova grafi ka veza izme u korisnika i ra unara se naziva GUI (Graphical User Interface). Prednosti pri kori� enju GUI-a su jednostavnost pri radu, intuitivno i brzo u enje. Kori� enje GUI-a li i na sporazumijevanje �rukama�. Dakle, umjesto da se kucaju komplikovane naredbe prosto se prstom pokazuje na njih. To je doporinijelo ogromnom pove anju broja korisnika PC ra unara. Danas ne postoji OS koji nema ili ne razvija GUI.

Page 4: Operativni_Sistemi

Operativni sistemi ______________________________________________________________________________

_____________________________________________________________________________________________________________ 3

Trenutno se na PC ra unarima najvi�e koristi razne verzija Windows operativnog sistema. Razlog za to je lak i dopadljiv na in upotrebe PC ra unara. Koriste i asocijativne sli ice korisnik upravlja ra unarom i koristi njegove mogu nosti. Za takav OS se ka�e da ima grafi ki interfejs (interfejs je veza izme u ne ega). Postoje razne verzije ovog operativnog sistema: Windows 95, Windows 98, Windows ME (Millennium), Windows NT (New Technology), Windows 2000, Windows XP (Experience) i Windows 2003. Kompanija koja proizvodi ovaj OS je ameri ka i zova se Microsoft. Drugi, sve popularniji OS, je Linux. To je jeftin ili besplatan OS kojeg razvijaju programeri �irom svijeta. I on ima grafi ki interfejs i postaje sve prisutniji kod PC ra unara. Njegova osnovna prednost je otvorenos. To zna i da je svaki detalj svih programa Linux OS javan i poznat. Drugim rije ima svako mo�e vidjeti ili mijenjati ovaj OS. Upravo zbog toga se Linux najvi�e koristi u obrazovnim institucijama.

Simboli Windows-a i Linux-a

Aplikativni softver ili prosto aplikacije se koriste za izvr�avanje odre enih poslova na

ra unaru: obrada teksta, tabelarni prora uni, crtanje, obrada slike, obrada zvuka, komponovanje, kreiranje animacija, u enje, zabava itd. Aplikacije su onaj dio ra unara koji krajnji korisnik najvi�e koristi. Aplikacije koriste operativni sistem da bi pristupile hardveru. Zbog toga se aplikacije kreiraju i prilago avaju za razne operativne sisteme. Drugm rije ima, aplikacija izra ena za Windows obi no ne e raditi na PC koji koristi Linux OS. Poznate aplikacije koje se svakodnevno koriste su: za unos i obradu teksta, za tabelarnu obradu podataka, za kreiranje prezentacija, za kreiuranje baza podataka, za kreiranje WEB stranica za itanje WEB stranica, za kreiranje i obradu slike, za kreiranje grafika i crte�a, za obradu zvuka, itd. Sli ne aplikacije postoje za sve OS. Ovo su aplikacije op�te namjene. Pored njih, postoje aplikacije za posebne namjene (bankarsko poslovanje, evidencija gra ana, statistika, finansijko poslovanje, itd).

Korisnici kroz aplikacije koriste funkcije ra unara (obrada, pam enje i prenos informacija). Da bi aplikacije pravilno funkcionisale treba da su prilago ene operativnom sistemu i da koriste njegove prednosti. Dakle, poznavanje operativnog sistema je neophodan preduslov za kreiranje i kori� enje aplikacija. 1. UVOD U OPERATIVNE SISTEME

Page 5: Operativni_Sistemi

Operativni sistemi ______________________________________________________________________________

_____________________________________________________________________________________________________________ 4

Moderni kompjuterski sistemi se sastoje od jednog ili vi�e procesora, memorije, diskova, tastature, displeja i drugih ulazno-izlaznih ure aja, �to predstavlja slo�en sistem (slika 1.1). Pisanje programa koji nadziru ove komponente i pravilno ih koriste je vrlo te�ak posao. Zbog toga razloga kompjuteri poseduju �sloj� softvera, nazvan operativni sistem, iji je posao da upravlja svim ovim ure ajima i da obezbijedi korisni ke programe sa jednostavnijim interfejsom prema hardveru.

Polo�aj operativnog sistema je prikazan na slici 1.2. Na dnu se nalazi hardver, koji se obi no sastoji od 2 ili vi�e nivoa. Najni�i nivo sadr�i fizi ke ure aje koji se sastoje od integrisanih kola, �ica, napajanja i sli no. Slede i nivo je mikroarhitekturni nivo u kome su fizi ki ure aji povezani tako da ine funkcionalne celine, a iznad njega se nalazi ma�inski jezik. Ma�inski jezik sadr�i obi no izme u 50 i 300 instrukcija, uglavnom za pomeranje podataka, aritmeti ke operacije i pore enje vrednosti. Na ovom nivou se ulazno �izlazni ure aji (u daljem tekstu I/O ure aji) kontroli�u upisivanjem odre enih vrednosti u specijalne ure ajne registre. Na primjer, disku se mo�e komandovati da ita upisivanjem vrednosti adrese diska, adrese glavne memorije, broja bajta i smer (upis ili itanje) u njegove registre. U praksi je potrebno jo� dosta parametara, i status koji vra a drajv posle operacije je vrlo kompleksan.

Page 6: Operativni_Sistemi

Operativni sistemi ______________________________________________________________________________

_____________________________________________________________________________________________________________ 5

Slika 1.2. Kompjuterski sistem se sastoji od hardvera, sistemskih programa

i aplikacionih programa Da bi se sakrila ova slo�enost koristi se operativni sistem. On se sastoji od sloja softvera koji (delimi no) prikriva pravu slo�enost hardvera i obezbije uje programeru pogodniji skup instrukcija za rad. Iznad operativnog sistema se nalazi ostatak sistemskog softvera. Tu imamo komandni interpreter (shell), kompajlere, editore i sli ne programe nezavisne od aplikacije. Iako se ovi programi isporu uju zajedno sa operativnim sistemom oni nisu deo operativnog sistema. Operativni sistem je (obi no) onaj deo softvera koji radi u kernel modu ili supervizor modu i koji je hardverom za�ti en od neovla� enog upada korisnika. Kompajleri i editori rade u korisni kom modu. Ako se korisniku ne svi a odre eni kompajler, on ga sam mo�e napisati. S druge strane, korisnik ne mo�e napisati svoj clock interrupt handler jer je on deo operativnog sistema i kao takav je za�ti en hardverom od poku�aja korisnika da ga promene. Kona no, iznad sistemskih programa dolaze aplikacioni programi. To su napisani ili kupljeni programi koji slu�e za re�avanje odre enih problema, kao �to je obrada teksta, rad sa tabelama, in�enjerski prora uni, skladi�tenje informacija u bazama podataka i sli no.

1.1 �TA JE OPERATIVNI SISTEM ? Te�ko je ta no re i �ta je operativni sistem. Deo problema le�i u injenici da operativni sistem obavlja dve, u osnovi razli ite funkcije: pro�irenje ma�ine i upravljanje resursima. Pogledajmo obe funkcije operativnog sistema.

OPERATIVNI SISTEM KAO PRO�IRENA MA�INA

Arhitektura (skup instrukcija, organizacija memorije, I/O i struktura magistrale) ve ine kompjutera na nivou ma�inskog jezika je primitivna i te�ka za programiranje, naro ito za I/O. Ako se kao primjer uzme rad sa flopi diskom vide emo da je za osnovne komande read i write potrebno voditi ra una o velikom broju parametara koji odre uju pojedinosti kao �to su adresa bloka diska koji treba pro itati ili gde treba upisati, broj sektora po stazi, mod snimanja kori� en na fizi kom medijumu, veli ina slobodnog prostora izme u pojedinih sektora i sli no. Mora se voditi ra una o tome da li je motor uklju en ili nije. Ako nije uklju en, onda se mora uklju iti (sa odre enim zaletnim zaka�njenjem) pre nego se podaci mogu zapisati ili pro itati. Uzimaju i sve ovo, a i dosta drugih pojedinosti u obzir, jasno je da prose an programer ne �eli da se previ�e intimizuje sa programiranjem flopi diska (ili hard diska, �to je jednako

Page 7: Operativni_Sistemi

Operativni sistemi ______________________________________________________________________________

_____________________________________________________________________________________________________________ 6

kompleksno i potpuno razli ito). Umjesto toga, ono �to programer �eli je da radi sa jednostavnom apstrakcijom visokog nivoa. U slu aju diskova tipi na apstrakcija je ta da disk sadr�i skup imenovanih fajlova koji se mogu otvoriti, u njih se mo�e upisivati ili iz njih itati, i kona no zatvoriti. Program koji sakriva istinu o hardveru od programera i prezentuje lepu i jednostavnu sliku imenovanih fajlova u koje se mogu upisivati ili iz kojih se mogu itati podaci je operativni sistem. Osim toga, operativni sistem sakriva dosta neprijatnog posla koji se ti e interrupt-a, broja a, rada sa memorijom i drugih pojedinosti ni�eg nivoa. Ovako posmatraju i, uloga operativnog sistema ja da korisniku predstavi pro�irenu ma�inu ili virtuelnu ma�inu koju je dosta lak�e programirati od postoje eg hardvera.

OPERATIVNI SISTEM KAO UPRAVLJA RESURSIMA Moderni kompjuteri se sastoje od procesora, memorija, broja a, diskova, mi�eva, mre�nih interfejsa, �tampa a, kao i dosta drugih ure aja. U slu aju kada vi�e razli itih programa �ele da istovremeno koriste neki od resursa na scenu stupa operativni sistem koji treba da obezbijedi ure enu i kontrolisanu alokaciju procesora, memorija i I/O ure aja izme u tih programa. Ovako posmatraju i, glavni zadatak operativnog sistema je da vodi ra una o tome ko koristi koji resurs, da dozvoli kori� enje odre enog resursa, prati upotrebu istih i da posreduje izme u konfliktnih zahtjeva razli itih korisnika ili programa. Upravljanje resursima uklju uje multipleksiranje (podelu) resursa na dva na ina: u vremenu i u prostoru. Vremensko multipleksiranje se javlja u slu aju kad se razli iti programi smenjuju u kori� enju resursa. Prvo jedan program koristi odre eni resurs, zatim drugi i tako dalje. Operativni sistem odre uje koji je program slede i i koliko dugo e on koristiti resurs. Primjer vremenskog multipleksiranja je deoba �tampa a. Kada se javi vi�e zahtjeva za �tampanje mora se doneti odluka koji se dokument �tampa slede i. Za razliku od vremenskog multipleksiranja, gde se korisnici smenjuju, kod prostornog multipleksiranja svaki korisnik dobija deo resursa. Na primjer, glavna memorija je podeljena izme u nekoliko programa. Pod pretpostavkom da ima dovoljno prostora za vi�e programa efikasnije je dr�ati nekoliko programa u memoriji odjedanput nego davati itavu memoriju jednom programu, naro ito kad multipleksiranje je potreban samo mali deo. Drugi resurs koji je prostorno multipleksiran je hard disk. Tipi an zadatak operativnog sistema je alokacija prostora na disku i vo enje ra una o tome ko koristi koje blokove diska. 1.2 ZADATAK OPERATIVNOG SISTEMA

Operativni sistem je program koji objedinjuje u skladnu celinu raznorodne djelove ra unara i sakriva od korisnika one detalje funkcionisanja ovih delova koji nisu bitni za kori� enje ra unara.Zna i, operativni sistem ima dvostruku ulogu. S jedne strane, on upravlja delovima od kojih se sastoji ra unar (procesor, I/O kontroleri, radna memorija), sa ciljem da oni budu �to celishodnije upotrebljeni. S druge strane, operativni sistem stvara za krajnjeg korisnika ra unara pristupa no radno okru�enje, tako �to pretvara ra unar od ma�ine koja rukuje bitima, bajtima i blokovima u ma�inu koja rukuje datotekama i procesima.

Page 8: Operativni_Sistemi

Operativni sistemi ______________________________________________________________________________

_____________________________________________________________________________________________________________ 7

1.3 POJAM FAJLA � DATOTEKE (FILE)

Za pojam fajla su vezani sadr�aj i atributi. Sadr�aj fjla obrazuju korisni ki podaci. U atribute fajla spada, na primjer, veli ina ili vreme njegovog nastanka. Atributi fajla se uvaju u deskriptoru fajla. Datoteke omogu uju korisnicima da organizuju podatke u skladu sa svojim potrebama.

OZNA AVANJE DATOTEKA

Svaka datoteka poseduje ime koje bira korisnik. Po�eljno je da ime datoteke ukazuje na njen konkretan sadr�aj, ali i na vrstu njenog sadr�aja (radi klasifikacije datoteka po njihovom sadr�aju). Zato su imena datoteka dvodelna, tako da prvi deo imena datoteke ozna ava njen sadr�aj, a drugi deo ozna ava vrstu njenog sadr�aja, odnosno njen tip. Ova dva dela imena datoteke obi no razdvaja ta ka. Tako, na primjer: godina1.txt mo�e da predstavlja ime datoteke, koja sadr�i podatke o studentima prve godine studija. Na to ukazuje prvi deo imena godina1, dok drugi deo imena txt ove datoteke govori da je datoteka tekstualna (da sadr�i samo vidljive ASCII znakove). Upravljanje datotekom obuhvata ne samo upravljanje njenim sadr�ajem, nego i upravljanje njenim imenom. Tako, na primjer, stvaranje datoteke podrazumijeva i zadavanje njenog sadr�aja, ali i zadavanje njenog imena (�to se de�ava u toku editiranja, kompilacije, kopiranja i sli no). Tako e, izmjena datoteke mo�e da obuhvati ne samo izmjenu njenog sadr�aja, nego i izmjenu njenog imena (�to se de�ava, na primjer, u editiranju).

ORGANIZACIJA DATOTEKA (FILE SYSTEM) Datoteke se grupi�u u skupove datoteka. Na primjer, prirodno je da datoteke sa podacima o studentima pojedinih godina studija istog smjera pripadaju jednom skupu datoteka. Skupu datoteka pristaje naziv direktorijum (directory, folder), ako se prihvati gledi�te da skup datoteka sadr�i imena svih datoteka koje su obuhva ene pomenutim skupom. Radi razlikovanja direktorijuma, svaki od njih poseduje ime koje bira korisnik. Za direktorijume su dovoljna jednodjelna imena, jer nema potrebe za klasifikacijom direktorijuma (pogotovo ne po njihovom sadr�aju). Tako, na primjer: smjer mo�e da predstavlja ime direktorijuma, koji obuhvata datoteke sa podacima o studentima svih godina studija istog smjera.

Razvrstavanjem datoteka u direktorijume nastaje hijerarhijska organizacija datoteka, u kojoj su na vi�em nivou hijerarhije direktorijumi, a na ni�em nivou se nalaze datoteke, koje pripadaju pomenutim direktorijumima (odnosno, ija imena su sadr�ana u ovim direktorijumima). Ovakva hijerarhijska organizacija povla i za sobom i hijerarhijsko ozna avanje datoteka. Hijerarhijsku oznaku ili putanju (path name) datoteke obrazuju ime direktorijuma kome datoteka pripada i ime datoteke. Djelove putanje obi no razdvaja znak / (ili znak \). Tako, na primjer:

Page 9: Operativni_Sistemi

Operativni sistemi ______________________________________________________________________________

_____________________________________________________________________________________________________________ 8

smjer1/godina1.txt predstavlja putanju datoteke, koja sadr�i podatke o studentima prve godine studija sa prvog smjera.

Hijerarhijska organizacija datoteka ima vi�e nivoa, kada jedan direktorijum obuhvata, pored datoteka, i druge direktorijume (odnosno sadr�i, pored imena datoteka, i imena drugih direktorijuma). Obuhva eni direktorijumi se nalaze na ni�em nivou hijerarhije. Na primjer, direktorijum fakultet obuhvata direktorijume pojedinih smjera. Na vrhu hijerarhijske organizacije datoteka se nalazi korenski direktorijum (root).

U slu aju vi�e nivoa u hijerarhijskoj organizaciji datoteka, putanju datoteke obrazuju imena direktorijuma sa svih nivoa hijerarhije (navedena u redosledu od najvi�eg nivoa na dole), kao i ime datoteke. Na primjer:

/fakultet/smjer1/godina1.txt predstavlja putanju datoteke godina1.txt, koja pripada direktorijumu smjer1. Ovaj direktorijum pripada direktorijumu fakultet, a on pripada korenskom direktorijumu (koji nema imena). Na prethodno opisani na in se obrazuje i putanja direktorijuma. Tako, na primjer: /fakultet/smjer1 predstavlja putanju direktorijuma smjer1, koji pripada direktorijumu fakultet iz korenskog direktorijuma.

Hijerarhijska organizacija datoteka dozvoljava da postoje datoteke sa istim imenima (odnosno, da postoje direktorijumi sa istim imenima), pod uslovom da pripadaju raznim direktorijumima. Na primjer, na slici 1.3 je prikazana hijerarhijska organizacija datoteka, u kojoj se nalaze datoteke sa istim imenima i direktorijumi sa istim imenima. fakultet1 fakultet2

smjer1 smjer2 smjer1 smjer2

godina1.txt . . . godina1.txt . . .

Slika 1.3 Grafi ka predstava hijerarhijske organizacije fajlova U hijerarhijskoj organizaciji datoteka (prikazanoj na slici 1.3) korijenskom direktorijumu pripadaju direktorijumi fakultet1 i fakultet2. Svaki od njih sadr�i direktorijume smjer1 i smjer2. Pri tome, oba direktorijuma sa imenom smjer1 sadr�e datoteku godina1.txt. Putanje omogu uju razlikovanje istoimenih direktorijuma, odnosno istoimenih datoteka. Tako, putanje: /fakultet1/smjer1 /fakultet2/smjer1

Page 10: Operativni_Sistemi

Operativni sistemi ______________________________________________________________________________

_____________________________________________________________________________________________________________ 9

omogu uju razlikovanje direktorijuma sa imenom smjer1, a putanje: /fakultet1/smjer1/godina1.txt /fakultet2/smjer1/godina1.txt omogu uju razlikovanje datoteka sa imenom godina1.txt.

Zahvaljuju i hijerarhijskoj organizaciji datoteka, mogu e je upravljanje celim direktorijumima, kao �to je, na primjer, kopiranje celog direktorijuma (odnosno kopiranje svih datoteka i direktorijuma, koji mu pripadaju). Navo enje potpune putanje datoteke (odnosno, direktorijuma) je potrebno kad god je mogu nesporazum, zbog datoteka sa istim imenima (odnosno, zbog direktorijuma sa istim imenima). Ali, ako postoji mogu nost odre ivanja nekog direktorijuma kao radnog (working directory), tada se njegova putanja podrazumijeva i ne mora se navoditi. Na primjer, ako se podrazumijeva da je:

/fakultet1/smjer1 radni direktorijum, tada: godina1.txt ozna ava datoteku, koja pripada direktorijumu smjer1 iz direktorijuma fakultet1.

ZA�TITA FAJLOVA

Fajlovi su namjenjeni za trajno uvanje podataka. Za uspe�nu upotrebu podataka neophodna je za�tita fajlova, koja obezbije uje da podaci, sadr�ani u fajlu, ne e biti izmjenjeni bez znanja i saglasnosti njihovog vlasnika, odnosno, koja obezbije uje da podatke, sadr�ane u fajlu jednog korisnika, bez njegove dozvole drugi korisnici ne mogu da koriste. Podaci, sadr�ani u fajlu, ostaju neizmjenjeni, ako se onemogu i pristup fajlu i radi pisanja (radi izmjene njegovog sadr�aja). Tako e, podaci, sadr�ani u datoteci, ne mogu biti kori� eni, ako se onemogu i pristup datoteci, radi itanja (radi preuzimanja njenog sadr�aja). Na ovaj na in uvedeno pravo pisanja i pravo itanja datoteke omogu uju da se za svakog korisnika jednostavno ustanovi koja vrsta upravljanja datotekom mu je dozvoljena, a koja ne. Tako, korisniku, koji ne poseduje pravo pisanja datoteke, nisu dozvoljena upravljanja datotekom, koja izazivaju izmjenu njenog sadr�aja. Ili, korisniku, koji ne poseduje pravo itanja datoteke, nisu dozvoljena upravljanja datotekom, koja zahtjevaju preuzimanje njenog sadr�aja.

Za izvr�ne datoteke uskra ivanje prava itanja je prestrogo, jer spre ava ne samo neovla�teno uzimanje tu eg izvr�nog programa, nego i njegovo izvr�avanje. Zato je uputno, radi izvr�nih datoteka, uvesti posebno pravo izvr�avanja programa, sadr�anih u izvr�nim datotekama. Zahvaljuju i posedovanju ovog prava, korisnik mo�e da pokrene izvr�avanje programa, sadr�anog u izvr�noj datoteci, i onda kada nema pravo njenog itanja.

Pravo itanja, pravo pisanja i pravo izvr�avanja datoteke predstavljaju tri prava pristupa datotekama, na osnovu kojih se za svakog korisnika utvr uje koje vrste upravljanja datotekom su mu dopu�tene. Da se za svaku datoteku ne bi evidentirala prava pristupa za svakog korisika pojedina no, uputno je sve korisnike razvrstati u klase i za svaku od njih vezati pomenua prava pristupa. Iskustvo pokazuje da su dovoljne tri klase korisnika. Jednoj pripada vlasnik datoteke, drugoj njegovi saradnici, a tre oj ostali korisnici. Nakon razvrstavanja korisnika u tri klase,

Page 11: Operativni_Sistemi

Operativni sistemi ______________________________________________________________________________

_____________________________________________________________________________________________________________ 10

evidentiranje prava pristupa datotekama omogu uje matrica za�tite (protection matrix) koja ima tri kolone (po jedna za svaku klasu korisnika) i onoliko redova koliko ima datoteka. U preseku svakog reda i svake kolone matrice za�tite navode se prava pristupa datoteci iz datog reda za korisnike koji pripadaju klasi iz date kolone. Na slici 1.3 je prikazan primjer matrice za�tite.

owner group other

file1 r w x r - x - - x file2 - w x - - x - - x file3 r w - - w - - - - file4 r w x - - - r - -

Slika 1.4 Matrica za�tite

U primjeru matrice za�tite sa slike 1.4 vlasnik (owner) datoteke file1 ima sva prava

pristupa, njegovi saradnici (group) nemaju pravo pisanja, a ostali korisnici (other) imaju samo pravo izvr�avanja (pretpostavka je da je re o izvr�noj datoteci). Ima smisla uskratiti i vlasniku neka prava, na primjer, da ne bi nehotice izmjenio sadr�aj datoteke file2, ili da ne bi poku�ao da izvr�i datoteku koja nije izvr�na (file3). Primijetite i malu nelogi nost za file4.

Za uspeh izlo�enog koncepta za�tite datoteka neophodno je onemogu iti neovla�teno menjanje matrice za�tite. Jedino vlasnik datoteke sme da zadaje i menja prava pristupa (sebi, svojim saradnicima i ostalim korisnicima). Zato je potrebno znati za svaku datoteku ko je njen vlasnik. Tako e, potrebno je i razlikovanje korisnika, da bi se me u njima mogao prepoznati vlasnik datoteke. To se posti�e tako �to svoju aktivnost svaki korisnik zapo inje svojim predstavljanjem. U toku predstavljanja korisnik predo ava svoje ime (username) i navodi dokaz da je on osoba za koju se predstavlja, za �ta je, naj e� e, dovoljna lozinka (pasword). Predo eno ime i navedena lozinka se porede sa spiskom imena i (za njih vezanih) lozinki registrovanih korisnika. Predstavljanje je uspe�no, ako se u spisku imena i lozinki registrovanih korisnika prona u predo eno ime i navedena lozinka.

Predstavljanje korisnika se zasniva na pretpostavci da su njihova imena javna, ali da su im lozinke tajne. Zato je i spisak imena i lozinki registrovanih korisnika tajan, zna i, direktno nepristupa an korisnicima. Jedina dva slu aja, u kojima ima smisla dozvoliti korisnicima posredan pristup ovom spisku, su:

(1) radi njihovog predstavljanja i (2) radi izmjene njihove lozinke.

Za predstavljanje korisnika uvodi se posebna operacija, koja omogu uje samo provjeru da li zadani par ime i lozinka postoji u spisku imena i lozinki registrovanih korisnika. Sli no, za izmjenu lozinki uvodi se posebna operacija, koja omogu uje samo promenu lozinke onome ko zna postoje u lozinku. Sva druga upravljanja spiskom imena i lozinki registrovanih korisnika (kao �to su ubacivanje u ovaj spisak parova imena i lozinki, ili njihovo izbacivanje iz ovog spiska) nalaze se u nadle�nosti poverljive osobe, koja se naziva administrator (superuser. root, admin, ...). Za�tita datoteka potpuno zavisi od odgovornosti i poverljivosti administratora, odnosno od ta nosti pretpostavke da on ne e odavati lozinke, niti ih koristiti, radi pristupa korisni kim datotekama. Zbog prirode njegovog posla, administratora ima smisla potpuno izuzeti iz za�tite datoteka, s tim da on tada svoje nadle�nosti mora vrlo oprezno da koristi.

Nakon prepoznavanja korisnika (odnosno, nakon njegovog uspe�nog predstavljanja), uz pomo matrice za�tite mogu e je ustanoviti koja prava pristupa korisnik poseduje za svaku

Page 12: Operativni_Sistemi

Operativni sistemi ______________________________________________________________________________

_____________________________________________________________________________________________________________ 11

datoteku. Da bi se pojednostavila provjera korisni kih prava pristupa, uputno je, umjesto imena korisnika, uvesti njegovu numeri ku oznaku. Radi klasifikacije korisnika zgodno je da ovu numeri ku oznaku obrazuju dva redna broja. Prvi od njih ozna ava grupu kojoj korisnik pripada, a drugi od njih ozna ava lana grupe. Podrazumijeva se da su svi korisnici iz iste grupe me usobno saradnici. Prema tome, redni broj grupe i redni broj lana grupe zajedno jednozna no odre uju vlasnika. Saradnici vlasnika su svi korisnici koji imaju isti redni broj grupe kao i vlasnik. U ostale korisnke spadaju svi korisnici iji redni broj grupe je razli it od rednog broja grupe vlasnika. Posebna grupa se rezervi�e za administratore.

Numeri ka oznaka korisnika pojednostavljuje provjeru njegovog prava pristupa datoteci. Ipak, da se takva provjera ne bi obavljala prilikom svakog pristupa datoteci, umesno je takvu provjeru obaviti samo pre prvog pristupa. Zato se uvodi posebna operacija otvaranja datoteke, koja prethodi svim drugim operacijama (kao �to su pisanje ili itanje datoteke). Pomo u operacije otvaranja se saop�tava i na koji na in korisnik namerava da koristi datoteku. Ako je njegova namera u skladu sa njegovim pravima, otvaranje datoteke je uspe�no, a pristup datoteci je dozvoljen, ali samo u granicama iskazanih namera. Pored operacije otvaranja, potrebna je i operacija zatvaranja datoteke, pomo u koje korisnik saop�tava da zavr�ava kori� enje datoteke. Nakon zatvaranja datoteke, pristup datoteci nije dozvoljen do njenog narednog otvaranja. Numeri ka oznaka vlasnika datoteke i prava pristupa korisnika iz pojedinih klasa predstavljaju atribute datoteke.

1.4 POJAM PROCESA (PROCESS) Za pojam procesa su vezani aktivnost (izvr�enje), slika i atributi.

Aktivnost procesa odgovara anga�ovanju procesora na izvr�avanju korisni kog programa. Slika procesa pokriva adresni prostor procesa sa naredbama izvr�avanog programa, stekom i podacima koji se obra uju u toku izvr�avanja programa. U atribute procesa spadaju, na primjer, stanje procesa i njegov prioritet. Atributi procesa se uvaju u deskriptoru procesa.

STANJA I PRIORITET PROCESA

Stanja procesa su:

aktivan (running), eka (blocked) i

spreman (ready). Proces je aktivan kada procesor izvr�ava program. On eka kada nisu ispunjeni neophodni preduslovi za obradu podataka. Proces je spreman kada samo zauzetost procesora onemogu uje izvr�avanje programa.

Od prioriteta procesa zavisi kada e spreman proces da postane aktivan. Podrazumijeva se da je aktivan uvek proces sa najvi�im prioritetom, jasno pod pretpostavkom da se razmatra jednoprocesorski ra unar (sa jednim procesorom namjenjenim za izvr�avanje korisni kih programa). Ako postoji nekoliko procesa najvi�eg prioriteta, tada je interesantna ravnomerna raspodela procesorskog vremena izme u aktivnog i spremnih procesa najvi�eg prioriteta. Ona se posti�e ako aktivni proces prepu�ta procesor spremnom procesu najvi�eg prioriteta im istekne unapred odre eni vremenski interval, koji se naziva kvantum (quantum). Trenutke isticanja kvantuma ozna avaju prekidi sata. Obrada prekida sata izaziva prevo enje aktivnog procesa u

Page 13: Operativni_Sistemi

Operativni sistemi ______________________________________________________________________________

_____________________________________________________________________________________________________________ 12

stanje spreman i preklju ivanje procesora na onaj od ostalih spremnih procesa najvi�eg prioriteta koji je najdu�e u stanju spreman.

ULOGA PROCESA

Procesi omogu uju bolje iskori� enje ra unara (procesora) i njegovu br�u reakciju

nade�avanje vanjskih doga aja. Istovremeno postojanje vi�e procesa omogu uje da se procesor preklju i sa aktivnog procesa na spreman proces im aktivni proces pre e u stanje eka. Na taj na in procesor ostaje iskori� en dok god ima spremnih procesa.

Br�u reakciju na de�avanje vanjskih doga aja omogu uje proces najvi�eg prioriteta. Dok ovakav hitni proces eka da se desi spoljnji doga aj, aktivan je neki drugi manje prioritetan proces. Kada se desi spoljnji doga aj, obrada odgovaraju eg prekida prevodi hitni proces iz stanja eka u stanje spreman. To dovodi do preklju ivanja procesora sa prekinutog procesa na hitni proces. Hitni proces u toku svoje aktivnosti odreaguje na de�avanje vanjskog doga aja. Nakon toga on prepu�ta procesor prekinutom procesu, jer se vra a u stanje eka dok se ne desi novi vanjski doga aj, jasno, ako se u me uvremenu nisu desili novi vanjski doga aji. Ako su se takvi doga aji desili, njihova de�avanja se registruju u obradama odgovaraju ih prekida (za �ta je potrebno da su prekidi omogu eni u toku aktivnosti hitnog procesa). Tada, nakon reakcije na prvi doga aj, hitni proces ne prelazi u stanje eka dok ne odreaguje na sve u me uvremenu registrovane doga aje.

POJAM NITI (THREAD)

Aktivnost procesa karakteri�e redosled u kome se izvr�avaju naredbe programa. Ovaj

redosled se naziva trag (trace) procesa. Trag procesa mo�e da se prika�e kao nit (thread) koja povezuje izvr�ene naredbe u redosledu njihovog izvr�avanja. Ako se za proces ve�e jedna nit, tada ona ima atribute procesa, zna i njegovo stanje i njegov prioritet. U toku aktivnosti niti izvr�avaju se naredbe koje ona povezuje.

Vezivanje za proces jedne niti je posledica pretpostavke da proces odgovara izvr�avanju sekvencijalnog programa. Za sekvencijalni program se podrazumijeva da se naredbe izvr�avaju jedna za drugom u unapred zadanom redosledu, koji je zavisan od obra ivanih podataka. Ovakve naredbe obrazuju sekvencu naredbi.

Praksa pokazuje da je korisno za procese vezati vi�e od jedne niti. U tom slu aju stek, prioritet i stanje se ne vezuju za proces, nego za njegove niti. Zna i, svaka od niti procesa ima svoj stek, svoj prioritet i svoje stanje, odnosno svoj deskriptor. Na primjer, za editiranje teksta su va�ne, izme u ostalog, dve aktivnosti. Prva je posve ena interakciji sa korisnikom, a druga je zadu�ena za periodi no sme�tanje unesenog teksta na masovnu memoriju (radi spre avanja gubljenja teksta). Ako je za editorski proces vezana jedna nit, tada se pomenute aktivnosti odvijaju jedna za drugom (sekvencijalno). Zna i, za vreme trajanja druge aktivnosti nije mogu a interakcija sa korisnikom, �to je ozbiljan nedostatak. On se mo�e otkloniti, ako se za editorski proces ve�u dve niti raznih prioriteta. Prioritetnija (hitna) nit se pridru�uje prvoj aktivnosti, a manje prioritetna (pozadinska) nit se pridru�uje drugoj aktivnosti. Pod pretpostavkom da hitna nit eka na interakciju sa korisnikom, pozadinska nit mo�e biti aktivna sve dok, na primjer, pritisak

dirke na tastraturi ne najavi po etak interakcije sa korisnikom. Tada obrada odgovaraju eg prekida prevodi hitnu nit u stanje spremna, pa se procesor preklju uje sa prekinute pozadinske niti na hitnu nit. U toku svoje aktivnosti hitna nit obavi interakciju sa korisnikom i vrati se u stanje eka, �to dovodi do preklju ivanja procesora na prekinutu pozadinsku nit. Zahvaljuju i

Page 14: Operativni_Sistemi

Operativni sistemi ______________________________________________________________________________

_____________________________________________________________________________________________________________ 13

preklju ivanju procesora sa pozadinske niti na hitnu nit, u toku editiranja nema perioda bez odziva. Procesi sa vi�e niti odgovaraju izvr�avanju konkurentnih programa u kojima istovremeno postoji vi�e relativno nezavisnih sekvenci naredbi. 1.5 STRUKTURA OPERATIVNOG SISTEMA Unutra�nji izgled ili struktura operativnog sistema se mo�e lak�e sagledati ako se zauzme stanovi�te da je zadatak operativnog sistema da upravlja fizi kim i logi kim delovima ra unara. Po�to fizi ki delovi ra unara obuhvataju procesor, kontrolere i radnu memoriju, a logi ki delovi ra unara obuhvataju fajlove i procese, sledi da se operativni sistem mo�e ra� laniti na module namijenjene upravljanju:

procesorom, kontrolerima I/O, radnom memorijom, fajlovima i procesima.

MODUL ZA UPRAVLJANJE PROCESOROM

Zadatak modula za upravljanje procesorom je da preklju uje procesor sa jedne niti na

drugu. Pri tome ove niti mogu pripadati istom ili raznim procesima. Sa stanovi�ta modula za upravljanje procesorom klju na razlika izme u niti koje pripadaju istom procesu i niti koje pripadaju raznim procesima je da su prve niti u adresnom prostoru istog procesa, dok su druge niti u adresnim prostorima raznih procesa. Zato, u toku preklju ivanja procesora izme u niti istog procesa ne dolazi do izmjene adresnog prostora procesa, pa je ovakvo preklju ivanje br�e (kra e) nego preklju ivanje procesora izme u niti raznih procesa. Modul za upravljanje procesorom ostvaruje svoj zadatak tako �to uvodi operaciju preklju ivanja. Pozivi te operacije dovode do preklju ivanja procesora.

MODUL ZA UPRAVLJANJE KONTROLERIMA I/O URE AJA

Zadatak modula za upravljanje kontrolerima je da upravlja raznim ulaznim i izlaznim

ure ajima koji su zaka eni za kontrolere. U ovakve ulazno/izlazne ure aje spadaju tastatura, mi�, ekran, �tampa , odnosno ure aji masovne memorije kao �to su diskovi, diskete, CD/DVD ROM-ovi, .... Po�to upravljanje I/O ure ajima zavisi od vrste ure aja, modul za upravljanje kontrolerima se sastoji od niza komponenti, nazvanih drajveri. Svaki od drajvera je specijalizovan da opslu�i jednu klasu ulazno/izlaznih ure aja i ima zadatak da konkretan ulazno/izlazni ure aj predstavi u apstraktnom obliku sa jednoobraznim i pravilnim na inom kori� enja. Tako, na primjer, drajver diska stvara predstavu apstraktnog diska. Za razliku od stvarnog diska, apstraktni disk, umjesto staza i sektora, sadr�i niz blokova koji su ozna eni rednim brojevima. Drajver diska, preslikavaju i blokove u staze i sektore, omogu uje pristup blokovima apstraktnog diska, radi ulaza (preuzimanja podataka), odnosno radi izlaza (pohranjivanja podataka).

Modul za upravljanje kontrolerima ostvaruje svoj zadatak tako �to uvodi (drajverske) operacije ulaza i izlaza. Pozivi ovih operacija dovode do prenosa podataka na relaciji izme u radne memorije i ulazno/izlaznih ure aja. U okviru ovih operacija se zaustavlja aktivnost niti za

Page 15: Operativni_Sistemi

Operativni sistemi ______________________________________________________________________________

_____________________________________________________________________________________________________________ 14

iji ra un se operacije obavljaju ako, zbog sporosti ulazno/izlaznog ure aja, nije mogu e odmah obaviti zatra�eni ulaz ili izlaz. Tada se poziva operacija preklju ivanja. Do nastavaka aktivnosti niti mo�e do i im ulazno/izlazni ure aj javi, posredstvom mehanizma prekida, da je mogu e obavljanje zatra�ene operacije ulaza ili izlaza. Obradu ovakvih prekida preuzimaju obra iva i prekida, koji, tako e, ulaze u sastav drajvera. Oni omogu uju nastavak aktivnosti niti. Radi toga se, opet, poziva operacija preklju ivanja. Po�to pozivi operacija preklju ivanja mogu biti posledica de�avanja prekida, trenutak preklju ivanja je u op�tem slu aju nepredvidiv kao �to su nepredvidivi i trenuci de�avanja prekida.

MODUL ZA UPRAVLJANJE RADNOM MEMORIJOM

Zadatak modula za upravljanje radnom memorijom je da vodi evidenciju o slobodnoj

radnoj memoriji radi zauzimanja zona slobodne radne memorije, odnosno radi osloba anja prethodno zauzetih zona radne memorije. Kada podr�ava virtuelnu memoriju, ovaj modul se brine i o prebacivanju sadr�aja stranica izme u radne i masovne memorije. To zna i da se iz modula za upravljanje radnom memorijom pozivaju operacije ulaza i izlaza. Modul za upravljanje radnom memorijom ostvaruje svoj zadatak tako �to uvodi operacije zauzimanja i osloba anja. Pozivi tih operacija dovode do zauzimanja i osloba anja zona radne memorije.

MODUL ZA UPRAVLJANJE FAJLOVIMA

Zadatak modula za upravljanje fajlovimaa je da omogu i otvaranje i zatvaranje fajlova, odnosno itanje i pisanje njihovog sadr�aja. Radi toga ovaj modul vodi evidenciju o blokovima (masovne memorije) u kojima se nalaze sadr�aji fajlova. On se, tako e, brine i o prebacivanju delova sadr�aja fajlova izme u radne i masovne memorije. To zna i da se iz modula za upravljanje fajlovima pozivaju operacije ulaza i izlaza. Po�to su za pomenuto prebacivanje delova sadr�aja fajlova potrebni baferi, iz modula za upravljanje fajlovima se poziva i operacija zauzimanja, radi rezervisanja dovoljno velikog baferskog prostora. Modul za upravljanje fajlovima ostvaruje svoj zadatak tako �to uvodi operacije otvaranja, zatvaranja, itanja i pisanja. Pozivi poslednje dve operacije dovode do prenosa sadr�aja fajlova na relaciji izme u radne i masovne memorije.

MODUL ZA UPRAVLJANJE PROCESIMA

Zadatak modula za upravljanje procesima je da omogu i stvaranje i uni�tavanje procesa, kao i stvaranje i uni�tavanje njihovih niti. Na taj na in postaje mogu e da istovremeno postoji vi�e procesa (vi�eprocesni re�im rada, multiprocessing), odnosno vi�e niti (multithreading), a to je preduslov za:

1. za bolje iskori� enje procesora, 2. za istovremenu podr�ku ve eg broja korisnika (vi�ekorisni ki re�im rada, multiuser

environment) i 3. za br�u reakciju ra unara na vanjske doga aje. Iz modula za upravljanje procesima se poziva operacija itanja, radi preuzimanja sadr�aja

izvr�nih fajlova, koji su potrebni za svaranje slike procesa. Po�to je za stvaranje slike procesa potrebna radna memorija, iz modula za upravljanje procesima se pozivaju i operacije zauzimanja, odnosno osloba anja. Modul za upravljanje procesima ostvaruje svoj zadatak tako

Page 16: Operativni_Sistemi

Operativni sistemi ______________________________________________________________________________

_____________________________________________________________________________________________________________ 15

�to uvodi operacije stvaranja i uni�tavanja. Pozivi tih operacija dovode do stvaranja i uni�tavanja procesa, odnosno niti.

1.6 PODJELA OPERATIVNIH SISTEMA PREMA STRUKTURI

SLOJEVITI OPERATIVNI SISTEM Prethodno opisani moduli operativnog sistema formiraju hijerarhiju, sastavljenu od 5 slojeva. Svaki od slojeva je predodre en da sadr�i jedan od modula operativnog sistema. Raspodjelu modula po slojevima diktira pravilo koje nala�e da se iz svakog sloja pozivaju samo operacije uvedene u ni�im slojevima hijerarhije. Primjena pomenutog pravila dovodi do sme�tanja modula za upravljanje procesima u sloj na vrhu hijerarhije. U prvi ni�i sloj dospeva modul za upravljanje fajlovima, dok je slede i ni�i sloj namjenjen modulu za upravljanje radnom memorijom. Predposlednji sloj hijerarhije sadr�i modul za upravljanje I/O kontrolerima, a u poslednjem sloju nalazi se modul za upravljanje procesorom. Na ovaj na in je obrazovan slojeviti operativni sistem, prikazan na slici 1.5

modul za upravljanje procesima modul za upravljanje fajlovima

modul za upravljanje radnom memorijom modul za upravljanje kontrolerima modul za upravljanje procesorom

Slika 1.5 Slojeviti operativni sistem

Svrha predstavljanja operativnog sistema kao hijerarhije slojeva je motivisana �eljom da

se zadatak operativnog sistema ra� lani na vi�e jednostavnijih me usobno nezavisnih zadataka i zatim svaki od njih objasni zasebno.

Sistemski pozivi Slojeviti operativni sistem dozvoljava pozivanje (odnosno kori� enje) operacija stvaranja

i uni�tavanja (procesa) samo iz sloja, sme�tenog iznad hijerarhije njegovih slojeva. Prema tome, postojanje procesa je isklju ivo vezano za ovaj, korisni ki sloj.

Iako su svi procesi locirani u korisni kom sloju, oni su me usobno jasno razdvojeni zahvaljuju i injenici da svaki od procesa poseduje zaseban adresni prostor, koji se naziva korisni ki prostor (user space). Na istom principu se zasniva i razdvajanje procesa od operativnog sistema. Ali, razdvojenost korisni kih prostora od adresnog prostora operativnog sistema, koji se naziva sistemski prostor (kernel space), spre ava da se pozivi operacija operativnog sistema zasnivaju na kori� enju poziva potprograma. Zato je neophodno uvo enje posebnog mehanizma sistemskih poziva koji omogu uje prelazak iz korisni kog prostora u sistemski prostor radi poziva operacija operativnog sistema. Sistemski pozivi zahtjevaju kori� enje specifi nih asemblerskih naredbi i zbog toga se sakrivaju unutar sistemskih

Pozivi operacija

Page 17: Operativni_Sistemi

Operativni sistemi ______________________________________________________________________________

_____________________________________________________________________________________________________________ 16

potprograma. Neki od sistemskih potprograma, pored sistemskih poziva, sadr�e i specifi ne obrade podataka, kao �to je, na primjer, pretvaranje brojeva iz znakovnog u binarni oblik i obrnuto kod formatiranog ulaza ili izlaza. Svaki od sistemskih potprograma je namjenjen za pozivanje jedne od operacija operativnog sistema, namjenjenih korisni kom sloju. Ovakve operacije se nazivaju sistemske operacije, da bi se razlikovale od ostalih (internih) operacija operativnog sistema, namjenjenih samo za koir� enje unutar operativnog sistema. Sistemski potprogrami obrazuju sistemsku biblioteku. Prema tome, pozivanje sistemskih operacija se svodi na pozivanje potprograma iz sistemske biblioteke. Sistemska biblioteka se isporu uje uz operativni sistem da bi se koristila u postupku linkovanja. U toku linkovanja njeni potprogrami se vezuju za objektni oblik korisni kog programa radi stvaranja izvr�nog oblika korisni kog programa, koji tako postaje spreman za saradnju sa operativnim sistemom.

Zahvaljuju i sistemskim potprogramima, odnosno sistemskoj biblioteci, operativni sistem predstavlja deo korisni kog programa, iako nije za njega direktno linkovan. Zato se mo�e smatrati da obavljanje sistemskih operacija predstavlja sastavni deo izvr�avanja korisni kog programa, odnosno pripada aktivnosti procesa, vezanog za ovo izvr�avanje. To, uz istovremeno postojanje vi�e procesa i nepredvidivost preklju ivanja, uzrokuje da je mogu e da istovremeno postoji vi�e procesa, koji su zapo eli, a nisu zavr�ili svoju aktivnost u okviru operativnog sistema (odnosno, ija aktivnost je zaustavljena unutar operativnog sistema).

Interakcija korisnika i operativnog sistema Dok sistemska biblioteka omogu uje kori� enje operativnog sistema na programskom

nivou, komande komandnog jezika omogu uju kori� enje operativnog sistema na interaktivnom nivou. Komande komandnog jezika precizno opisuju upravljanja procesima i datotekama. One tako li�avaju korisnika potrebe da poznaje mehanizme, koji se pokre u unutar operativnog sistema radi upravljanja procesima i fajlovima. Za preuzimanje i interpretiranje komandi komandnog jezika zadu�en je poseban proces iz korisni kog sloja, koji se naziva interpreter komandnog jezika (shell). Interpreter komandnog jezika posreduje izme u korisnika i operativnog sistema. U op�tem slu aju u posredovanju obi no u estvuju i procesi koje stvara interpreter komandnog jezika, da biim prepustio izvr�avanje prepoznatih komandi.

MONOLITSKI SISTEMI

Iako je raslojavanje operativnog sistema u hijerarhiju slojeva mogu e uspe�no primjeniti i prilikom pravljenja operativnog sistema, u praksi se uglavnom sre u monolitni (monolithic) operativni sistemi. Monolitni operativni sistemi nemaju pravilnu strukturu kao slojeviti operativni sistemi, jer se sastoje od modula ija saradnja nije ograni ena pravilima kao kod slojevitih operativnih sistema. To zna i da se iz svakog od modula monolitnih operativnih sistema mogu slobodno pozivati operacije svih ostalih modula. Ovo je dosad najvi�e kori� ena organizacija i mo�e se sa punim pravo nazvati �Velika zbrka�. Struktura je takva da uop�te nema strukture. Operativni sistem je napisan kao skup procedura, od kojih svaka mo�e pozvati bilo koju drugu proceduru kad god joj zatreba. �to se ti e sakrivanja informacija, to ovde uop�te ne postoji, tj. svaka procedura je vidljiva u odnosu na bilo koju drugu proceduru, za razliku od strukture koja sadr�i module ili pakete, u kojoj je ve ina informacija sakrivena unutar modula, tako da se samo u odre enim ta kama mogu pozvati van modula. ak je i u monolitskim sistemima mogu e posti i malo strukturnosti:

Page 18: Operativni_Sistemi

Operativni sistemi ______________________________________________________________________________

_____________________________________________________________________________________________________________ 17

1.Glavni program koji priziva zahtjevanu uslu�nu proceduru. 2.Skup uslu�nih procedura koje izvr�avaju pozive sistema. 3.Skup korisni kih procedura koje poma�u uslu�nim procedurama.

U ovom modelu, za svaki poziv sistema postoji jedna uslu�na procedura koja odra uje taj

poziv. Korisni ke procedure rade stvari koje su potrebne nekolicini uslu�nih procedura, kao �to je uzimanje podataka iz korisni kih programa i sli no.

VIRTUELNE MA�INE Ovaj sistem se razvio iz potrebe mnogih korisnika prvih operativnih sistema, pre svega OS/360, za vremenskim multipleksiranjem. Prvi oficijalni IBM-ov operativni sistem koji je podr�avao vremensko multipleksiranje bio je TSS/360. Ovaj sistem je bio previ�e velik i spor, a kasnije je napu�ten jer se pokazalo da je za njegov razvoj utro�ena prevelika svota novca. Me utim, grupa u IBM-ovom nau nom centru u Kembrid�u kasnije razvija druga iji operativni sistem, koji je vrlo brzo prihva en i koji se i danas koristi u preostalim mainframe-ovima (prve ma�ine koje koriste tranzistore umjesto vakuumskih cevi). Ovaj sistem, prvo nazvan CP/CMS a kasnije preimenovan u VM/370, je zasnovan na zapa�anju da sistem sa vremenskim multipleksiranjem obezbije uje (1) multiprogramiranje i (2) pro�irenu ma�inu sa pogodnijim interfejsom od samog hardvera. Su�tina VM/370 je da potpuno razdvoji ove dve funkcije. Srce sistema, poznato kao monitor virtuelne ma�ine, radi na istom hardveru i obavlja multipleksiranje, obezbije uju i ne jednu, ve nekoliko virtuelnih ma�ina na slede em, vi�em nivou, kao �to je prikazano na slici 1.6. Za razliku od drugih operativnih sistema ove virtuelne ma�ine nisu pro�irene ma�ine, sa fajlovima i ostalim apstrakcijama, ve predstavljaju iste kopije hardvera, uklju uju i kernel/korisni ki mod, I/O, interrupt-e i sve �to ima realna ma�ina.

Slika 1.6. Struktura VM/370 sa VMS-ovima

Zbog te svoje osobine na svakoj od njih mo�e da radi bilo koji operativni sistem, kao �to bi na istom hardveru. Na nekima rade potomci OS/360, a na drugima interaktivni jednokorisni ki sistem zvani CMS (Konverzacioni monitor sistem) za interaktivno multipleksiranje. Kada CMS program izvr�ava poziv sistema, taj poziv upada u operativni sistem sopstvene virtuelne ma�ine, a ne u VM/370. CMS onda poziva normalne hardverske I/O instrukcije. Te instrukcije hvata VM/370 i izvr�ava ih kao deo svoje simulacije pravog hardvera. Kompletnim razdvajanjem funkcija multiprogramiranja i obezbije ivanja pro�irene ma�ine, svaki od delova mo�e biti jednostavniji, fleksibilniji i lak�i za odr�avanje.

Page 19: Operativni_Sistemi

Operativni sistemi ______________________________________________________________________________

_____________________________________________________________________________________________________________ 18

Danas se ideja virtuelne ma�ine puno koristi i to u razli itim kontekstima. Mo�da naj e� a upotreba je izvr�avanje MS-DOS programa na Pentium-ima. Po�to su uvideli potrebu korisnika za upotrebom starog sofvera na novom hardveru, dizajneri softvera za Pentium su obezbijedili virtuelni 8086 mod na Pentium-u. U tom modu se ma�ina pona�a kao 8086, uklju uju i 16-bitno adresiranje i ograni enje na 1 MB. Ovaj mod koriste Windows i drugi operativni sistemi za izvr�avanje MS-DOS programa. Od drugih upotreba naglasi emo samo JAVA programe koji se izvr�avaju pomo u virtuelnih ma�ina.

EXOKERNEL-i Kod VM/370 svaki korisni ki proces je dobijao kopiju pravog kompjutera. Sa virtuelnim 8086 modom na Pentium-u svaki korisni ki proces je dobijao kopiju razli itog kompjutera. Idu i korak dalje, napravljen je sistem koji svakom korisniku daje kopiju kompjutera, ali ne sa svim resursima, ve samo sa jednim delom. Tako jedna virtuelna ma�ina mo�e dobiti blokove diska od 0 do 1023, druga od 1024 do 2047, itd. U najni�em sloju softvera je program zvani exokernel, koji se izvr�ava u kernel modu. Njegov zadatak je da alocira resurse za virtuelne ma�ine i onda provjerava njihove poku�aje za kori� enje tih resursa, da bi se uverio da nijedna ma�ina ne poku�ava da koristi resurs tu e ma�ine. Svaka virtuelna ma�ina mo�e imati svoj operativni sistem kao kod VM/370, s tim �to je ograni ena na kori� enje samo onog dela resursa kojeg zahtjeva i koji je alociran za nju. Prednost ovoga dizajna je u tome �to druge virtuelne ma�ine misle da poseduju itav disk, sa blokovima od 0 do nekog maksimuma, tako da monitor virtuelne ma�ine mora vr�iti remapiranje adresa diska (i svih drugih resursa). Kod exokernel-a je to remapiranje nepotrebno i on samo vodi ra una o tome kojoj ma�ini je dodeljen koji deo resursa.

KLIJENT�SERVER VM/370 dobija u jednostavnosti preme�tanjem velikog dela koda tradicionalnog operativnog sistema (implementiraju i pro�irenu ma�inu) na vi�i nivo, CMS. Ipak, VM/370 je i dalje kompleksan program zbog simulacije velikog broja 370-ica, �to uop�te ne predstavlja jednostavan posao. Trend u modernim operativnim sistemima je preme�tanje koda u vi�e nivoe, na taj na in ga otklanjaju i iz kernel moda, ostavljaju i minimalni mikrokernel. To se obi no radi implementiranjem ve eg dela sistema u korisni ke procese. Da bi dobio uslugu, korisni ki proces (sad proces klijent) �alje zahtjev procesu serveru, koji odra uje posao i vra a odgovor. U ovom modelu sve �to kernel radi je komunikacija izme u klijenta i servera.

Slika 1.7 Klijent-server model

Page 20: Operativni_Sistemi

Operativni sistemi ______________________________________________________________________________

_____________________________________________________________________________________________________________ 19

Ovakvom podelom sistema na delove, od kojih se svaki bavi jednim aspektom sistema, kao �to je fajl servis, proces servis, terminal servis ili servis memorije, svaki deo postaje mali i upravljiv. �tavi�e, po�to svi serveri rade kao procesi u korisni kom modu oni nemaju direktan pristup hardveru. U slu aju da se pojavi bag u fajl serveru, taj server mo�e pasti, ali to obi no ne zna i da e pasti itava ma�ina. Druga prednost ovoga modela je prilagodljivost upotrebi u distributivnim sistemima. Naime, ako klijent komunicira sa serverom �alju i mu poruke, on ne mora da zna da li je ta poruka prihva ena i odra ena u okviru iste ma�ine ili je poslata preko mre�e serveru na udaljenoj ma�ini. �to se klijenta ti e, ista stvar se de�ava u oba slu aja: zahtjev je poslat i odgovor je stigao.

Page 21: Operativni_Sistemi

Operativni sistemi ______________________________________________________________________________

_____________________________________________________________________________________________________________ 20

2. SLOJEVI OPERATIVNOG SISTEMA 2.1 SLOJ ZA UPRAVLJANJE PROCESIMA Osnovni zadaci sloja za upravljanje procesima su stvaranje i uni�tenje procesa. Stvaranje procesa obuhvata stvaranje njegove slike i njegovog deskriptora, kao i pokretanje njegove aktivnosti. Uni�tenje procesa obuhvata uni�tenje njegove slike i njegovog deskriptora, kao i zaustavljanje njegove aktivnosti. Pored sistemskih operacija stvaranja i uni�tenja procesa, potrebne su i sistemske operacije za izmjenu atributa deskriptora procesa (na primjer, za izmjenu radnog direktorijuma procesa).

Slika procesa obuhvata niz lokacija radne memorije sa uzastopnim (logi kim) adresama u kojima se nalaze izvr�avane ma�inske naredbe, promenljive i stek. Slika procesa je prikazana na slici 2.1

mašinske naredbe najni�a adresa

promenljive

slobodna radna memorija procesa

stek najvi�a adresa

Slika 2.1 Grafi ka predstava slike procesa

Podrazumijeva se da slika procesa zapo inje od lokacije radne memorije sa najni�om

adresom, od koje zapo inju ma�inske naredbe, a zavr�ava na lokaciji radne memorije sa najvi�om adresom, na kojoj zapo inje stek. Pri tome se podrazumijeva da se stek �iri (puni) u smeru ni�ih adresa. Iza ma�inskih naredbi dolaze stati ke promenljive (i to prvo inicijalizovane, pa neinicijalizovane). Izme u ovih promenljivih i steka se nalazi slobodna radna memorija procesa. Ona je na raspolaganju procesu za stvaranje dinami kih promenljivih, ali i za �irenje (punjenje) steka. Svi dinami ki zahtjevi za zauzimanjem radne memorije, postavljeni u toku aktivnosti procesa, se zadovoljavaju samo na ra un slobodne radne memorije procesa.

Ovakva organizacija slike procesa uslovljava da proces prvo ugrozi svoju aktivnost, kada njegovi zahtjevi za radnom memorijom nadma�e njegovu raspolo�ivu slobodnu radnu memoriju. Na primjer, ako, prilikom �irenja steka, ne postoji na in da se automatski ustanovi da su zahtjevi za radnom memorijom nadma�ili slobodnu radnu memoriju procesa, tada dolazi do preklapanja

Page 22: Operativni_Sistemi

Operativni sistemi ______________________________________________________________________________

_____________________________________________________________________________________________________________ 21

steka i promenljivih, sa fatalnim ishodom po aktivnost procesa. Pored slike, za aktivnost procesa je vazan i deskriptor procesa, koji sadr�i atribute

procesa. Ovi atributi karakteri�u aktivnost procesa. Oni obuhvataju: 1. stanje procesa (spreman, aktivan, eka) 2. sadr�aje procesorskih registara (zate ene u njima prije poslednjeg preklju ivanja procesora sa procesa) 3. numeri ku oznaku vlasnika procesa 4. oznaku procesa stvaraoca 5. trenutak pokretanja aktivnosti procesa 6. ukupno trajanje aktivnosti procesa (odnosno, ukupno vreme anga�ovanja procesora) 7. podatke o slici procesa (njenom polo�aju u radnoj memoriji i njenoj veli ini) 8. podatke o fajlovima koje proces koristi 9. podatak o radnom direktorijumu procesa 10. razne podatke neophodne za upravljanje aktivno� u procesa (poput prioriteta procesa ili polo�aja sistemskog steka procesa koga koristi operativni sistem u toku obavljanja sistemskih operacija). SISTEMSKE OPERACIJE ZA STVARANJE I UNI�TENJE PROCESA

Za stvaranje procesa potrebno je pristupiti odgovaraju oj izvr�noj datoteci sa inicijalnom

slikom procesa, koja, izme u ostalog, sadr�i ma�inske naredbe i po etne vrednosti (inicijalizovanih) stati kih promenljivih odgovaraju eg programa, ali i podatak o veli ini (pojedinih djelova) slike procesa. Tako e, potrebno je zauzeti deskriptor procesa, kao i dovoljno veliku zonu radne memorije za sliku procesa. Sve to, kao i pravljenje slike procesa na osnovu njegove inicijalne slike, odnosno popunjavanje atributa njegovog deskriptora, spada u nadle�nost sistemske operacije stvaranja procesa.

Ovu operaciju poziva proces stvaralac i ona se obavlja u toku njegove aktivnosti. U okviru poziva sistemske operacije stvaranja procesa kao argument se navodi putanja odgovaraju e izvr�ne datoteke. Svi atributi deskriptora stvaranog procesa ne moraju biti navo eni u okviru poziva sistemske operacije stvaranja procesa, jer se jedan njihov dio nasle uje iz deskriptora procesa stvaraoca (na primjer, numeri ka oznaka vlasnika procesa, podatak o radnom direktorijumu procesa ili njegov prioritet), a jedan deo nastaje u toku stvaranja procesa (na primjer, podaci o slici procesa). Kada se, u okviru stvaranja procesa, stigne do pokretanja njegove aktivnosti, mogu e je preklju ivanje procesora sa procesa stvaraoca na stvarani proces. To se desi, ako je prioritet stvaranog procesa vi�i od prioriteta procesa stvaraoca. U tom slu aju, proces stvaralac dospeva me u spremne procese. Ina e tamo dospeva stvarani proces.

Razlozi za stvaranje novog procesa su : nova grupa zadataka prijavljivanje na sistem potreba OS da omogu i neki servis potreba teku eg procesa za novim procesom

Za uni�tenje procesa potrebno je osloboditi njegov deskriptor i zonu radne memorije sa

njegovom slikom. Ovo spada u nadle�nost sistemske operacije uni�tenja procesa. Nju automatski poziva proces na kraju svoje aktivnosti, ime izaziva svoje samouni�tenje. Uni�tenje procesa se

Page 23: Operativni_Sistemi

Operativni sistemi ______________________________________________________________________________

_____________________________________________________________________________________________________________ 22

zavr�ava preklju ivanjem procesora sa uni�tavanog na neki od spremnih procesa. U okviru poziva sistemske operacije uni�tenja procesa uputno je predvideti argument, posredstvom koga uni�tavani proces mo�e da saop�ti svom stvaraocu svoje zavr�no stanje, odnosno informaciju da li je aktivnost uni�tavanog procesa bila uspe�na ili ne. Jasno, da bi proces stvaralac mogao iskoristiti ovakvu povratnu informaciju od stvorenog procesa, on mora da, u okviru poziva sistemske operacije stvaranja procesa, posebnim argumentom zatra�i zaustavljanje svoje aktivnosti (i tako omogu i preklju ivanje procesora na stvarani proces). U ovom slu aju, proces stvaralac ne dospeva me u spremne procese, nego me u procese u stanju ekanja, jer eka kraj aktivnosti stvorenog procesa. Tako e, u ovom slu aju sistemska operacija uni�tenja stvorenog procesa ima i zadatak da prevede proces stvaralac me u spremne procese i tako omogu i nastavak njegove aktivnosti.

Razlozi za uni�tenje procesa su : Uspje�no zavr�enje procesa Prekora enje vremenskog limita yza izvr�avanje Nedostupnost radne memorije Poku�aj pristupa nedozvoljenoj memorijskoj lokaciji Gre�ka u za�titi procesa Aritmeti ka gre�ka Predugo ekanje na neki doga aj Gre�ka sa I/O Lo�a instrukcija Privilegovana instrukcija Nedostatak podataka Intervencija operatera ili OS Zavr�etak procesa stvaraoca Zahtjev stvaraoca Sistemska operacija uni�tenja procesa se automatski poziva, kada se desi nepopravljiv

prekid (izuzetak) u toku aktivnosti procesa. ZAMJENA SLIKA PROCESA

Najve i mogu i broj slika procesa, koje mogu da istovremeno postoje u radnoj memoriji,

se naziva stepen multiprogramiranja (degree of multiprogramming). �to je stepen multiprogramiranja vi�i, to je i ve a vjerovatno a da je procesor zaposlen (jer je ve a vjerovatno a da postoji spreman proces). Stepen multiprogramiranja zavisi od veli ine radne memorije. Kada broj istovremeno postoje ih procesa dostigne stepen multiprogramiranja, stvaranje novih procesa postaje problemati no. U ovoj situaciji mogu e re�enje je da se slika nekog od (manje prioritetnih) postoje ih procesa privremeno izbaci u masovnu memoriju i tako oslobodi prostor u radnoj memoriji za sliku novog procesa (predlo�eni pristup podrazumijeva da je broj deskriptora procesa ve i od stepena multiprogramiranja i da su svi deskriptori stalno prisutni u radnoj memoriji, �to ne predstavlja problem, jer deskriptori procesa ne zauzimaju mnogo radne memorije). Prethodno opisani na in osloba anja prostora za sliku procesa u radnoj memoriji uzrokuje da, uz sliku procesa u radnoj memoriji, obavezno postoji i njena kopija u masovnoj memoriji. Po�to se, u toku aktivnosti procesa, mijenja samo dio njegove slike u radnoj memoriji (jer se mijenjaju samo vrijednosti njegovih promenljivih i njegov stek), prilikom

Page 24: Operativni_Sistemi

Operativni sistemi ______________________________________________________________________________

_____________________________________________________________________________________________________________ 23

izbacivanja slike procesa potrebno je samo njen izmijenjeni dio prebacivati u kopiju slike u masovnoj memoriji. Ali, pri vra anju slike u radnu memoriju, prebacuje se cijela njena kopija (da bi se u radnoj memoriji obnovila cijela slika procesa). Do vra anja slike procesa u radnu memoriju dolazi, kada se tamo oslobodi prostor, pa je vra anje slike jednog procesa vezano za uni�tavanje drugog procesa (kada se osloba a prostor u radnoj memoriji).

Podaci o kopiji slike procesa (koja nastaje istovremeno sa slikom procesa, ili prilikom njenog prvog izbacivanja, a nestaje istovremeno sa slikom procesa) se uvaju u deskriptoru procesa, zajedno sa podacima o slici procesa. Prilikom izbacivanja slike procesa, u deskriptoru procesa se nazna ava da se njegova slika ne nalazi vise u radnoj memoriji.

Da procesi, ije su slike izba ene van radne memorije, ne bi bili dugo zapostavljeni, uputno je periodi no vr�iti zamjenu slika procesa (swapping), zna i izbacivati sliku jednog procesa, radi ubacivanja slike drugog procesa. Za to je potrebna posebna operacija za zamjenu slika procesa. Ona ne spada obavezno u sistemske operacije. U nadle�nosti ove operacije je dugoro no raspore ivanje (long term scheduling), u okviru koga se odabira proces, ija slika se izbacuje, kao i proces, ija slika se ubacuje. Va�no je uo iti da se dugoro no raspore ivanje razlikuje od obi nog ili kratkoro nog raspore ivanja (short term scheduling), koje me u spremnim procesima odabira proces na koga se preklju uje procesor.

NA IN IZVR�AVANJA PROCESA

Ve ina procesora podr�ava makar 2 na ina izvr�avanja: u kernel i korsni kom na inu rada (modu). Postoji bit u PSW registru (Program Status Word) koji ozna ava u kom modu se izvr�ava proces. Kernel (system, control) mode � ovo je �privilegovani� na in izvr�enja instrukcija, �to podrazumjeva itanje CONTROL registra, osnovne ulazno-izlazne instrukcije, instrukcije koje se odnose na upravljanje memorijom, i pristup odre enim memorijskim lokacijama. U ovom modu softver ima punu kontrolu nad procesorom i svim njegovim instrukcijama, registrima i memorijom. Korisni kim programima ovaj nivo kontrole nije potreban a iz sigurnosnih razloga nije ni po�eljan. User mode - manje privilegovan mod se naziva korisni ki ili USER mod zato �to se korisni ki programi obi no izvr�avaju u njemu. Ova dva moda su uvedena zbog toga �to je potrebno za�tititi operativni sistem i klju ne tabele operativnog sistema od korisni kih programa. Stanja procesa Procesi se mogu nalaziti u stanjim: aktivan (running), blokiran (blocked) i spreman (ready). To je model 5 stanja prikazan na slici 2.2. Prelazak iz ovih stanja se de�ava ostvarenjem nekih od uslova koji su dati na slici 2.2. Ovaj model se pro�iruje sa dodatna 3 stanja: suspendovan (suspended), suspendovan-speman (suspended-ready) i suspendovan-blokiran (suspended-blocked). Ovaj model je mnogo bli�i modernim operativnim sistemima jer uzima u obzir uvo enje virtualne memorije odnosno pro�irenje operativne memorije. Na slici 2.3 je dat pro�ireni model stanja procesa. Dodatna stanja procesa su:

- suspend - proces je obustavljen i nalazi se u sekundarnoj memoriji (swap), - blocked/suspend - proces je u sekundarnoj memoriji i eka izvr�enje neke operacije (I/O) i

Page 25: Operativni_Sistemi

Operativni sistemi ______________________________________________________________________________

_____________________________________________________________________________________________________________ 24

- ready/suspend - proces je u sekundarnoj memoriji ali je spreman za izvr�avanje im se u ita u glavnu memoriju.

New Ready Running EXIT

Blocked

Dispatch

Time-out

Event

Wait

Event

Occurs

Admit Release

NEW

Proces jo� nijeucitan u

memoriju

READY

Proces jespreman zaizvr�avanje

RUNNING

Proces se izvr�ava

BLOCKED

Proces jeblokiran do

izvr�enja nekeoperacije ( I/O)

EXIT

Proces jezavr�en (ili

ukinut)

New Ready Running EXIT

Blocked

Dispatch

Time-out

Event

Wait

Event

Occurs

Admit Release

NEW

Proces jo� nijeucitan u

memoriju

READY

Proces jespreman zaizvr�avanje

RUNNING

Proces se izvr�ava

BLOCKED

Proces jeblokiran do

izvr�enja nekeoperacije ( I/O)

EXIT

Proces jezavr�en (ili

ukinut)

Slika 2.2 Model 5 stanja procesa

New

Ready Running EXIT

Blocked

Dispatch

Time-out

Event

Wait

Event

Occurs

Admit

Release

Blocked Suspend

Suspend

ActivateReady Suspend

Activate

Suspend

Event

Occurs

SuspendNew

Ready Running EXIT

Blocked

Dispatch

Time-out

Event

Wait

Event

Occurs

Admit

Release

Blocked Suspend

Suspend

ActivateReady Suspend

Activate

Suspend

Event

Occurs

Suspend

Slika 2.3 Pro�ireni model 5 stanja procesa

Prelaz izme u stanja procesa se obavljaju nakon ostvarenja nekog doga aja. U ve ini modernih operativnih sistema ovi prelazi se de�avaju naj e� e iz slede ih razloga:

- BLOCKED -> BLOCKED-SUSPENDED - ako nema spremnih procesa onda makar jedan BLOCKED proces mora da se premjesti u sekundarnu memoriju da bi oslobodio prostou za drugi proces koji nije blokiran.

- BLOCKED-SUSPENDED -> READY-SUSPENDED - ovaj prelaz desava se kada se desi doga aj koji je proces ekao.

- READY-SUSPENDED -> READY - kada nema spremnih procesa u memoriji ili kada je neki READY-SUSPENDED proces ve eg prioriteta od drugog READY procesa.

- READY -> READY-SUSPENDED - naravno da bi bolje bilo umjesto nekog READY procesa da se suspenduje BLOCKED proces ali ovaj prelaz je potreban ako se jedino suspendovanjem READY procesa mo�e osloboditi dovoljno menmorije ili ako je neki

Page 26: Operativni_Sistemi

Operativni sistemi ______________________________________________________________________________

_____________________________________________________________________________________________________________ 25

READY proces manjeg prioriteta nego BLOCKED proces tada e OS prije suspendovati READY nego BLOCKED proces ako procijeni da bi doga aj na koji BLOCKED proces ceka mogao brzo da se desi.

- NEW -> READY-SUSPENDED (READY) - kada se neki proces kreira on ne mora da ide pravo u READY stanje vec moze i u READY-SUSPENDED .

- BLOCKED-SUSPENDED -> BLOCKED - ovo se de�ava samo kada je neki BLOCKED-SUSPENDED proces ve eg prioriteta od READY-SUSPENDED procesa a doga aj na koji eka bi mogao brzo da se desi.

- RUNNING -> READY-SUSPENDED- OS mo�e proces iz RUNNING stanja da prebaci i u READY-SUSPENDED i u READY stanje u zavisnosti od prioriteta ostalih READY i BLOCKED procesa.

Radi ilustracije na slici 2.4 je dat grfi ki prikaz dijela izvr�enja 3 procesa. Instrukcije procesa A (slika) su smje�tene u glavnu memoriju od 5000 adrese, procesa B od 8000, a procesa C od 12000. Raspore iva procesa je na adresama od 100. Procesor obra uje po 6 instrukcija jednog procesa prije nego pre e na novi, jer je pretpostavka da su procesi istog prioriteta. Vidimo da je razlog prelaska sa jednog procesa na drugi: redovna smjena procesa (time out) ili nedostatak nekog podatka koji proces B pretvara u blokiran (I/O request). Na ovaj na in se ostavaruje multiprocesing kod OS.

1 5000 27 120042 5001 28 120053 5002 ----------------------Time out4 5003 29 1005 5004 30 1016 5005 31 102------------------Time out 33 1037 100 34 1048 101 35 50069 102 36 500710 103 37 500811 104 38 500912 105 39 501013 8000 40 501114 8001 --------------------Time out15 8002 41 10016 8003 42 101----------------------I/O request 4310217 100 44 10318 101 45 10419 102 46 10520 103 47 1200621 104 48 1200722 105 49 1200823 12000 50 1200924 12001 51 1201025 12002 52 1201126 12003 -----------------Time out

Main Memory0

100

5000

8000

12000

Dispatcher

Process A

Process B

Process C

Slika 2.4 Pra enje izvr�enja 3 procesa

UPRAVLJANJE NITIMA

Kao �to smo vidjeli u prethodnoj glavi procesi mogu da se satoje iz jedne i vi�e niti, a istovremeno procesor mo�e da izvr�ava jedan ili vi�e procesa. Na slici 2.5 je prikazano upore enje poznatih OS sa stanovi�ta procesa i niti.

Page 27: Operativni_Sistemi

Operativni sistemi ______________________________________________________________________________

_____________________________________________________________________________________________________________ 26

Slika 2.5 Procesi i niti u raznim OS

Osnovni razlozi za kori� enje niti su: 1. Izbjegavanje uskih grla u izvr�avanju programa (pristup disku, mre�na komunikacija,

prikaz audio/videa, ...) 2. Organizacija izvr�avanja programa (paralelno izvr�avanje vi�e funkcija, dodjela

prioriteta prilikom izvr�avanja, ...) 3. Multiprocesiranje (iskori�tavanje mogo nosti izvr�avanja na vi�e procesora

istovremeno) Prednosti kori� enje niti su: 1. Br�e se kreira nit nego proces 2. Br�e se prekida izvr�avanje niti 3. Prebacivanje izvr�avanja sa niti na nit je br�e 4. Komunikacija izmedju niti je efikasnija nego komunikacija izmedju procesa (koriste

isti adresni prostor tj. memoriju, fajlove)

Slika 2.6 Modeli procesa sa jednom ili vi�e niti

MS-DOS

Tradicionalni UNIX

Java

W2K, Linux, Solaris, ...

Page 28: Operativni_Sistemi

Operativni sistemi ______________________________________________________________________________

_____________________________________________________________________________________________________________ 27

Stanja niti su ista kao i stanja procesa. Upravljanje nitima mo�e, ali i ne mora, biti u

nadle�nosti sloja za upravljanje procesima. Kada je upravljanje nitima povjereno sloju za upravljanje procesima, tada operativni sistem nudi sistemske operacije za upravljanje nitima, koje omogu uju stvaranje, uni�tavanje i sinhronizaciju niti. U ovom slu aju, deskriptori i sistemski stek niti se nalaze u sistemskom prostoru, dok se sopstveni stek niti nalazi u korisni kom prostoru (unutar slike procesa). Na slici 2.6 su dati modeli procesa sa jednom ili vi�e niti.

U slu aju kada upravljanje nitima nije u nadle�nosti operativnog sistema, brigu o nitima potpuno preuzima konkurentna biblioteka. Po�to ona pripada slici procesa, u ovom slu aju upravljanje nitima se potpuno odvija u korisni kom prostoru (u kome se nalaze i deskriptori niti, kao i stekovi niti).

Osnovna prednost upravljanja nitima van operativnog sistema je efikasnost (jer su pozivi potprograma konkurentne biblioteke br�i od poziva sistemskih operacija). Ali, kada operativni sistem ne rukuje nitima, tada poziv blokiraju e sistemske operacije iz jedne niti dovodi do zaustavljanja aktivnosti procesa kome ta nit pripada, jer operativni sistem mo�e da pripi�e sve pozive sistemskih operacija samo procesima (posto ne registruje postojanje niti). Na taj na in se spre ava konkurentnost unutar procesa (jer zaustavljanje aktivnosti procesa spre ava aktivnost njegovih spremnih niti). Ova mana upravljanja nitima van operativnog sistema ozbiljno umanjuje prakti nu vrednost ovakvog pristupa.

Slika 2.7 Primjer realizacije vi�e niti na jednom procesoru

Na slici 2.7 je dat primjer OS koji obavlja vi�e procesa (1 i 2) �istovremeno�, a pri tome

su procesi podijeljeni na niti i ima na raspolaganju jedan procesor. Jasno je da je na ovaj na in procesor maksimalno iskori� en, a procesi se realizuju na efikasan na in.

Sa stanovi�ta ostalih slojeva operativnog sistema nema su�tinske razlike izme u procesa i niti, pa se u nastavku izlaganja pominju samo procesi.

Page 29: Operativni_Sistemi

Operativni sistemi ______________________________________________________________________________

_____________________________________________________________________________________________________________ 28

OSNOVA SLOJA ZA UPRAVLJANJE PROCESIMA

Sloj za upravljanje procesima se oslanja na sloj za upravljanje fajlovima, radi pristupa sadr�aju izvrsnog fajla, ali i radi upravljanja kopijama slika procesa, jer se za njih rezervi�e poseban fajl. Pored toga, sloj za upravljanje procesima se oslanja i na sloj za upravljanje radnom memorijom, radi zauzimanja i osloba anja zona radne memorije, potrebnih za smje�tanje slika procesa. Na kraju, sloj za upravljanje procesima se oslanja i na sloj za upravljanje procesorom, jer do preklju ivanja dolazi prilikom stvaranja i uni�tenja procesa.

2.2 SISTEMSKI PROCESI

Za obavljanje pojedinih zadataka operativnog sistema prirodno je koristiti procese. Ovakvi procesi se nazivaju sistemski (daemon), jer su u sluzbi operativnog sistema.

NULTI PROCES

Tipi an primjer sistemskog procesa je nulti ili beskona ni (idle) proces, na koga se

procesor preklju uje, kada ne postoji drugi spreman proces. Zna i, beskona an proces ima zadatak da zaposli procesor, kada nema mogu nosti za korisnu upotrebu procesora. U toku aktivnosti beskona nog procesa izvr�ava se beskona na petlja, sto zna i da je beskona an proces uvijek ili spreman ili aktivan (on ne prelazi u stanje ekanja). Njegov prioritet je ni�i od prioriteta svih ostalih procesa, a on postoji za sve vreme aktivnosti operativnog sistema.

PROCES DUGORO NI RASPORE IVA

Drugi primjer sistemskog procesa je proces dugoro ni raspore iva (swapper), koji se

brine o zamjeni slika procesa (jasno, kada za to ima potrebe). On se periodi no aktivira, radi pozivanja operacije za zamjenu slika procesa. Nakon toga, ovaj proces se uspava (odnosno, njegova aktivnost se zaustavlja, dok ne nastupi trenutak za njegovo novo aktiviranje). Da bi se proces uspavao (odnosno da bi se njegova aktivnost zaustavila do nastupanja zadanog trenutka), neophodna je odgovaraju a sistemska operacija. Ona pripada sloju za upravljanje kontrolerima, jer proticanje vremena registruje drajver sata. I proces dugoro ni raspore iva postoji za sve vreme aktivnosti operativnog sistema (jasno, ako ima potrebe za dugoro nim raspore ivanjem).

PROCESI IDENTIFIKATOR I KOMUNIKATOR

U sistemske procese spadaju i procesi identifikatori (login process), koji podr�avaju

predstavljanje korisnika. Svaki proces identifikator opslu�uje po jedan terminal, da bi posredstvom svog terminala stupio u interakciju sa korisnikom u toku njegovog predstavljanja, radi preuzimanja njegovog imena (koje se prikazuje na ekranu) i njegove lozinke (koja se ne prikazuje na ekranu). Po preuzimanju imena i lozinke, proces identifikator provjerava njihovu ispravnost i, ako je prepoznao korisnika, tada stvara proces komunikator, koji nastavlja interakciju sa korisnikom. Pri tome, proces identifikator prepu�ta svoj terminal stvorenom procesu komunikatoru i zaustavlja svoju aktivnost. Ona se nastavlja tek nakon zavr�etka aktivnosti procesa komunikatora. Tada proces identifikator opet preuzima opslu�ivanje svog terminala, da bi podr�ao novo predstavljanje korisnika. Prema tome, i procesi identifikatori postoje za sve vreme aktivnosti operativnog sistema.

Page 30: Operativni_Sistemi

Operativni sistemi ______________________________________________________________________________

_____________________________________________________________________________________________________________ 29

Iz funkcije procesa komunikatora sledi da on ostvaruje interaktivni nivo komunikacije korisnika i operativnog sistema. Ipak, proces komunikator ne spada nu�no u sistemske procese, jer njemu ne mora da odgovara samo interpreter komandnog jezika, nego i drugi programi, poput tekst editora, na primjer. U svakom slu aju, proces komunikator prihvata sve komande, koje dolaze sa terminala i tretira ih kao komande prepoznatog korisnika (koga je prepoznao proces identifikator). U skladu s tim, proces komunikator koristi prava prepoznatog korisnika za pristupe fajlovima (jer je ovaj korisnik vlasnik procesa komunikatora).

Za provjeru ispravnosti imena i lozinke korisnika, neophodno je raspolagati spiskom imena i lozinki registrovanih korisnika. Ovaj spisak se uva u posebnoj datoteci lozinki (password file). Svaki slog ove datoteke sadr�i:

1. ime i lozinku korisnika, 2. numeri ku oznaku korisnika, 3. putanju korisni kog direktorijuma i 4. putanju izvr�ne datoteke.

Proces identifikator koristi putanju izvr�ne datoteke (sa inicijalnom slikom korisni kog

procesa komunikatora) u toku stvaranja procesa komunikatora. Tom prilikom on upotrebi numeri ku oznaku prepoznatog korisnika kao numeri ku oznaku vlasnika stvaranog procesa komunikatora, a putanju direktorijuma prepoznatog korisnika upotrebi kao (po etni) radni direktorijum otvaranog procesa komunikatora.

Slogovi datoteke lozinki se, zbog jednozna nosti, me usobno razlikuju obavezno po imenima i po numeri kim oznakama korisnika, a zbog sigurnosti i po lozinkama. Me utim, oni se mogu razlikovati po putanjama korisni kih (po etnih radnih) direktorijuma, pa i po putanjama izvr�nih datoteka (sa inicijalnim slikama korisni kih procesa komunikatora). Zahvaljuju i tome, svaki korisnik mo�e da ima poseban (sopstveni) radni direktorijum, ali i poseban (sopstveni) proces komunikator. Za procese komunikatore, koji su prilago eni posebnim potrebama pojedinih korisnika (zna i, kojima ne odgovara standardni interpreter komandnog jezika), se ne smatra da su sistemski procesi, jer oni ne predstavljaju sastavni deo operativnog sistema, iako obavljaju ulogu sloja za spregu sa korisnikom. Zbog ovakvih procesa komunikatora, mogu e je zauzeti stanovi�te da sloj za spregu sa korisnikom i nije deo operativnog sistema, nego da pripada vi�em (korisni kom) sloju, kome, izme u ostalog, pripadaju i sistemski programi, kao sto su tekst editor ili kompajler.

Za proces komunikator (kao i za svaki drugi proces) prava pristupa datotekama se odre uju na osnovu numeri ke oznake njegovog vlasnika. Procesi, koje stvara proces komunikator (radi izvr�avanja pojedinih komandi korisnika) imaju ista prava kao i proces komunikator, jer se podrazumijeva da stvoreni procesi nasle uju numeri ku oznaku vlasnika procesa stvaraoca. Prema tome, dok je u interakciji sa procesom komunikatorom, njegov vlasnik nema mogu nosti za naru�avanje za�tite datoteka. Ali, ako, umjesto vlasnika, u interakciju sa procesom komunikatorom stupi neki drugi korisnik, za�tita datoteka se naru�ava, jer ovaj drugi korisnik dobija priliku da u�iva tu a prava pristupa datotekama (koja pripadaju vlasniku procesa komunikatora). Zato, nakon predstavljanja, korisnik ne sme prepustiti svoj terminal drugom korisniku, pre nego sto zavri aktivnost svog procesa komunikatora. Radi toga, me u komandama procesa komunikatora, obavezno postoji posebna komanda, namjenjena ba� procesu komunikatoru, a koja izaziva njegovo uni�tenje. Zna i, svaki korisnik zapo inje rad prijavom, u toku koje se predstavi i pokrene aktivnost svog procesa komunikatora, a zavr�i rad odjavom, u toku koje okon a aktivnost svog procesa komunikatora (komanda za zaustavljanje aktivnosti procesa komunikatora pripada komandama za upravljanje procesima).

Page 31: Operativni_Sistemi

Operativni sistemi ______________________________________________________________________________

_____________________________________________________________________________________________________________ 30

Za za�titu datoteka klju no je onemogu iti neovla�tene pristupe datoteci lozinki. Prirodno je da njen vlasnik bude administrator i da jedino sebi dodeli pravo itanja i pisanja ove datoteke. Po�to su procesi identifikatori sistemski procesi, koji nastaju pri pokretanju operativnog sistema, nema prepreke da njihov vlasnik bude administrator. Iako na taj na in procesi identifikatori dobijaju i pravo itanja i pravo pisanja datoteke lozinki, to pravo korisnici ne mogu da zloupotrebe, jer, posredstvom procesa identifikatora, jedino mogu provjeriti da li su registrovani u datoteci lozinki. Pri tome je bitno da svoja prava proces identifikator ne prenosi na proces komunikator (pa zato proces komunikator ne nasle uje numeri ku oznaku vlasnika procesa identifikatora, koji je njegov stvaralac).

Administrator bez problema pristupa datoteci lozinki, radi izmjene njenog sadr�aja, jer je on vlasnik svih procesa, nastalih radi obavljanja njegovih komandi. Po�to korisnici nemaju na ina da pristupe datoteci lozinki, javlja se problem kako omogu iti korisniku da sam izmjeni svoju lozinku. Taj problem se mo�e rije�iti po uzoru na proces identifikator, koga koriste svi korisnici, iako nisu njegovi vlasnici. Prema tome, ako je administrator vlasnik izvrsne datoteke sa inicijalnom slikom procesa za izmjenu lozinki, dovoljno je nazna iti da on treba da bude vlasnik i procesa nastalog na osnovu ove izvrsne datoteke. U tom slu aju, nema smetnje da korisnik, koji izazove stvaranje procesa za izmjenu lozinke, pristupi datoteci lozinki. Pri tome, proces za izmjenu lozinki dozvoljava korisniku samo da izmjeni sopstvenu lozinku, tako sto od korisnika primi njegovo ime, va�e u i novu lozinku, pa, ako su ime i va�e a lozinka ispravni, on va�e u lozinku zameni novom.

Datoteka lozinki je dodatno za�ti ena, ako su lozinke u njoj u kriptovanom (encrypted) obliku (jer tada administrator mo�e da posmatra sadr�aj datoteke lozinki na ekranu, ili da ga �tampa, bez straha da to mo�e biti zloupotrebljeno). Da bi se spre ilo poga anje tu ih lozinki, proces identifikator (ili proces za izmjenu lozinki) treba da reaguje na vise uzastopnih neuspe�nih poku�aja predstavljanja, obave�tavaju i o tome administratora, ili odbijaju i neko vreme da prihvati nove poku�aje predstavljanja. Tako e, korisnici moraju biti oprezni da sami ne odaju svoju lozinku la�nom procesu identifikatoru. To se mo�e desiti, ako se njihov prethodnik ne odjavi, nego ostavi svoj proces da opsluzuje terminal i da, pri tome, oponasa proces identifikator. Ovakvi procesi se nazivaju trojanski konji (trojan horse).

Na kraju, va�no je uo iti da, zbog istovremenog postojanja vi�e procesa i nepredvidivosti preklju ivanja, postoji nezanemarljiva mogu nost da vi�e procesa istovremeno poku�a da pristupi datoteci lozinki. Ako su to samo procesi identifikatori, to i nije problemati no, jer oni samo preuzimaju njen sadr�aj. Ali, ako ovoj datoteci (ili bilo kojoj drugoj) istovremeno poku�aju pristupiti procesi koji menjaju njen sadr�aj, ili procesi koji preuzimaju i/ili menjaju njen sadr�aj, rezultat pristupa je nepredvidiv, zna i zavisan od redosleda pristupa i razli it od rezultata potpuno sekvencijalnog pristupa. Nepredvidivost rezultata pristupa je posledica injenice da preklju ivanja mogu da u ine vidljivim samo delimi no izmijenjen sadr�aj datoteke, �to je nemogu e u slu aju potpuno sekvencijalnog pristupa (kada su vidljive samo cjelovite izmjene sadraja datoteke). Vidljivost djelimi no izmijenjenog sadr�aja datoteke uzrokuje da ukupna izmjena mo�e da bude posledica delimi nih izmjena, napravljenih u toku aktivnosti raznih procesa, �to je neprihvatljivo. Iz istog razloga mogu e je preuzimanje dela novog (izmjenjenog) i dela starog (neizmjenjenog) sadr�aja datoteke, �to je, tako e, neprihvatljivo. Zato je potrebno sinhronizovati procese koji pristupaju sadr�aju iste datoteke.

POJAM KRIPTOGRAFIJE (CRYPTOGRAPHY)

Cilj kriptovanja teksta (kao sto je, na primjer, lozinka) je da tekst nakon kriptovanja

Page 32: Operativni_Sistemi

Operativni sistemi ______________________________________________________________________________

_____________________________________________________________________________________________________________ 31

ostane nerazumljiv (ne itljiv) za neupu enu osobu. Kriptovanje menja tekst po unapred dogovorenom algoritmu kriptovanja, uz kori� enje zadatog klju a kriptovanja. Tako, na primjer, ako algoritam kriptovanja vr�i zamjenu znakova teksta dvocifrenim brojevima, tada klju kriptovanja ima oblik niza dvocifrenih brojeva, koji korespondiraju znakovima (pretpostavka je da je redosled znakova unapred zadan). U ovom primjeru klju eva kriptovanja ima koliko i razli itih nizova dvocifrenih brojeva koji korespondiraju znakovima. Da bi kriptovani tekst postao razumljiv, potrebno ga je dekriptovati (decrypt), odnosno vratiti u prvobitni oblik. To omogu uju algoritam dekriptovanja i klju dekriptovanja. Ako algoritam dekriptovanja direktno i jednozna no sledi iz algoritma kriptovanja, a klju dekriptovanja iz klju a kriptovanja, tada je re o simetri noj kriptografiji (symmetric-key cryptography, secret-key cryptography). Tako, iz prethodno pomenutog primjera algoritma kriptovanja sledi da se algoritam dekriptovanja sastoji od zamene dvocifrenih brojeva odgovaraju im znakovima, a da klju dekriptovanja ima oblik niza znakova koji korespondiraju dvocifrenim brojevima (pretpostavka je da je redosled dvocifrenih brojeva unapred zadan).

Osobina simetri ne kriptografije je da poznavanje klju a kriptovanja omogu uje i dekriptovanje. Zato, kod simetri ne kriptografije, klju kriptovanja predstavlja tajnu, pa njega, na primjer, u slu aju kriptovanja i dekriptovanja lozinke zna samo administrator.

Algoritmi kriptovanja i dekriptovanja ne predstavljaju tajnu, jer je praksa pokazala da se takva tajna ne mo�e sa uvati. Prema tome, tajnost kriptovanja teksta se zasniva na injenici da komplikovanost algoritama kriptovanja i dekriptovanja, velika du�ina klju eva kriptovanja i dekriptovanja, kao i veliki broj ovih klju eva ine prakti no neizvodljivim poku�aj da se dekriptuje kriptovani tekst probanjem, jednog po jednog, svih mogu ih klju eva dekriptovanja.

Simteri na kriptografija nije podesna za kriptovanje poruka, jer tada klju kriptovanja mora znati svaki po�iljalac poruke, �to ga dovodi u poziciju da mo�e da dekriptuje poruke drugih po�iljalaca. To nije mogu e u asimetri noj kriptografiji (public-key cryptography), jer je njena osobina da se iz klju a kriptovanja ne mo�e odrediti klju dekriptovanja, pa poznavanje klju a kriptovanja ne omogu uje dekriptovanje. Ovakav klju kriptovanja se zove javni klju (public key), jer je on dostupan svima. Njemu odgovaraju i klju dekriptovanja (private key) je privatan (tajan), jer je dostupan samo osobama ovla� enim za dekriptovanje. Prema tome, svaki po�iljalac poruke raspola�e javnim klju em, da bi mogao da kriptuje poruke, dok privatni klju poseduje samo primalac poruka, da bi jedini mogao da dekriptuje poruke. Asimetri na kriptografija se temelji na kori� enju jednostavnih algoritama kriptovanja kojima odgovaraju komplikovani algoritmi dekriptovanja. Zato je asimteri na kriptografija mnogo sporija od simetri ne.

2.3 SLOJ ZA UPRAVLJANJE FAJLOVIMA

Zadatak sloja za upravljanje fajlovima je da ozbezbedi punu slobodu upravljanja podacima, sadr�anim u fajlovima. Ovakva sloboda podrazumijeva mogu nost proizvoljnog dodavanja podataka u datoteku, ili njihovog izbacivanja iz datoteke, kao i direktnog pristupa svakom podatku u datoteci. Punu slobodu upravljanja podacima nudi predstava sadr�aja datoteke kao niza bajta, pod uslovom da se ovaj niz mo�e, po potrebi, produ�avati ili skra ivati, kao i da se bajtima iz niza mo�e pristupati u proizvoljnom redosledu (kori� enjem rednog broja bajta za njegovu identifikaciju). Ovakva predstava datoteke dozvoljava da se iznad nje izgrade razli iti pogledi na datoteku, na primjer, da se datoteka posmatra kao skup slogova iste ili razli ite du�ine, koji se identifikuju pomo u posebnih indeksa. Oblikovanje ovakvih specijalizovanih pogleda na datoteke izlazi van okvira operativnog sistema, koji sadr�aj datoteke predstavlja kao niz bajtova.

Page 33: Operativni_Sistemi

Operativni sistemi ______________________________________________________________________________

_____________________________________________________________________________________________________________ 32

KONTIUNALNI FAJLOVI

Sadr�aji datoteka se nalaze u blokovima masovne memorije. Za bilo kakvo upravljanje ovim sadr�ajem neophodno je da on dospe u radnu memoriju. Zato je upravljanje bajtima sadr�aja datoteke neraskidivo povezano sa prebacivanjem blokova sa ovim bajtima izme u radne i masovne memorije. Pri tome se bajti prebacuju iz radne u masovnu memoriju radi njihovog trajnog uvanja, a iz masovne u radnu memoriju radi obrade. Da bi ovakvo prebacivanje bilo mogu e, neophodno je da sloj za upravljanje datotekama uspostavi preslikavanje rednih brojeva bajta u redne brojeve njima odgovaraju ih blokova. Ovakvo preslikavanje se najlak�e uspostavlja, ako se sadr�aj datoteke nalazi u susednim blokovima ( iji redni brojevi su uzastopni). Ovakve datoteke se nazivaju kontinualne (contiguous). Kod kontinualnih datoteka redni broj bloka, u kome se nalazi neki bajt, se odre uje kao koli nik rednog broja bajta i veli ine bloka (izra�ene brojem bajta, koje sadr�i svaki blok). Pri tome, ostatak deljenja ukazuje na relativni polo�aj bajta u bloku.

Kontinualne datoteke zahtjevaju od sloja za upravljanje datotekama da za svaku datoteku vodi evidenciju ne samo o njenom imenu, nego i o rednom broju po etnog bloka datoteke, kao i o du�ini datoteke. Ova du�ina mo�e biti izra�ena brojem bajta, ali i brojem blokova, koga obavezno prati podatak o popunjenosti poslednjeg bloka. Pojava da poslednji blok datoteke nije popunjen do kraja se naziva interna fragmentacija (internal fragmentation). Ova pojava je va�na, jer nepopunjeni poslednji blok datoteke predstavlja neupotrebljen (i potencijalno neupotrebljiv) deo masovne memorije.

Sloj za upravljanje fajlovima obavezno vodi i evidenciju slobodnih blokova masovne memorije. Za potrebe kontinualnih datoteka bitno je da ova evidencija olak�a pronala�enje dovoljno duga kih nizova susednih blokova. Zato je podesna evidencija u obliku niza bita (bit map), u kome svaki bit odgovara jednom bloku i pokazuje da li je on zauzet (0) ili slobodan (1). U slu aju ovakve evidencije, pronala�enje dovoljno duga kih nizova susednih blokova se svodi na pronala�enje dovoljno duga kog niza jedinica u nizu bita koji odslikava zauzetost masovne memorije. Ovakvo pronala�enje je neizbje�no pri stvaranju kontinualnih datoteka, ija veli ina se zadaje prilikom njihovog stvaranja (zna i, mora biti unapred poznata).

Upravljanje slobodnim blokovima masovne memorije zahtjeva sinhronizaciju (me usobnu isklju ivost procesa), da bi se, na primjer, izbjeglo da vi�e procesa, nezavisno jedan od drugog, zauzme iste slobodne blokove masovne memorije.

Pojava iscepkanosti slobodnih blokova masovne memorije u kratke nizove susednih blokova ote�ava upravljanje kontinualnim datotakama. Ta pojava se zove eksterna fragmentacija (external fragmentation). Ona nastaje kao rezultat vi�estrukog stvaranja i uni�tenja datoteka u slu ajnom redosledu, pa iza uni�tenih datoteka ostaju nizovi slobodnih susednih blokova, me usobno razdvojenih blokovima postoje ih datoteka. Problem eksterne fragmentacije se pove ava, kada se, prilikom tra�enja dovoljno duga kog niza susednih blokova, prona e niz du�i od potrebnog, jer se tada zauzima (allocation) samo deo blokova u prona enom nizu. To dovodi do daljeg drobljenja (skra enja) nizova slobodnih susednih blokova, jer preostaju sve kra i nizovi slobodnih susednih blokova.

Eksterna fragmentacija je problemati na, jer posredno izaziva neupotrebljivost slobodnih blokova masovne memorije. Na primjer, eksterna fragmentacija onemogu uje stvaranje kontinualne datoteke, ija du�ina je jednaka sumi slobodnih blokova, kada oni ne obrazuju niz susednih blokova. Problem eksterne fragmentacije se mo�e rije�iti sabijanjem (compaction) svih datoteka, tako da svi slobodni blokovi budu potisnuti iza datoteka i da tako obrazuju niz susednih blokova (mana ovog postupka je njegova dugotrajnost).

Page 34: Operativni_Sistemi

Operativni sistemi ______________________________________________________________________________

_____________________________________________________________________________________________________________ 33

U op�tem slu aju produ�enje kontinualne datoteke je komplikovano, jer zahtjeva stvaranje nove, ve e kontinualne datoteke, prepisivanje sadr�aja produ�avane datoteke u novu datoteku i uni�tavanje produ�avane datoteke (sve ovo je potrebno, jer se ne mo�e o ekivati da se neposredno iza produ�avane datoteke uvek na e dovoljno duga ak niz susednih slobodnih blokova).

RASUTI FAJLOVI

Upotrebnu vrednost kontinualnih datoteka zna ajno smanjuju problem eksterne fragmentacije, potreba da se unapred zna veli ina kontinualnih datoteka i te�ko e sa njihovim produ�avanjem. Zato se umjesto kontinualnih koriste rasute (noncontiguous) datoteke, iji sadr�aj je smje�ten (rasut) u nesusjednim blokovima masovne memorije. Kod rasutih datoteka redni brojevi bajta se preslikavaju u redne brojeve blokova pomo u posebne tabele pristupa (file allocation table). Njeni elementi sadr�e redne brojeve blokova, dok indekse ovih elemenata odre uje koli nik rednog broja bajta i veli ine bloka. Iz prethodnog sledi da du�nu rasutih datoteka ograni ava veli ina tabele pristupa. Zato se veli ina tabele pristupa dimenzionira tako da nadma�i i najve e prakti ne zahtjeve u pogledu du�ine rasutih datoteka.

deskriptor rasutog fajla tabela pristupa

Slika 2.8 Grafi ki prikaz bitnih elemenata organizacije rasute datoteke

...

...

...

... ...

... ... blok drugog stepena indirekcije

blok prvog stepena indirekcije

p

b

b

b

b

b

0 p-1 p

p+b-1 p+b

p+b+b2-1 p+b+b2

p+b+b2 +b3-1

Page 35: Operativni_Sistemi

Operativni sistemi ______________________________________________________________________________

_____________________________________________________________________________________________________________ 34

Tabele pristupa se uvaju u blokovima masovne memorije (kao, uostalom, i sadr�aji datoteka). Radi manjeg zauze a, va�no je da se u blokovima masovne memorije ne uva uvijek cijela tabela pristupa, nego samo njen neophodan (stvarno kori� en) deo. Zato se tabela pristupa dijeli u odsje ke. Po etni odsje ak (sa p elemenata tabele pristupa) je uvijek prisutan. On je manji od bloka masovne memorije. Dodatni odsje ci su prisutni samo kad su neophodni. Svaki dodatni odsje ak je jednak bloku masovne memorije i mo�e da sadr�i b elemenata tabele pristupa (b > p). Prema tome, svaka rasuta datoteka zauzima jedan blok (ili njegov deo), u kome se nalazi po etni odsje ak tabele pristupa sa p njenih elemenata. Za ovu tabelu se, po potrebi, zauzima jos jedan blok sa dodatnim odse kom, u kome se nalazi narednih b elemenata tabele pristupa. Kada zatreba jo� dodatnih odsje aka, za tabelu pristupa se zauzima poseban blok prvog stepena indirekcije. On sadr�i do b rednih brojeva blokova sa dodatnim odsje cima. U svakom od njih se nalazi b novih elemenata tabele pristupa. Na kraju, po potrebi, za ovu tabelu se zauzima poseban blok drugog stepena indirekcije. On sadr�i do b rednih brojeva blokova prvog stepena indirekcije. Svaki od njih sadr�i do b rednih brojeva blokova sa dodatnim odsje cima, a u svakom od njih se nalazi b novih elemenata tabele pristupa. Prema tome, ukupno ima 1+b+b2 dodatnih odse aka (svaki sa b elemenata tabele pristupa).

Podaci, kao �to su sadr�aj po etnog odsje ka tabele pristupa i redni broj njenog prvog dodatnog odsje ka, kao i redni brojevi blokova prvog i drugog stepena indirekcije, obrazuju deskriptor rasute datoteke. Pored toga, ovaj deskriptor obuhvata i du�inu rasute datoteke, jer i kod nje poslednji blok njenog sadr�aja ne mora biti popunjen do kraja. Slika 2.8 sadr�i grafi ki prikaz bitnih elemenata organizacije rasute datoteke.

Ideja, kori� ena za organizaciju tabele pristupa, mo�e da se upotrebi i za organizaciju evidencije slobodnih blokova masovne memorije. U tom slu aju ova evidencija ima oblik liste slobodnih blokova. Svaki od njih, pored rednog broja narednog slobodnog bloka iz ove liste, sadr�i do b-1 rednih brojeva slobodnih blokova, koji nisu uvezani u listu. Ovakva evidencija slobodnih blokova je uskla ena sa tabelom pristupa, jer se, pri uni�tenju datoteke, blokovi, koji odgovaraju dodatnim odsje cima, direktno uklju uju u listu slobodnih blokova. Alternativna organizacija evidencije slobodnih blokova je u obliku niza bita. Ovakva organizacija ima za posledicu dugotrajnije uklju ivanje slobodnih blokova u evidenciju, ali njena prednost je da olak�ava pronala�enje susjednih slobodnih blokova.

Evidencija slobodnih blokova masovne memorije u obliku liste slobodnih blokova je prikazana na slici 2.9.

Slika 2.9 Grafi ka predstava evidencije slobodnih blokova u obliku liste

...

...

b-1 rednih brojeva slobodnih blokoa koji nijesu vezani u listu

...

b-1 rednih brojeva slobodnih blokoa koji nijesu vezani u listu

Page 36: Operativni_Sistemi

Operativni sistemi ______________________________________________________________________________

_____________________________________________________________________________________________________________ 35

KONZISTENTNOST FAJL SISTEMA

Iza upravljanja datotekama krije se upravljanje blokovima masovne memorije, u kojima se nalaze i sadr�aj i deskriptor i, eventualno, dodatni odsje ci tabele pristupa svake rasute datoteke. Upravljanje ovim blokovima uslo�njava injenica da se me usobno zavisni podaci nalaze u raznim blokovima. Po�to se blokovi modifikuju u radnoj memoriji, a trajno uvaju u masovnoj memoriji, prirodno je da u pojedinim trenucima postoji razlika izme u blokova u masovnoj memoriji i njihovih kopija u radnoj memoriji. Probleme izaziva gubitak kopija blokova u radnoj memoriji (na primjer, zbog nestanka napajanja), prije nego su sve kopije blokova, sa me usobno zavisnim podacima, preba ene u masovnu memoriju. Tako, na primjer, produ�enje rasute datoteke zahtjeva izmjenu evidencije slobodnih blokova (radi isklju ivanja prona enog slobodnog bloka iz ove evidencije), kao i izmjenu tabele pristupa produ�avane rasute datoteke (radi smje�tanja rednog broja novog bloka u element ove tabele). Izmjena evidencije slobodnih blokova dovodi do promjene jedne od kopija njenih blokova u radnoj memoriji. Isti efekat ima i izmjena tabele pristupa produ�avane rasute datoteke. Ako obje izmjenjene kopije budu preba ene u masovnu memoriju, tada je produ�enje rasute datoteke uspje�no obavljeno. Ako ni jedna od kopija ne dospije u masovnu memoriju, tada produ�enje rasute datoteke nije obavljeno, jer nije registrovano u masovnoj memoriji. Ali, ako samo jedna od promenjenih kopija dospe u masovnu memoriju, tada se javljaju problemi konzistentnosti sistema datoteka. U jednom slu aju, kada samo promijenjena kopija bloka evidencije slobodnih blokova dospije u masovnu memoriju, blok isklju en iz ove evidencije postaje izgubljen (jer njegov redni broj nije prisutan niti u ovoj evidenciji, a niti u tabeli pristupa neke od rasutih datoteka). U drugom slu aju, kada samo promenjena kopija bloka tabele pristupa dospe u masovnu memoriju, blok, pridru�en ovoj tabeli, ostaje i dalje uklju en u evidenciju slobodnih blokova. Prvi slu aj je bezazlen, jer se izgubljeni blokovi mogu prona i (pronalazenje izgubljenih blokova se zasniva na tra�enju blokova koji nisu prisutni ni u evidenciji slobodnih blokova, ni u tabelama pristupa rasutih datoteka). Za razliku od prvog slu aja, drugi slu aj je neprihvatljiv, jer mo�e da izazove istovremeno uklju ivanje istog bloka u vise rasutih datoteka ( ime se naru�ava njihova konzistentnost). Zato je neophodno uvijek prebacivati u masovnu memoriju prvo promijenjenu kopiju bloka evidencije slobodnih blokova, pa tek iza toga i promenjenu kopiju bloka tabele pristupa. Zna i, potrebno je paziti na redosled u kome se izmjenjene kopije blokova prebacuju u masovnu memoriju.

Nakon izmjene kopije bloka u radnoj memoriji, va�no je �to pre izmijenjenu kopiju prebaciti u masovnu memoriju, radi smanjenja mogu nosti da se ona izgubi (na primjer, kao posledica nestanka napajanja). To je naro ito va�no, ako izmjena nije rezultat automatske obrade, nego ljudskog rada (na primjer, editovanja), jer se tada ne mo�e automatski rekonstruisati.

BAFERSKI PROSTOR

Pristupi sadr�aju datoteke mogu zahtjevati prebacivanje vi�e blokova u radnu memoriju

(na primjer, jednog bloka sa deskriptorom datoteke, pa, eventualno, jednog ili vi�e dodatnih blokova tabele pristupa i, na kraju, bloka sa tra�enim bajtima sadr�aja). Po�to je, sa stanovi�ta procesora, prenos blokova na relaciji radna i masovna memorija, spor (dugotrajan), dobra ideja je zauzeti u radnoj memoriji prostor za vi�e bafera, namjenjenih za uvanje kopija kori� enih blokova (block cache, buffer cache). Po�to je radna memorija mnogo manja od masovne, njeni baferi mogu istovremeno da sadr�e mali broj kopija blokova masovne memorije. Zato je va�no da baferi sadr�e kopije blokova, koje e biti kori� ene u neposrednoj budu nosti (jer se samo tako zna ajno ubrzava obrada podataka). Problem se javlja kada su svi baferi napunjeni, a potrebno je

Page 37: Operativni_Sistemi

Operativni sistemi ______________________________________________________________________________

_____________________________________________________________________________________________________________ 36

pristupiti bloku masovne memorije, ija kopija nije prisutna u nekom od bafera. U tom slu aju neizbe�no je osloba anje nekog od bafera, da bi se u njega smjestila kopija potrebnog bloka. Iskustvo pokazuje da je najbolji pristup osloboditi bafer, koji sadr�i kopiju ija referenca je starija od referenci svih ostalih kopija, prisutnih u baferima (Least Recently Used - LRU). Najstariju referencu ima kopija kojoj je poslednji put pristupano u trenutku, starijem od trenutaka poslednjih pristupanja svim ostalim kopijama. Pri osloba anju bafera, njegov dotada�nji sadr�aj se poni�tava, kada bafer sadr�i neizmijenjenu kopiju bloka (jer je ona identi na bloku masovne memorije). U suprotnom slu aju, neophodno je sa uvati izmjeene, pa se kopija prebacuje u masovnu memoriju. U oslobo eni bafer se prebacuje kopija potrebnog bloka masovne memorije. Da bi se znalo koja od kopija ima najstariju referencu, baferi se uvezuju u listu. Na po etak ovakve liste se uvek prebacuje bafer sa upravo kori� enom kopijom (sa najnovijom referencom), pa na njen kraj nu�no dospeva bafer sa kopijom ija referenca je najstarija.

Baferovanje izmjenjenih kopija blokova u radnoj memoriji zahtjeva da se odredi trenutak u kome se izmjenjena kopija prebacuje u masovnu memoriju. Ako se izmjenjena kopija prebacuje u masovnu memoriju odmah nakon svake izmjene, tada se usporava rad, a ako se izmjenjena kopija prebacuje u masovnu memoriju tek pri osloba anju bafera, tada se pove ava mogu nost gubljenja izmjene (na primjer, zbog nestanka napajanja). Rje�avanje ovoga problema se mo�e posredno prepustiti korisniku, ako se uvede posebna operacija (sync) za izazivanje prebacivanja sadr�aja bafera (sa izmjenjenim kopijama blokova) u masovnu memoriju. U tom slu aju izmjenjene kopije dospevaju u masovnu memoriju ili kada se baferi osloba aju ili kada to zatra�i korisnik. Potreba da se kopija bloka �to br�e nakon izmjene prebaci u masovnu memoriju je u suprotnosti sa nastojanjem da se blokovi �to re e prenose izme u radne i masovne memorije.

Na brzinu prebacivanja podataka izme u radne i masovne memorije va�an uticaj ima i veli ina bloka, jer, sto je blok ve i, u prosjeku se potro�i manje vremena na prebacivanje jednog bajta izme u radne i masovne memorije. Me utim, �to je blok ve i, ve a je i interna fragmentacija. Ta dva suprotna zahtjeva uti u na izbor veli ine bloka, koja se kre e od 512 bajta do 8192 bajta.

DESKRIPTOR FAJLA

Deskriptor fajla, pored atributa koji omogu uju preslikavanje rednih brojeva bajta u redne

brojeve blokova, sadr�i: 1. numeri ku oznaku vlasnika fajla, 2. prava pristupa fajlu za njenog vlasnika, za njegove saradnike i za ostale korisnike, 3. podatak da li je fajl zaklju an ili ne, 4. podatak da li numeri ka oznaka vlasnika fajla postaje numeri ka oznaka vlasnika procesa stvorenog na osnovu sadr�aja fajla (va�i samo za izvr�ne fajlove), kao i 5. datum poslednje izmjene fajla.

injenica, da deskriptor fajla sadr�i prava pristupa fajlu, podrazumijeva da je sadr�aj masovne memorije fizi ki za�ti en (tako da nema na ina za neovla�teni pristup masovnoj memoriji). To podrazumijeva da se centralni djelovi ra unara (procesor, radna i masovna memorija, kontroleri i sabirnica) nalaze u za�ti enoj (sigurnoj) prostoriji, a da su samo periferni djelovi ra unara (kao �to su terminali ili �tampa i) direktno na raspolaganju korisnicima.

Podatak da li je fajl zaklju an ili ne je uveden radi ostvarenja me usobne isklju ivosti procesa u toku pristupa datoteci. Pri tome se podrazumijeva da su aktivnosti ovih procesa

Page 38: Operativni_Sistemi

Operativni sistemi ______________________________________________________________________________

_____________________________________________________________________________________________________________ 37

me usobno isklju ive u toku obavljanja operacije zaklju avanja datoteke, u kojoj se provjerava da li je datoteka zaklju ana i eventualno obavi njeno zaklju avanje. Sinhronizacija procesa u toku obavljanja ove operacije je neophodna, da bi se sprije ilo da dva ili vi�e procesa istovremeno zaklju e da je ista datoteka otklju ana i da, nezavisno jedan od drugog, istovremeno zaklju aju pomenutu datoteku. Pomenuta sinhronizacija obezbje uje da uvek najvi�e jedan proces zaklju a datoteku, jer samo on pronalazi otklju anu datoteku, dok svi preostali istovremeno aktivni procesi pronalaze zaklju anu datoteku. Ako je za nastavak aktivnosti ovih preostalih procesa neophodno da pristupe datoteci, tada se njihova aktivnost zaustavlja do otklju avanja datoteke. Zbog ovakvih procesa potrebna je operacija otklju avanja datoteke. Njeno izvr�avanje omogu uje nastavak aktivnosti samo jednog od procesa, ija aktivnost je zaustavljena do otklju avanja datoteke. Ako takav proces postoji, datoteka se i ne otklju ava, nego se samo prepusta novom procesu. Ina e, datoteka se otklju ava. I operacija otklju avanja datoteka zahtijeva sinhronizaciju procesa.

Prethodno opisana sinhronizacija procesa predstavlja primjer uslovne sinhronizacije, jer je aktivnost jednog procesa zaustavljena dok se ne ispuni uslov (da datoteka bude otklju ana), �to se obezbje uje u toku aktivnosti drugog procesa. U slu aju zaklju avanja datoteke, uslovna sinhronizacija nije uvek obavezna, jer je mogu e da proces nastavi svoju aktivnost i nakon neuspe�nog poku�aja zaklju avanja datoteke (jasno, tada se podrazumijeva da on ne e pristupati pomenutoj datoteci). Prema tome, operacija zaklju avanja datoteke je blokiraju a, kada, radi uslovne sinhronizacije, u toku njenog obavljanja dolazi do zaustavljanja aktivnosti procesa, dok se ne stvore uslovi za me usobno isklju ive pristupe zaklju anoj datoteci. Ova operacija je neblokiraju a, kada njena povratna vrednost ukazuje na neuspje�an poku�aj zaklju avanja datoteke i na nemogu nost pristupa datoteci, koju je zaklju ao neki drugi proces.

Sinhronizaciju procesa moraju da obezbijede ne samo operacije zaklju avanja i otklju avanja datoteke, nego i sve druge operacije za upravljanje deskriptorima datoteka. Jedino tako se mo�e obezbijediti o uvanje konzistentnosti deskriptora (i njima odgovaraju ih datoteka).

DIREKTORIJUMI

Ime fajla je prirodno vezano za njegov deskriptor. Po�to se ime datoteke nalazi u

direktorijumu, uz njega bi, u direktorijum, mogao da bude smje�ten i deskriptor datoteke. Me utim, tipi an na in kori� enja direktorijuma je njihovo pretra�ivanje, radi pronala�enja imena direktorijuma ili imena fajla, navedene u datoj putanji. Ovakvo pretra�ivanje prirodno prethodi pristupu sadr�aju datoteke, odnosno sadr�aju direktorijuma. Brzina tog pretra�ivanja je ve a �to su direktorijumi kra i, jer se tada manje podataka prebacuje izme u radne i masovne memorije. Zato je uputno da direktorijumi sadr�e samo imena datoteka i direktorijuma, a ne i njihove deskriptore, pogotovo ako su oni veliki. Da bi se uspostavila veza izme u imena datoteka, odnosno imena direktorijuma sa jedne strane i njihovih deskriptora sa druge strane, u direktorijumima se, uz imena datoteka, odnosno uz imena direktorijuma, navode i redni brojevi njihovih deskriptora (koji jednozna no odre uju ove deskriptore). Na taj na in se ime datoteke, odnosno ime direktorijuma, povezuje sa odgovaraju im deskriptorom. Prema tome, direktorijum odgovara tabeli, iji elementi sadr�e imena datoteka (odnosno, imena direktorijuma) i redne brojeve njihovih deskriptora. Da bi se iz rednog broja deskriptora mogao odrediti redni broj bloka masovne memorije, u kome se deskriptor nalazi, izvjestan broj susjednih blokova se rezervi�e samo za smje�tanje deskriptora. Pod pretpostavkom da blok sadr�i cijeli broj deskriptora, koli nik rednog broja deskriptora i ukupnog broja deskriptora u bloku odre uje redni broj bloka sa deskriptorom. Pri tome se podrazumijeva da je deskriptor sa rednim brojem 0 rezervisan za

Page 39: Operativni_Sistemi

Operativni sistemi ______________________________________________________________________________

_____________________________________________________________________________________________________________ 38

korijenski direktorijum. Zahvaljuju i ovoj pretpostavci, mogu e je uvek prona i deskriptor korijenskog direktorijuma i od njega zapo eti pretra�ivanje direktorijuma, �to obavezno prethodi pristupu sadr�aju datoteke. Tako, na primjer, za pristup sadr�aju datoteke sa putanjom:

/fakultet/smjer1/godina1.txt

potrebno je prebaciti u radnu memoriju blok sa deskriptorom korijenskog direktorijuma, koji je poznat, zahvaljuju i injenici da je redni broj (0) deskriptora korenskog direktorijuma unapred zadan. U ovom deskriptoru se nalaze redni brojevi blokova sa sadr�ajem korijenskog direktorijuma. Nakon prebacivanja ovih blokova u radnu memoriju, mogu e je pretra�iti sadr�aj korijenskog direktorijuma, da bi se ustanovilo da li on sadr�i ime fakultet. Ako sadr�i, uz ovo ime je i redni broj deskriptora odgovaraju eg direktorijuma, iz koga se mo�e odrediti redni broj bloka u kome se nalazi ovaj deskriptor. Po prebacivanju ovog bloka u radnu memoriju, u pomenutom deskriptoru se pronalaze redni brojevi blokova sa sadr�ajem direktorijuma fakultet. Nakon prebacivanja ovih blokova u radnu memoriju mogu e je pretra�iti sadr�aj i ovog direktorijuma, da bi se ustanovilo da li on sadr�i ime smjer1. Ako sadr�i, uz ovo ime je i redni broj deskriptora odgovaraju eg direktorijuma, iz koga se mo�e odrediti redni broj bloka u kome se nalazi ovaj deskriptor. Po prebacivanju ovog bloka u radnu memoriju, u pomenutom deskriptoru se pronalaze redni brojevi blokova sa sadr�ajem direktorijuma smjer1. Nakon prebacivanja ovih blokova u radnu memoriju mogu e je pretra�iti sadr�aj i ovog direktorijuma, da bi se ustanovilo da li on sadr�i ime datoteke godina1.txt. Ako sadr�i, uz nju je i redni broj deskriptora odgovaraju e datoteke, iz koga se mo�e odrediti redni broj bloka u kome se nalazi ovaj deskriptor. Po prebacivanju ovog bloka u radnu memoriju, u pomenutom deskriptoru se pronalaze redni brojevi blokova sa sadr�ajem datoteke godina1.txt. Tek tada je mogu pristup ovom sadr�aju.

U toku pristupa direktorijumima, neophodno je njihovo zaklju avanje, radi obezbije enja me usobne isklju ivosti pristupa raznih procesa istom direktorijumu ( ime se obezbije uje o uvanje konzistentnosti direktorijuma).

SISTEMSKE OPERACIJE SLOJA ZA UPRAVLJANJE FAJLOVIMA

Prethodno opisano pretra�ivanje direktorijuma se de�ava u okviru izvr�avanja sistemske operacije otvaranja datoteke (open). Zato je putanja datoteke obavezni argument poziva ove operacije. Rezultat njenog izvr�avanja je prebacivanje kopije deskriptora datoteke u radnu memoriju. Ova kopija se ne uklju uje u deskriptor procesa, u toku ije aktivnosti je inicirano njeno prebacivanje, jer ista datoteka mo�e istovremeno biti otvorena u toku aktivnosti vi�e procesa. Da bi svaki od njih koristio istu kopiju deskriptora datoteke, u deskriptoru svakog procesa postoji tabela otvorenih datoteka. Njeni elementi sadr�e adresu kopije deskriptora odgovaraju e datoteke. Indeks elementa tabele otvorenih datoteka (u kome je adresa kopije deskriptora otvorene datoteke) predstavlja povratnu vrijednost poziva sistemske operacije otvaranja datoteke. Ovaj indeks otvorene datoteke se koristi kao argument u pozivima drugih sistemskih operacija sloja za upravljanje fajlovima. On odre uje datoteku na koju se pomenuti poziv odnosi. Od veli ine tabele otvorenih datoteka zavisi najve i mogu i broj istovremeno otvorenih datoteka nekog procesa.

Kao dodatni argumenti poziva sistemske operacije otvaranja datoteke mogu se javiti oznaka namjeravane vrste pristupa otvaranoj datoteci (da li se datoteka otvara samo za itanje, ili za pisanje, �to podrazumijeva i njeno itanje), kao i naznaka zaklju avanja datoteke. U toku

Page 40: Operativni_Sistemi

Operativni sistemi ______________________________________________________________________________

_____________________________________________________________________________________________________________ 39

izvr�avanja sistemske operacije otvaranja datoteke se provjerava da li proces (u toku ije aktivnosti se ova operacija obavlja) poseduje pravo nameravanog pristupa otvaranoj datoteci (za ovo se koristi numeri ka oznaka vlasnika procesa iz njegovog deskriptora, numeri ka oznaka vlasnika otvarane datoteke, kao i prava pristupa datoteci za njenog vlasnika, za njegove saradnike i za ostale korisnike, �to je navedeno u deskriptoru otvarane datoteke). Tako e, u toku obavljanja sistemske operacije otvaranja datoteke, poku�ava se zaklju ati otvarana datoteka (za �ta se, tako e, pristupa njenom deskriptoru). Otvaranje datoteke je uspje�no samo ako proces posjeduje pravo namjeravanog pristupa datoteci i ako je mogu e njeno zaklju avanje (ovo poslednje je bitno samo ako je zatra�eno zaklju avanje datoteke). Tada poziv sistemske operacije otvaranja datoteke vra a indeks otvorene datoteke. Ina e, on vra a kod gre�ke. Kod gre�ke sadr�i obavestenje o neuspjehu pri zaklju avanju datoteke, kada je operacija otvaranja datoteke neblokiraju a (kada se oslanja na neblokiraju u operaciju zaklju avanja datoteka). Ako je operacija otvaranja datoteke blokiraju a (ako se oslanja na blokiraju u operaciju zaklju avanja datoteka), tada se, do zaklju avanja datoteke, zaustavlja aktivnost procesa, kome je potebno otvaranje datoteke (po obavljanju blokiraju e operacije otvaranja datoteke, datoteka je zaklju ana, pa je uvek obezbije ena me usobna isklju ivost pristupa datoteci).

Oznaka vrste nameravanog pristupa datoteci se uva u polju odgovaraju eg elementa tabele ovorenih datoteka (koji sadr�i i polje sa adresom kopije deskriptora otvorene datoteke), radi naknadne provjere ispravnosti pristupa datoteci.

Poku�aj otvaranja nepostoje e datoteke dovodi do njenog stvaranja (ako se tako navede u argumentima poziva sistemske operacije otvaranja datoteke). Me utim, mogu e je da postoji i posebna sistemska operacija za stvaranje datoteke.

Kori� enje datoteke se zavr�ava pozivom sistemske operacije zatvaranja datoteke (close). Ona, eventualno, otklju ava datoteku, isti odgovaraju i element tabele otvorenih datoteka procesa, koji je pozvao ovu sistemsku operaciju, i prebacuje, eventualno, kopiju deskriptora i baferovane kopije blokova sadr�aja zatvarane datoteke u masovnu memoriju (�to je neophodno samo ako je ona izmjenjena). Kopija deskriptora zatvarane datoteke ostaje u radnoj memoriji, ako, pored procesa koji zatvara datoteku, postoje i drugi procesi koji joj pristupaju (zato kopija deskriptora datoteke sadr�i broj procesa koji pristupaju datoteci). Obavezni argument poziva sistemske operacije zatvaranja datoteke je indeks otvorene datoteke.

Va�no je uo iti da u periodu dok je datoteka otvorena (zna i, izme u uzastopnih poziva sistemskih operacija otvaranja i zatvaranja datoteke), proces nije pod uticajem izmjena prava pristupa otvorenoj datoteci (jer izmjena prava pristupa postaje delotvorna tek pri narednom otvaranju datoteke, po�to se tek tada ova prava ponovo provjeravaju).

Korisna praksa je da se, na kraju aktivnosti procesa, automatski zatvore sve otvorene datoteke.

Nakon otvaranja, sadr�aj datoteke se mo�e itati pozivom sistemske operacije itanja datoteke (read) i pisati (ako je to u skladu sa namerama, izra�enim u otvaranju datoteke) pozivom sistemske operacije pisanja datoteke (write). Obavezni argumenti ovih poziva su indeks otvorene datoteke i broj bajta (koji se itaju ili pi�u). Pored toga, poziv sistemske operacije itanja sadr�i, kao argument, adresu zone radne memorije u koju se smje�taju pro itani bajtovi, a poziv sistemske operacije pisanja sadr�i, kao argument, adresu zone radne memorije iz koje se preuzimaju bajti za pisanje. Oba poziva vra aju vrednost, koja ukazuje na uspje�an poziv ili na gre�ku. Podrazumijeva se da sistemske operacije pisanja i itanja nude sekvencijalne pristupe datotekama. To zna i, da, ako jedan poziv sistemske operacije itanja (pisanja) pro ita (upi�e) prvi bajt datoteke, naredni takav poziv datoteke e da pro ita (upi�e) drugi bajt datoteke. Radi podr�ke sekvencijalnom pristupu, svaki element tabele otvorenih datoteka sadr�i (pored polja sa

Page 41: Operativni_Sistemi

Operativni sistemi ______________________________________________________________________________

_____________________________________________________________________________________________________________ 40

adresom kopije deskriptora otvorene datoteke i polja sa oznakom vrste nameravanog pristupa ovoj datoteci) i polje pozicije datoteke (sa rednim brojem bajta od koga se primjenjuje naredno itanje ili pisanje). Svako itanje ili pisanje pomjera poziciju na prvi naredni nepro itani

(neupisani) bajt. Da bi bili mogu i direktni pristupi bajtima datoteke (u proizvoljnom redosledu), postoji sistemska operacija izmjene pozicije datoteke (seek). Obavezni argumenti njenog poziva su indeks otvorene datoteke i podatak o novoj poziciji, dok povratna vrednost ovog poziva ukazuje da li je poziv bio uspje�an ili ne. Tako, na primjer, ako se �eli pisati na kraj datoteke, neophodno je prvo pozvati sistemsku operaciju izmjene pozicije datoteke, radi pozicioniranja iza poslednjeg bajta datoteke, i zatim pozvati sistemsku operaciju pisanja. Prvi poziv izmjeni poziciju datoteke u odgovaraju em elementu tabele otvorenih datoteka. Drugi poziv, na osnovu ove pozicije i kopije deskriptora datoteke, odredi redni broj bloka (ako on postoji) i prebaci njegovu kopiju u radnu memoriju (ako ona ve nije bila prisutna u radnoj memoriji). U ovu kopiju se smjeste dopisivani bajti i ona se prebaci (odmah ili kasnije, zavisno od strategije baferovanja) u masovnu memoriju. Ako blok ne postoji, ili ako se upisivanje prote�e na vi�e blokova, upisivanju bajta prethodi zauzimanje blokova. Radi toga se mijenja (pro�iruje) tabela pristupa datoteke (�to zna i da produ�avanje datoteke dovodi do izmjene njenog deskriptora). Nakon toga se u radnoj memoriji oblikuje novi sadr�aj blokova i oni se prebacuju u masovnu memoriju.

Sloj za upravljanje datotekama nudi posebne sistemske operacije za izmjenu atributa datoteke, sadr�anih u njenom deskriptoru (kao sto su numeri ka oznaka vlasnika datoteke, prava pristupa datoteci za njenog vlasnika, za njegove saradnike i za ostale korisnike, ili podatak da li numeri ka oznaka vlasnika datoteke postaje numeri ka oznaka vlasnika procesa, stvorenog na osnovu sadr�aja datoteke). Obavezni argumenti poziva ovih sistemskih operacija su putanja datoteke i nova vrednost menjanog atributa datoteke, a njihova povratna vrednost ukazuje na uspje�nost poziva. U okviru izvr�avanja ovih sistemskih operacija pretra�uju se direktorijumi, radi prebacivanja u radnu memoriju kopije deskriptora datoteke. Zatim se provjerava da li je ove sistemske operacije pozvao vlasnik datoteke (jer jedino on ima pravo da mijenja atribute datoteke). Ako jeste, tada se mijenja zadani atribut i blok sa izmjenjenom kopijom deskriptora vra a u masovnu memoriju. U sistemske operacije za izmjenu atributa datoteke spada i sistemska operacija za izmjenu imena datoteke. Iako se u okviru ove operacije ne mijenja deskriptor datoteke, nego njen direktorijum, i ovde je neophodan pristup deskriptoru datoteke, radi provjere da li je ovu operaciju pozvao vlasnik datoteke (kao i pristup deskriptoru njenog direktorijuma).

Za uni�tenje datoteke (delete) neophodna je posebna sistemska operacija. Obavezni argument njenog poziva je putanja uni�tavane datoteke, a povratna vrednost ovog poziva ukazuje na njegovu uspje�nost. U okviru sistemske operacije uni�tenja datoteke, pretra�uju se direktorijumi, radi prebacivanja u radnu memoriju kopije deskriptora uni�tavane datoteke. Zatim se provjerava da li je ovu sistemsku operaciju pozvao vlasnik datoteke i, ako jeste, osloba aju se blokovi datoteke i njen deskriptor. Na kraju se uni�tava ime datoteke u odgovaraju em direktorijumu (�to predstavlja izmjenu njegovog sadr�aja). Povratna vrijednost ove operacije ukazuje da li je ona uspje�no obavljena (na primjer, uni�tenje nepostoje e datoteke ne mo�e biti uspje�no obavljeno).

Prethodno opisane sistemske operacije omogu uju pristup svim datotekama, zna i i direktorijumima. Ali za pristupe direktorijumima je potrebno poznavati njihovu organizaciju (koliko bajta je rezervisano za imena datoteka i direktorijuma, a koliko za redne brojeve njihovih deskriptora, da li ima oznaka sa posebnim zna enjem, kao sto su oznake, koje se odnose na prethodni i naredni direktorijum u hijerarhiji i sli no). Potreba za poznavanjem organizacije direktorijuma se izbegava, ako se ponude posebne sistemske operacije za upravljanje

Page 42: Operativni_Sistemi

Operativni sistemi ______________________________________________________________________________

_____________________________________________________________________________________________________________ 41

direktorijumima. SPECIJALNI FAJLOVI

Va�no svojstvo pojma fajla je da je on primjenljiv i za opisivanje ulaznih i izlaznih

ure aja. Tako, ulazni ure aj, kao sto je tastatura, odgovara datoteci, iji sadr�aj se mo�e samo itati, a sastoji se od bajta, koji sti�u sa tastature. Sli no, izlazni ure aj, kao sto je ekran, odgovara

datoteci, iji sadr�aj se mo�e samo pisati, a sastoji se od bajta, koji se upu uju na ekran. Tako e, ulazno izlazni ure aj, kao sto je disk, odgovara datoteci, iji sadr�aj se mo�e i pisati i itati, a sastoji se od bajta iz pojedinih blokova diska. Datoteke, koje predstavljaju pojedine ulazne ili izlazne ure aje, se nazivaju specijalne datoteke (special file). Specijalne datoteke se dijele na:

znakovne (one odgovaraju ure ajima kao sto su tastatura, ekran, stampa ili mre�ni kontroler) i na blokovske (one odgovaraju, na primjer, diskovima).

Znakovne specijalne datoteke podr�avaju sekvencijalno itanje ili pisanje znakova (koji dolaze sa odgovaraju eg ura aja, ili odlaze na odgovaraju i ure aj). Za ove datoteke izmjena pozicije nema smisla. Blokovske specijalne datoteke podr�avaju itanje ili pisanje blokova. Za njih izmjena pozicije omogu uje odre ivanje rednog broja bloka na koga se primjenjuje naredna operacija.

Blokovske specijalne datoteke omogu uju direktno pristupe blokovima diska, �to je va�no, na primjer, kod pronala�enja izgubljenih blokova, kod sabijanja datoteka, ili kod pripremanja disk jedinica za kori� enje. U poslednjem slu aju se odre uje namjena pojedinih blokova diska. To prikazuje slika 2.10.

blok 0 prvi (boot) blok blok 1 drugi (super) blok blok 2 blokovi namijenjeni za deskriptore

... blok n blokovi namijenjeni za sadr�aj fajlovai za tabele pristupa

... ...

Slika 2.10 Namjena pojedinih blokova diska

Prvi (boot) blok (sa slike 2.10) je rezervisan za podatke, koji su potrebni za pokretanje ra unara (operativnog sistema), a drugi (super) blok sadr�i:

1. podatke o nizu susednih blokova, koji su namjenjeni za smje�tanje deskriptora datoteka (ovi podaci obuhvataju redni broj prvog bloka iz ovog niza, kao i ukupan broj blokova u ovom nizu), 2. podatke o slobodnim mjestima za deskriptore datoteka i 3. podatke potrebne za evidenciju (preostalih) slobodnih blokova (u ovu evidenciju se uklju uju svi blokovi, koji nisu upotrebljeni za smje�tanje sadr�aja datoteka ili za tabele pristupa). Prije kori� enja specijalnih datoteka, neophodno je njihovo otvaranje, radi provjere prava

pristupa ( ime se provjerava pravo pristupa ure aju, koga datoteka predstavlja), ili radi zaklju avanja ( ime se zaklju ava ure aj, koga datoteka predstavlja). Nakon kori� enja, slijedi

Page 43: Operativni_Sistemi

Operativni sistemi ______________________________________________________________________________

_____________________________________________________________________________________________________________ 42

zatvaranje specijalne datoteke. Za podr�ku otvaranja i zatvaranja specijalnih datoteka, neophodno je da one posjeduju svoje deskriptore. Deskriptori specijalnih datoteka obuhvataju atribute, kao �to su, na primjer numeri ka oznaka vlasnika datoteke, prava pristupa datoteci za njenog vlasnika, za njegove saradnike i za ostale korisnike, ili podatak da li je datoteka zaklju ana ili ne. Me utim, po�to za itanje ili pisanje specijalnih datoteka nije bitno preslikavanje rednih brojeva bajta u redne brojeve blokova masovne memorije, nego pozivanje odgovaraju ih operacija drajevera ure aja, koje ove datoteke predstavljaju, u deskriptorima specijalnih datoteka se ne nalaze podaci o tabeli pristupa, nego podaci o odgovaraju em drajveru i primjerku ure aja, koga on opslu�uje. Za jednozna no identifikovanje drajvera uvodi se njegov redni broj (major number), koji slu�i kao indeks posebne tabele drajvera. Polja indeksiranog elementa ove tabele sadr�e adrese operacija doti nog drajvera. Prema tome, ako se redni broj drajvera uva u deskriptoru specijalne datoteke, na osnovu njega je mogu e prona i adrese operacija ovog drajvera (uz konsultovanje odgovaraju eg elementa tabele drajvera). U pomenutom deskriptoru se uva i redni broj (minor number) ure aja (koga predstavlja specijalna datoteka), da bi se na njega mogla usmeriti odabrana operacija drajvera.

Za izmjenu atributa specijalnih datoteka primjenljive su sistemske operacije, koje su uvedene s tom namerom za obi ne datoteke. Isto va�i i za sistemske operacije za izmjenu imena datoteke i za njeno uni�tenje (pri emu, kod uni�tenja specijalne datoteke, nema osloba anja blokova, nego se osloba a samo njen deskriptor). Sistemske operacije prave razliku izme u obi nih i specijalnih datoteka na osnovu odgovaraju e oznake, navedene u deskriptoru datoteke.

STANDARDNI ULAZ I STANDARDNI IZLAZ

Pojmovi datoteke i procesa su vrsto povezani, jer je aktivnost procesa posve ena obradi

podataka, sadr�anih u datotekama. Pri tome je tipi no da obra ivani podaci sti�u u proces iz jedne, ulazne datoteke, a da obra eni podaci napu�taju proces, zavr�avaju i u drugoj, izlaznoj datoteci. Ovakav model obrade podataka je dovoljno est, da opravda uvo enje naziva standardni ulaz (standard input) za ulaznu datoteku i standardni izlaz (standard output) za izlaznu datoteku. Pri tome se podrazumijeva da se u toku stvaranja procesa otvore i njegov standardni ulaz i njegov standardni izlaz. Zahvaljuju i tome, bez otvaranja se mo�e itati standardni ulaz i pisati standardni izlaz. Kao podrazumijevaju i standardni ulaz slu�i specijalna datoteka, koja predstavlja tastaturu, a kao podrazumijevaju i standardni izlaz slu�i specijalna datoteka, koja predstavlja ekran. U slu aju da proces stvaralac zaustavlja svoju aktivnost, dok traje aktivnost stvorenog procesa, tada je prirodno da stvoreni proces nasledi standardni ulaz i standardni izlaz od procesa stvaraoca i da tako, preuzimaju i opslu�ivanje terminala, nastavi interakciju sa korisnikom. Kao indeks otvorene datoteke, koja odgovara standardnom ulazu, slu�i vrednost 0, a kao indeks otvorene datoteke, koja odgovara standardnom izlazu, slu�i vrednost 1.

SPA�AVANJE FAJLOVA

U nadle�nosti sloja za upravljanje fajlovima nalazi se i podr�ka spa�avanju (saving) fajlova, iji cilj je da se redovno prave kopije postoje ih (svih, ili samo u me uvremenu izmijenjenih, odnosno stvorenih) datoteka. Na osnovu ovakvih kopija mogu e je rekonstruisati sadr�aj o�te enih datoteka. Do o�te enja datoteka dolazi na razne na ine, na primjer, pojavom lo�ih (neispravnih) blokova. Kada se otkriju, lo�i blokovi se izbacuju iz upotrebe. Jedan na in da se to postigne je da se, na primjer, formira datoteka lo�ih blokova.

Page 44: Operativni_Sistemi

Operativni sistemi ______________________________________________________________________________

_____________________________________________________________________________________________________________ 43

OSNOVA SLOJA ZA UPRAVLJANJE FAJLOVIMA

Sloj za upravljanje fajlovima se oslanja na operacije drajvera iz sloja za upravljanje kontrolerima. On mo�e da koristi i operacije sloja za upravljanje radnom memorijom, radi zauzimanja bafera, namjenjenih za smje�tanje kopija blokova, ili kopija deskriptora, na primjer.

PRIMJERI FAJL SISTEMA U ovom poglavlju razmotri emo neke od postoje ih fajl sistema.

MS-DOS fajl sistem

MS-DOS radi samo na Intelovim platformama i ne podr�ava multiprogramiranje. Prva verzija DOS-a bila je ograni ena na rad sa samo jednim direktorijumom. Od verzije MS-DOS 2.0, funkcionalnost fajl sistema se umnogome pro�irila. Najve e unapre enje je bilo uvo enje hijerarhijskog fajl sistema po kome su direktorijumi mogli biti ugnje�davani u dubinu. Ovo zna i da je root direktorijum (koji je i dalje imao fiksnu maksimalnu veli inu) mogao sadr�ati poddirektorijume, a oni opet svoje poddirektorijume i tako u nedogled. Uobi ajeno je da svaka razli ita aplikacija u root-u kreira svoj direktorijum iz koga e da startuje i u kome e biti svi njoj potrebni fajlovi, tako da razli ite aplikacije ne dolaze u konflikt. Ne postoji ograni enje u broju direktorijuma ili fajlova koji mogu biti kreirani. Ovjde ne postoji koncept vi�e razli itih korisnika. Ulogovani korisnik ima pristup svim fajlovima. Iako direktorijumi kod MS-DOS-a imaju promjenljivu veli inu, oni koriste upise fiksne du�ine od 32 bajta. Format upisa u direktorijum kod MS-DOS-a prikazan je na slici 2.11. On sadr�i ime fajla, atribute, vrijeme i datum kreiranja, po etni blok i ta nu veli inu fajla. Ime fajla kra e od 8+3 karaktera je poravnato u lijevu stanu sa prazninama u nastavku, za svako polje pojedina no. Polje za atribute je novo i sadr�i bitove koji pokazuju da li je fajl read-only, potreban za arhiviranje, sakriven ili je sistemski fajl. Read-only fajlovi se ne mogu mijenjati. Arhiv bit nema neke sistemske funkcije. Hidden bit skriva fajl tako da ne bude vidljiv u listingu direktorijuma. Sistem bit tako e skriva fajl i onemogu uje brisanje komandom del koja mo�e biti i slu ajno pritisnuta. Upis u direktorijum tako e sadr�i datum i vrijeme kada je fajl kreiran ili zadnji put izmjenjen.

Slika 2.11 Upis u MS-DOS direktorijum

Page 45: Operativni_Sistemi

Operativni sistemi ______________________________________________________________________________

_____________________________________________________________________________________________________________ 44

MS-DOS prati blokove fajla preko tabele za alokaciju fajlova koja se nalazi u glavnoj memoriji. Upis u direktorijum sadr�i broj prvog bloka fajla. Ovaj broj se koristi kao indeks kod 64K upisa FAT (File Allocation Table) u glavnu memoriju. Prate i lanac, svi blokovi se mogu prona i. Za MS-DOS, fajl sistem se pojavljuje u tri verzije: FAT-12, FAT-16 i FAT-32, zavisno od toga koliko bita sadr�i adresa na disku. Za sve FAT-ove, blok diska mo�e biti setovan na multipl od 512 bajtova, sa setom dozvoljenih veli ina blokova razli itih za svaku varijantu. Prva verzija MS-DOS-a koristila je FAT-12 sa blokovima od 512 bajtova, daju i tako maksimalnu veli inu particije od 212 x 512 bajtova. Sa ovim parametrima, maksimalna veli ina particije diska bila je 2 MB a veli ina FAT tabele u memoriji bila je 4096 upisa od 2 bajta svaki. Microsoft je kasnije dodao veli ine blokova od 1KB, 2 KB i 4 KB. Onda su mogle da postoje i particije od 16 MB. Tada je MS-DOS mogao da podr�i 4 particije po disku �to zna i da je FAT-12 mogao da radi sa diskovima do 64 MB. Nakon toga do�lo je do predstavljanja FAT-16, sa 16-bitnim disk pointerima. Dozvoljene su i veli ine blokova od 8 KB, 16 KB i 32 KB. Tabela za FAT-16 sada je stalno zauzimala 128 KB glavne memorije. Najve e particije na disku sada su bile 2 GB, a veli ina diska 8 GB sa maksimum 4 particije po disku. Po ev od druge verzije Windowsa 95, uveden je FAT-32 fajl sistem sa njegovim 28-bitnim adresama, a verzija MS-DOS-a je bila prilago ena da podr�i FAT-32. U ovim sistemima particija je ograni ena na 2 TB (2048 GB). Maksimalna veli ina particije za razli ite veli ine blokova i za sva tri tipa FAT-a je prikazana na slici 2.12.

Slika 2.12. Maksimalna veli ina particije za razli ite veli ine bloka. Prazna polja prikazuju zabranjene kombinacije.

FAT-32 fajl sistem ima dvije prednosti u odnosu na FAT-16 gledaju i podr�ku velikim diskovima. Prvo, kod FAT-32, disk od 8 GB mo�e da bude jedna particija. Kod FAT-16 mogu da postoje maksimalno 4 particije. Druga prednost je ta da za datu veli inu particije diska, mo�e da se koristi manja veli ina bloka. Na primjer, za particiju diska od 2 GB, FAT-16 mora da koristi blokove od 32 KB, jer ina e sa samo 64 K dostupnih adresa diska, ne mo�e pokriti cijelu particiju. FAT-32 mo�e koristiti blok od 4 KB za particiju od 2 GB. Mnogi fajlovi su kra i od 32 KB, pa je prednost manje veli ine bloka o igledna. Efikasnost iskori� enja prostora na disku je velika jer je izgubljenog prostora jako malo. MS-DOS koristi FAT da bi pratio i slobodne blokove diska. Svaki blok koji se trenutno ne koristi, ozna ava se posebnim kodom. Kada je MS-DOS-u potreban novi blok, on pretra�uje FAT tragaju i za tim kodom. Na ovaj na in ni bitmape ni slobodne liste nisu potrebne.

Page 46: Operativni_Sistemi

Operativni sistemi ______________________________________________________________________________

_____________________________________________________________________________________________________________ 45

Windows 98 fajl sistem

Po ev od druge verzije Windowsa 95, imena fajlova du�a od 8+3 karaktera su postala dozvoljena. Uveden je FAT-32, najvi�e zbog toga da bi dozvolio formiranje velikih particija ve ih od 2 GB na diskovima ve im od 8 GB koji su se tada pojavili. Kod Windowsa 98 i duga imena i FAT-32 su se koristili u istoj formi kao i kod druge verzije Windowsa 95. Problem u prelasku Microsofta ka stvaranju fajl sistema gdje bi bila podr�ana duga imena fajlova bio je taj �to je trebalo omogu iti korisnicima koji upravo prelaze sa jedne na drugu verziju Windowsa da mogu pristupiti svojim fajlovima sa razli itih sistema. Microsoft je donio politi ku odluku a to je da se omogu i da se fajlovima kreiranim u Windowsu 98 mo�e pristupati i iz Windowsa 3.x. Ovo je u stvari zna ilo da je struktura direktorijuma Windowsa 98 morala biti kompatibilna sa MS-DOS strukturom direktorijuma. Zapis u direktorijum kod Windowsa 98 imao je oblik prikazan na slici 2.13.

Slika 2.13 Pro�ireni MS-DOS upis u direktorijum koji se koristi kod Windowsa 98

Promjene se sastoje od dodavanja pet novih polja na mjestu gdje su bile 10 neiskori� enih bajtova. Polje NT je tu najvi�e zbog kompatibilnosti sa Windowsom NT kada je u pitanju pravilno prikazivanje imena fajlova. Polje Sec re�ava problem nemogu nosti smje�tanja dnevnog vremena u 16-bitno polje. Ono daje dodatne bitove tako da je novo Creation time polje precizno do 10 msec. Jo� jedno novo polje je Last access , koje smje�ta datum (ali ne i vrijeme) poslednjeg pristupa fajlu. Najzad, prelazak na FAT-32 fajl sistem zna i da su brojevi blokova sada 32-bitni, pa je potrebno polje od dodatnih 16 bita za smje�tanje najgornjih 16 bita broja po etnog bloka. Sad dolazimo na srce fajl sistema Windowsa 98. Kako su duga imena predstavljena tako da budu kompatibilna sa MS-DOS-om. Re�enje je bilo da se svakom fajlu dodijele dva imena: (potencijalno) dugo ime fajla, i 8+3 ime za kompatibilnost sa MS-DOS-om. Fajlu se mo�e pristupiti preko oba imena. Kada do e do kreiranja fajla ije ime nije 8+3 karaktera, Windows 98 stvara MS-DOS ime za njega pomo u odre enog algoritma. Osnovna ideja je da se uzmu prvih �est karaktera imena fajla, da se ona predstave velikim slovima i da im se doda ~1 formiraju i tako bazno ime fajla. Ako takvo ime ve postoji onda se dodaje ~2 i tako redom. Specijalni karakteri se pretvaraju u _ znak, a praznine se bri�u. Format svakog duga kog imena je dat na slici 2.14.

Page 47: Operativni_Sistemi

Operativni sistemi ______________________________________________________________________________

_____________________________________________________________________________________________________________ 46

Slika 2.14 Upis za duga ko ime fajla (dio njega) u Windowsu 98 Postavlja se pitanje kako Windows 98 zna da li upis u direktorijum sadr�i MS-DOS ime fajla ili (dio) duga ko ime fajla. Odgovor le�i u polju Attributes . Za upis duga kog imena ovo polje ima vrijednost 0x0F, �to predstavlja jo� jednu od nemogu ih kombinacija atributa. Stari MS-DOS programi e ovo samo ignorisati kao neva�e e. Djelovi imena su sekvencirani koriste i prvi bajt zapisa. Zadnji dio duga kog imena je ozna en dodavanjem broja 64 sekvenci. S obzirom da se samo 6 bita koristi u sekvenci, teoretski maksimum za duga ka imena fajlova je 63x13=819 karaktera. U stvari taj broj je iz istorijskih razloga ograni en na 260. Svaki zapis duga kog imena fajla sadr�i i polje Checksum da bi se izbjegao slede i problem. Prvo, Windows 98 kreira fajl duga kog imena. Drugo, ra unar je restartovan i pode�en da radi u MS-DOS-u ili Windowsu 3. Tre e, stari program pod MS-DOS-om bri�e MS-DOS ime fajla, ali ne bri�e njegovo duga ko ime jer ni ne zna za njega. ^etvrto, neki program stvara novi fajl koji ponovo zauzima maloprije oslobo eni zapis. Sada imamo situaciju da postoji va�e a sekvenca zapisa duga kih imena koji prethode zapisu fajla u MS-DOS-u a koji nemaju ni�ta sa tim fajlom. Polje Cheksum omogu ava Windowsu 98 da detektuje ovakvu situaciju verifikuju i da MS-DOS ime fajla koje prati duga ko ime, zaista njemu i pripada. Implementacija FAT-32 fajl sistema konceptualno je sli na implementaciji FAT-16 fajl sistema. Ovjde sada ukoliko se koristi milion blokova, tabela e konceptualno imati milion upisa. Da bi se izbjeglo da sva budu u memoriji odjednom, Windows 98 odr�ava prozor u tabeli i uva samo pojedine djelove u memoriji odjednom.

NTFS i drugi fajl sistemi

Windowsa 2000 podr�ava: NTFS (New Technology File System), podr�ava FAT32 (File Alocation Table) i FAT16 particionisane diskove. FAT16 je MS-DOS fajl sistem i omogu ava kori� enje disk particija do 2 GB. FAT32 bolje organizuje disk prostor i particije mogu biti veli ine do 2 TB. NTFS je novija vrsta fajl sistema koju koriste Windows NT 4.0 i Windows 2000. Ovaj fajl sistem koristi 64 bit-ne adrese i teoretski radi sa particijama do 264 bajta. Kori� enje NTFS tehnologije zna i ve u sigurnost, tj. za�titu i ve u toleranciju (i korekciju) gre�ki. Kada govorimo o za�titi, ovdje mislimo na EFS sistem enkripcje fajlova. Tolerancija gre�ke se odnosi na injenicu da NTFS fajl sistem automatski otklanja gre�ke ne prikazuju i pri tome poruke o gre�kama. On lokalizuje lo�e klustere i vr�i tzv. Cluster Remapping �to zna i da onemogu ava ponovno kori� enje tih losih klustera. Proces otkrivanja ovih gre�ki se ovdje radi tako �to prije upisa podataka na disk, Windows 2000 pravi kopiju podataka koje e privremeno

Page 48: Operativni_Sistemi

Operativni sistemi ______________________________________________________________________________

_____________________________________________________________________________________________________________ 47

dr�ati u memoriji. Dalje, on poku�ava da podatke smjesti na disk i odmah poslije toga upore uje te podatke sa podacima u memoriji. Ako ovi podaci u ovom trenutku nijesu identi ni, zna i da se radi o gre�ki na disku pa se radi Cluster Remapping i tra�i se drugo mjesto na disku za smje�tanje ovih podataka sa privremene memorije.

Kada se prave particije, postavlja se pitanje koje su optimalne veli ine tih particija? Ve e particije s jedne strane dovode do sporijeg pristupa disku jer se mnogo toga mo�e odjednom pisati na tom disku. S druge strane, kod multimedijalnih zapisa, velikih baza podataka i slicno, potrebne su ve e paritcije. Optimalno rije�enje je napraviti particije odre ene namjene tako da svaka od njih ne bude ve a od veli ine koja je neophodna za odre enu namjenu.

Ono �to korisnik mo�e u radu sa fajlovima NTFS sistema primjetiti, je da imena fajlova mogu imati maksimalno 255 karaktera, da su putanje (engl. paths) limitirane na 32767 karaktera, da su imena fajlova Unicode �to zna i da je dozvoljeno koristiti npr. gr ko pismo ili neko drugo nelatinsko pismo, da su imena fajlova Case Sensitive �to zna i da pravi razliku malih i velikih slova u imenu fajla (ali rijetko se mo�e primjeniti zbog toga �to su ve ina programa pravljeni isklju ivo za FAT32 koji ina e nije Case Sensitive), itd. NTFS fajl sistem omogu ava automatsko prepoznavanje pre ica u slu aju da se izvorno mjesto fajla dislocira.

Kao �to je poznato, disk drajv mo�e da ima vi�e particija. Svaka particija predstavlja linearni niz blokova koji, po memorijskoj veli ini, mogu biti od 512 bajta do 64 KB. Naj e� e su ovi blokovi veli ine 4KB i njima se pristupa preko 64-bitno adresiranog ofseta. Na in pristupa je takav da se daje po etni blok i ofset koji ukazuje broj narednih blokova kojima treba pristupiti.

Veoma va�nu ulogu u obja�njavanju fajl sistema Windowsa 2000, ima tzv. Master File Table (MFT). MFT je linearni niz zapisa od po 1 KB od kojih svaki opisuje po jedan fajl. Oni sadr�e atribute fajlova kao i adrese blokova na disku gdje su ti fajlovi memorisani. MFT je u stvari jedan fajl koji mo�e da se pove ava teoretski sve do 248 zapisa. Svaki MFT zapis (1KB) sadr�i zaglavlje zapisa poslije kojeg dolaze dvije vrijednosti: zaglavlje atributa i vrijednost atributa. Dalje se niz nastavlja na zaglavlje drugog atributa i na vrijednost drugog atributa, itd. Zaglavlje atributa identifikuje odre eni atribut. Obi no poslije njega dolazi vrijednost atributa ali to ne mora biti pravilo. Naime, postoje fajlovi ili direktorijumi ciji su atributi veliki pa se moraju podijeliti na dva ili vi�e bloka na disku. Takvi atributi se nazivaju nerezidentnim atributima. Zaglavlja atributa za rezidentne atribute su veli ine 24 bajta dok su za nerezidentne ve a jer oni sadr�e i informacije o tome kako na i atribut na disku. NTFS defini�e 13 atributa koji se mogu pojaviti na MFT zapisima. Va�na kategorija zapisa su tzv. metadata fajlovi koji su u stvari prvih 16 zapisa MFT. Svaki od ovih zapisa je obi an MFT podatak koji sadr�i atribute za fajlove na disku, s�tim �to ovo nijesu obi ni fajlovi vec fajlovi koji ukazuju ja informacije o samom fajl sistemu. Tako, npr. ako pravimo novi direktorijum ili bri�emo neki direktorijum, ova se radnja loguje u drugom zapisu MFT fajla ($LogFile). Ina e, svi metadata zapisi po inju znakom $.

Od atributa, najinteresantniji je atribut data koji predstavlja mjesto na disku (blokove) gdje je odre eni fajl fizicki memorisan. Ako je neki fajl mali (reda nekoliko stotina bajtova), on se mo�e smjestiti citav u MFT zapis i takav fajl se naziva direktnim (engl. immediate) fajlom. Obi no je, ipak, atribut data, nerezidentan atribut. U ovim slu ajevima potrebno je �skakati� sa jednog bloka na drugi, unutar disk prostora. Ovdje se kao argumenti daju po etni blokovi na koje se �skace� i du�ina hoda, tj. broj blokova u nizu po evsi od navedenog po etnog bloka (engl. run length). Primjer fajla koji je zadr�an u 9 blokova i koji ima 3 �skoka� ( run) je dat na slici.2.15

Page 49: Operativni_Sistemi

Operativni sistemi ______________________________________________________________________________

_____________________________________________________________________________________________________________ 48

Slika 2.15 Ovdje npr. imamo prvi run koji ukazuje na blokove 20, 21, 22 i 23, itd. Svi ovi Run-ovi

su upisani u MFT kao podaci. Koliko ce biti Run-ova zavisi od efikasnosti Disk Block Alocator-a u trenutku kreiranja fajlova kada se njegova efikasnost mjeri sposobno� u da broj Run-ova �to vi�e reducira, tj. da ih smjesti �to blize jedno drugom. Parovi adresa-broj blokova, rekli smo da se sastoje od 64-bitnih brojeva, �to zna i da zauzimaju 2x8 bajtova ili 16 bajtova. Kompresijom se danas u praksi veli ina ovih parova svodi na 4 bajta.

NTFS particije se mogu kreirati na dva na ina: direktan na in (odmah poslije formatizacije diska) i pretvaranjem sa FAT sistema. Pokazuje se da je mnogo efikasniji na in direktnog stvaranja NTFS particije jer se u tom slu aju MFT kreira na po etku diska (gdje bi izvorno i trebalo da postoji) dok se u drugom slu aju smje�ta bilo bilo gdje na disku gdje ima slobodnog prostora �to esto zavr�ava sa lo�om fragmentacijom.

UNIX V7 fajl sistem

Fajl sistem V7 kod UNIX-a je u formi drveta po ev od root direktorijuma sa dodacima

u obliku linkova. Imena fajlova su do 14 karaktera i mogu sadr�ati bilo koji ASCII karakter osim / (zato jer je / separator izme u komponenti u putu ) i NUL (zato jer se koristi da ozna i imena kra a od 14 karaktera).

Svaki upis u direktorijum kod UNIX-a V7 fajl sistema je jako jednostavan zato jer on koristi �emu i- vorova. Upis u direktorijum sadr�i samo dva polja: ime fajla (14 bajtova) i broj i-vorova za taj fajl (2 bajta), kao �to je prikazano na slici 2.16. Ovi parametri ograni avaju broj

fajlova po fajl sistemu na 64K.

Slika 2.16. Upis u direktorijum kod UNIX-a V7

Kod UNIX-a i- vorovi sadr�e neke atribute. Atributi sadr�e veli inu fajla, vremena

kreiranja, poslednjeg pristupa i poslednje izmjene, vlasnika, grupu, informacije o za�titi i broj

Page 50: Operativni_Sistemi

Operativni sistemi ______________________________________________________________________________

_____________________________________________________________________________________________________________ 49

upisa u direktorijum koji pokazuju na i- vor. Kadgod je novi link usmjeren na i- vor, broja u i-voru se pove ava. Kada se link otkloni, broja se smanjuje. Kada do e na nulu, i- vor se ponovo

vra a natrag a blokovi diska se stavljaju na slobodnu listu. Pra enje blokova diska se vr�i na osnovu generalizacije. kako bi se rukovalo sa veoma velikim fajlovima. Prvih 10 adresa na disku je smje�teno u sami i- vor, tako da za male fajlove, sve potrebne informacije se nalaze u i- voru koji se zahvata i prebaca sa diska u glavnu memoriju kada se fajl otvori. Za velike fajlove, jedna od adresa u i- voru je adresa bloka diska koja se zove single indirektni blok. Ovaj blok sadr�i dodatne adrese diska. Ukoliko ovo jo� uvijek nije dovoljno, jo� jedna adresa u i- voru, zvana double indirektni blok, sadr�i adresu bloka koji opet sadr�i listu single indirektnih blokova. Svaki od ovih single indirektnih blokova ukazuje na nekoliko stotina blokova podataka. Ukoliko ni ovo nije dovoljno, mo�e se koristiti i triple indirektni blok. Potpuna ilustracija data je na slici 2. 17.

Slika 2.17. UNIX i- vor

Prati emo jedan primjer kod UNIX-a, mada je algoritam uglavnom isti kod svih

hijerarhijskih sistema direktorijuma. Pogledajmo kako se vr�i tra�enje puta /usr/ast/mbox. Prvo fajl sistem locira root direktorijum. Njegov i- vor je lociran uvijek na fiksnom mjestu na disku. Polaze i od tog i- vora, lociramo root direktorijum koji mo�e biti bilo gdje na disku, ali recimo da je u na�em slu aju u pitanju blok 1.

Page 51: Operativni_Sistemi

Operativni sistemi ______________________________________________________________________________

_____________________________________________________________________________________________________________ 50

Slika 2.18. Koraci pri tra�enju /usr/ast/mbox

Zatim ita root direktorijum i tra�i prvu komponentu puta, usr, u root direktorijumu da bi na�ao broj i- vora fajla /usr. Lociranje i- vora na osnovu njegovog broja je pravolinijsko, s obzirom da svaki ima fiksnu lokaciju na disku. Iz ovog i- vora, sistem locira direktorijum /usr i tra�i slede u komponentu, ast, u njemu. Kada je prona�ao upis za ast, onda on ima i- vor za direktorijum /usr/ast. Iz ovog vora pronalazi sam direktorijum i tra�i mbox. I- vor za ovaj fajl se onda u itava u memoriju i dr�i tamo sve dok se fajl ne zatvori. Ovaj proces je predstavljen na slici 2.18.

Imena relativnih puteva se tra�e na isti na in samo se pretraga po inje u trenutnom radnom direktorijumu a ne u root-u.

2.4 SLOJ ZA UPRAVLJANJE RADNOM MEMORIJOM

Zadatak sloja za upravljanje radnom memorijom je da omogu i zauzimanje zona (susednih lokacija, sa uzastopnim adresama) sistemske slobodne radne memorije, kao i da omogu i osloba anje prethodno zauzetih zona sistemske radne memorije. Radi toga ovaj sloj nudi operacije zauzimanja i osloba anja (sistemske radne memorije). Iako ove operacije mo�e da koristi i sloj za upravljanje datotekama, one su, prije svega, podr�ka sloju za upravljanje procesima, a pozivaju se prilikom stvaranja i uni�tenja slike procesa. Argument poziva operacije zauzimanja je du�ina zauzimane zone (broj njenih lokacija), a povratna vrednost ovog poziva je adresa zauzete zone (adresa prve od njenih lokacija), ili indikacija da je operacija zauzimanja zavr�ena neuspe�no. Argumenti poziva operacije osloba anja su adresa osloba ane zone (adresa prve od njenih lokacija) i njena du�ina (broj njenih lokacija).

KONTINUALNA RADNA MEMORIJA

Sistemsku slobodnu radnu memoriju obrazuju lokacije radne memorije, koje ne koristi

operativni sistem. OS obi no zauzima lokacije sa po etka i, eventualno, sa kraja adresnog

Page 52: Operativni_Sistemi

Operativni sistemi ______________________________________________________________________________

_____________________________________________________________________________________________________________ 51

prostora, a izme u njih se nalaze lokacije sistemske slobodne radne memorije. Na po etku adresnog prostora su, naj es e, lokacije, namijenjene za tabelu prekida. Iza njih slijede lokacije sa naredbama i promenljivim operativnog sistema (koje obuhvataju i prostor za sme�tanje deskriptora procesa i njihovih sistemskih stekova). Na kraju adresnog prostora su, naj es e, lokacije, koje odgovaraju registrima kontrolera. Sloj za upravljanje radnom memorijom obavezno vodi evidenciju o sistemskoj slobodnoj radnoj memoriji. Ova evidencija mo�e da bude u obliku niza bita (bit map), u kome svaki bit odgovara grupi susjednih lokacija. Podrazumijeva se da je broj lokacija u ovakvoj grupi unaprijed zadan. On ujedno predstavlja jedinicu u kojoj se izra�ava du�ina zauzimane i osloba ane zone. Ako je grupa lokacija slobodna, njoj odgovaraju i bit sadr�i 1. Ina e, on sadr�i 0. Mana ovakve evidencije je da su i operacija zauzimanja i operacija osloba anja dugotrajne, jer prva pretra�uje evidenciju, radi pronala�enja dovoljno duga kog niza jedinica, a druga postavlja takav niz jedinica u evidenciju. Zato se e� e evidencija sistemske slobodne radne memorije pravi u obliku liste slobodnih odsje aka sistemske radne memorije. Na po etku rada operativnog sistema ovakva lista sadr�i jedan odsje ak, koji obuhvata cijelu sistemsku slobodnu radnu memoriju. Ovakav odsje ak se drobi u vi�e kra ih odsje aka, kao rezultat vi�estrukog stvaranja i uni�tavanja procesa u slu ajnom redosledu. Novonastali kra i odsje ci se nalaze na mjestu slika uni�tenih procesa, a izme u njih su slike postoje ih procesa. Na po etku svakog odsje ka su njegova du�ina i adresa narednog odsje ka. Broj lokacija, potrebnih za smje�tanje du�ine doti nog odsje ka i adrese narednog odsje ka, odre uje najmanju du�inu odsje ka i predstavlja jedinicu u kojoj se izra�avaju du�ine odsje aka (odnosno, du�ine zauzimanih i osloba anih zona). Odsje ci su ure eni u rastu em redosledu adresa njihovih po etnih lokacija. To, prilikom osloba anja zone, olak�ava operaciji osloba anja:

1. da prona e dva susedna odsje ka, koji mogu da se spoje u jedan, kada se izme u njih ubaci osloba ana zona, ili 2. da prona e odsje ak, kome mo�e da se doda (spreda ili straga) osloba ana zona, ili 3. da prona e mjesto u listi u koje e osloba ana zona biti uklju ena kao poseban odsje ak. Listu slobodnih odsje aka pretra�uje i operacija zauzimanja, radi pronala�enja dovoljno

duga kog odsje ka. Pri tome se zauzima samo deo odsje ka, u koji se mo�e smjestiti zauzimana zona, dok preostali deo odsje ka ostaje u listi kao novi odsje ak. Na ovaj na in se odsje ci dalje usitnjavaju. To dovodi do eksterne fragmentacije. Ona posredno uzrokuje neupotrebljivost odsje aka, jer onemogu uje zauzimanje zone, ija du�ina je ve a od duzine svakog od postoje ih odsje aka, bez obzira na injenicu da je suma du�ina postoje ih odsje aka ve a od du�ine zauzimane zone. Iskustvo pokazuje da se eksterna fragmentacija pove ava, ako se, umjesto tra�enja prvog dovoljno duga kog odse ka (first fit), poku�ava na i najmanji dovoljno duga ak odsje ak (best fit), ili najve i dovoljno duga ak odse ak (worst fit). Pobolj�anje ne nudi ni ideja da lista odsje aka bude cikli na i da se pretra�uje ne od po etka, nego od ta ke u kojoj je zaustavljeno poslednje pretra�ivanje (next fit). Ideje da du�ina zauzimanih zona bude uvijek jednaka stepenu broja 2 (quick fit, buddy system) i da postoji posebna lista odsje aka za svaku od mogu ih du�ina tako e nisu najbolje, jer, pored eksterne, uvode i internu fragmentaciju (po�to se na ovaj na in u prosjeku zauzimaju du�e zone od stvarno potrebnih, ime nastaje neupotrebljiva radna memorija).

Va�no je uo iti da upravljanje evidencijom sistemske slobodne radne memorije zahtjeva sinhronizaciju procesa, u toku ije aktivnosti se istovremeno obavljaju operacije zauzimanja i osloba anja, radi ostvarenja me usobne isklju ivosti obavljanja ovih operacija (jer se jedino tako mo�e o uvati konzistentnost pomenute evidencije).

Upravljanje radnom memorijom se zasniva na pretpostavci postojanja logi kog i fizi kog

Page 53: Operativni_Sistemi

Operativni sistemi ______________________________________________________________________________

_____________________________________________________________________________________________________________ 52

adresnog prostora i automatskog pretvaranja logi kih adresa u fizi ke. Time se obezbije uje, ne samo za�tita operativnog sistema od korisni kih procesa i me usobna za�tita korisni kih procesa, nego i dinami ka relokacija. Ona je zna ajna, jer predstavlja preduslov za zamjenu slika procesa (swapping), odnosno za sabijanje slika procesa (compaction), radi eliminisanja eksterne fragmentacije. Automatsko pretvaranje logi kih adresa u fizi ke omogu uju grani ni i bazni registar (sadr�aj prvog odre uje najvi�u dozvoljenu logi ku adresu procesa, a sadr�ajem drugog se uve ava ispravna logi ka adresa, radi formiranja korespondentne fizi ke adrese). Sadr�aji ovih registara se razlikuju za razne procese, pa se zato uvaju u njihovim deskriptorima.

Za zauzimanje i osloba anje zona sistemske radne memorije potrebno je da operativni sistem neograni eno pristupa svim lokacijama radne memorije. Da mehanizam za�tite (koji se zasniva na kori� enju grani nog registra) ne bi sputavao operativni sistem, neophodan je privilegovani re�im rada procesora, u kome je mogu e mijenjati sadr�aj grani nog (i baznog) registra, ili u kome je mehanizam za�tite isklju en. Pozivanje sistemskih operacija, kao �to su operacije zauzimanja ili osloba anja, automatski prevodi procesor u privilegovani re�im rada (dok je, za vreme aktivnosti korisni kih procesa van operativnog sistema, procesor u neprivilegovanom re�imu rada). U privilegovanom re�imu rada operativni sistem koristi sistemski stek aktivnog procesa.

SEGMENTACIJA

Upravljanje radnom memorijom ima zadatak da zauzme dovoljno veliku zonu radne memorije, sa lokacijama koje imaju uzastopne fizi ke adrese, da bi u njih sistemska operacija stvaranja procesa smjestila sliku stvaranog procesa. Me utim, po�to se slika procesa sastoji od tri segmenta (segmenta ma�inskih naredbi, segmenta promenljivih i segmenta steka), nema stvarne potrebe da cijela slika procesa bude u lokacijama sa uzastopnim fizi kim adresama. Dovoljno je da to va�i samo za svaki od njenih segmenata. Pri tome, jasno, za svaki od segmenata mora biti vezan poseban par grani nih i baznih registara. Ova tri para grani nih i baznih registara obrazuju tabelu segmenata, tako da svaki od elemenata ove tabele sadr�i dva polja. Jedno, grani no polje odgovara grani nom registru, a drugo, bazno polje odgovara baznom registru. Posto se sadr�aji parova grani nih i baznih polja razlikuju od procesa do procesa, deskriptor svakog od njih sadr�i kopiju tabele segmenata. To zna i da, prilikom preklju ivanja procesora sa procesa na proces, u deskriptor procesa, sa koga se procesor preklju uje, dospeva kopija tabele segmenata, a zatim se u tabelu segmenata prebacuje njena kopija iz deskriptora procesa, na koga se procesor preklju uje. Prema tome, upravljanje tabelom segmenata produ�ava (usporava) preklju ivanje.

Razbijanje slike procesa u tri segmenta, smje�tena u razdvojene zone radne memorije, uti e na na in interpretiranja logi ke (virtualne) adrese, jer njen jedan deo mora da uka�e na segment, a drugi na lokaciju u segmentu. Tako prvi deo (najzna ajnija dva bita) logi ke adrese predstavlja adresu segmenta i slu�i kao indeks za tabelu segmenata. Drugi deo (preostali biti) logi ke adrese predstavlja adresu lokacije u segmentu. Adresa lokacije u segmentu se poredi sa sadr�ajem grani nog polja iz elementa tabele segmenata, koga indeksira adresa segmenta i, ako nije ve a, na nju se dodaje sadr�aj baznog polja iz pomenutog elementa tabele segmenata, ime nastaje fizi ka adresa. Za ovakvo pretvaranje logi ke adrese u fizi ku adresu neophodan je poseban segmentacioni hardver (koji automatski na opisani na in interpretira bite logi ke adrese).

Va�na posledica segmentacije je mogu nost kori� enja istog segmenta u slikama raznih

Page 54: Operativni_Sistemi

Operativni sistemi ______________________________________________________________________________

_____________________________________________________________________________________________________________ 53

procesa, ime se posti�e racionalnije kori� enje radne memorije. Tako, slike svih procesa, nastalih na osnovu iste izvr�ne datoteke, mogu da dele isti segment naredbi. To zna i da kopija tabele segmenata svakog od ovih procesa ima element sa istim sadr�ajima grani nog i baznog polja segmenta ma�inskih naredbi. Sem u�tede radne memorije, segmentacija ubrzava zamjenu slika procesa (swapping), jer se segment naredbi ne mora izbacivati (ako je ranije ve izba en u masovnu memoriju), niti ubacivati (ako ve postoji u radnoj memoriji). Jasno, upravljanje procesima mora voditi posebnu evidenciju segmenata, prisutnih u radnoj memoriji (da bi moglo otkriti kada je mogu e iskoristiti isti segment u slikama raznih procesa). Ovakva evidencija obuhvata oznaku segmenta (koja jednozna no identifikuje segment), podatak o broju slika procesa u koje je segment uklju en, du�inu segmenta (odnosno, sadr�aj njegovog grani nog polja), kao i fizi ku adresu njegove po etne lokacije (odnosno, sadr�aj njegovog baznog polja). Radi o uvanja konzistentnosti evidencije segmenata, operacije za upravljanje ovom evidencijom moraju obezbijediti sinhronizaciju procesa.

Prethodno opisana (osnovna) segmentacija se razvija u punu segmentaciju, ako se dozvoli da svakom potprogramu ili promenljivoj odgovara poseban segment. U tom slu aju, stvaraju se uslovi za dinami ko linkovanje (povezivanje) potprograma za program (koje se ne de�ava u toku pravljenja izvr�ne datoteke, nego u trenutku prvog poziva potprograma, kada se pronalazi njegov segment i, eventualno, ubacuje u radnu memoriju). Puna segmentacija dozvoljava i deljenje promenljivih izme u raznih procesa (ako se segment iste promenljive uklju i u slike vi�e procesa). Jasno, ovakav na in ostvarenja saradnje procesa zahtjeva njihovu sinhronizaciju, radi o uvanja konzistentnosti dijeljenih promenljivih. Za segmente sa deljenim promenljivim su va�na i prava pristupa segmentu, jer nekim od procesa treba dozvoliti samo da itaju deljenu promenljivu, a drugima treba dozvoliti i da pi�u u deljenu promenljivu. Zato se elementi tabele segmenata pro�iruju tre im poljem, koje sadr�i oznaku prava pristupa segmentu. U pogledu prava pristupa, segmenti se ne razlikuju od datoteka. Prema tome, prava pristupa segmentu obuhvataju pravo itanja, pravo pisanja i pravo izvr�avanja segmenta (prva dva prava se primjenjuju na segmente, koji sadr�e promenljive, a tre e pravo se primjenjuje na segment sa ma�inskim naredbama programa ili potprograma).

Na poku�aj naru�avanja prava pristupa segmentu reaguje segmentacioni hardver, generisanjem prekida (izuzetka), �to dovodi do uni�tenja aktivnog procesa. Upravljanje segmentima se obavlja posredstvom sistemskih programa, kao �to su kompajler ili linker.

Uspjeh segmentacije zavisi od efikasnosti pretvaranja logi ke adrese u fizi ku (�to je za punu segmentaciju te�ko ostvariti, zbog toga �to tabela segmenata postaje prevelika). Ina e, segmentacija se oslanja na ve opisane operacije zauzimanja i osloba anja, koje se posebno pozivaju prilikom stvaranja i uni�tavanja svakog od segmenata slike procesa.

VIRTUELNA MEMORIJA

Prethodno opisano upravljanje radnom memorijom nije u stanju da rije�i problem, koji se

javlja, ako su slika procesa, ili njen segment ve i od ukupno raspolo�ive sistemske slobodne radne memorije (ili njenih odsje aka). Za re�avanje ovog problema va�no je uo iti da je za izvr�avanje bilo koje ma�inske naredbe neophodno da u radnoj memoriji budu samo bajti njenog ma�inskog formata, kao i bajti njenih operanada. To zna i da u radnoj memoriji mora da bude samo kopija trenutno potrebnog dijela slike procesa, dok se cijela slika mo�e da nalazi u masovnoj memoriji. Prema tome, veli inu slike procesa ne ograni ava veli ina radne memorije, nego veli ina masovne memorije. Zahvaljuju i tome, logi ki (virtuelni) adresni prostor mo�e biti mnogo ve i od fizi kog adresnog prostora, pod uslovom da se kopije neophodnih djelova slike

Page 55: Operativni_Sistemi

Operativni sistemi ______________________________________________________________________________

_____________________________________________________________________________________________________________ 54

procesa, kada zatreba, automatski prebacuju iz masovne memorije u radnu memoriju i obrnuto. Do prebacivanja u obrnutom smjeru dolazi, kada je potrebno osloboditi lokacije radne memorije sa kopijama delova slika procesa, koje su u me uvremenu izmijenjene. Ovo prebacivanje se obavlja, da bi se oslobodila radna memorija i, istovremeno, obezbijedilo da masovna memorija uvijek sadr�i a�urnu sliku procesa. Da bi se znalo koja kopija je izmijenjena, neophodno je automatski registrovati svaku izmjenu svake od kopija djelova slike procesa.

Prethodno opisani na in obezbije enja mnogo ve eg logi kog adresnog prostora od raspolo�ivog fizi kog adresnog prostora je poznat pod nazivom virtuelna memorija (virtual memory). Ostvarenje ideje virtuelne memorije je u nadle�nosti sloja za upravljanje virtuelnom memorijom (koji predstavlja specijalizovani oblik sloja za upravljanje radnom memorijom).

Za virtuelnu memoriju je neophodno uspostaviti korespondenciju logi kih (virtuelnih) i fizi kih adresa, radi stvaranja uslova za automatsko pretvaranje logi kih adresa u fizi ke. Zbog toga, virtuelna memorija dijeli logi ki i fizi ki adresni prostor u stranice (page). Svaka stranica obuhvata isti broj lokacija, jednak nekom stepenu broja 2. Logi ki adresni prostor se sastoji od logi kih stranica,.smje�tenih u masovnoj memoriji, a fizi ki adresni prostor sa injavaju fizi ke stranice, smje�tene u radnoj memoriji. Kada zatreba, kopija logi ke stranice se prebacuje u fizi ku stranicu, a samo izmjenjena kopija se vra a iz fizi ke stranice u logi ku stranicu. Po�to stranica predstavlja jedinicu prenosa na relaciji masovna i radna memorija, prirodno je da ona obuhvata cijeli broj blokova masovne memorije.

Podjela logi kog i fizi kog adresnog prostora u stranice zna i da se adresa svake lokacije sastoji od adrese stranice i od adrese lokacije u stranici (ofset). injenica da svaka i logi ka i fizi ka stranica obuhvata isti broj lokacija (jednak nekom stepenu broja 2) zna i da se adresa lokacije (ofset) u stranici ne mijenja pri pretvaranju logi ke adrese u fizi ku (Slika 2.19). Pri tome, adresu lokacije u stranici odre uje n manje zna ajnih bita i u logi koj i u fizi koj adresi, ako stranica obuhvata 2n bajta. Preostali, zna ajniji biti logi ke, odnosno fizi ke adrese odre uju adresu logi ke, odnosno fizi ke stranice. Po�to je logi ki adresni prostor ve i od fizi kog (pa sadr�i vi�e stranica nego fizi ki), adresa logi ke stranice sadr�i vi�e bita od adrese fizi ke stranice. Iz prethodnog slijedi da se problem pretvaranja logi ke (virtuelne) adrese u fizi ku svodi na problem pretvaranja adrese logi ke stranice u adresu fizi ke stranice. Ovaj problem se re�ava pomo u tabele stranica. Pri tome se podrazumijeva da svaka logi ka stranica odgovara jednom elementu tabele stranica (i to onom, koga indeksira adresa ove stranice). Tako e se podrazumijeva da se adresa fizi ke stranice, sa kopijom neke logi ke stranice, smje�ta u element tabele stranica, koga indeksira adresa ove logi ke stranice. Zahvaljuju i tome, pretvaranje adrese logi ke stranice u adresu fizi ke stranice (sa kopijom ove logi ke stranice) se svodi na itanje elementa tabele stranica, koga indeksira adresa pomenute logi ke stranice (Slika 2.20). Svaki element tabele stranica, pored polja za adresu fizi ke stranice, sadr�i i polje prisustva adrese fizi ke stranice. Ovo polje pokazuje da li je doti ni element tabele stranica u upotrebi. Element tabele stranica je u upotrebi, ako je u njemu prisutna adresa fizi ke stranice (sa kopijom logi ke stranice, ija adresa indeksira doti ni element). Uz pomenuta dva polja, svaki element tabele stranica sadr�i i polje izmjene, u kome se registruje izmjena kopije logi ke stranice ( ija adresa indeksira doti ni element). I za polje prisustva i za polje izmjene dovoljan je jedan bit.

Page 56: Operativni_Sistemi

Operativni sistemi ______________________________________________________________________________

_____________________________________________________________________________________________________________ 55

Slika 2.19. Primjer preslikavanja virtaelnog adresnog prostora u fizi ki

Tabela stranica se razlikuje od procesa do procesa, pa deskriptor svakog od njih sadr�i

kopiju tabele stranica. To produ�ava (usporava) preklju ivanje, jer se u toku preklju ivanja kopija tabele stranica prebacuje u deskriptor jednog procesa, a zatim se tabela stranica puni svojom kopijom iz deskriptora drugog procesa.

Za virtuelnu memoriju je va�no pitanje du�ine stranice. Za duga ke stranice postaje izra�en problem interne fragmentacije (jer sve stranice nijesu uvek potpuno iskori� ene, pa se u njima javljaju neupotrebljive lokacije). Za kratke stranice postaje izra�en problem veli ine tabele stranica (jer tada logi ki adresni prostor ima vi�e stranica, pa zato i tabela stranica ima vi�e elemenata). Praksa je veli inu stranice smjestila izme u 512 i 8192 bajta.

Pretvaranje logi ke adrese virtuelne memorije u fizi ku adresu obavlja poseban strani ni hardver. On izdvaja adresu logi ke stranice, radi indeksiranja tabele stranica. Nakon �to u indeksiranom elementu tabele stranica prona e odgovaraju u adresu fizi ke stranice, strani ni hardver zamijeni tom adresom adresu logi ke stranice i tako formira fizi ku adresu. Ako polje prisustva indeksiranog elementa pokazuje da on nije u upotrebi, tada to zna i da se u radnoj memoriji ne nalazi kopija odgovaraju e logi ke stranice, pa nije mogu e pretvaranje logi ke adrese u fizi ku (jer ne postoji fizi ka stranica sa kopijom doti ne logi ke stranice). U toj situaciji strani ni hardver mora da aktivira sloj za upravljanje virtuelnom memorijom, radi prebacivanja potrebne kopije logi ke stranice u neku fizi ku stranicu. To se ostvaruje pomo u mehanizma prekida (izuzetka). Strani ni hardver izaziva strani ni prekid (page fault), na koga reaguje obra iva strani nog prekida sloja za upravljanje virtuelnom memorijom. Njegov zadatak je da prebaci kopiju potrebne logi ke stranice u neku fizi ku stranicu. Obra iva strani nog prekida, pri tome, a�urira odgovaraju i element tabele stranica. Tom prilikom on postavlja polje sa adresom fizi ke stranice i polje prisustva odgovaraju eg elementa tabele stranica, a isti polje izmjene (polje izmjene automatski postavlja strani ni hardver, nakon svake izmjene kopije logi ke stranice).

Page 57: Operativni_Sistemi

Operativni sistemi ______________________________________________________________________________

_____________________________________________________________________________________________________________ 56

Slika 2.20. Primjer preslikavanja virtaelne adrese u fizi ki

Va�no je uo iti da se kopije logi kih stranica prebacuju na zahtjev (demand paging), a ne

unapred (prepaging), jer u op�tem slu aju ne postoji na in da se predvidi redosled kori� enja logi kih stranica.

Koncept virtuelne memorije omogu uje da se, umjesto cijele slike procesa, u radnoj memorijin nalaze kopije samo neophodnog podskupa njenih logi kih stranica. Prema tome, svakom procesu je pridru�en skup fizi kih stranica, u kojima se nalaze kopije logi kih stranica, neophodne za aktivnost procesa. Kada se, u toku aktivnosti procesa, desi strani ni prekid (koji zahtijeva prebacivanje kopije nove logi ke stranice u radnu memoriju), prije zahtijevanog prebacivanja neophodno je razrije�iti dilemu da li uve ati skup fizi kih stranica procesa novom fizi kom stranicom i u nju smjestiti kopiju nove logi ke stranice, ili u postoje em skupu fizi ih stranica procesa zamijeniti sadr�aj neke od njih kopijom nove logi ke stranice. Uve anje skupa fizi kih stranica procesa ima smisla samo ako to dovodi do smanjivanja u estanosti strani nih prekida (njihovog prosje nog broja u jedinici vremena). Zna i, kada je, u toku aktivnosti procesa, u estanost strani nih prekida iznad neke (iskustveno odre ene) gornje granice, tada ima smisla uve anje skupa fizi ih stranica procesa, da bi se u estanost strani nih prekida svela na prihvatljiv nivo. To je va�no, jer obrada svakog prekida tro�i procesorsko vrijeme, pa veliki broj obrada strani nih prekida mo�e u potpunosti da anga�uje procesor i da tako vrlo uspori, ili potpuno sprije i njegovu bilo kakvu korisnu aktivnost (trashing). Me utim, ako je u estanost strani nih prekida ispod neke (iskustveno odre ene) donje granice, tada ima smisla smanjenje skupa fizi kih stranica procesa, jer i sa manjim skupom fizi kih stranica u estanost strani nih prekida ostaje u prihvatljivom rasponu (u opstem slu aju u estanost strani nih prekida ne pada na nulu, ako sve kopije logi kih stranica procesa ne mogu stati u radnu memoriju). Smanjenje skupa fizi kih stranica procesa je va�no, jer se tako omogu uje neophodni rast skupova stranica drugih procesa, odnosno jer se time podi�e stepen multiprogramiranja. U slu aju da je u estanost strani nih prekida izme u pomenute dve granice, tada nema potrebe za izmjenom broja fizi kih stranica u skupu fizi kih stranica aktivnog procesa. U ovom slu aju skup fizi kih stranica

Page 58: Operativni_Sistemi

Operativni sistemi ______________________________________________________________________________

_____________________________________________________________________________________________________________ 57

(odnosno, njima odgovaraju i skup logi kih stranica) obrazuje radni skup (working set). Radni skup procesa nije stati an. U prosjeku, on se sporo mijenja u toku aktivnosti

procesa (iako su, povremeno, mogu e zna ajne kratkotrajne varijacije radnog skupa). Va�no je uo iti da se u toku aktivnosti procesa obavezno javlja trashing, kada njegov radni skup ne mo�e da stane u radnu memoriju. U ovom slu aju poma�e izbacivanje (swapping) procesa, dok se ne oslobodi dovoljan broj fizi kih stranica (ovaj pristup ima smisla samo ako je radni skup procesa manji od ukupne sistemske slobodne radne memorije).

Stepen multiprogramiranja kod virtuelne memorije zavisi od broja radnih skupova, koji se istovremeno mogu smjestiti u raspolo�ivu radnu memoriju. Za uspeh koncepta virtuelne memorije va�no je da se stalno prate radni skupovi istovremeno postoje ih procesa i da se povremeno izbacuju procesi, im radna memorija postane pretijesna za sve radne skupove (load control). Na ovaj na in se osloba aju fizi ki blokovi za preostale procese, neophodni za smje�tanje njihovih radnih skupova. Prilikom kasnijeg ubacivanja procesa, uputno je ubacivati kopije svih logi kih stranica, koje obrazuju njegov radni skup.

Pored radnog skupa, procese karakteri�e i minimalni skup. Broj fizi kih stranica u minimalnom skupu zavisi od procesora. Na primjer, za procesor, ije naredbe imaju najvi�e dva operanda, minimalni skup sadr�i �est fizi kih stranica, jer se, u ekstremnom slu aju, i bajti ma�inske naredbe, kao i bajti oba njena operanda, mogu nalaziti u razli itim susjednim fizi kim stranicama. Po�to se naredba mo�e izvr�iti samo kada su u radnoj memoriji prisutni svi bajti njenog ma�inskog formata i svi bajti njenih operanada, prethodno pomenuti ekstremni slu aj uslovljava da je pridru�ivanje minimalnog skupa procesu preduslov bilo kakve njegove aktivnosti.

Pad u estanosti strani nih prekida ispod donje granice ukazuje na mogu nost smanjenja radnog skupa. U ovoj situaciji je potrebno odlu iti koju logi ku stranicu izbaciti iz radnog skupa. Za izbacivanje iz radnog skupa kao kandidat se name e logi ka stranica, koja ne e biti referencirana do kraja aktivnosti procesa, ili e biti referencirana iza svih ostalih logi kih stranica iz radnog skupa (pod referenciranjem se podrazumijeva pristup bilo kojoj lokaciji stranice, radi preuzimanja ili izmjene njenog sadr�aja). Me utim, u op�tem slu aju nema na ina da se precizno ustanovi da li e i kada neka logi ka stranica biti referencirana. Ipak, zahvaljuju i lokalnosti referenciranja, odnosno zapa�anju da se pristupi lokacijama sa bliskim adresama de�avaju u bliskim trenucima, mogu e je sa prili nom pouzdano� u zaklju ivati o referenciranju stranica u neposrednoj budu nosti na osnovu njihovog referenciranja u neposrednoj pro�losti. Prema tome, najmanju vjerovatno u da bude referencirana u neposrednoj budu nosti ima stranica, ije poslednje referenciranje je najstarije, odnosno prethodi referenciranju svih ostalih stranica iz radnog skupa. Za pronala�enje stranice sa najstarijom referencom (Least Recently Used - LRU) neophodno je registrovanje starosti referenciranja. To je mogu e, ako postoji broja , koji se automatski uve ava za jedan nakon izvr�avanja svake naredbe. Ako se njegova zate ena vrednost automatski pridru�uje logi koj stranici prilikom njenog svakog referenciranja, tada je stranici sa najstarijom referencom pridru�ena najmanja vrednost ovog broja a. Opisani pristup ima samo teoretsko zna enje, jer se oslanja na hardver, koji u op�tem slu aju nije raspolo�iv. Me utim, ovaj pristup je mogu e softverski simulirati (Not Frequently Used - NFU). Ovakva simulacija se zasniva na postojanju podatka o referenciranju svake logi ke stranice. Zato se u elemente tabele stranica dodaje i polje referenciranja, veliko 1 bit. Za ovo polje se podrazumijeva da ga strani ni hardver automatski postavlja prilikom svakog referenciranja stranice. Tako e, elementima tabele stranica se dodaje i polje starosti referenciranja. Ono sadr�i n bita, po jedan bit za svaku od vrijednosti polja referenciranja u poslednjih n trenutaka. Polje starosti referenciranja se periodi no a�urira, tako �to se iz njega periodi no izbacuje najstariji bit referenciranja. Radi toga

Page 59: Operativni_Sistemi

Operativni sistemi ______________________________________________________________________________

_____________________________________________________________________________________________________________ 58

se periodi no (u trenucima sa pravilnim vremenskim razmacima) aktivira obra iva vremenskog prekida (kao posledica de�avanja posebnog vremenskog prekida). On pomera u desno za jedan bit polje starosti referenciranja svake od logi kih stranica iz radnog skupa aktivnog procesa i dodaje s leva (u upra�njenu bitnu poziciju ovog polja) zate eni sadr�aj polja referenciranja doti ne logi ke stranice, a zatim o isti ovo polje. Na ovaj na in polje starosti referenciranja sadr�i najmanju vrednost za logi ku stranicu, koja je najranije referencirana u prethodnih n trenutaka.

Polje starosti referenciranja se mo�e iskoristiti i za odre ivanje radnog skupa. Kriterijum mo�e biti postavljenost nekog od k najzna ajnijih bita iz polja starosti referenciranja (k < n). Po tom kriterijumu radnom skupu pripadaju sve logi ke stranice, koje imaju bar jedan bit postavljen u najzna ajnijih k bita svog polja starosti referenciranja.

Pove anje u estanosti strani nih prekida preko gornje granice ukazuje na potrebu pro�irenja radnog skupa. U ovom slu aju, potrebno je procesu pridru�iti novu fizi ku stranicu, da bi se u nju smjestila kopija potrebne logi ke stranice. Ako nema slobodnih fizi kih stranica, tada se osloba a (kada je to mogu e) fizi ka stranica, koja je pridru�ena nekom drugom procesu (�to zna i da se radni skup ovog drugog procesa smanjuje). U oslobo enoj fizi koj stranici zate enu kopiju zamenjuje (replacement) kopija potrebne logi ke stranice. Do ovakve zamjene dolazi i kada se javi potreba za ubacivanjem kopije nove stranice, a u estanost strani nih prekida je izme u gornje i donje granice, pa se radni skup aktivnog procesa ne pro�iruje, nego se osloba a jedna od fizi kih stranica iz njegovog radnog skupa. U oba prethodna slu aja kandidat za zamjenu je fizi ka stranica, koja sadr�i kopiju logi ke stranice sa najstarijom referencom. Zna i i ovde se mo�e primjeniti softverska simulacija pristupa pronala�enja najmanje kori� ene stranice. Jo� je jednostavniji pristup u kome se tra�i stranica koja nije kori� ena u nekom prethodnom periodu (Not Recently Used - NRU). Za ovaj pristup je dovoljno posmatrati dvobitni broj, iji zna ajniji bit odgovara bitu polja reference, a manje zna ajan bit odgovara bitu polja izmjene. Pri tome se podrazumijeva da segmentacioni hardver automatski postavlja ove bite nakon svakog referenciranja kopije logi ke stranice, odnosno nakon svake njene izmjene, a da obra iva vremenskog prekida isti bit reference (oba bita se iste i prilikom zauzimanja fizi ke stranice, odnosno prilikom zamjene njenog sadr�aja). Prema tome, pomjenuti dvobitni broj sadr�i 00, kada kopija logi ke stranice nije kori� ena nakon nekog od poslednjih vremenskih prekida (zna i, niti referencirana niti izmijenjena). Pomenuti dvobitni broj sadr�i 01, kada kopija logi ke stranice nije referencirana nakon nekog od poslednjih vremenskih prekida (ali je prethodno izmijenjena). Ovaj broj sadr�i 10, kada kopija logi ke stranice nije izmijenjena, ali je referencirana nakon poslednjeg vremenskog prekida. Pomenuti dvobitni broj sadr�i 11, kada je kopija logi ke stranice izmijenjena i, uz to, referencirana nakon poslednjeg vremenskog prekida. Kandidati za zamjenu su stranice, iji dvobitni broj je najmanji.

Prethodno opisani algoritmi zamjene (odnosno, na ini odre ivanja fizi ke stranice, iji sadr�aj se zamjenjuje) obezbije uju smanjenje u estanosti strani nih prekida nakon pro�irenja radnog skupa (zna i, obavljanje liste istih zahtjeva za pristupe logi kim stranicama dovodi do pojave manje strani nih prekida nakon pro�irenja radnog skupa, nego pre toga). Ovo je va�no ista i, jer svi algoritmi zamjene ne dovode obavezno do smanjenja u estanosti strani nih prekida nakon pro�irenja radnog skupa. To je karakteristi no, na primjer, za algoritam zamjene, kod koga se za zamjenu odabira fizi ka stranica, iji sadr�aj je najstariji (First In First Out - FIFO), bez obzira da li je on skoro referenciran. Ovaj algoritam zamjene ima tendenciju da u radnom skupu uva stranice, iji sadr�aj je svje�iji ( ak i ako one ne e biti uskoro referencirane). Me utim,

mana ovog algoritma zamjene se otklanja, ako se on modifikuje, tako da se za zamjenu prvo tra�i fizi ka stranica sa najstarijim nereferenciranim sadr�ajem, a ako su sadr�aji svih fizi kih stranica

Page 60: Operativni_Sistemi

Operativni sistemi ______________________________________________________________________________

_____________________________________________________________________________________________________________ 59

referencirani, tek tada se odabira fizi ka stranica sa najstarijim sadr�ajem (second chance i clock algoritmi zamene). U sva tri poslednje pomenuta algoritma zamene (FIFO, second chance i clock) fizi ke stranice iz radnog skupa procesa su uvezane u listu, pri emu polo�aj u listi ukazuje na starost sadr�aja fizi ke stranice (u clock algoritmu zamjene ovakva lista je kru�na, a poseban pokaziva , kao kazaljka na satu, pokazuje na stranicu sa najstarijim sadr�ajem).

Virtuelna memorija pokazuje najbolje rezultate, kada uvijek ima slobodnih fizi kih stranica. To se mo�e posti i, ako se uvede poseban strani ni sistemski proces, koji se periodi no aktivira, da bi oslobodio izvjestan broj fizi kih stranica. On, pri tome, odabira fizi ke stranice za osloba anje po nekom od prethodno opisanih algoritama zamjene. Zadatak strani nog sistemskog procesa je i da u masovnu memoriju prebacuje izmjenjene kopije logi kih stranica (i da tako uva a�urnost masovne memorije).

Sloj za upravljanje virtuelnom memorijom sadr�i, pored operacija zauzimanja i osloba anja (namijenjenih slojevima iznad ovog sloja), strani ni sistemski proces i obra iva e vremenskog i strani nog prekida. Obra iva strani nog prekida se aktivira, kada je referencirana logi ka stranica, ija kopija nije prisutna u radnoj memoriji (odnosno, u nekoj od njenih fizi kih stranica). Ako je, gre�kom, referencirana logi ka stranica, koja uop�te ne postoji u slici procesa, obra iva strani nog prekida zavr�ava aktivnost prekinutog procesa (uz odgovaraju u poruku). Ina e, ovaj obra iva odabira slobodnu fizi ku stranicu i prema njoj usmjerava prenos kopije potrebne logi ke stranice sa masovne memorije. Kada se taj prenos zavr�i, obra iva strani nog prekida a�urira polja odgovaraju eg elementa tabele stranica i omogu uje nastavak aktivnosti prekinutog procesa. Kada nema slobodne fizi ke stranice, ovaj obra iva osloba a neku od fizi kih stranica. Ako ona sadr�i izmjenjenu kopiju logi ke stranice, on pokre e prenos ove kopije u masovnu memoriju, radi a�uriranja odgovaraju e logi ke stranice. Po zavr�etku ovoga prenosa, obra iva strani nog prekida usmjerava ka oslobo enoj fizi koj stranici prenos kopije potrebne logi ke stranice, a, nakon zavr�etka ovog prenosa i a�uriranja polja odgovaraju eg elementa tabele stranica, on omogu ava nastavak aktivnosti prekinutog procesa. Za uspje�no obavljanje posla, obra iva u strani nog prekida je potrebna evidencija o polo�aju logi kih stranica u masovnoj memoriji. On, tako e, koristi i evidenciju slobodnih fizi kih stranica. Nju koriste i operacija zauzimanja i operacija osloba anja, pa upravljanje ovom evidencijom mora obezbijediti sinhronizaciju procesa (i to onemogu enjem prekida). Ova evidencija mo�e da ima oblik niza bita (bit map). Pri tome, svaki od ovih bita pokazuje stanje odgovaraju e fizi ke stranice. Evidencija slobodnih fizi kih stranica mo�e da ima i oblik liste, u koju su uvezane sve slobodne fizi ke stranice (ovaj pristup je efikasniji). Operacija zauzimanja omogu uje zauzimanje bar minimalnog skupa, radi stvaranja procesa, a operacija osloba anja osloba a sve fizi ke stranice iz radnog skupa uni�avanog procesa.

Posmatrano iz ugla pozivanja operacija i obra ivanja prekida, sloj za upravljanje virtuelnom memorijom ima gornji i donji dio. Gornji dio sa injavaju operacije zauzimanja i osloba anja, jer se pozivaju iz slojeva iznad ovog sloja. Donji dio ovog sloja sa injavaju njegovi obra iva i prekida, jer ih poziva mehanizam prekida, zna i, hardver, koji je ispod najni�eg sloja operativnog sistema.

STRANI NA SEGMENTACIJA

Koncept virtuelne memorije mo�e da se primijeni na celu sliku procesa, ali i na pojedine njene segmente. U ovom drugom slu aju re je o strani noj segmentaciji (paging segmentation). Za strani nu segmentaciju je karakteristi no da tabela stranica nije vezana za proces, nego za njegove segmente (zna i, za svaki segment postoji posebna tabela stranica). U tom slu aju

Page 61: Operativni_Sistemi

Operativni sistemi ______________________________________________________________________________

_____________________________________________________________________________________________________________ 60

logi ka adresa se sastoji od adrese segmenta, od adrese logi ke stranice segmenta i od adrese lokacije u ovoj stranici. Pri tome se mijenja namjena grani nog i baznog polja iz elemenata tabele segmenata. Tako se u grani nom polju nalazi podatak o broju stranica doti nog segmenta (odnosno, podatak o najvi�oj dozvoljenoj adresi logi ke stranice tog segmenta), a u baznom polju se nalazi adresa tabele stranica doti nog segmenta (uz ova dva polja i dalje je prisutno i polje sa pravima pristupa segmentu).

Kod strani ne segmentacije, prilikom pretvaranja logi ke adrese u fizi ku, iz logi ke adrese se izdvajaju adresa segmenta i adresa logi ke stranice segmenta. Izdvojena adresa segmenta indeksira element tabele segmenata. Sadr�aj grani nog polja ovog elementa se poredi sa izdvojenom adresom logi ke stranice segmenta. Ako ova adresa nije ve a od sadr�aja pomenutog grani nog polja, tada se sadr�aj baznog polja istog elementa tabele segmenata koristi kao adresa tabele stranica doti nog segmenta. Pri tome, izdvojena adresa logi ke stranice segmenta indeksira element pomenute tabele stranica. Ako se u ovom elementu nalazi adresa fizi ke stranice, ona se spaja sa adresom lokacije u stranici, da bi se formirala fizi ka adresa. Ina e se izaziva strani ni prekid i dalji postupak je kao kod virtuelne memorije. Prethodno opisano pretvaranje logi ke adrese u fizi ku se nalazi u nadle�nosti strani no segmentacionog hardvera.

Prednost strani ne segmentacije je da ona omogu ava dinami ko pro�irenje segmenata (dodavanjem novih stranica), �to je va�no za segmente promenljivih i steka. Na ovoj osnovi je mogu e i otvorenim datotekama dodeljivati posebne segmente i na taj na in ponuditi koncept memorijski preslikane datoteke (memory mapped file). Pristup ovakvoj datoteci ne zahtijeva sistemske operacije za itanje, pisanje ili pozicioniranje, jer se direktno pristupa lokacijama sa odgovaraju im sadr�ajem datoteke. Mana koncepta memorijski preslikane datoteke je da se veli ina datoteke izra�ava cijelim brojem stranica (jer nema na ina da operativni sistem odredi koliko je popunjeno bajta iz poslednje stranice). Tako e, problem je i �to logi ki adresni prostor segmenta mo�e biti suvi�e mali za pojedine datoteke.

Strani na segmentacija pati od interne fragmentacije i izaziva produ�avanje (usporavanje) preklju ivanja procesa.

OSNOVA SLOJA ZA UPRAVLJANJE VIRTUELNOM MEMORIJOM

Sloj za upravljanje virtuelnom memorijom se oslanja na operacije sloja za upravljanje kontrolerima I/O ure aja, da bi obezbijedio prenos kopija logi kih blokova na relaciji masovna i radna memorija i da bi smjestio adrese svojih obra iva a prekida u odgovaraju e elemente tabele prekida. 2.5 SLOJ ZA UPRAVLJANJE KONTROLERIMA I/O URE AJA Ulazni i izlazni ure aji (I/O) ra unara se dijele na:

blokovske i znakovne ure aje.

Ovakva podjela je uslovljena razlikama izme u ove dvije vrste ulaznih i izlaznih ure aja u pogledu: - jedinice pristupa,

Page 62: Operativni_Sistemi

Operativni sistemi ______________________________________________________________________________

_____________________________________________________________________________________________________________ 61

- na ina pristupa i - upravljanja. Tako je za blokovske ure aje jednica pristupa blok, a za znakovne ure aje jedinica pristupa je znak. Dalje, dok zna ajan broj blokovskih ure aja dozvoljava direktan pristup, znakovni ure aji podr�avaju samo sekvencijalni pristup. Na kraju, za razliku od blokovskih ure aja, znakovni ure aji dozvoljavaju dinami ko pode�avanje njihovih pojedinih funkcionalnih karakteristika, kao �to je, na primjer, brzina prenosa znakova od ra unara i ka ra unaru. Prethodne razlike uti u na oblikovanje drajvera, zadu�enih za upravljanje kontrolerima.

Va�no je uo iti da klasifikacija ure aja na znakovne i blokovske ne obuhvata sve ure aje. Na primjer, sat ili mi� ne spadaju ni u znakovne ni u blokovske ure aje. Zato se drajveri ovakvih ure aja razlikuju od drajvera znakovnih i blokovskih ure aja.

DRAJVERI

Zajedni ko svojstvo drajvera je da je svaki od njih namjenjen za upravljanje odre enom klasom ure aja. Pri tome, obi no, jedan drajver mo�e da opslu�i vi�e primjeraka ure aja iste klase. Drajveri se nalaze u tijesnoj saradnji sa kontrolerima ulaznih i izlaznih ure aja i kriju sve detalje i posebnosti funkcionisanja ovih kontrolera. Van drajvera su vidljive samo operacije, kao �to su, na primjer, operacije ulaza ili izlaza, koje omogu uju jednoobrazno kori� enje ulaznih i izlaznih ure aja. Tipi ne operacije drajvera blokovskih ure aja su:

1. operacija inicijalizacije (koja se poziva samo u toku pokretanja operativnog sistema) i 2. operacije ulaza i izlaza blokova (koje koristi sloj za upravljanje datotekama).

Tipi ne operacije drajvera znakovnih ure aja su:

1. operacija inicijalizacije (koja se poziva samo u toku pokretanja operativnog sistema), 2. operacije ulaza i izlaza znakova (koje koristi sloj za upravljanje datotekama), kao i 3. upravlja ka operacija (koja omogu uje dinami ko pode�avanje funkcionalnih karakteristika znakovnih ure aja, na primjer, njihove brzine prenosa znakova).

Za adresu svake od ovih operacija predvi eno je posebno polje u elementu tabele drajvera. Podrazumijeva se da redni broj drajvera indeksira element ove tabele, koji sadr�i polja sa adresama pojedinih operacija ovog drajvera. Pri tome, polja, namijenjena za adrese operacija, koje doti ni drajver ne podr�ava, sadr�e adresu posebne (la�ne) operacije, ije obavljanje nema efekta. To va�i, na primjer, za upravlja ku operaciju kod drajvera diska, ili za operaciju ulaza kod drajvera �tampa a.

Tabela drajvera nudi standardan na in za povezivanje sloja za upravljanje datotekama i sloja za upravljanje ulaznim i izlaznim ure ajima, radi vezivanja operacija obi nih i specijalnih datoteka za operacije drajvera ulaznih i izlaznih ure aja. Zahvaljuju i ovoj tabeli, mogu e je u operativni sistem dodavati (stati ki i dinami ki) nove drajvere (uslov za to je, ne samo dopunjavanje tabele drajvera adresama operacija novog drajvera, nego i dodavanje objektnog oblika novog drajvera objektnom obliku operativnog sistema).

U sklopu opsluzivanja kontrolera, drajveri moraju da reaguju i na prekide, koji sti�u od kontrolera. Prekidi, na primjer, objavljuju da je zavr�en prenos podataka ka kontroleru, ili od kontrolera. U ovakvom slu aju, obrada prekida obuhvata ili preuzimanje podatka, pristiglih od kontrolera, ili pripremu prenosa novih podataka ka kontroleru. Za ovakve obrade su zadu�eni obra iva i prekida drajvera. Za razliku od operacija drajvera, koje se pozivaju iz slojeva iznad

Page 63: Operativni_Sistemi

Operativni sistemi ______________________________________________________________________________

_____________________________________________________________________________________________________________ 62

sloja za upravljanje ulaznim i izlaznim ure ajima (pa zato predstavljaju gornji deo drajvera), obra iva e prekida poziva mehanizam prekida, zna i hardver ispod operativnog sistema (pa zato oni predstavljaju donji deo drajvera). Uslov, da hardverski mehanizam prekida pozove nekog od obra iva a prekida, je da adresa ovog obra iva a dospe u odgovaraju i element tabele prekida. To se ostvaruje u okviru drajverske operacije inicijalizacije.

DRAJVERI BLOKOVSKIH URE AJA

Aktivnost svakog drajvera zapo inje inicijalizacijom njegovog kontrolera (�to se obavi

pozivanjem drajverske operacije inicijalizacije u toku pokretanja operativnog sistema). Nakon toga, aktivnost drajvera blokovskih ure aja se svodi na prenos blokova ka ovim ure ajima i od njih. Zato su za drajverske operacije ulaza i izlaza blokova obavezni argumenti redni broj preno�enog bloka i adresa bafera (sloja za upravljanje datotekama) u koji, ili iz kog se prenosi blok. Pri tome, drajversku operaciju ulaza bloka poziva sistemska operacija itanja sloja za upravljanje datotekama. Ako se ova sistemska operacija odnosi na obi nu datoteku, ona, kao prvi argument u pozivu drajverske operacije ulaza bloka, navodi izra unati redni broj bloka. U slu aju da se pomenuta sistemska operacija itanja odnosi na specijalnu datoteku, ona, kao prvi argument u pozivu drajverske operacije ulaza bloka, navodi sadr�aj polja pozicije ove datoteke (ovo polje je prisutno u elementu tabele otvorenih datoteka procesa pozivaoca pomenute sistemske operacije). U svakom slu aju, kao drugi argument pozivane drajverske opercije koristi se adresa nekog od slobodnih bafera sloja za upravljanje datotekama.

Drajversku operaciju izlaza bloka poziva sistemska operacija pisanja sloja za upravljanje datotekama. Ako se ova sistemska operacija odnosi na obi nu datoteku, ona, kao prvi argument u pozivu drajverske operacije izlaza bloka, navodi izra unati redni broj bloka (u koji se smje�taju pisani bajti). U slu aju da se pomenuta sistemska operacija pisanja odnosi na specijalnu datoteku, ona, kao prvi argument u pozivu drajverske operacije izlaza bloka, navodi sadr�aj polja pozicije ove datoteke (ovo polje je prisutno u elementu tabele otvorenih datoteka procesa pozivaoca pomenute sistemske operacije). U svakom slu aju, kao drugi argument pozivane drajverske opercije koristi se adresa nekog od slobodnih bafera sloja za upravljanje datotekama, u kome je pripremljen novi sadr�aj upisivanog bloka.

Drajverska operacija izlaza bloka se poziva i kada je potrebno izmijenjene sadr�aje bafera sloja za upravljanje datotekama sa uvati na disku. Ovo se de�ava prilikom osloba anja bafera, koji sadr�i izmjenjenu kopiju bloka, ali i periodi no, radi smanjenja mogu nosti gubljenja izmjena ovakvih kopija. Za periodi no pisanje ovakvih sadr�aja bafera mo�e biti zadu�en poseban sistemski proces.

Za drajverske operacije ulaza ili izlaza bloka je prirodno da se oslone na mehanizam direktnog memorijskog pristupa (DMA), ako to omogu uje kontroler. U ovom slu aju, postavlja se pitanje sta u initi sa aktivno� u procesa pozivaoca jedne od ovih operacija, nakon pokretanja mehanizma direktnog memorijskog pristupa, radi prenosa bloka. Ako je za nastavak aktivnosti pomenutog procesa neophodno da prenos bloka bude zavr�en, tada je, nakon pokretanja mehanizma direktnog memorijskog pristupa, neizbje�no zustavljanje aktivnosti pomenutog procesa, dok se zatra�eni prenos bloka ne obavi. Drajverske operacije ulaza ili izlaza bloka, koje zaustavljaju aktivnost svog procesa pozivaoca, dok se ne obavi zatra�eni prenos bloka, spadaju u klasu blokiraju ih operacija. Zaustavljanje aktivnosti jednog procesa u okviru drajverske operacije ulaza ili izlaza bloka prirodno dovodi do preklju ivanja procesora na drugi proces. Ako se u toku aktivnosti ovog drugog procesa javi potreba za prenosom bloka i ako se, u okviru drajverske operacije ulaza ili izlaza bloka, ustanovi da se zatra�eni prenos ne mo�e pokrenuti, jer

Page 64: Operativni_Sistemi

Operativni sistemi ______________________________________________________________________________

_____________________________________________________________________________________________________________ 63

je ulazni ili izlazni ure aj zauzet ve pokrenutim prenosom bloka za potrebe prvog procesa, neizbje�no je zaustavljanje aktivnosti i drugog procesa. Pri tome, mora ostati trag o zahtjevu za prenosom novog bloka, da bi se taj prenos pokrenuo, im se zavr�i ve pokrenuti prenos. Sticaj okolnosti mo�e dovesti do toga da postoji vi ovakvih zahtjva, jer je rad ulaznog ili izlaznog ure aja sporiji od rada procesora. Zato je mogu e da se, u toku prenosa jednog bloka, procesor vi�e puta preklju i na razne procese, ije aktivnosti se, jedna za drugom, zaustavljaju zbog zahtjeva za prenosom novih blokova. Uvezivanje svih istvoremeno postoje ih zahtjeva za prenosom blokova u listu zahtjeva omogu uje ne samo registrovanje svih zahtjeva, nego i registrovanje redosleda njihovog obavljanja. Pri tome, svaki zahtjev u ovakvoj listi zahtjeva mora da sadr�i:

1. smjer zahtjevanog prenosa bloka, 2. redni broj ovog bloka, 3. adresu bafera koji u estvuje u prenosu, kao i 4. adresu deskritpora procesa, ija aktivnost se zaustavlja do obavljanja zahtjevanog prenosa bloka.

Drajverske operacije ulaza ili izlaza bloka zapo inju pripremanjem zahtjeva za prenos bloka i njegovim ubacivanjem u listu zahtjeva. Time se, ujedno, zaustavlja aktivnost procesa pozivaoca ovakve operacije, ako nije mogu e pokrenuti zahtjevani prenos bloka, jer je drugi prenos u toku. U suprotnom, pokre e se mehanizam direktnog memorijskog pristupa, radi obavljanja zahtjevanog prenosa bloka, i opet se zaustavlja aktivnost procesa pozivaoca. Nastavak ove aktivnosti omogu uje odgovaraju i obra iva prekida (interrupt handler). Njega pozove kontroler, izazivaju i prekid nakon obavljanja zahtjevanog prenosa bloka. Pomenuti obra iva prekida prvo izbaci iz liste zahtjeva upravo opslu�eni zahtjev, pamte i, pri tome, adresu deskriptora procesa, ija aktivnost se mo�e nastaviti. Pre omogu avanja nastavljanja ove aktivnosti, obra iva prekida pokre e prenos novog bloka, ako lista zahtjeva nije prazna. Va�no je uo iti da upravljanje listom zahtjeva u toku drajverskih operacija ulaza ili izlaza bloka mora biti pod onemogu enim prekidima, da bi obra iva prekida uvek zaticao tu listu u ispravnom (konzistentnom) stanju.

Drajver blokovskog ure aja mora da poznaje karakteristike ure aja koga opslu�uje. Na primjer, kada opslu�uje magnetni disk, drajver mora da zna koliko sektora ima u stazi, koliko staza ima u cilindru i koliko cilindara ima na disku (glave za itanje i pisanje diska opisuju staze iznad njegovih rotiraju ih povr�ina sa magnetnim premazom, a cilindri se sastoje od staza, koje istovremeno opisuju razne glave diska iznad raznih rotiraju ih povr�ina). Na osnovu tih podatka, drajver prera unava redni broj bloka u redne brojeve cilindara, staza i sektora (jer jedan blok mo�e da sadr�i vi�e sektora), da bi izazvao pozicioniranje glava diska na potrebni cilindar i usmjerio prenos podataka na odgovaraju e staze i sektore (prera unavanje rednog broja bloka u redne brojeve cilindara, staza i sektora mo�e biti i u nadle�nosti kontrolera).

U nadle�nosti drajvera blokovskog ure aja je i odre ivanje na ina preslikavanja blokova u sektore (mada i to mo�e obavljati kontroler). Ovo preslikavanje je bitno, jer od njega zavisi propusnost (broj blokova koji se mogu preneti u jedinici vremena) ulaznog ili izlaznog ure aja, kao �to je (magnetni) disk. Tako, na primjer, mogu e je da, zbog du�ne prenosa jednog sektora izme u kontrolera i radne memorije, glava diska pre e preko po etka drugog sektora (koji prostorno sledi odmah iza prenosenog sektora) pre nego se pomenuti prenos zavr�i. Tada se pristup drugom sektoru mora odlo�iti za jedan obrtaj, dok njegov po etak ponovo ne do e ispod glave diska. To zna i da je mogu pristup samo jednom bloku u jednom obrtaju, ako se pretpostavi da sektor odgovara bloku i ako se pristupa uzastopnim blokovima, koji su preslikani u prostorno uzastopne sektore. Zato je bolje da uzastopni blokovi ne budu preslikani u prostorno

Page 65: Operativni_Sistemi

Operativni sistemi ______________________________________________________________________________

_____________________________________________________________________________________________________________ 64

uzastopne sektore (interleaving). Ako se uzastopni blokovi preslikavaju u sektore, me usobno razdvojene jednim sektorom (interleaving factor 1), i ako se prenos jednog sektora zavr�i prije nego kraj njegovog prostornog sledbenika pro e ispod glave diska, tada se u toku jednog obrtaja mo�e pro itati n/2 uzastopnih blokova (uz pretpostavku da staza sadr�i n sektora i da sektor odgovara bloku). Broj sektora (interleaving factor), koji razdvajaju sektore, odgovaraju e uzastopnim blokovima, zavisi od odnosa vremena prenosa bloka (izme u kontrolera i radne memorije) i vremena za koje sektor pro e ispod glave diska. Ako kontroler automatski prebacuje sve sektore staze (iznad koje se nalazi glava diska) u svoju lokalnu radnu memoriju (track_at_time caching), tada nema smetnje da se uzastopni blokovi preslikaju u prostorno uzastopne sektore.

Propusnost magnetnog diska zavisi i od redosleda uslu�ivanja zahtjeva za prenosom blokova, jer, sem vremena prenosa bloka (transfer time), vremena za koje staza pro e ispod glave diska (rotational delay), na propusnost diska zna ajno uti e i vreme preme�tanja glave diska sa staze na stazu (seek time). Da bi se ovo vreme minimiziralo, potrebno je �to manje pokretati glavu diska. To zna i, da je bolje da se zahtjevi za prenosom blokova ne uslu�uju hronolo�ki, nego u redosledu, koji obezbije uje minimalno pokretanje glave diska. Zato se lista ovakih zahtjeva sortira u rastu em redosledu staza (na kojima se nalaze blokovi, ije preno�enje se zahtijeva), a glava diska se pomjera iz po etne pozicije samo u jednom smjeru, dok svi zahtjevi u smjeru njenog kretanja ne budu uslu�eni. Posle toga, ona se vra a u po etnu poziciju, radi uslu�ivanja zahtjeva, koji su pristigli nakon �to je glava diska pre�la preko staza na kojima se nalaze blokovi, ije preno�enje se zahtijeva. Na ovaj na in se, pored optimizacije kretanja glave diska, obezbije uje i pravedno uslu�ivanje svih zahtjeva (jer nema mogu nosti za nepredvidivo dugo odlaganje uslu�ivanja pojedinih zahtjeva). Prethodno opisani pristup se naziva elevator algoritam (jer se po njemu upravlja kretanjem liftovima u visokim zgradama). O optimizaciji kretanja glave diska mo�e da se brine i kontroler (u ovom slu aju, drajver samo ubacuje zahtjeve u listu zahtjeva, a kontroler se brine o redosledu njihovog uslu�ivanja). To je naro ito va�no, kada se kontroler brine o zamjeni lo�ih sektora (bad sectors) ispravnim (rezervnim) sektorima (sa posebnih rezervnih staza). Po�to, u ovom slu aju, jedino kontroler zna kojoj stazi stvarno pripada koji sektor, jedino on mo�e da optimizira kretanje glave diska.

Zadatak drajvera je da iskoristi sve mogu nosti kontrolera. Tako, ako kontroler podr�ava vi�e magnetnih diskova i omogu uje istovremena nezavisna pozicioniranja glava raznih diskova, tada to drajver mo�e da iskoristi za smanjenje srednjeg vremena premje�tanja sa staze na stazu glave diska.

Drajver mo�e da pove a pouzdanost diska, ako reaguje na prolazne gre�ke u radu diska. na primjer, u slu aju pojave zrnca pra�ine izme u glave (magnetnog) diska i (magnetne) povr�ine, ulaz ili izlaz ne e biti uspje�an. Me utim, vi�estrukim ponavljanjem operacije, drajver mo�e da otkloni prethodnu gre�ku (jer je verovatno da e se zrnce pra�ine pomjeriti u narednim poku�ajima ulaza ili izlaza). Na sli an na in drajver mo�e da reaguje i na pozicioniranje glave diska na pogre�nu stazu, kao i na neke druge gre�ke kontrolera. Drajver mo�e i da smanji tro�enje magnetnih disketa (kod kojih glava disketne jedinice klizi po povr�ini sa magnetnim premazom), zaustavljanjem obrtanja diskete, im nestanu zathevi za prenos blokova na nju i sa nje.

BLOKOVSKI I ZNAKOVNI URE AJI KAO SPECIJALNE DATOTEKE

Za blokovske ure aje, poput magnetnog diska, je tipi no da ih koriste istovremeno

Postoje i procesi u toku pristupa (raznim) datotekama. Zato je i mogu e da se u listi zahtJeva istovremeno zateknu zahtJevi raznih procesa. Blokovskim ure ajima se rIJetko pristupa kao

Page 66: Operativni_Sistemi

Operativni sistemi ______________________________________________________________________________

_____________________________________________________________________________________________________________ 65

specijalnim datotekama, a kada se to i desi, koristi ih samo jedan proces, iji je zadatak naj e� e provjera ispravnosti blokova, radi pronala�enja izgubljenih ili lo�ih blokova. Za razliku od blokovskih ure aja, za znakovne ure aje je tipi no da im procesi pristupaju kao specijalnim datotekama i da ih zaklju avaju, da bi obezbijedili me usobnu isklju ivost u toku njihovog kori� enja. Takav na in upotrebe znakovnih ure aja je uobi ajen ne samo za terminale, za koje je prirodno da ih opslu�uje samo jedan proces, nego i za �tampa e ili mre�ne kontrolere, za koje je prirodno da ih koristi vi�e procesa. Zato se, u slu aju znakovnih ure aja, kao �to su �tampa i ili mre�ni kontroleri, uvode posebni sistemski procesi posrednici (spooler), koji posreduju u kori� enju pomenutih ure aja. Svaki od ovih procesa pristupa svom znakovnom ure aju kao specijalnoj datoteci, koju zaklju ava, da bi obezbijedio me usobnu isklju ivost u toku njenog kori� enja. Istovremeno, uz svaki od sistemskih procesa posrednika postoji i poseban direktorijum.Kada neki korisni ki proces �eli da od�tampa tekst, ili da po�alje poruku kroz mre�u, on prvo pripremi datoteku sa odgovaraju im sadr�ajem, a zatim tu datoteku ubaci u pomenuti direktorijum. Odgovaraju i sistemski proces posrednik vadi datoteke iz svog direktorijuma (jednu po jednu), da bi njihove sadr�aje (jedan po jedan) uputio (posredstvom svoje specijalne datoteke) na �eljeni ure aj. Pri tome se korisni ki procesi (s jedne strane) i sistemski proces posrednik (s druge strane) nalaze u odnosu proizvo a i potro�a (jer prvopomenuti procesi �proizvode� datoteke, koje �tro�i� drugopomenuti proces). Da bi ovakva saradnja procesa bila uspje�na, neophodno je da sloj za upravljanje datotekama obezbijedi sinhronizaciju procesa tokom njihovog pristupa direktorijumima, koji posreduju u razmjeni datoteka.

DRAJVERI ZNAKOVNIH URE AJA

Blokovski i znakovni ure aji se razlikuju ne samo po na inu kori� enja, nego i po na inu aktiviranja. Tako, dok blokovske ure aje uvek aktiviraju procesi, aktivnost znakovnih ure aja zavisi i od aktivnosti korisnika. Na primjer, prispe e znakova sa tastature ne zavisi od aktivnosti procesa, nego od aktivnosti korisnika. Sli no, upu ivanje znakova na ekran zavisi i od aktivnosti korisnika (eho), ali i od aktivnosti procesa. Zato u sastav drajvera znakovnih ure aja obavezno ulaze i baferi, namijenjeni za smje�tanje znakova, koji su prispjeli sa ovih ure aja (nezavisno od aktivnosti procesa), odnosno, koji su upu eni ka ovim ure ajima. U ovakvim baferima znakovi se uvaju dok ih procesi ili ure aji ne preuzmu. Tako, na primjer, za drajver terminala je potreban

par takvih bafera za svaki od terminala (koje drajver opslu�uje). Pri tome, jedan, ulazni bafer slu�i za smje�tanje znakova, prispelih sa tastature, a drugi, eho bafer slu�i za smje�tanje znakova, upu enih ka ekranu. Svaki pritisak dirke sa tastature izaziva prekid, koji aktivira obra iva a prekida tastature. Ako su ulazni i eho baferi puni, obra iva prekida ignorise prispeli znak. Ina e, on ga preuzima i smje�ta u ulazni bafer. U ulaznom baferu znak eka da neki proces zatra�i njegovo preuzimanje. Preuzimanje znaka iz ulaznog bafera omogu uje drajverska operacija ulaza znaka. U okviru ove operacije se zaustavlja aktivnost njenog procesa pozivaoca, ako je ulazni bafer prazan. Tada nastavljanje ove aktivnosti omogu uje obra iva prekida tastature, po smje�tanju znaka u ulazni bafer. U svakom slu aju, drajverska operacija ulaza znaka vra a, kao svoju vrednost, preuzeti znak iz ulaznog bafera.

Obra iva prekida tastature ima, tako e zadatak da provjeri da li je eho bafer prazan. Ako ovaj bafer nije prazan, tada obra iva prekida tastature smje�ta prispeli znak u eho bafer. Ina e, obra iva prekida tastature upu uje prispjeli znak ka ekranu. Nakon prikazivanja znaka, ekran izaziva prekid, koji aktivira obra iva a prekida ekrana. Ako je eho bafer prazan, aktivost obra iva a prekida se odmah zavr�ava. Ina e, on preuzima naredni znak iz eho bafera i upu uje ga ka ekranu.

Page 67: Operativni_Sistemi

Operativni sistemi ______________________________________________________________________________

_____________________________________________________________________________________________________________ 66

Eho bafer je podesan i za uvanje znakova, koje procesi �ele da prika�u na ekranu. Prikazivanje znaka omogu uje drajverska operacija izlaza znaka. Jedini argument njenog poziva je prikazivani znak. U okviru ove operacije se zaustavlja aktivnost njenog procesa pozivaoca, ako je eho bafer pun. Tada nastavljanje ove aktivnosti omogu uje obra iva prekida ekrana i to nakon pra�njenja jednog znaka (ili vi�e znakova) iz ovog bafera. Ako drajverska operacija izlaza znaka zatekne eho bafer prazan, ona upu uje prikazivani znak ka ekranu. U slu aju da eho bafer nije ni pun ni prazan, drajverska operacija pisanja znaka samo smje�ta prikazivani znak u eho bafer.

Prethodno opisane drajverske operacije itanja i pisanja znaka spadaju u blokiraju e operacije. Ove operacije se pozivaju iz sistemskih operacija itanja i pisanja sloja za upravljanje datotekama, kada se ita, odnosno pi�e specijalna datoteka. Poziv drajverske operacije ulaza nema argumenata, a njegova povratna vrednost je pro itani znak (njegov kod). Za poziv drajverske operacije izlaza kao jedini argument slu�i pisani znak (njegov kod). Ovaj poziv nema povratnu vrijednost.

Upravljanje ulaznim i eho baferom, u okviru drajverskih operacija ulaza i izlaza znaka, mora biti pod onemogu enim prekidima, da bi obra iva i prekida tastature i ekrana uvek zaticali bafere u ispravnom (konzistentnom) stanju. Ina e, obra iva prekida tastature i proces pozivalac drajverske operacije ulaza znaka se nalaze u odnosu proizvo a i potrosa . U istom odnosu se nalaze proces pozivalac operacije izlaza znaka i obra iva prekida ekrana.

Za grafi ke (memorijski preslikane) terminale nije potreban eho bafer, niti obra iva prekida ekrana, jer ovakvi terminali posjeduju video memoriju jer se njen sadr�aj periodi no prikazuje prilikom osvje�avanja ekrana. Zato je, kod grafi kog terminala, za prikazivanje znaka na ekranu dovoljno smjestiti znak u odgovaraju u lokaciju video memorije. U slu aju da se �eli podr�ati vi�e prozora (window) na ekranu grafi kog terminala, za svaki od prozora je potreban poseban ulazni bafer. Znak prispio sa tastature se smje�ta u ulazni bafer aktivnog prozora, a prikazivani znak se upu uje u dio video memorije prozora na kome znak treba da se pojavi (o aktivnom prozoru se brine upravlja prozorima).

Drajver terminala, pored operacije inicijalizacije (namijenjene za inicijalizaciju kontrolera terminala) i operacija ulaza i izlaza znakova, nudi i upravlja ku operaciju. Argumenti njenog poziva uti u ne samo na funkcionisanje, na primjer, terminala, nego i na funkcionisanje drajvera terminala. Upravlja ka operacija omogu uje da se drajveru terminala saop�ti da li da interpretira znakove, koji dolaze sa tastature (cooked mode), ili ne (raw mode). U prvom slu aju, u nadle�nosti drajvera terminala se nalazi editovanje znakova prispjelih sa tastature. U sklopu toga, drajver terminala mora, na primjer, da omogu i brisanje poslednjeg znaka koji je prispio. Zna i, kada primi odgovaraju i upravlja ki znak (delete), drajver terminala (odnosno, njegov obra iva prekida tastature) mora da prethodno prispeli znak izbaci iz ulaznog i iz eho bafera, kao i da obezbijedi brisanje tog znaka sa ekrana, ako je on ve prikazan. Tako e, drajver terminala se brine o interpretaciji upravlja kih znakova �prelazak na novu liniju� (line feed), �prelazak na po etak linije� (carriage return), kao i drugih upravlja kih znakova (escape, return ili enter i sli no). U slu aju kada ne interpretira znakove, drajver terminala samo prosle uje dalje znakove pristigle u njegov ulazni bafer.

Eho znaka, pristiglog sa tastature, nije uvek po�eljan (na primjer, kod zadavanja znakova lozinke). Zato upravlja ka operacija omogu uje da se drajveru terminala saop�ti da li da vr�i eho pristiglih znakova, ili ne. Kada vr�i eho, drajver terminala mora da razdvoji znakove koji su rezultat eha od ostalih prikazivanih znakova na ekranu terminala (koje na ekran �alju procesi). Drajver terminala mo�e da interpretira i znakove, pristigle za prikazivanje, omogu uju i tako pomeranje kursora, pomeranje linija, kao i druga upravljanja ekranom (uklju uju i tu i upravljanje prozorima).

Page 68: Operativni_Sistemi

Operativni sistemi ______________________________________________________________________________

_____________________________________________________________________________________________________________ 67

DRAJVER SATA

U nadle�nosti sloja za upravljanje kontrolerima se nalazi i pra enje proticanja vremena.

Pra enje proticanja vremena se zasniva na brojanju periodi nih prekida (clock), koje u pravilnim vremenskim intervalima generise sat (kristalni oscilator sa pravilnom frekvencijom i broja em, koji se umanjuje u svakoj oscilaciji, a ije anuliranje izaziva prekid). Obra iva prekida sata broji prekide sata, a njihov zbir predstavlja sistemsko vreme (lokalno vreme u ra unaru). Ovaj obra iva prekida predstavlja donji deo drajvera sata. Gornji deo ovog drajvera predstavljaju sistemske operacije za preuzimanje ili izmjenu sistemskog vremena i za uspavljivanje procesa (odnosno, za odlaganje njegove aktivnosti, dok ne istekne zadani vremenski interval).

Sistemsko vrijeme se mo�e predstaviti kao broj prekida sata ili kao broj sekundi i broj prekida sata u teku oj sekundi (druga predstava zahtjeva manje prostora). Sistemsko vrijeme mo�e da se ra una u odnosu na neki nepromenljivi trenutak u pro�losti, ili u odnosu na trenutak poslednjeg pokretanja operativnog sistema.

Kvantum se predstavlja kao cijeli broj prekida sata. Va�no je uo iti da, dok je sistemsko vrijeme precizno (jer je sat precizan), dotle

pripisivanje procesorskog vremena procesima (odnosno, mjerenje trajanja aktivnosti procesa) ne mora biti precizno. Kada postoji ovakva nepreciznost, nju izaziva nemogu nost mjerenja du�ine vremenskih intervala, koji su kra i od perioda prekida sata, a njih ima u toku aktivnosti procesa. Na primjer, trajanje obrade prekida je obi no kra e od perioda prekida sata i pripisuje se prekinutom procesu, iako pomenuta obrada prekida ne mora biti sa njim povezana (ina e, obrada prekida obi no predstavlja dio aktivnosti prekinutog procesa, jer se u obradi prekida, zbog brzine, izbjegava preklju ivanje sa prekinutog procesa, odnosno preklju ivanje na prekinuti proces). Sli no, ako se u toku jednog perioda prekida sata desi vi�e preklju ivanja, cijeli period se pripisuje kvantumu poslednjeg aktivnog procesa, koga je prekinuo prekid sata. Pomenute nepreciznosti se mogu izbje i, ako procesor broji svoje cikluse i njihovu sumu uva u posebnom registru. Pomo u razlike sadr�aja ovog registra, preuzetog na po etku i preuzetog na kraju perioda aktivnosti procesora koji je kra i od perioda sata, mo�e se ustanoviti koliko ciklusa je potro�eno u ovom periodu i iz toga odrediti trajanje pomenutog preioda aktivnosti procesora. Procesorsko vreme tro�i i obra iva prekida sata, jer se u njegovoj nadle�nosti nalazi vi�e poslova, kao sto su:

1. odr�avanje sistemskog vremena, 2. pra enje isticanja kvantuma aktivnog procesa, 3. pra enje ukupnog kori� enja procesorskog vremena aktivnog procesa, 4. provjera da li je nastupilo vreme bu enja uspavanog procesa ( ija aktivnost se nastavlja tek kada istekne zadani vremenski interval), ili 5. skupljanje statistika o aktivnosti procesa (koje se svodi na registrovanje sadr�aja

programskog broja a, radi otkrivanja u estanosti izvr�avanja pojedinih delova programa).

UPRAVLJANJE TABELOM PREKIDA

Sloj za upravljanje kontrolerima omogu uje i smje�tanje adresa obra iva a prekida u tabelu prekida, ime dozvoljava da vi�i slojevi operativnog sistema mogu da reaguju na prekide. Za operaciju smje�tanja adresa obra iva a prekida u tabelu prekida nije uputno da bude sistemska operacija, jer ona pru�a mogu nost da se ugrozi funkcionisanje operativnog sistema i naru�i

Page 69: Operativni_Sistemi

Operativni sistemi ______________________________________________________________________________

_____________________________________________________________________________________________________________ 68

njegov mehanizam za�tite.

OSNOVA SLOJA ZA UPRAVLJANJE KONTROLERIMA

Sloj za upravljanje kontrolerima se oslanja na sloj za upravljanje procesorom, jer su preklju ivanja sastavni deo aktivnosti drajvera. Za operacije sloja za upravljanje kontrolerima (odnosno za drajverske operacije) je zajedni ko da se obavljaju pod onemogu enim prekidima �to je prihvatljivo, jer je re o kratkotrajnim operacijama).

2.6 SLOJ ZA UPRAVLJANJE PROCESOROM

Osnovni zadatak upravljanja procesorom je preklju ivanje procesora sa aktivnog procesa na neki od spremnih procesa. O izboru spremnog procesa, na koga se preklju uje procesor, brine raspore ivanje. Ovaj izbor zavisi od cilja raspore ivanja. Za interaktivno kori[ enje ra unara cilj raspore ivanja je da ravnomerno rasporedi procesorsko vreme izme u istovremeno postoje ih procesa, odnosno, izme u njihovih vlasnika (korisnika, koji istovremeno koriste ra unar). Ovakav cilj se ostvaruje kru\nim raspore ivanjem (round robin scheduling), koje svakom od istovremeno postoje ih procesa dodeljuje isti vremenski interval, nazvan kvantum. Po isticanju kvantuma, aktivni proces prepu[ta procesor spremnom procesu, koji najdu\e eka na svoj kvantum. Neophodan preduslov za primjenu kru�nog raspore ivanja je da se preklju ivanje vezuje za trenutak u kome se zavr�ava teku i kvantum. Zato je neophodno da se preklju ivanje poziva iz obra iva a prekida sata.

Kru�no raspore ivanje se uspje�no primjenjuje i u situaciji kada hitnost svih procesa nije ista, pa se, zbog toga, procesima dodeljuju razni prioriteti. Pri tome se podrazumijeva da kru�no raspore ivanje va�i u okviru grupe procesa sa istim prioritetom. Procesor se preklju uje na procese sa ni�im prioritetom samo kada se zavr�i (zaustavi) aktivnost i poslednjeg od procesa sa vi�im prioritetom. Procesor se preklju uje na proces sa vi�im prioritetom (preemptive scheduling) odmah po pojavi ovakvog procesa, odnosno odmah po omogu avanju nastavka aktivnosti prioritetnijeg procesa.

Dinami ka izmjena prioriteta procesa doprinosi ravnomernosti raspodele procesorskog vremena izme u procesa, ako se uspostavi obrnuta proporcionalnost izme u prioriteta procesa i obima u kome je on iskoristio poslednji kvantum. Pri tome se periodi no provjerava iskori� enje poslednjeg kvantuma svakog od procesa i, u skladu s tim, procesima se dodeljuju novi prioriteti. Tako e, dinami ka izmjena prioriteta procesa doprinosi ravnomjernosti raspodele procesorskog vremena izme u korisnika, ako se uspostavi obrnuta proporcionalnost izme u prioriteta procesa, koji pripadaju nekom korisniku, i ukupnog udjela u procesorskom vremenu tog korisnika u toku njegove interakcije sa ra unarom (�to je ukupan udio korisnika vi�e ispod �eljenog prosjeka, to prioritet njegovih procesa vi�e raste).

Ravnomerna raspodjela procesorskog vremena se mo�e posti i i bez izmjena prioriteta, ako se uvede lutrijsko raspore ivanje (lottery scheduling). Ono se zasniva na dodeli procesima lutrijskih lozova. Nakon svakog kvantuma izvla i se (na slu ajan na in) broj loza i procesor se preklju uje na proces koji poseduje izvu eni loz. Tako, ako ukupno ima m lozova, proces, koji poseduje n od m lozova, u prosjeku koristi n/m kvantuma procesorskog vremena.

Od du�ine kvantuma zavisi odziv ra unara (brzina kojom on reaguje na korisni ku akciju posredstvom terminala), ali i iskori� enje procesora. Pri tome, skra enje kvantuma (do odre ene granice) doprinosi pobolj�anju odziva, ali i smanjenju iskori� enja procesora (jer se na preklju ivanje tro�i procesorsko vreme). Suvi�e kratak kvantum mo�e da ugrozi i odziv, ako se

Page 70: Operativni_Sistemi

Operativni sistemi ______________________________________________________________________________

_____________________________________________________________________________________________________________ 69

prevelik procenat procesorskog vremena tro�i na preklju ivanje. Sa stanovi�ta iskori� enja procesora prihvatljiva su samo neophodna preklju ivanja (kada nije mogu nastavak aktivnosti procesa), ili, bar zna ajno smanjivanje u estanosti preklju ivanja. S tom idejom na umu mogu e je opet iskoristiti dinami ku izmjenu prioriteta procesa za istovremeno odr�avanje i dobrog odziva za procese, koji su u interakciji sa korisnicima, i dobrog iskori� enja procesora za pozadinske (background) procese, koji nijesu u ( estoj) interakciji sa korisnicima. Pri tome se interaktivnim procesima dodeljuje najvi�i prioritet i najkra i kvantum. Pozadinskim procesima, koji su vrlo dugo aktivni bez ikakve interakcije sa korisnikom, se dodeljuje najni�i prioritet i najdu�i kvantum. Procesu automatski opada prioritet i produ�ava se kvantum �to je on du�e aktivan i ima manju interakciju sa korisnikom. Pove anje interakcije sa korisnikom dovodi do porasta prioriteta procesa i smanjenja njegovog kvantuma. I u ovom slu aju, dinami ka izmjena prioriteta se obavlja periodi no.

Prethodno izlo�eno ukazuje na veliku va�nost postojanja mogu nosti za uticanje na prioritet procesa, jer je to na in da se upravlja pona�anjem ra unara.

Za operacije sloja za upravljanje procesorom je zajedni ko da se obavljaju pod onemogu enim prekidima (�to je prihvatljivo, jer je re o kratkotrajnim operacijama). To je naro ito zna ajno za operacije koje rukuju deskriptorima procesa, jer jedino onemogu enje prekida osigurava ispravnost upravljanja listama u koje se uklju uju i iz kojih se isklju uju deskriptori procesa u toku ovih operacija (odnosno, osigurava konzistentnost ovih listi). U ovakve operacije spadaju operacija preklju ivanja (i operacije raspore ivanja), sistemska operacija za izmjenu prioriteta procesa, ili sistemske operacije za sinhronizaciju procesa.

Operacije raspore ivanja obuhvataju bar dvije operacije. Jedna uklju uje proces me u spremne procese, tako �to, na primjer, njegov deskriptor ubacuje na kraj liste deskriptora spremnih procesa, koja odgovara prioritetu doti nog procesa (u ovom slu aju se podrazumijeva da za svaki prioritet postoji posebna lista deskriptora spremnih procesa, na koju se primjenjuje kru�no raspore ivanje). Druga od ove dve operacije vadi iz listi deskriptora spremnih procesa deskriptor najprioritetnijeg spremnog procesa.

U nadle�nosti sloja za upravljanje procesorom obi no se nalazi i inicijalizacija operativnog sistema (ili bar njen deo). Klju ni korak u ovoj inicijalizaciji je stvaranje uslova za preklju ivanje. Ono obuhvata pripremu listi deskriptora spremnih procesa, kao i pripremu deskriptora procesa, koji odgovara delu programa, zadu�enog za inicijalizaciju operativnog sistema. Na taj na in izvr�avanje ovog dijela programa prerasta u proces. Pri tome, pripremljeni deskriptor odgovara beskona nom procesu, ako se dio programa, zadu�en za inicijalizaciju operativnog sistema, zavr�ava beskona nom petljom (koja, tada, opisuje aktivnost beskona nog procesa). Dio posla inicijalizacije operativnog sistema mo�e da preuzme i poseban inicijalizacioni proces, koji nastane po�to se stvore uslovi za preklju ivanje. Tada se procesor preklju uje sa beskona nog procesa na inicijalizacioni proces.

Page 71: Operativni_Sistemi

Operativni sistemi ______________________________________________________________________________

_____________________________________________________________________________________________________________ 70

3. MRTVA PETLJA

Mrtva petlja (deadlock) opisuje situaciju u kojoj je trajno zaustavljena aktivnost procesa. Na primjer, to se desi kada dva procesa �ele da u re�imu me usobne isklju ivosti pristupaju dvema datotekama. Ako prvi od njih otvori prvu datoteku, a zatim drugi od njih otvori drugu datoteku, tada nema mogu nosti za nastavak aktivnosti tih procesa, bez obzira da li je sistemska operacija otvaranja blokiraju a ili ne. U slu aju blokiraju ih sistemskih operacija otvaranja (sa zaklju avanjem), poku�aj prvog procesa da otvori drugu datoteku dovodi do trajnog zaustavljanja njegove aktivnosti. Isto se de�ava sa drugim procesom prilikom njegovog poku�aja da otvori prvu datoteku. Zaustavljanje aktivnosti ova dva procesa je trajno, jer je svaki od njih zauzeo (zaklju ao) datoteku, koja treba i drugom procesu za nastavak njegove aktivnosti, i nema nameru da tu datoteku oslobodi (otklju a). U slu aju neblokiraju e sistemske operacije otvaranja (sa zaklju avanjem), procesi upadaju u beskona nu petlju (starvation), poku�avaju i da otvore datoteku, koju je isklju ivo za sebe ve otvorio (zaklju ao) drugi proces. Ovakav oblik me usobne zavisnosti procesa se naziva i ziva petlja (livelock). Ona se, po svom ishodu, su�tinski ne razlikuje od mrtve petlje.

Pojava mrtve petlje je vezana za zauzimanje resursa, kao �to su, na primjer, prethodno pomenute datoteke. Pri tome, za pojavu mrtve petlje je potrebno da budu ispunjena etiri uslova:

1. zauzimani resursi se koriste u re�imu me usobne isklju ivosti, 2. resursi se zauzimaju jedan za drugim, tako da proces, nakon zauzimanja izvjesnog broja resursa, mora da eka da zauzme preostale resurse, 3. resurse osloba aju samo procesi koji su ih zauzeli i 4. postoji cirkularna me uzavisnost procesa (prvi proces eka osloba anje resursa koga dr�i drugi proces, a on eka osloba anje resursa koga dr�i tre i proces, i tako redom do poslednjeg procesa iz lanca procesa, koji eka osloba anje resursa koga dr�i prvi proces).

Postoje etiri pristupa rje�avanja problema mrtve petlje:

1. spre avanje (prevention) pojave mrtve petlje (onemogu avanjem va�enja nekog od etiri neophodna uslova za njenu pojavu),

2. izbegavanje (avoidance) pojave mrtve petlje pa�ljivom alokacijom resursa 3. otkrivanje (detection) pojave mrtve petlje i oporavak (recovery) od nje i 4. ignorisanje problema mrtve petlje (Nojev algoritam). Kod spre avanja pojave mrtve petlje, va�enje prvog uslova nije mogu e sprije iti, ako je

neophodno kori� enje resursa u re�imu me usobne isklju ivosti. Va�enje drugog uslova se mo�e sprije iti, ako se unaprijed zna koliko treba resursa i ako se oni svi zauzmu pre kori� enja. Pri tome, neuspjeh u zauzimanju bilo kog resursa dovodi do osloba anja prethodno zauzetih resursa (�to je mogu e, jer nije zapo elo njihovo kori� enje). Va�enje tre eg uslova se mo�e sprije iti, ako postoji na in da se zauzeti resurs privremeno oduzme procesu. I kona no, va�enje etvrtog uslova se mo�e sprije iti, ako se resursi uvek zauzimaju u unapred odre enom redosledu (koji isklju uje mogu nost cirkularne me uzavisnosti procesa).

Izbegavanje pojave mrtve petlje se zasniva na ideji da se, na osnovu poznavanja: 1. maksimalno mogu ih zahtjeva za resursima, 2. ukupno postavljenih zahtjeva za resursima i 3. stanja resursa,

udovoljava samo onim zahtjevima za koje se (provjerom) ustanovi da, nakon njihovog usvajanja, postoji redosled zauzimanja i osloba anja resursa u kome se mogu zadovoljiti maksimalno

Page 72: Operativni_Sistemi

Operativni sistemi ______________________________________________________________________________

_____________________________________________________________________________________________________________ 71

mogu i zahtjevi svih procesa. Prakti na vrijednost ovoga pristupa nije velika, jer se obi no unaprijed ne znaju maksimalno mogu i zathevi procesa za resursima, a to je neophodno za provjeru da li se mo�e udovoljiti pojedinim zahtjevima. Sem toga, ovakva provjera je komplikovana, a to zna i i neefikasna.

Otkrivanje pojave mrtve petlje se zasniva na sli nom pristupu kao i izbegavanje pojave mrtve petlje. U ovom slu aju se provjerava da li postoji proces, ijim zahtjevima se ne mo�e udovoljiti ni za jedan redosled zauzimanja i osloba anja resursa. Pored komplikovanosti ovakve provjere, problem je i �ta u initi, kada se i otkrije pojava mrtve petlje. Ako se resursi ne mogu privremeno oduzeti od procesa, preostaje jedino uni�tavanje procesa, radi osloba anja resursa koje oni dr�e, a to nije uvek prihvatljiv zahvat. Zbog toga ni ovaj pristup nema veliki prakti ni zna aj.

Ignorisanje problema mrtve petlje je pristup koji je naj es e primjenjen u praksi, jer se ovaj problem ne javlja tako esto da bi se isplatilo da ga re�ava operativni sistem. Prema tome, kada se mrtva petlja javi, na korisniku je da se suo i sa ovim problemom i da ga rije�i na na in, koji je primjeren datim okolnostima.

Page 73: Operativni_Sistemi

Operativni sistemi ______________________________________________________________________________

_____________________________________________________________________________________________________________ 72

4. KOMUNIKACIJA SA OPERATIVNIM SISTEMOM 4.1 PROGRAMSKI NIVO KOMUNIKACIJE SA OPERATIVNIM SISTEMOM

Komunikacija sa operativnim sistemom na programskom nivou se ostvaruje pozivanjem sistemskih operacija. Jedan na in dobijanja usluga od operativnog sistema podrazumijeva da se za svaku uslugu poziva odgovaraju a sistemska operacija. Na primjer, da bi se preuzeo znak sa tastature, u korisni kom programu je neophodno navesti poziv odgovaraju e sistemske operacije. Me utim, postoji i drugi na in dobijanja usluga od operativnog sistema. On se zasniva na vezivanju funkcija korisni kog programa za doga aje koje prepoznaje operativni sistem. Vezivanje funkcije korisni kog programa za neki doga aj se ostvaruje posredstvom poziva sistemske operacije. Kada se takav doga aj desi, operativni sistem poziva funkciju korisni kog programa koja je prethodno vezana za doti ni doga aj. Tako, ako se neka korisni ka funkcija ve�e za doga aj kao �to je pritisak dirke na tastaturi, tada, po de�avanju takvog doga aja, operativni sistem poziva pomenutu korisni ku funkciju, da bi se, u okviru njenog izvr�avanja, preuzeo znak sa tastature.

4.2 INTERAKTIVNI NIVO KOMUNIKACIJE SA OPERATIVNIM SISTEMOM

Interaktivni nivo kori� enja operativnog sistema se ostvaruje pomo u komandi komandnog jezika, koje omogu uju upravljanje datotekama, odnosno procesima. Najjednostavniju komandu komandnog jezika predstavlja putanja izvr�ne datoteke sa izvr�nim oblikom programa, ije izvr�avanje izaziva �eljeno upravljanje. Operand ovakve komande je, na primjer, putanja datoteke kojom se rukuje. Prema tome, na prethodni na in oblikovana komanda zapo inje operatorom u obliku putanje izvr�ne datoteke, koja opisuje upravljanje, a zavr�ava operandom (ili operandima) u obliku putanja datoteka, kojima se rukuje. Tako:

kopiraj godina1.txt godina2.txt

predstavlja primjer prethodno opisane komande znakovnog komandnog jezika, uz pretpostavku da radni direktorijum obuhvata izvr�nu datoteku sa imenom kopiraj.bin (pri emu se podrazumijeva da tip bin odgovara izvr�noj datoteci). Tako e, pretpostavka je da radni direktorijum obuhvata i tekst datoteku godina1.txt. Na kraju, podrazumijeva se da izvr�avanje programa iz izvr�ne datoteke kopiraj.bin dovodi do stvaranja datoteke godina2.txt, koja je po sadr�aju identi na datoteci godina1.txt i koja pripada radnom direktorijumu (prethodna komanda opisuje korisnu operaciju, ako svi studenti prve godine studija upisuju drugu godinu studija).

Komandni jezik mo�e olak�ati zadavanje komandi, ako omogu i korisniku da operator komande bira u spisku operatora (menu), umjesto da ga pamti i u cjelosti navodi. Spisak operatora se prikazuje na ekranu, a izbor operatora se vr�i pomo u namjenskih dirki tastature ili mi�a. Nakon izbora operatora sledi, po potrebi, dijalog u kome korisnik navodi (ili opet bira) operand (operande) komande. Ovakvi, grafi ki komandni jezici (menu driven user interface, graphical user interface) jo� vi�e pojednostavljuju zadavanje komandi, ako korisniku omogu uju da ne bira operator, nego samo operande komandi (izbor operanda se svodi na izbor nekog od, na ekranu prikazanih, imena datoteka). Pri tome se operator podrazumijeva ili na osnovu tipa odabrane datoteke, ili, eventualno, na osnovu upotrebljene namjenske dirke.

U svakom slu aju, zadatak komandnog jezika je da omogu i korisniku da zada komandu,

Page 74: Operativni_Sistemi

Operativni sistemi ______________________________________________________________________________

_____________________________________________________________________________________________________________ 73

koja precizno odre uje i vrstu upravljanja i objekat upravljanja, a zadatak interpretiranja komande je da pokrene proces, u okviru ije aktivnosti usledi upravljanje, zatra�eno komandom.

ZNAKOVNI KOMANDNI JEZICI

Izgled, na in rada i mogu nosti interpretera znakovnog komandnog jezika (command

language interpreter, shell) zavise od ciljeva, koje komandni jezik treba da ostvari. Ciljevi znakovnih komandnih jezika obuhvataju:

1. omogu avanje izvr�avanja pojedinih (korisni kih) programa, 2. omogu avanje kombinovanja izvr�avanja vi�e (korisni kih) programa i 3. omogu avanje pravljenja komandnih datoteka (command file, shell script). Interpreter znakovnog komandnog jezika ostvaruje prethodne ciljeve tako �to sa

standardnog ulaza prima niz znakova, koji obrazuju komandu, prepoznaje u tom nizu znakova operator komande (i, eventualno, njene operande) i preduzima zahtjevanu akciju. Rezultat svoje akcije ovaj interpreter prikazuje na standardnom izlazu.

Prilikom preduzimanja zahtjevane akcije, interpreter znakovnog komandnog jezika se oslanja na sistemske operacije. Pri tome, on koristi djelove komandi (njen operator i njene operande) kao argumente sistemskih operacija. Na primjer, do izvr�avanja pojedinih korisni kih programa dolazi tako �to interpreter znakovnog komandnog jezika poziva sistemsku operaciju stvaranja procesa, a kao njene argumente upotrebi operator i operande komande (putanju izvr�ne datoteke i putanje datoteka sa obra ivanim podacima). Stvoreni proces mo�e da preuzme pomenute argumente sistemske operacije i da ih koristi u svojoj aktivnosti.

Interpreter znakovnog komandnog jezika obavlja obradu znakova komande, prijee nego �to ih iskoristi kao argumente neke sistemske operacije. Zahvaljuju i tome, u okviru komandi se mogu javiti magi ni znakovi-d�oker znaci (magic character, wild cards), kao �to je, na primjer, znak *. Njegova upotreba je vezana, pre svega, za imena datoteka i namjenjena je za skra eno ozna avanje grupa datoteka. Tako, na primjer: *.obj ozna ava sve objektne datoteke u radnom direktorijumu, a d*1.txt ozna ava sve tekst datoteke u radnom direktorijumu, iji prvi deo imena zapo inju znakom d, a zavr�ava cifrom 1. Zahvaljuju i magi nim znakovima, mogu e je, na primjer, jednom komandom uni�titi sve objektne datoteke iz radnog direktorijuma: uni�ti *.obj ili od�tampati sve tekst datoteke iz radnog direktorijuma, iji prvi deo imena zapo inje znakom d, a zavr�ava znakom 1: �tampaj d*1.txt (za obavljanje ovakvih akcija, neophodno je pretra�ivanje direktorijuma i provjera imena

Page 75: Operativni_Sistemi

Operativni sistemi ______________________________________________________________________________

_____________________________________________________________________________________________________________ 74

datoteka). Zahvaljuju i obradi znakova komande, mogu e je interpreteru znakovnog komandnog

jezika saop�titi i da preusmeri (redirect) standardni ulaz i standardni izlaz sa tastature i ekrana na proizvoljno odabrane datoteke. Ovo je va�no za pozadinske procese, koji nijesu u interakciji sa korisnikom. Zahvaljuju i preusmeravanju, pozadinski proces ne ometa interaktivni rad korisnika, jer, umjesto tastature i ekrana, koristi odabrane datoteke. Me utim, da bi se korisnik upozorio na gre�ke u toku aktivnosti pozadinskog procesa, uz standardni izlaz se uvodi i standardni izlaz gre�ke. Po�to je standardni izlaz gre�ke namjenjen, pre svega, za prikazivanje poruka o gre�kama, kao podrazumijevaju i standardni izlaz gre�ke slu�i specijalna datoteka, koja odgovara ekranu (ova datoteka se otvara za vrijeme stvaranja procesa, a kao njen indeks otvorene datoteke slu�i vrijednost 2). I standardni izlaz gre�ke se mo�e preusmeriti na proizvoljnu datoteku, iji sadr�aj tada ukazuje na eventualne gre�ke u toku aktivnosti pozadinskog procesa.

Uobi ajeno je da preusmeravanje standardnog ulaza najavljuje znak <, a da preusmeravanje standardnog izlaza (kao i standardnog izlaza gre�ke) najavljuje znak >. Tako, na primjer, komanda:

kompiliraj < program.c > program.obj saop�tava interpreteru znakovnog komandnog jezika da stvori proces na osnovu izvr�ne datoteke kompiliraj.bin, pri emu kao standardni ulaz procesa sluzi datoteka program.c, a kao njegov standardni izlaz datoteka program.obj (u ovom primjeru ekran i dalje slu�i kao standardni izlaz gre�ke). Izvr�avanje prethodne komande omogu uje kompilaciju C programa, sadr�anog u datoteci program.c. Rezultat kompilacije se smjesta u datoteku program.obj, a eventualne poruke o gre�kama kompilacije se prikazuju na ekranu.

Preusmeravanje standardnog ulaza i izlaza predstavlja osnovu za kombinovanje izvr�avanja vi�e korisni kih programa. Va�nost pomenutog kombinovanja se mo�e pokazati na primjeru ure ivanja (sortiranja) rije i iz nekog re nika po kriteriju rimovanja. Nakon sortiranja rije i po ovom kriteriju, sve rije i, koje se rimuju, nalaze se jedna uz drugu. Umjeesto pravljenja posebnog programa za sortiranje rije i po kriteriju rimovanja, jednostavnije je napraviti program za obrtanje redosleda znakova u rije ima (tako da prvi i poslednji znak zamijene svoja mjesta u rije i, da drugi i pretposlednji znak zamijene svoja mjesta u re i i tako redom) i kombinovati izvr�avanje ovog programa sa izvr�avanjem postoje eg programa za sortiranje: obrni < recnik.txt > obrnuti_recnik.txt sortiraj < obrnuti_recnik.txt > sortirani_obrnuti_recnik.txt obrni < sortirani_obrnuti_recnik.txt > rime.txt

Umjesto preusmeravanja standardnog ulaza i standardnog izlaza, mogu e je nadovezati standardni izlaz jednog procesa za standardni ulaz drugog procesa i tako obrazovati tok procesa (pipe). Nadovezivanje u tok se ozna ava pomo u znaka |. Za prethodni primjer ovakav tok bi izgledao: obrni < recnik.txt | sortiraj | obrni > rime.txt

U ovom primjeru su u tok nadovezana tri procesa. Prvi je nastao na osnovu komande:

Page 76: Operativni_Sistemi

Operativni sistemi ______________________________________________________________________________

_____________________________________________________________________________________________________________ 75

obrni < recnik.txt drugi je nastao na osnovu komande sortiraj a tre i je nastao na osnovu komande: obrni > rime.txt

Ako bi se rije i zadavale sa tastature, a po rimama sortirani re nik prikazivao na ekranu, prethodni tok bi izgledao:

obrni | sortiraj | obrni

Razmjena podataka izme u dva procesa, koji su povezani u tok, se ostvaruje posredstvom privremene datoteke, koja predstavlja za prvog od ovih procesa standardni izlaz, a za drugog od njih standardni ulaz (prvi proces samo pi[e u ovu datoteku, a drugi samo ita iz nje). Prilikom obrazovanja toka procesa, interpreter znakovnog komandnog jezika stvara procese, koji se povezuju u tok (pri tome on koristi istu privremenu datoteku kao standardni izlaz i ulaz za svaki od parova ovih procesa). Zatim interpreter znakovnog komandnog jezika eka na kraj aktivnosti poslednjeg od ovih procesa.

Pozadinski procesi se razlikuju od obi nih (interaktivnih) procesa po tome �to interpreter znakovnog komandnog jezika, nakon stvaranja pozadinskog procesa, ne eka kraj njegove aktivnosti, nego nastavlja interakciju sa korisnikom. Zato su pozadinski procesi u principu neinteraktivni. Na primjer, komanda:

kompiliraj < program.c > program.obj & omogu uje stvaranje pozadinskog procesa, koji obavlja kompilaciju programa, sadr�anog u datoteci program.c, i rezultat kompilacije smje�ta u datoteku program.obj (a eventualne gre�ke u kompilaciji prikazuje na ekranu). U prethodnom primjeru znak & sa kraja komande je naveo interpreter znakovnog komandnog jezika na stvaranje pozadinskog procesa.

Svaka komanda, upu ena interpreteru znakovnog komandnog jezika, ne dovodi do stvaranja procesa. Komande, koje se esto koriste (pa je va�no da budu brzo obavljene), interpreter znakovnog komandnog jezika direktno (sam) obavlja. Me utim, kada stvori proces i sa eka kraj njegove aktivnosti, interpreter znakovnog komandnog jezika dobije od stvorenog procesa, kao povratnu informaciju, zavr�no stanje stvorenog procesa. Ovo stanje, koje se obi no kodira cijelim brojem, interpreter znakovnog komandnog jezika mo�e da protuma i kao logi ku vrijednost (0 - ta no, razli ito od 0 - neta no) i da tako omogu i uslovno izvr�avanje programa. Tako, na primjer, komanda:

IF kompiliraj < program.c > program.obj THEN linkuj < program.obj > program.bin ozna ava da do linkovanja (povezivanja) dolazi samo nakon uspje�ne kompilacije. Pri tome su IF

Page 77: Operativni_Sistemi

Operativni sistemi ______________________________________________________________________________

_____________________________________________________________________________________________________________ 76

i THEN rezervisane re i za interpreter znakovnog komandnog jezika. Prva najavljuje komandu, na osnovu koje interpreter znakovnog komandnog jezika stvori proces, za vreme ije aktivnosti uslijedi kompilacija programa, sadr�anog u datoteci program.c. Ako kompilacija pro e bez gre�aka, stvoreni proces vra a interpreteru znakovnog komandnog jezika vrednost 0 kao svoje zavr�no stanje. U ovom slu aju, interpreter znakovnog komandnog jezika interpretira komandu iza rezervisane re i THEN i stvara proces, ija aktivnost dovodi do linkovanja datoteke program.obj sa potprogramima iz sistemske biblioteke ( ije ime se ne navodi, jer se podrazumijeva). U suprotnom slu aju (ako je bilo gre�aka u kompilaciji, pa je zavr�no stanje procesa, zadu�enog za kompilaciju, bilo ve e od vrednosti 0), interpreter znakovnog komandnog jezika ne interpretira komandu iza rezervisane re i THEN i ne stvara proces zadu�en za linkovanje.

Pored prethodno opisanog na ina za uslovno izvr�avanje programa, interpreteri znakovnih komandnih jezika podr�avaju i ponavljanje izvr�avanja programa, ali i druge mogu nosti, tipi ne za procedurne programske jezike (upravljanje promenljivim, konstantama, ulazom, izlazom i sli no). To dozvoljava pravljenje komandnih datoteka. One opisuju okolnosti pod kojima se izvr�avaju korisni ki programi, a njihov sadr�aj preuzima i interpretira interpreter znakovnog komandnog jezika. Zato komandne datoteke imaju poseban tip (da bi ih interpreter znakovnog komandnog jezika mogao prepoznati). Zahvaljuju i tome, ime svake komandne datoteke (uostalom, kao i ime svake izvr�ne datoteke) predstavlja ispravnu komandu znakovnog komandnog jezika. Iako broj i vrste ovakvih komandi nisu ograni ene (jer zavise samo od kreativnosti i potreba korisnika), ipak je mogu e napraviti njihovu klasifikaciju i navesti neke neizbje�ne grupe komandi. Najgrublja podela komandi je na:

1. korisni ke komande i 2. administratorske komande. Korisni ke komande, izme u ostalog, omogu uju: 1. upravljanje datotekama, 2. upravljanje direktorijumima, 3. upravljanje procesima i 4. razmjenu poruka izme u korisnika.

Standardne komande za upravljanje datotekama omogu uju izmjenu imena (kao i

atributa) datoteke, pore enje sadr�aja datoteka, kopiranje datoteka i uni�tenje datoteka. U komande za upravljanje direktorijumima spadaju komande za stvaranje i uni�tenje direktorijuma, komanda za progla�avanje direktorijuma radnim, komanda za pregledanje sadr�aja direktorijuma (imena datoteka i imena direktorijuma, sadr�anih u njemu), komande za izmjenu imena i ostalih atributa direktorijuma, odnosno komanda za kopiranje direktorijuma.

Administratorske komande omogu uju pokretanje i zaustavljanje rada ra unara, spasavanje (arhiviranje) i vra anje (dearhiviranje) datoteka, upravljanje vremenom, sabijanje (compaction) slobodnog prostora na disku, a�uriranje podataka o korisnicima ra unara i njihovim pravima, generisanje izvje�taja o kori� enju ra unara (o kori� enju procesorskog vremena ili o kori� enju prostora na disku), opisivanje konfiguracije ra unara (pravljenje spiska ure aja koji ulaze u njegov sastav, kao �to su razni ulazni i izlazni ure aji, i navo enje njihovih karakteristika), provjeru ispravnosti rada ra unara ili pripremu diskova za kori� enje (ovo obuhvata pronala�enje o�te enih blokova i njihovo isklju ivanje iz upotrebe, pronala�enje izgubljenih blokova i njihovo uklju ivanje u evidenciju slobodnih blokova, formiranje skupa

Page 78: Operativni_Sistemi

Operativni sistemi ______________________________________________________________________________

_____________________________________________________________________________________________________________ 77

datoteka na disku i njegovo uklju ivanje u skup datoteka ra unara). GRAFI KI KOMANDNI JEZICI

Interpreteri grafi kih komandnih jezika omogu uju pozivanje bilo koje od prethodnih

komandi, a da pri tome ne tjeraju korisnike da znaju napamet imena komandi, niti tjeraju korisnike da zadaju komande posredstvom tastature (uz obavezu strogog postovanja sintakse znakovnog komandnog jezika). Umjesto toga, grafi ki komandni jezici uvode grafi ku predstavu komandi (icon), ili spiskove sa imenima komandi (menu), dozvoljavaju i korisnicima da pozovu komandu izborom njene grafi ke predstave, ili izborom njenog imena sa spiska imena komandi. Grafi ki komandni jezici dozvoljavaju i da se komanda automatski pokrene izborom nekog od prikazanih imena datoteka, pod uslovom da se podrazumijeva da izabrana datoteka predstavlja mogu i operand date komande (obi no se korespondencija imena datoteka i komandi ostvaruje pomo u tipa datoteke).

Izbor grafi ke predstave komande, ili njenog imena sa spiska imena komandi, ili imena datoteke (koja je podrazumijevaju i operand komande) omogu uju pokaziva ki ure aji kao �to je mi�. Oni omogu uju pokazivanje ta ke ekrana. Zadatak interpretera grafi kog komandnog jezika je da na osnovu pozicije (koordinata) pokazane ta ke (i eventualno pritisnute dirke pokaziva kog ure aja) odredi �ta zeli korisnik. Ako pokazana ta ka pripada skupu ta aka zone ekrana, koja sadr�i grafi ku predstavu komande, njeno ime, ili ime datoteke, tada pritisak na odgovaraju u dirku pokaziva kog ure aja menja boju pozadine pomenute zone ekrana. Time se pokazuje da je izabrana grafi ka predstava komande, njeno ime, ili ime datoteke, koja se nalazi u pomenutoj zoni ekrana. Naknadni pritisci na dirku (du�ina pritiska, ili broj pritisaka i vremenski razmak izme u njih) odre uju pozivanu komandu. Tako, na primjer, ako je izabrano ime datoteke, tada dva pritiska dirke pokaziva kog ure aja sa kra im me usobnim vremenskim razmakom dovode do poziva podrazumijevaju e komande (za koju izabrano ime datoteke predstavlja podrazumijevaju i operand). U istoj situaciji, dva pritiska na dirku pokaziva kog ure aja sa du�im me usobnim vremenskim razmakom omogu uju izmjenu imena datoteke. Prema tome, iste akcije korisnika u raznim okolnostima imaju razli ito zna enje. Zadatak interpretera grafi kog komandnog jezika je da na ispravan na in (u skladu sa kontekstom) protuma i korisni ke akcije.

Page 79: Operativni_Sistemi

Operativni sistemi ______________________________________________________________________________

_____________________________________________________________________________________________________________ 78

5. KLASIFIKACIJA OPERATIVNIH SISTEMA Jedan od mogu ih kriterijuma za klasifikaciju operativnih sistema je vrsta ra unara ili ure aja kojim operativni sistem upravlja. Po tom kriteriju mogu se izdvojiti: 1. operativni sistemi realnog vremena 2. operativni sistemi za ugra ene (embedded) sisteme 3. operativni sistemi za inteligentne kartice (smart card) 4. multiprocesorski operativni sistemi i 5. distribuirani operativni sistemi. 6. mre�ni operativni sistemi 5.1 (2) OPERATIVNI SISTEMI REALNOG VREMENA Operativni sistemi realnog vremena (real time operating system) su namijenjeni za primjene ra unara u kojima je neophodno obezbijediti reakciju na vanjski doga aj u unapred zadanom vremenu. Ovakvi operativni sistemi su, zbog toga, podre eni ostvarenju �to ve e brzine izvr�avanja korisni kih programa.

Za operativne sisteme realnog vremena je tipi no da su (zajedno sa ra unarom) ugra eni (embedded) u sistem, ije pona�anje se ili samo prati, ili ijim pona�anjem se upravlja. Pri tome, njihov zadatak je samo da stvore okru�enje za korisni ke programe, jer nije neophodna direktna komunikacija operativnog sistema realnog vremena sa krajnjim korisnikom, po�to je to u nadle�nosti korisni kih programa. Zato se operativni sistemi realnog vremena obi no koriste samo na programskom nivou.

Sloj za upravljanje procesima je podre en potrebi osiguranja brzog stvaranja i uni�tenja procesa, njihove brze i lake saradnje, kao i brzog preklju ivanja procesora sa procesa na proces. Zato obi no svi procesi dijele isti fizi ki adresni prostor (�to je mogu e, jer ne postoji potreba za me usobnom za�titom procesa, posto imaju istog autora, ili njihovi autori pripadaju istom timu, pa nema mjesta sumnji u njihove namjere).

Sloj za upravljanje datotekama (kada postoji, jer sve primjene realnog vremena ne zahtjevaju masovnu memoriju) obi no podr�ava kontinuirane datoteke (zbog brzine pristupa podacima), �to ovde ne predstavlja manu, jer su unapred poznati svi zahtjevi primjene.

Sloj za upravljanje radnom memorijom obi no podr�ava efikasno zauzimanje memorijskih zona (sa susednim lokacijama), ija veli ina je predefinisana, da bi se izbegla (ili umanjila) eksterna fragmentacija.

Sloj za upravljanje kontrolerima podr�ava tipi ne ulazne i izlazne ure aje i, uz to, omogu ava jednostavno uklju ivanje novih drajvera za specifi ne ure aje. Pri tome se nude blokiraju e i neblokiraju e sistemske operacije, ali i vremenski ograni ene blokiraju e sistemske operacije. Zahvaljuju i neblokiraju im sistemskim operacijama, mogu e je vremenski preklopiti aktivnosti procesora i kontrolera, a zahvaljuju i vremenski ograni enim blokiraju im sistemskim operacijama, mogu e je odreagovati na izostanak �eljenog doga aja (odnosno, na izostanak obavljanja pozvane sistemske operacije) u zadanom vremenskom intervalu.

Sloj za upravljanje procesorom mora da obezbijedi efikasno upravljanje vremenom (za �ta se esto koriste posebni satovi - tajmeri). U sklopu toga, mora se obezbijediti da aktivnost procesa bude zavr�ena do grani nog trenutka (deadline scheduling), �to se posti�e sortiranjem deskriptora spremnih procesa po du�ini preostalog vremena do grani nog trenutka (earliest dedline first). Podrazumijeva se da ovo sortiranje dovodi na prvo mjesto deskriptor procesa sa

Page 80: Operativni_Sistemi

Operativni sistemi ______________________________________________________________________________

_____________________________________________________________________________________________________________ 79

najkra im preostalim vremenom do grani nog trenutka, tako da je njegov proces prvi na redu za aktiviranje. Ako je aktivnost procesa periodi na sa unapred odre enim i nepromenljivim trajanjem aktivnosti u svakom periodu, tada se procesima mogu dodijeliti prioriteti jednaki broju njihovi perioda u jedinici vremena (rate monotonic scheduling). Tako se mo�e obezbijediti da aktivnost procesa bude obavljena pre kraja svakog od njegovih perioda. U svakom slu aju, postavljeni cilj raspore ivanja mo�e da se ostvari samo ako ima dovoljno procesorskog vremena za sve procese.

Sloj za upravljanje procesorom operativnog sistema realnog vremena obi no podr�ava mehanizam semafora, jer je on jednostavan za kori� enje, brz i jer ne zahtjeva izmjene kompajlera.

Predstavnici ovih grupa su VxWorks, QNX, odnosno PalmOS i WindowsCE

5.2 OPERATIVNI SISTEMI ZA INTELIGENTNE KARTICE (smart card) Najmanji ra unarski sistemi u pogledu gabarita, funkcionalnosti i zahtjeva su veli ine kreditne kartice. Obi no se cjelokupan sistem (procesor, memorija, I/O ure aj) nalazi u jednom integrisanom kolu i programiran je na izvr�avanje malog broja operacija. Naj e� e je omogu en rad samo jedne aplikacije sastavljene u jeziku ni�eg nivoa. U slu aju mogu nosti obavljanja vi�e poslova, na ure aju mora postojati i najjednostavniji alokator resursa.

5.3 MULTIPROCESORSKI OPERATIVNI SISTEMI

Multiprocesorski operativni sistemi upravljaju ra unarskim sistemom sa vi�e procesora op�te namjene, koji pristupaju zajedni koj radnoj memoriji. Podrazumijeva se da ove procesore i radnu memoriju povezuje sabirnica. Specifi nosti multiprocesorskog operativnog sistema su vezane za sloj za upravljanje procesorom i posledica su istovremene aktivnosti vi�e procesa na raznim procesorima. Zato se sinhronizacija procesa u ovakvim okolnostima vi�e ne mo�e zasnivati na onemogu enju prekida, nego na zauzimanju sabirnice, jer je to jedini na in da se sprije i da vi�e od jednog procesa pristupa istoj lokaciji radne memorije. Mogu nost istovremene aktivnosti vi�e procesa na raznim procesorima uslo�njava raspore ivanje, jer ono mora da odabere ne samo proces, koji e biti aktivan, nego i da odabere procesor, koji e da se preklju i na odabrani proces. 5.4 DISTRIBUIRANI OPERATIVNI SISTEMI

Distribuirani operativni sistemi upravljaju me usobno povezanim ra unarima, koji su prostorno udaljeni. Potrebu za povezivanjem prostorno udaljenih (distribuiranih) ra unara name e praksa. S jedne strane, prirodno je da ra unari budu na mjestima svojih primjena, na primjer, uz korisnike ili uz delove industrijskih postrojenja, koje opslu�uju. Na taj na in ra unari mogu biti potpuno posve eni lokalnim poslovima, koji su vezani za mjesta njihove primjene, pa mogu efikasno obavljati ovakve poslove. S druge strane, neophodno je omogu iti saradnju izme u prostorno udaljenih korisnika, odnosno obezbijediti usagla�eni rad prostorno udaljenih djelova istog industrijskog postrojenja. Za to je potrebno obezbijediti razmjenu podataka izme u ra unara, posve enih pomenutim korisnicima, odnosno posve enih pomenutim djelovima industrijskog postrojenja. Radi toga, ovakvi, prostorno udaljeni ra unari se povezuju komunikacionim linijama, koje omogu uju prenos (razmjenu) podataka, organizovanih u poruke. Na ovaj na in nastaje distribuirani ra unarski sitem (distributed computer system). Za svaki od

Page 81: Operativni_Sistemi

Operativni sistemi ______________________________________________________________________________

_____________________________________________________________________________________________________________ 80

ra unara, povezanih u distribuirani ra unarski sistem, je neophodno da sadr�e procesor, radnu memoriju i mre�ni kontroler. Prisustvo masovne memorije i raznih ulaznih i izlaznih ure aja u sastavu ovakvih ra unara zavisi od mjesta njihove primjene i, u op�tem slu aju, nije obavezno, pa zato nema ni potrebe da ih podr�ava operativni sistem, prisutan na svakom ra unaru iz distribuiranog ra unarskog sistema. Ovakav operativni sistem se naziva i mikrokernel (microkernel), jer ima smanjenu funkcionalnost u odnosu na �obi an� operativni sistem. Hijerarhijska struktura mikrokernela je prikazana na slici 5.1

modul za upravljanje procesima

modul za razmjennu poruka modul za upravljanje radnom memorijom

modul za upravljanje kontrolerima modul za upravljanje procesorom

Slika 5.1 Hijerarhijska struktura mikrokernela

Mikrokernel ne sadr�i sloj za upravljanje fajlovima, jer on nije potreban za svaki od

ra unara iz distribuiranog ra unarskog sistema i jer se on, bez problema, mo�e prebaciti u korisni ki sloj (iznad mikrokernela), predvi en za korisni ke procese.

Sloj za upravljanje procesima se oslanja na sloj za razmjenu poruka, da bi pristupio izvr�noj datoteci (lociranoj na nekom drugom ra unaru). Sloj za razmjenu poruka se oslanja na sloj za upravljanje radnom memorijom, radi dinami kog zauzimanja i osloba anja bafera, namjenjenih za privremeno smje�tanje poruka. Sloj za razmjenu poruka se oslanja i na sloj za upravljanje kontrolerima, u kome se nalazi drajver mre�nog kontrolera (posredstvom koga se fizi ki razmjenjuju poruke). Na kraju, sloj za razmjenu poruka se oslanja i na sloj za upravljanje procesorom, da bi se, na primjer, privremeno zaustavila aktivnost procesa do prijema poruke (bez koje nastavak aktivnosti nije mogu ), ali i da bi se moglo reagovati na dugotrajni izostanak o ekivanog prijema poruke.

Sloj za razmjenu poruka nije samo na raspolaganju sloju za upravljanje procesima. On sadr�i sistemske operacije, koje omogu uju razmjenu poruka, odnosno saradnju izme u procesa, aktivnih na raznim ra unarima (ali i izme u procesa, aktivnih na istom ra unaru). Tipi an oblik saradnje procesa je da jedan proces tra�i uslugu od drugog procesa. Na primjer, kada jedan proces �eli da na svom ra unaru, koji je bez masovne memorije, stvori novi proces, on se, posredstvom sloja za upravljanje procesima, obra a drugom procesu, aktivnom na ra unaru sa masovnom memorijom, zahtjevaju i od njega, kao uslugu, da mu po�alje sadr�aj odgovaraju e izvr�ne datoteke. Uobi ajeni na in tra�enja i dobijanja usluge se sastoji od pozivanja operacije, ijim obavljanjem se pru�a tra�ena usluga. U slu aju, kada pozivana operacija ne odgovara potprogramu, koji se lokalno izvr�ava u okviru aktivnosti procesa pozivaoca, nego odgovara potprogramu, koji se izvr�ava u okviru aktivnosti drugog, udaljenog procesa (koji je aktivan na udaljenom ra unaru), rije je o pozivu udaljene operacije (Remote Procedure Call - RPC). Pri tome se proces, koji poziva udaljenu operaciju, nalazi u ulozi klijenta (kome se pru�a usluga), a proces, koji obavlja udaljenu operaciju, se nalazi u ulozi servera (koji pru�a uslugu).

POZIV UDALJENE OPERACIJE

Poziv udaljene operacije li i na poziv (lokalne) operacije. Zna i, on ima oblik poziva

Page 82: Operativni_Sistemi

Operativni sistemi ______________________________________________________________________________

_____________________________________________________________________________________________________________ 81

potprograma, u kome se navode oznaka (ime) operacije i njeni argumenti. Ovakav potprogram se naziva klijentov potprogram (client stub), jer je klijent njegov jedini pozivalac. U klijentovom potprogramu je sakriven niz koraka, koji se obavljaju, radi dobijanja zahtjevane usluge. U ove korake spadaju:

1. pronala�enje procesa servera, koji pru�a zahtjevanu uslugu, 2. pakovanje (marshalling) argumenata (navedenih u pozivu klijentovog potprograma) u poruku zahtjeva, 3. slanje serveru ove poruke zahtjeva, 4. prijem od servera poruke odgovora sa rezultatom pru�anja zahtjevane usluge, 5. raspakivanje prispjele poruke odgovora i 6. isporuka rezultata pru�anja zahtjevane usluge pozivaocu klijentovog potprograma.

Simetri no klijentovom potprogramu postoje dva serverova potprograma (server stub).

Njih poziva jedino server, a oni kriju vi�e koraka, koji se obavljaju, radi pru�anja zahtjevane usluge. Prvi od njih obuhvata:

1. prijem poruke zahtjeva i 2. raspakivanje argumenata iz ove poruke. Drugi od njih obuhvata: 1. pakovanje rezultata usluge (koju je pruzio server) u poruku odgovora i 2. slanje klijentu ove poruke odgovora. Izme u poziva ova dva serverova potprograma se nalazi lokalni poziv operacije, koja

odgovara zahtjevanoj usluzi, odnosno, programski tekst, koji opisuje aktivnost servera na pru�anju zahtjevane usluge.

Oslanjanje na poziv udaljene operacije olak�ava posao programeru, jer od njega krije, na prethodno opisani na in, detalje saradnje klijenta i servera. Pri tome, klijentov potprogram pripada biblioteci udaljenih operacija. Ova biblioteka sadr�i po jedan klijentov potprogram za svaku od postoje ih udaljenih operacija. Klijentov potprogram se generi�e, zajedno sa serverovim potprogramima, prilikom prevo enja programa, koji odgovara serveru.

PROBLEMI POZIVA UDALJENE OPERACIJE

Uprkos nastojanju da �to vi�e li i na poziv lokalne operacije, poziv udaljene operacije se zna ajno razlikuje od svog uzora. Te razlike su posledica koraka, sakrivenih u pozivu udaljene operacije, koji uzrokuju da se u toku poziva udaljene operacije mogu da pojave problemi, ija pojava nije mogu a kod poziva lokalne operacije. Tako je mogu e:

1. da se ne prona e server, koji pru�a zahtjevanu uslugu, 2. da se, u toku prenosa, izgube ili poruka zahtjeva ili poruka odgovora, kao i 3. da do e do otkaza ili servera, ili klijenta u toku njihovog rada. Ako nema servera, tada nije mogu e pru�anje tra�ene usluge (�to je nemogu a situacija

kod poziva lokalne operacije). Do istog rezultata dovode smetnje na komunikacionim linijama, koje onemogu uju prenos bilo poruke zahtjeva, bilo poruke odgovora. Kada u o ekivanom vremenu izostane prijem poruke odgovora (bilo zbog gubljenja poruke zahtjeva, bilo zbog gubljenja poruke odgovora), jedino �to se na strani klijenta mo�e uraditi je da se ponovo po�alje (retransmituje) poruka zahtjeva (pri emu je broj retransmisija ograni en). Ako je izgubljena

Page 83: Operativni_Sistemi

Operativni sistemi ______________________________________________________________________________

_____________________________________________________________________________________________________________ 82

poruka zahtjeva, njenom retransmisijom se stvara mogu nost da ona stigne do servera i da on pru�i tra�enu uslugu. Me utim, ako je izgubljena poruka odgovora, tada treba sprije iti da, po prijemu retransmitovane poruke zahtjeva, server ponovi pru�anje ve pru�ene usluge. Da bi server razlikovao retransmitovanu poruku od originalne, dovoljno je da svaka originalna poruka ima jedinstven redni broj i da server za svakog klijenta pamti redni broj poslednje primljene poruke zahtjeva od tog klijenta (prijem poruke sa zapam enim rednim brojem ukazuje na retransmitovanu poruku, koja je ve primljena).

Otkaz servera (izazvan kvarom ra unara) je problemati an, jer, u op�tem slu aju, nema na ina da se ustanovi da li je do otkaza doslo pre, u toku, ili posle pru�anja usluge. Zato poziv udaljene operacije ne mo�e garantovati da e zahtjevana usluga biti pru�ena samo jednom (kao kod poziva lokalne operacije). Na strani klijenta otkaz servera se odra�ava kao izostajanje poruke odgovora, a retransmisija poruke zahtjeva mo�e navesti ponovo pokrenutog servera da jo� jednom pru�i ve pru�enu uslugu (jer je, u ovom slu aju, server izgubio, zbog otkaza, evidenciju o rednim brojevima poslednje primljenih poruka zahtjeva od klijenata). Kod poziva lokalne operacije ovo se ne mo�e desiti, jer otkaz ra unara zna i i kraj izvr�avanja celog programa, bez poku�aja njegovog automatskog oporavka.

Otkaz klijenta zna i da server uzaludno pru�a zahtjevanu uslugu. Ovo se izbjegava tako �to server obustavlja pru�anje usluga klijentima, za koje ustanovi da su do�iveli otkaz (to klijenti sami mogu da jave serveru, nakon svog ponovnog pokretanja, ili to server mo�e sam da otkrije, periodi nom provjerom stanja klijenata, koje opslu�uje).

Poziv udaljene operacije prakti no dozvoljava da argumenti budu samo vrednosti, a ne i adrese, odnosno pokaziva i, zbog problema kopiranja pokazanih vrednosti sa klijentovog ra unara na ra unar servera i u obrnutom smeru. Pored toga, ako su ovi ra unari razli iti, javlja se i problem konverzije vrednosti (jer se, na primjer, predstava realnih brojeva razlikuje od ra unara do ra unara).

injenica da se u okviru klijentovog potprograma javlja potreba za pronala�enjem servera, ukazuje da u vreme pravljenja izvr�nog oblika klijentovog programa nije poznato koji server e uslu�ivati klijenta. U op�tem slu aju, mo�e biti vi�e servera iste vrste i svaki od njih mo�e istom klijentu da pru�i zatra�enu uslugu. Radi toga se uvodi poseban server imena (name server, binder). Njemu se, na po etku svoje aktivnosti, obra aju svi serveri i ostavljaju podatke o sebi (kao sto je, na primjer, podatak o vrsti usluge koje pru�aju). Serveru imena se obra aju i klijenti, radi pronala�enja servera, koji pru�a zahtjevanu uslugu. Na ovaj na in se ostvaruje dinami ko linkovanje (dynamic binding) klijenta, koji zahtjeva uslugu, i servera, koji pru�a zahtjevanu uslugu.

RAZMJENA PORUKA Klijentovi i serverovi potprogrami, pomo u kojih se ostvaruje zamisao poziva udaljene

operacije, se oslanjaju na sistemske operacije sloja za razmjenu poruka. Prva od ovih operacija je sistemska operacija zahtjevanja usluge, a druge dve su sistemske operacije prijema zahtjeva i slanja odgovora. Sistemska operacija zahtjevanja usluge je namjenjena klijentu (poziva se iz njegovog potpograma), a omogu uje slanje poruke zahtjeva i prijem poruke odgovora. Sistemske operacije prijema zahtjeva i slanja odgovora su namjenjene serveru i omogu uju prijem poruke zahtjeva i slanje poruke odgovora (sistemska operacija prijema zahtjeva se poziva iz prvog serverovog potprograma, a sistemska operacija slanja odgovora se poziva iz drugog serverovog potprograma). Ove tri sistemske operacije ostvaruju poseban protokol razmjene poruka (request

Page 84: Operativni_Sistemi

Operativni sistemi ______________________________________________________________________________

_____________________________________________________________________________________________________________ 83

reply protocol), koji je prilago en potrebama poziva udaljene operacije. Sistemske operacije zahtjevanja usluge, prijema zahtjeva i slanja odgovora su blokiraju e.

Prva zaustavlja aktivnost klijenta do stizanja odgovora, ili do isticanja zadanog vremenskog perioda. Druga zaustavlja aktivnost servera do stizanja zahtjeva, a tre a zaustavlja aktivnost servera do isporuke odgovora ili do isticanja zadanog vremenskog intervala. Ove tri sistemske operacije su zadu�ene za prenos poruka. Pored slanja i prijema poruka, one potvr uju prijem poruka, retransmituju poruke, iji prijem nije potvr en, �alju upravlja ke poruke, kojima se provjerava i potvr uje aktivnost servera ( ime se omogu uje otkrivanje njegovog otkaza) i sli no. U nadle�nosti ovih operacija je i rastavljanje poruka u pakete (koji se prenose preko komunikacionih linija), sastavljanje paketa (pristiglih preko komunikacionih linija) u poruke, potvrda prijema paketa i retransmisija paketa, iji prijem nije potvr en, kao i prilago avanje brzine slanja paketa brzini kojom oni mogu biti primani (flow control). Pomenute tri sistemske operacije pozivaju (neblokiraju e) operacije gornjeg dela drajvera mre�nog kontrolera, radi fizi kog prenosa i prijema paketa (u donjem delu ovog drajvera se nalaze obra iva i prekida, zadu�eni za registrovanje uspje�nog slanja i uspje�nog prijema paketa). Ove tri sistemske operacije koriste usluge i sloja za upravljanje preklju ivanjem i prekidima, radi reagovanja na isticanje zadanih vremenskih intervala, nakon kojih je, na primjer, potrebno ili retransmitovati poruku, ili poslati poruku potvrde.

Sistemske operacije sloja za razmjenu poruka se brinu o baferima, namijenjenim za (privremeno) smje�tanje poruka. Na primjer, ako server nije pozvao sistemsku operaciju prijema zahtjeva, jer je aktivan na uslu�ivanju prethodno primljenog zahtjeva od jednog klijenta, a pristigla je poruka zahtjeva od drugog klijenta, ova poruka se smje�ta u slobodan bafer, da bi bila sa uvana i kasnije isporu ena serveru. Ako ne postoji slobodan bafer, poruka zahtjeva se odbacuje (uz, eventualno, slanje odgovaraju e upravlja ke poruke drugom klijentu).

Svaka od poruka, koje se razmjenjuju izme u procesa, se sastoji: 1. od upravlja kog dijela poruke i 2. od sadr�aja poruke.

Upravlja ki deo poruke obuhvata: 1. adresu odredi�nog procesa (kome se poruka upu uje), 2. adresu izvori�nog procesa (od koga poruka kre e, a kome se, eventualno, kasnije upu uje odgovor) i 3. opis poruke (njenu vrstu, njen redni broj i sli no). Adresa (odredi�nog ili izvori�nog) procesa sadr�i jedinstven redni broj ra unara, kome

proces pripada (a po kome se razlikuju svi ra unari), kao i jedinstven redni broj procesa (po kome se razlikuju procesi, koji pripadaju istom ra unaru). Na osnovu rednog broja ra unara, mre�ni kontroler utvr uje da li prihvata ili propu�ta poruku, a na osnovu rednog broja procesa se odre uje proces, kome se poruka isporu uje. U toku programiranja, zgodnije je, umjesto ovih rednih brojeva, koristiti imena za ozna avanje i ra unara i procesa. Korespondenciju izme u imena i rednih brojeva uspostavlja ve pomenuti server imena (ove podatke o sebi ostavljaju svi serveri, kada se, na po etku svoje aktivnosti, obrate serveru imena).

PROBLEMI RAZMJENE PORUKA

Slaba ta ka razmjene poruka je sigurnost, jer su komunikacione linije pristupa ne svim

Page 85: Operativni_Sistemi

Operativni sistemi ______________________________________________________________________________

_____________________________________________________________________________________________________________ 84

korisnicima, pa je svaki od njih u poziciji da preuzima tu e poruke i da �alje poruke u tu e ime. Spre avanje preuzimanja tu ih poruka se zasniva na kriptovanju (encryption) poruka, a spre avanje slanja poruka u tu e ime se zasniva na nedvosmislenoj me usobnoj identifikaciji procesa (authentication). U slu aju simetri ne kriptografije, da bi klijent i server mogli da razmjenjuju poruke sa �ifrovanim sadr�ajima, oba moraju da znaju i algoritam kriptovanja i svoj interni klju kriptovanja. Pod pretpostavkom da je algoritam poznat svim procesima, a da interni klju kriptovanja treba da znaju samo klijent i server, koji razmjenjuju poruke, javlja se problem kako dostaviti interni klju kriptovanja samo pomenutom klijentu i serveru. U tome mo�e da pomogne poseban server, u koga svi procesi imaju poverenje i koji se, zato, naziva poverenik. Pri tome se podrazumijeva da poverenik posjeduje unapred dogovoren poseban klju kriptovanja za komunikaciju sa svakim procesom. Zahvaljuju i tome, klijent mo�e da po�alje povjereniku poruku, koja sadr�i ime klijenta i ime servera sa kojim klijent �eli da ostvari sigurnu komunikaciju (sadr�aj ove poruke je kriptovan klju em, koji je poznat samo klijentu i povjereniku, tako da je razumljiv samo za povjerenika, a on, na osnovu adrese izvori�nog procesa iz upravlja kog dela ove poruke, mo�e da prona e klju za dekriptovanje njenog sadr�aja). Poverenik tada odredi interni klju kriptovanja i po�alje poruku serveru, koja sadr�i interni klju kriptovanja i ime klijenta (sadr�aj ove poruke je kriptovan klju em, koji je poznat samo povjereniku i serveru, tako da je razumljiv samo za servera). Tako e, povjerenik �alje poruku i klijentu, koja sadr�i interni klju kriptovanja i ime servera (sadr�aj ove poruke je kriptovan klju em, koji znaju samo povjerenik i klijent, tako da je razumljiv samo za klijenta). Na ovaj na in, samo klijent i samo server dobiju interni klju kriptovanja za sigurnu me usobnu komunikaciju i ujedno se obavi njihova me usobna identifikacija (tako da se drugi procesi ne mogu neprimje eno umije�ati u njihovu komunikaciju).

Ako se sigurna razmjena poruka zasniva na asimetri noj kriptografiji, tada je uloga povjerenika da uva javne klju eve i tako osigura me usobnu identifikaciju procesa. Zna i, kada je potrebno ostvariti sigurnu komunikaciju izme u dva procesa, oni se obra aju povjereniku, da bi dobili javni klju svog komunikacionog partnera. Za komunikaciju sa poverenikom ovi procesi koriste javni klju povjerenika, a za komunikaciju sa njima povjerenik koristi njihove javne klju eve.

Asimetri na kriptografija omogu uje i digitalno potpisivanje poruka, radi neopozivog pripisivanja poruke njenom po�iljaocu. Digitalni potpis (digital signature) se �alje uz poruku. On sadr�i referentni deo poruke, koji je dekriptovan (transformisan) primjenom algoritma dekriptovanja i privatnog klju a. Primalac poruke kriptuje (retransformise) digitalni potpis primjenom algoritma kriptovanja i javnog klju a (pretpostavka je da su algoritmi kriptovanja i dekriptovanja komutativni). Ako se rezultat kriptovanja digitalnog potpisa poklapa sa referentnim delom poruke, tada je poruka nedvosmisleno stigla od po�iljaoca.

Sigurnu komunikaciju klijenta i servera mogu ometati drugi procesi zlonamernim retransmisijama starih poruka, ili izmjenom sadr�aja poruka. Ugra ivanjem u sadr�aj poruke njenog rednog broja, mogu se otkriti retransmisije starih poruka, a ugra ivanjem u sadr�aj poruke kodova za otkrivanje i oporavak od izmjena sadr�aja, mogu se otkriti, pa i ispraviti izmjene sadr�aja poruka.

RAZLIKA KLIJENATA I SERVERA

Razli ita uloga, koju klijent i server imaju u toku me usobne komunikacije (saradnje), je

Page 86: Operativni_Sistemi

Operativni sistemi ______________________________________________________________________________

_____________________________________________________________________________________________________________ 85

prirodna posledica njihove namjene. Iz toga proizlaze i razlike u njihovoj internoj organizaciji. Dok je za klijenta prihvatljivo da njegova aktivnost bude strogo sekvencijalna, za servera stroga sekvencijalnost njegove aktivnosti zna i manju propusnost i sporije pru�anje usluga. To je najlak�e ilustrovati na primjeru servera datoteka, zadu�enog za pru�anje usluga, kao �to je itanje ili pisanje datoteke. Strogo sekvencijalna aktivnost ovoga servera bi izazvala zaustavljanje njegove aktivnosti, radi uslu�ivanja jednog klijenta, dok kontroler ne prenese blok sa sadr�ajem datoteke izme u masovne i radne memorije. U me uvremenu ne bi bilo uslu�ivanja drugih klijenata, ak i ako bi se njihovi zahtjevi odnosili na blokove datoteka, prisutne u baferima radne memorije. Ovakva sekvencijalnost nije prisutna kod tradicionalnih operativnih sistema, jer nakon zaustavljanja aktivnosti jednog procesa u sloju za upravljanje datotekama, drugi proces mo�e nastaviti aktivnost u istom sloju. Zato je za servere potrebno obezbijediti vi�e niti. Pri tome, svaka od niti (u okviru istog servera) opslu�uje razli itog klijenta, a broj ovih niti zavisi od broja postavljanih zahtjeva i menja se u vremenu. Postojanje vi�e niti zahtjeva njihovu sinhronizaciju, dok pristupaju globalnim (stati kim) promenljivim servera.

FUNKCIJE DISTRIBUIRANOG OPERATIVNOG SISTEMA

Mikrokerneli stvaraju osnovu za obrazovanje distribuiranog operativnog sistema

(distributed operating system, middleware). Njegov zadatak je da objedini sve ra unare distribuiranog ra unarskog sistema, tako da korisnik distribuiranog operativnog sistema ne vidi pojedine ra unare, nego jedinstven sistem, koji pru�a mno�tvo usluga. Sve ove usluge se dobijaju na uniforman na in, pri emu korisnik nije svjestan mjesta na kome se usluge pru�aju.

Distribuirani operativni sistem obrazuje (nudi) jedinstven skup datoteka, sa uniformnim na inom ozna avanja datoteka i sa jedinstvenom hijerarhijskom organizacijom datoteka (koju na isti na in vidi svaki korisnik). Ovakav distribuirani skup datoteka se oslanja na vi�e servera direktorijuma i na vi�e servera datoteka. Serveri direktorijuma podr�avaju hijerarhijsku organizaciju datoteka, a serveri datoteka podr�avaju pristup sadr�aju (obi nih) datoteka. U direktorijumima (kojima rukuju serveri direktorijuma) uz imena datoteka (odnosno uz imena direktorijuma) ne stoje samo redni brojevi deskriptora datoteka, nego i redni brojevi servera datoteka (odnosno servera direktorijuma), kojima pripadaju pomenuti deskriptori.

U distribuiranom skupu datoteka pristup datoteci podrazumijeva konsultovanje servera imena, radi pronala�enja servera direktorijuma, od koga kre e pretra�ivanje direktorijuma. Pretra�ivanje direktorijuma mo�e zahtjevati kontaktiranje razli itih servera direktorijuma, dok se ne stigne do servera datoteka sa tra�enom datotekom.

Serveri direktorijuma i datoteka mogu da ubrzaju pru�anje usluga, ako kopiju esto kori� enih podataka uvaju u radnoj memoriji. Ubrzanju pru�anja usluga doprinosi i repliciranje datoteka (da bi one bile fizi ki bli�e korisnicima), iako to stvara probleme, kada razni korisnici istovremno mijenjaju razne kopije iste datoteke (jer se tada postavlja pitanje koja od izmjena je va�e a).

Za distribuirani skup datoteka za�tita datoteka se es e zasniva na dozvolama (capability), nego na pravima pristupa. To zna i da u okviru deskriptora datoteka (odnosno, direktorijuma) ne postoje navedena prava pristupa za pojedine grupe korisnika, nego se za svaku datoteku (odnosno, direktorijum) generi�u razli ite dozvole, koje omogu uju razne vrste pristupa datoteci (odnosno, direktorijumu). Da bi klijent dobio neku uslugu, on mora da poseduje odgovaraju u dozvolu, koju prosle uje serveru u okviru zahtjeva za uslugom. Dozvola sadr�i:

1. redni broj servera, 2. redni broj deskriptora datoteke (odnosno, deskriptora direktorijuma),

Page 87: Operativni_Sistemi

Operativni sistemi ______________________________________________________________________________

_____________________________________________________________________________________________________________ 86

3. oznaku vrste usluge i 4. oznaku ispravnosti dozvole.

Sadr�aj dozvole je za�ti en kriptovanjem, tako da nije mogu e, izmjenom oznake vrste

usluge prepraviti dozvolu. Prije pru�anja usluge, server provjerava dozvolu, da ustanovi da li je ispravna i da li se njena oznaka vrste usluge podudara sa zatra�enom uslugom. Dozvole dijeli server (na zahtjev klijenata), a uvaju ih (i po potrebi prosle uju jedan drugom) klijenti (pri tome se podrazumijeva da klijent, stvaralac datoteke, po njenom stvaranju automatski dobije dozvolu za sve vrste usluga, koja uklju uje i uslugu stvaranja drugih, restriktivnijih dozvola). Kada �eli da poni�ti odre enu dozvolu, server samo proglasi njenu oznaku ispravnosti neva�e om.

Prednost zasnivanja za�tite datoteka na dozvolama umjesto na pravima pristupa je u tome da prvi pristup ne zahtjeva razlikovanje korisnika, niti njihovo ozna avanje, �to je va�no, jer upravljanje jedinstvenim i neponovljivim oznakama korisnika u distribuiranom ra unarskom sistemu nije jednostavno. Sem toga, dozvole omogu uju ve u selektivnost, jer grupi�u korisnike po kriteriju posedovanja dozvole odre ene vrste, a ne na osnovu njihovih unapred uvedenih (numeri ih) oznaka.

Pored obrazovanja distribuiranog skupa datoteka, za distribuirani operativni sistem je bitno da obezbijedi automatsko upravljanje svim ra unarima (procesorima) distribuiranog ra unarskog sistema, za �ta su potrebni posebni serveri procesa. Ovakvo upravljanje se svodi na raspore ivanje procesa po procesorima, radi ostvarenja njihovog najboljeg iskori� enja, ili radi ostvarenja najkra eg vremena odziva (najbr�eg uslu�ivanja korisnika). Zadatak upravljanja komplikuju razlike izme u ra unara, jer tada svaki ra unar ne mo�e da prihvati svaki izvr�ni oblik programa (po�to su izvr�ni oblici programa vezani za procesor, za raspolo�ivu radnu memoriju i sli no). Upravljanje komplikuje i zahtjev za omogu avanje migracije procesa sa ra unara na ra unar (da bi se prezaposlen ra unar rasteretio, a nezaposlen zaposlio). Upravljanje je olak�ano, ako su unapred poznate karakteristike optere enja ra unara (vrsta i broj procesa, koji ih zaposljavaju). Kod raspore ivanja procesa po procesorima, va�no je voditi ra una o saradnji procesa i procese, koji tijesno me usobno sara uju, raspore ivati na isti procesor.

Saradnja procesa, aktivnih na raznim procesorima, zatheva njihovu sinhronizaciju, �to se ostvaruje razmjenom poruka. Pri tome, najjednostavniji na in za ostvarenje sinhronizacije se zasniva na uvo enju procesa koordinatora. Njemu se obra aju svi procesi, zainteresovani za sinhronizaciju, a koordinator donosi odluke o njihovoj sinhronizaciji. Tako, ako je potrebno, na primjer, ostvariti me usobnu isklju ivost procesa u pristupu istoj datoteci, svi procesi tra�e od koordinatora dozvolu za pristupe, a on dozvoljava uvek samo jednom procesu da pristupi datoteci. Na sli an na in se mo�e ostvariti i uslovna sinhronizacija. Za razliku od ovakvog centralizovanog algoritma sinhronizacije, koji se zasniva na uvo enju koordinatora, postoje i distribuirani algoritmi sinhronizacije, koji se zasnivaju na me usobnom dogovaranju procesa, zainteresovanih za sinhronizaciju. Distribuirani algoritmi sinhronizacije zahtjevaju sredstva za grupnu komunikaciju procesa (odnosno, sredstva za efikasan na in da jedan proces po�alje poruke svim ostalim procesima iz grupe procesa, zainteresovanih za sinhronizaciju, i da od njih primi odgovore). Pored ve e razmjene poruka, distribuirani algoritmi sinhronizacije su komplikovaniji od centralizovanih algoritama, a pri tome ne nude prednosti, tako da je njihov razvoj vi�e od principijelnog, nego od prakti nog zna aja.

Za distribuirane operativne sisteme nije samo bitno da omogu e efikasnu sinhronizaciju procesa, nego i da podr�e poseban oblik sinhronizacije procesa, koji obezbije uje da se obave ili sve operacije iz nekog niza pojedina nih operacija, ili ni jedna od njih. Ovakav niz operacija se naziva transakcija, a transakcije, koje imaju svojstvo da se obave u cjelosti ili nikako, se nazivaju

Page 88: Operativni_Sistemi

Operativni sistemi ______________________________________________________________________________

_____________________________________________________________________________________________________________ 87

atomske transakcije (atomic transaction). Primjer niza operacija, za koje je neophodno da obrazuju atomsku transakciju, je prebacivanje nekog iznosa sa ra una jedne banke na ra un druge banke. Pri tome, proces klijent (koji u ime korisnika obavlja ovo prebacivanje) kontaktira dva servera (koji reprezentuju dve banke), da bi obavio transfer iznosa sa jednog na drugi ra un. Transfer se mora obaviti tako, da drugi klijenti mogu videti oba ra una samo u stanju ili pre, ili posle transakcije. Zna i, za atomske transakcije je neophodno da budu me usobno isklju ive (ako pristupaju istim podacima), ali i da njihovi rezultati budu trajni (da se, jednom napravljena izmjena ne mo�e izgubiti).

Aktivnost (saradnja) procesa, aktivnih na raznim procesorima, otvara mogu nost pojave mrtve petlje. Pri tome, u uslovima distribuiranog ra unarskog sistema, algoritmi za izbegavanje pojave mrtve petlje, odnosno za otkrivanje i za oporavak od pojave mrtve petlje su jo� neefikasniji i sa jos manjim prakti nim zna ajem, nego u slu aju centralizovnog (jednoprocesorskog) ra unara. Zato, u uslovima distribuiranog ra unarskog sistema, kada nije prihvatljiv pristup ignorisanja problema mrtve petlje, preostaje da se spre i njena pojava (spre avanjem ispunjenja uslova, neophodnih za pojavu mrtve petlje).

Distribuirani operativni sistem je zami�ljen tako da integrise mno�tvo ra unara u mo an multira unarski sistem. Na taj na in je mogu e od vi�e jeftinih i malih ra unara napraviti multira unarski sistem, koji je jeftiniji, a mo niji od jednog velikog i skupog ra unara. Ovakav multira unarski sistem, uz to, nudi i ve u pouzdanost (jer kvar pojedina nog ra unara nije fatalan za ceo sistem), kao i mogu nost pro�irenja (jer je mogu e naknadno dodavanje ra unara u sistem). Pored integrisanja pojedina nih ra unara u multira unarski sistem, distribuirani operativni sistem omogu uje i deljenje skupih resursa ovakvog multira unarskog sistema izme u vi�e korisnika, a nudi i prilagodljivost zahtjevima korisnika, �eljenu raspolo�ivost i predvidivost odziva, pa, ak, i ve u sigurnost (jer korisnici mogu da uvaju poverljive podatke na svom ra unaru, koga fizi ki �tite i ije kori� enje mogu da kontroli�u). Slabe ta ke distribuiranog operativnog sistema su nesigurnost komunikacionih linija i te�ko ostvarenje njegove ukupne funkcionalnosti. Zato se u praksi sre u mre�ni operativni sistemi, koji se u pojedinim osobinama samo pribli�avaju distribuiranim operativnim sistemima.

5.5 MRE�NI OPERATIVNI SISTEMI

Mre�ni operativni sistemi se ne zasnivaju na mikrokernelima, nego nastaju dogradnjom postoje ih (razli itih) operativnih sistema, s ciljem objedinjavanja njihovih skupova datoteka u jedinstven skup datoteka. Pri tome su korisnici svjesni prisustva i uloge pojedinih ra unara, koje objedinjuje mre�ni operativni sistem, pa o tome vode ra una u toku svog rada. Mre�ni operativni sistemi objedinjuju skupove datoteka raznih ra unara, tako sto dozvoljavaju klijentu da u svoj skup datoteka uklju i skup datoteka mre�nog servera datoteka (koji je zadu�en samo za upravljanje sopstvenim skupom datoteka). Ovo uklju ivanje se ostvaruje na nivou direktorijuma, pri emu razni klijenti imaju razli it pogled na ukupan skup datoteka mre�nog operativnog sistema, jer direktorijume servera mogu da uklju uju u proizvoljno mjesto lokalne hijerarhijske organizacije datoteka. Poku�aj pristupa datoteci iz nekog od uklju enih direktorijuma automatski dovodi do komunikacije klijenta i odgovaraju eg servera. Ovakva komunikacija zahtjeva usagla�enost svih ra unara (koje objedinjuje mre�ni operativni sistem) u pogledu formata i zna enja poruka. To je neophodna (a esto i jedina) dodirna ta ka ra unara, obuhva enih mre�nim operativnim sistemom.

Page 89: Operativni_Sistemi

Operativni sistemi ______________________________________________________________________________

_____________________________________________________________________________________________________________ 88

DODATAK 1: Windows XP

Sredinom osamdesetih Microsoft i IBM su odlu ili da zajedni ki razviju OS/2-operativni sistem namijenjen procesorima Intel 80286, napisan u asemblerskom jeziku. Microsoft je 1988 godine napravio NT (New Technology) «portabilni» operativni sistem namijenjen i ostalim mikroprocesorskim arhitekturama. Prve verzije NT-a su bile Windows NT 3.1 i Windows NT 3.1 Advanced Server (32- bitne verzije). Windows NT 3.1 je u to vrijeme bio 16 - bitni operativni sistem. Windows NT verzija 4.0 je preuzeo korisni ki interfejs Windows-a 95 i ugra en internet pretra�iva i web-server softver. Me utim kasnije su korisni ki interfejs i grafi ki kod premje�teni u kernel da bi se pobolj�ale performanse uz sporedni efekat � smanjenje pouzdanosti. Prethodne verzije NT-a bile su namijenjene raznim mikroprocesorima �to nije slu aj sa verzijom Windows 2000 koja podr�ava samo Intel i kompatibilne arhitekture. Windows 2000 je zna ajno pobolj�an u odnosu na NT:

- dodat je Active Directory - bolja podr�ka za mre�e i prenosive ra unare (laptop) - podr�ka za PnP ure aje (Plug and Play) - podr�ka za vi�e procesora i ve u koli inu memorije

U Oktobru 2001. godine Microsoft je plasirao na tr�i�te Windows XP kao zamjenu za Windows 95/98 i nadogradnju za Windows 2000. Prednosti Windows-a XP u odnosu na prethodnike su:

- zna ajno pobolj�an grafi ki interfejs - bolju podr�ku za mre�e - ve u pouzdanost i bezbjednost - podr�ka za nove 64-bitne procesore Intel Ithanium i AMD Athlon.

XP koristi klijent-server arhitekturu kojom posti�e kompatibilnost sa aplikacijama namijenjenim drugim operativnim sistemima. Postoje dvije verzije XP-a: Windows XP Professional koji je namijenjen za profesionalnu upotrebu i Windows XP Personal Edition koji nudi pouzdanost i lako u kori� enja Professionala bez podr�ke za Active Directory i POSIX aplikacije. Nova severska verzija Windows-a se pojavila krajem 2002. godine �Windows 2003 Server koji se izvr�ava pomo u istog koda kao Windows XP uz dodatne mogu nosti za rad sa mre�ama. Po etkom ove godine pojavila se verzija Windows XP 64-bit edition namijenjena 64-bitnim ra unarima (beta verzija) koja bi trebala da u potpunosti iskoristi snagu novih 64-bitnim procesora. Kao i kod ve ine probnih verzija postoji dosta problema vezanih uglavnom za hardversku nekompatibilnost � za ve inu ure aja ne postoje odgovaraju i drajveri.

Dizajn XP-a Microsoft-ovi dizajnerski ciljevi vezani za Windows XP su:

1. bezbjednost 2. pouzdanost 3. kompatibilnost sa Windows i POSIX aplikacijama 4. visoke performanse

Page 90: Operativni_Sistemi

Operativni sistemi ______________________________________________________________________________

_____________________________________________________________________________________________________________ 89

5. pro�irivost 6. prenosivost � nezavisnost od hardvera 7. regionalna podr�ka

BezbjednostXP je najbezbjedniji Microsoftov operativni sistem. Pouzdanost Windows XP po svojoj pouzdanosti nadma�uje do sada najpouzdaniji Microsoft-ov operativni sistem Windows 2000. Najve i dio XP-ove pouzdanosti duguje se detaljnoj provjeri izvornog koda , brojnim testiranjima optere enih sistema i automatskoj detekciji gre�aka u drajverima. Windows XP ima ugra ene mogu nosti stalne provjere stanja sistema i skidanje sa interneta (update) takozvanih «zakrpa» i prije nego �to korisnik uo i problem. Pouzdanost je pobolj�ana XP-ovim novim grafi kim korisni kim interfejsom ije su glavne prednosti bolji vizuelni dizajn, intuitivnost uz prostije menije i «lako a otkrivanja» na ina za izvr�avanje pojedinih zadataka. Kompatibilnost sa Windows i POSIX aplikacijama Windows 2000 je bio prvenstveno fokusiran na kompatibilnost sa poslovnim aplikacijama. Kompatibilnost Windows-a XP je znatno pro�irena � uklju uje mnoge aplikacije koje rade pod Windows-om 95/98. Kompatibilnost aplikacija je veoma te�ko posti i zato �to svaka aplikacija provjerava da li je pokrenuta na predvi enom operativnom sistemu. Windows XP posjeduje «sloj kompatibilnosti» koji se nalazi izme u aplikacije i Win32 programskog interfejsa aplikacije (API). XP podr�ava 16-bitne aplikacije tako �to se 16-bitni API pozivi prevode u 32-bitne. Sli no 64-bitna verzija Windows-a prevodi 32-bitne API pozive u 64-bitne. Podr�ka za POSIX u Windows-u XP je znatno pobolj�ana POSIX-ovim podsistemom interix.

Visoke performanse Windows XP je projektovan da «izvu e najbolje» iz bilo kojeg ra unara, bilo ku nog, servera ili vi�eprocesorskog i vi�eprogramskog okru�enja, �to se postiglo razli itim tehnikama. Neke od tih tehnika su asinhroni I/O (ulaz-izlaz), optimizovani mre�ni protokol, prebacivanje grafike u kernel, sofisticirano ke�iranje podataka za sistem datoteka. Pobolj�anje performansi je postignuto i smanjenjem broja linija programskog koda kod nekih kriti nih funkcija kori� enjem «pametnijih» algoritama. Podsistemi u XP-u komuniciraju efikasno pomo u pozivanja lokalne procedure (LPC � Local Procedure Call), ime se obezbje uje brza i sigurna razmjena poruka izme u njih. Niti u podsistemima Windows-a XP mogu biti zamijenjene nitima vi�eg prioriteta a i sistem reguje brzo na spolja�nje doga aje. XP je dizajniran za simetri ni vi�eprocesorski rad: na vi�eprocersorskom sistemu vi�e niti se mo�e izvr�avati u isto vrijeme. ProširivostPro�irivost podrazumijeva mogu nost operativnog sistena da «dr�i korak» sa novim dostignu ima u ra unarskoj tehnologiji. To je u XP-u omogu eno kori� enjem slojevite arhitekture � izvr�ni dio radi u kernelu ili u za�ti enom re�imu i obezbje uje osnovne funkcije sistema.

Page 91: Operativni_Sistemi

Operativni sistemi ______________________________________________________________________________

_____________________________________________________________________________________________________________ 90

Na vrhu izvr�nog dijela nekoliko serverskih podsistema se izvr�ava u korisni kom re�imu. Me u njima su podsistemi okru�enja koji emuliraju razli ite operativne sisteme. Zbog toga programi napisani za DOS, ranije verzije Windows-a i POSIX rade u XP-u u odgovaraju em okru�enju. Zbog ovakve modularne strukture mogu se dodati novi podsistemi okru�enja bez uticaja na izvr�ni dio. Windows XP koristi samou itavaju e drajvere u I/O sistemu tako da se novi sistemi datoteka, I/O ure aja i mre�nih ure aja mogu priklju iti dok sistem radi. PortabilnostOperativni sistem je portabilan (prenosiv) ako se mo�e prebaciti sa jedne hardverske arhitekture na drugu sa relativno malim izmjenama. Najve i dio programskog koda za XP je napisan u C i C++ programskom jeziku. Skoro itav dio koda koji je zavisan od procesora se nalazi u biblioteci dinami kih linkova (DLL � Dinamic Link Library) koja se naziva sloj apstrakcije hardvera (HAL � Hardware Abstraction Layer). HAL komunicira sa hardverom direktno, odvajaju i odstatak XP-a od razlika u hardveru izme u platformi na kojima se izvr�ava. Regionalna podrška Windows XP obezbje uje podr�ku za razli ite lokalizme kroz programski interfejs aplikacije (API) nazvan NLS (National Language Support), koji sard�i rutine za formate datuma, vremena i valuta u skladu sa razli itim nacionalnim obi ajima. UNICODE je prirodni kod Windows-a XP. XP podr�ava ANSI karaktere konvertuju i ih u UNICODE prije manipulacije sa njima (8 � 16 bitna konverzija).

Arhitektura XP-a Arhitektura Windows-a XP je slojeviti sistem modula (slika 1). Glavni slojevi su HAL, Kernel i izvr�ni dio i svi rade u za�ti enom re�imu. Tu je jo� i skup podsistema i servisa koji se izvr�avaju u korisni kom re�imu. Podsistemi korisni kog re�ima se dijele u dvije grupe:

- podsistemi okru�enja koji emuliraju razli ite operativne sisteme - sigurnosni podsistemi.

Glavna prednost ovakve arhitekture je u jednostavnosti veza izme u modula. slika 1.

Sloj abstrakcije hardvera (HAL) HAL omogu ava da razli iti ra unari koriste Windows XP professional, tj. bri�e razliku izme u kori� enjaXP-a na ra unaru sa jednim i sa vi�e procesora (XP Professional podr�ava do 64 procesora). On tako e generi�e interfejs virtuelne ma�ine koji koriste dispe er kernela, izvr�ni dio i drajveri ure aja. Jedna od va�nih prednosti takvog pristupa je potreba za samo jednim drajverom za svaki ure aj.

Page 92: Operativni_Sistemi

Operativni sistemi ______________________________________________________________________________

_____________________________________________________________________________________________________________ 91

Slika 1

Kernel (Jezgro) Kernel je centralni menad�er, dio koji u svakom trenutku zna koji se procesi izvr�avaju u sistemu, koji dio memorije zauzimaju, koji im je prioritet i na �ta ekaju ukoliko ekaju i on je objektno orijentisan. Tip objekta je sistemski definisana vrsta podatka koja ima set osobina (vrijednost podataka) i set metoda (npr. funkcije ili operacije). Objekat je primjer tipa objekta. Kernel izvr�ava zadatke kori� enjem seta kernelskih objekata

Kernel dispe er Zadaci kernel dispe era su raspore ivanje niti, implementacija sinhronizacionih primitiva, upravljanje vremenom, softverski interapti (prekidi).

Niti i raspore ivanje Windows XP koristi koncepte procesa i niti za izvr�ni kod. Svaki proces ima adresni prostor u virtuelnoj memoriji i informaciju koju koristi da inicijalizuje niti i ima jednu ili vi�e niti. Svaka nit ima sopstveno stanje u rasporedu, uklju uju i aktuelni portret i informaciju o iskori� enosti procesora. �est mogu ih stanja niti su: ready (spremno), stand-by,executing (izvr�ava se), waiting ( eka), transition state (stanje prelaska) i termination (terminacija).

Page 93: Operativni_Sistemi

Operativni sistemi ______________________________________________________________________________

_____________________________________________________________________________________________________________ 92

Nit najvi�eg prioriteta se prebacuje u stand-by stanje tj. ta nit se slede a izvr�ava. Ona se izvr�ava dok se ne pojavi nit vi�eg prioriteta, nit se termini�e, njen kvantum istekne ili je blokira objekt dispe er. Objekt dispe er koristi 32-bitnu �emu prioriteta. Pomo u prioriteta dispe er odre uje redosled izvr�avanja niti. Ukoliko dispe er ne prona e nit koja je spremna za izvr�enje izvr�ava posebnu nit koja se zove idle, tj. procesor je «nezaposlen». Prioritet niti su podijenjeni u dvije klase:

- promjenljivu klasu - klasu u realnom vremenu

Prioritet niti promjenljive klase se mo�e mijenjati: pove avati i smanjivati. U XP-u postoji strategija da se obezbijedi dobar odziv nitima povezanim sa I/O ure ajima npr. nit povezana sa aktivnim grafi kim korisni kim interfejsom (GUI) dobija najvi�i prioritet da bi se pobolj�alo vrijeme odziva.

Izuzeci i interapti Interapt (prekid) je u stvari zahtjev procesora za pa�nju. Kada procesor primi interapt prekida teku u operaciju snima ta ku gdje je stao sa radom i poziva rutinu zvanu «manipulator interaptima» (interrupt handler) koja sadr�i instrukcije za rad u posebnim situacijama uzrokovanim interaptima. Sam interapt je predstavljen objektom koji sadr�i sve informacije potrebne za manipulaciju. Samo kori� enje interapt objekta olak�ava pridru�ivanje rutine interaptu bez potrebe za direktnim pristupom hardweru. Postoje 32 nivoa interapt zahtjeva u Windows XP-u. Kernel koristi 8, a ostala 24 su rezervisana za hardverske interapte kroz HAL. Kernel koristi tabelu raspore ivanje interapta da pove�e svaki nivo interapta sa rutinom. Nivoi Windows XP interapta su prikazani u tabeli (slika 2). Windows XP defini�e nekoliko izuzetaka nezavisnih od arhitekture: kr�enje pristupa memoriji, cjelobrojno (integer) prekora enje, prekora enje ili potkora enje (suvi�e mali rezultat) kod operacija sa pomi nim zarezom, dijeljenje sa nulom kod operacije sa pomi nim zarezom, nedozvoljenje instrukcije, gre�ke kod razvrstavanja podataka, privilegovane instrukcije, gre�ke pri u itavanju strane, prekora enje kvote datoteke za strani enje itd. Izuzeci se mogu dogoditi u korisni kom ili kernel � modu. Jedan od naj e� ih je takozvano «otimanje memorije» (Memory Acess Violation). Opasnost je manja ako se gornji izuzetak desi u korisni kom modu jer je u tom slu ju aplikacija «zatvorena» u dodijeljenom joj memoriji i mo�e o�tetiti samo sebe. Ako se opisana gre�ka desi u re�imu kernela operativni sistem zaustavlja rad svih aplikacija i prikazuje «plavi ekran».

Page 94: Operativni_Sistemi

Operativni sistemi ______________________________________________________________________________

_____________________________________________________________________________________________________________ 93

Slika 2

Menadžer objekata Windows XP je objektno orijentisan operativni sistem. U njemu je sve implementirano kao objekat: datoteka, serijski port, proces, nit itd. Definisanjem tih elemenata kao objekata posti�e se jednobrazan na in pristupanja svim objektima. U ve ini drugim operativnih sistema npr. zauzimanje serijskog porta i komunikacija sa njima zahtijeva sasvim druga iji kod od otvaranja datoteke i njenog itanja. Iz ove re enice slijedi da je prva prednost objektno orijentisanih operativnih sistema olak�avanje rada programerima. Druga je bezbjednost - pravljenjem jedne ta ke za komunikaciju izme u programa i perifernih ure aja (drugog programa, datoteke, I/O ure aja) olak�ava se pra enje i kontrola pristupa programa objektima i odre ivanje prava pristupa tj. posao menad�era objekata je pra enje objekta u sistemu, identifikacija korisnika objekata i odlu ivanje o pravima pristupa istim. Menad�er objekata stvara interni apstraktni «prostor za imena» (namespace) u Windows-u XP. Poslije svakog novog podizanja sistema namespace se iznova defini�e iz informacija o konfiguraciji koje se nalaze u sistemskom registry-ju. Ime objekta mo�e biti stalno ili privremeno. Stalna imena se dodeljuju npr. diskovima dok privremena figuri�u samo za vrijeme dok proces pristupa objektu. Imena objekata su struktuirana kao putanje do fajla u DOS-u i UNIX-u. Komponente putanje se odvajaju kosom crtom ulijevo (\). Namespace direktorijumi su predstavljeni direktorijumskim objektima koja sadr�e imena svih objekata direktorijuma kao i objekat ure aja koji predstavljaju memorijski prostor koji sadr�i sistem datoteka (FAT32, NTFS). Samim objektima se upravlja kori� enjem seta funkcija: create, open, close, delete, querry name, parse i security (kreirati, otvoriti, zatvoriti, brisati, pitati za ime, rastaviti i sigurnost).

Querry name funkcija koristi kada ima «upit» na objekat ali joj treba ime tog objekta. Parse koristi menad�er da tra�i objekat poznatog imena. Ova procedura se koristi nad manjim brojem objekata koji su dio Windows-ovog GUI, konfiguracionog menad�era (Registry) i objekata ure aja koji predstavljaju sisteme datoteka ( particije, diskovi). Ona locira npr. fajl objekat i inicira i otvara ili kreira I/O operaciju na sistemu datoteka. Ukoliko je prethodni korak uspje�an polja fajl objekta se ispunjavaju da bi se opisao fajl.

Page 95: Operativni_Sistemi

Operativni sistemi ______________________________________________________________________________

_____________________________________________________________________________________________________________ 94

Security se poziva za izvr�avanje sigurnosnih provjera za sve operacije nad objektima, npr. kada proces otvara ili zatvara objekat. Kada prestane potreba za pristupom objektu poziva se rutina za zatvaranje objekta �to ne zna i i brisanje objekta iz radne memorije. Njegovo brisanje se de�ava tek kad kod svih komponenti sistema prestane potreba za objektom � i iz korisni kog moda i od sistemskih komponenti. Kada proces logovanja autentifikuje korisnika (administrator, guest, power user...), oznaka pristupa se «zaka i» za proces USER, koje ozna ava korisni ko ime, i sadr�i privilegije, listu prava pristupa tj. odre uje servise i objekte kojima mo�e pristupiti korisnik. Sama oznaka koja kontroli�e pristup se pridru�uje niti koja pristupa objektu. Sistem odre uje sigurnosni ID u oznaci za pristup niti sa listom kontrole pristupa objekta da bi se ustanovilo da li nit ima pristup objektu. Oznaka pristupa ima polje koje kontroli�e izmjenu pristupa.

Menad�er virtuelne memorije Menad�er virtuelne memorije (VM) je izvr�na komponenta koja upravlja virtuelnim adresnim prostorom, dodjeljivanjem fizi ke memorije i strani enjem. Veli ina stranice je 4KB za 32-bitne i 8KB za 64-bitne procesore. Kod 32-bitnih procesora svaki proces ima 4GB virtuelnog adresnog prostora. Gornja 2GB su skoro ista za sve procese i koristi ih Windows XP u re�imu kernela. Oblasti u kernel re�imu koje nijesu iste za sve procese su mapa tabele za strani enje, hiperprostor i prostor sesije. U hiperprostoru se nalazi set informacija o teku em procesu. Prostor sesije se koristi za dijeljenje Win32k i ostalih specifi nih drajvera izme u procesa. Donja 2GB adresnog prostora su specifi na za svaki proces i mogu im pristupati niti i iz korisni kog i iz kenelskog re�ima. Neke konfiguracije XP-a rezervi�u samo 1GB za operativni sistem. To je povoljno za velike aplikacije kao npr. SQL baze podataka. Menad�er virtuelne memorije dodeljuje memoriju procesu u 2 koraka:

-prvim reguli�e dio virtuelnog adresnog prostora, a -drugim dodeljuje tom vitruelnom stvarni memorijski prostor u datotekama za strani enje.

Za 32-bitne procesore svaki proces ima direktorijum za strani enje koji sadr�i 1024 unosa - PDE (page directory entries) veli ine po 4 bajta. Svaki PDE upu uje na tabelu za strani enje koja sard�i tako e 1024 unosa PTE (page table entries), veli ine 4 bajta. Svaki PTE pokazuje na okvir (frame) stranice veli ine 4KB u fizi koj memoriji. Ukupna veli ina svih tabela za strani enje po jednom procesu je 4 MB. VM menad�er snima po potrebi na disk pojedine tabele. Ova struktura ilustrovana je na slici 3.

Page 96: Operativni_Sistemi

Operativni sistemi ______________________________________________________________________________

_____________________________________________________________________________________________________________ 95

Slika 3

32-bitna adresa virtuelne memorije se dijeli na tri dijela � slika 4.

Slika 4.

Prvih 10 bita se koriste kao indeks u direktrijumu za strani enje. Ova adresa selektuje jedan unos u direktorijumu za strani enje (PDE) koji sadr�e fizi ki okvir stranice tabele za strani enje. Jedinica za upravljanje memorijom (MMU � memory management unit) koristi slede ih 10 bita virtuelne adrese za selekciju unosa u tabelu za strani enje (PTE). PTE odre uje okvir stranice u fizi koj memoriji. Preostalih 12 bita predstavljaju ostatak (offset) i MMU ih koristi za kreiranje pokaziva a na specifi an bajt u okviru stranice spajanjem 20 bita PTE i ni�ih 12 bita virtuelne memorijske adrese (offset-a). Prema tome tih 12 bita se koriste za opis stanja stranice z fizi koj memoriji. 3 bita su rezervisana za operativni sistem, ostalih 9 bita odre uju da li je stranica pristupano ili upisano na nju, atribute ke�iranja, na in pristupa i validnost PTE. Fizi ka stranica (stranica u fizi koj memoriji � 4KB za 32 bitne i 8KB za 64 bitne procesore) mo�e biti opisana jednim od �est mogu ih stanja: validna, slobodna, nulovana (svih npr. 4KB tj 32000 bita su nule), pripravna (stand-by), modifikovana, u kvaru (bad) ili u prelasku (in transition). Validna stranica je stranica u upotrebi od strane aktivnog procesa. Slobodna stranica je stranica za koju ne postoji upit u PTE. Modifikovana stranica je upisana od strane aktivnog procesa i mora biti snimljena na disk prije nego se dodijeli drugom procesu. Stranica u kvaru (bad page) je neupotrebljiva zbog hardverske gre�ke.

Page 97: Operativni_Sistemi

Operativni sistemi ______________________________________________________________________________

_____________________________________________________________________________________________________________ 96

Stranica u prelasku je stranica «na putu» sa diska u okvir stranice koji joj je dodijenjen u fizi koj memoriji. Na slici 5. prikazana je struktura PTE datoteke za strani enje.

Slika 5.

PTE sadr�i 5 bita za za�titu stranice, 20 bita za ostatak datoteke za strani enje, 4 bita za selekciju datoteke za strani enje i 3 bita za opis stanja stranice. Menad�er dr�i popis svih stranica fizi ke memorije u bazi podataka o okvirima stranica (page-frame database), po jedan unos za svaku stranicu memorije u sistemu. Gre�ka na stranici (page fault) je interapt koji nastaje kada proces poku�a da ita ili upisuje na lokaciju u VM koja ne postoji (ozna ena je sa not present). U task menad�eru to je broj povla enja podataka sa diska za potrebe nekog procesa zato �to ih nije bilo u radnoj memoriji. Windows XP koristi sistem prva unutra- prva napolje (first in-first out, FIFO) za zamjenu stranica kod procesa koji koriste vi�e od radnog minimuma koji iznosi 50 stranica. XP nadgleda gre�ke na stranicama za svaki proces i srazmjerno pode�ava broj dodijeljenih stranica procesu. VM menad�er zamjenjuje i raspore�uje stranke dodijeljene procesu zavisno od njihove starosti. «Starost» stranice se odre uje iz broja ciklusa raspore ivanja (premje�tanja) bez PTE. Statistika pokazuje da kada nit ili proces koriste jednu stranicu, vrlo vjerovatno da e tra iti i susjedne stranice u bliskoj budu nosti. To svojstvo korist VM menad�er. Tim predvi anjem koja stranica e se tra�iti kao sljede a smanjuje se rizik od gre�aka na stranicama.

Menad�er procesa Menad�er procesa u Windows XP-u obezbje uje usluge kreiranja, brisanja i kori� enja procesa, niti i zadataka. Svaki proces sadr�i jednu ili vi�e niti i mogu se grupisati u objekte zadataka (job objects) koji ograni avaju kori� enje procesora i broj dodijeljenih stanica. Koriste se kod velikih sistema za skladi�tenje podataka. Kada Win32 aplikacija zatra�i kreiranje procesa �alje se poruka Win32 podsistemu da se proces kreira a zatim se poziva API u menad�eru procesa. Proces menad�er poziva menad�era objekata da bi kreirao objekat «proces» i dodeljuje ga Win32 podsistemu koji ponovo poziva menad�er procesa da kreira nit za proces. Menad�er procesa tako e dodeljuje asinhrone pozive procedura APC nitima. APC sistem koristi za inicijalizaciju izvr�avanja niti, zavr�avanja I/O, terminaciju niti i procesa. Pozivanje lokalne procedure - LPC

Page 98: Operativni_Sistemi

Operativni sistemi ______________________________________________________________________________

_____________________________________________________________________________________________________________ 97

Windows XP je organizovan po modelu klijent-server. Podsistemi oktu�enja su serveri koji zamjenjuju osobine pojedinih operativnih sistema. Operativni sistem koristi LPC za proslije ivanje zahtjeva i rezultata izme u klijentskih u serverskih procesa u jednom sistemu. LPC je mehanizam za prenos poruka. Da bi klijent i server (aplikacija i podsistem) mogli da komuniciraju stvara se kanal za komunikaciju koji se sastoji od para portova za komunikaciju:

- jedan za poruke od klijenata ka severu - drugi za poruke od servera ka klijentu

Postoje tri tehnike za prenos poruka: prva tehnika je pogodna za manje poruke � do nekoliko stotina bajta. Poruke se kopiraju iz jednog procesa u drugi, port se koristi kao prelazno skladi�te. druga tehnika je za ve e poruke. Za nju je potrebno kreirati objekat- dijeljenu memoriju (shared memory). Poruke sadr�e pkaziva na objekat dijeljena memorija i informaciju o veli ini. Po�iljalac smije�ta poruku u dijeljenu memoriju i ona je odmah dostupna primaocu. tre a tehnika koristi programski interfejs aplikacije (API) koji upisuje ili ita direktno u adresni prostor procesa.

I/O Menad�er I/O menad�er je zadu�en za sisteme datoteka, drajvere ure aja i mre�ne drajvere. Ovaj modul vodi ra una o tome koji drajveri ure aja, filter drajveri i sistemi datoteka su u itani i tako e upravlja baferima za I/O zahtjeve.Koordiniran je sa VM menad�erom, kontroli�e ke� menad�er koji upravlja ke�iranjem itavog I/O sistema. Drajveri ure aja su grupisani u stekove (stack � zbog na ina na koji se dodaju za svaki ure aj pojedina no). I/O Menad�er konvertuje zahtjeve koje prima u standardnu formu nazvanu I/O paket zahtjeva (I/O request packet � IRP), zatim proslje uje IRP prvom drajver u steku. Obrada IRP-a se zavr�ava kada do e na zadnjem drajveru u steku. Model drajverskog steka je veoma fleksibilan. Kako se stek izgra uje razli iti drajveri imaju mogu nost da postanu dio steka kao filter drajveri. Oni sami imaju mogu nost da ispitaju i modifikuju svaku I/O operaciju (mauntovanje, particionisanje), npr. antivirus aplikacije koriste filter drajvere za detekciju virusa. Drajveri ure aja u Windows XP-u su napisani po WDM (Windows Driver Model) specifikaciji koja propisuje zahtjeve kao npr. Plug and Play, ta na logika za otkazivanje / deinstalaciju. Zbog strogih zahtjeva WDM ini se da je pisanje drajvera po toj specifikaciji prili no veliki posao. Na sre u to ne va�i zahvaljuju i modelu port/miniport. Sli ni ure aji (audio, SCSI i eternet kontroleri) dijele prost drajver koji se zove drajver porta i obezbje uje neke osnovne funkcije npr. ja ina zvuka. Mini port drajver se koristi za specifi ne funkcije ure aja (npr. 10-kanalni ekvilajzer u slu aju zvu ne kartice).

Menad�er ke�a

Page 99: Operativni_Sistemi

Operativni sistemi ______________________________________________________________________________

_____________________________________________________________________________________________________________ 98

Proces privremenog smije�tanja u posebnu oblast u memoriji prethodno kori� enih podataka radi lak�eg kasnijeg pristupa tim podacima se naziva ke�iranje (caching). U mnogim operativnim sistemima to je posao sistema datoteka. U Windows-u XP za to je zadu�en menad�er ke�a koji blisko sara uje sa VM menad�erom da bi obezbijedio ke�iranje za sve komponente pod kontrolom I/O menad�era. Sama koli ina ke�a se mijenja u zavisnosti od koli ine slobodne memorije u sistemu. Sjetimo se da je 2 GB adresnog prostora procesa rezervisano za sistem. VM Menad�er mo�e podijeliti najvi�e polovinu � 1 GB za sistemski ke�. Ke� je podijeljen u blokove od po 256 KB i svaki blok posjeduje oblast u memoriji koja se naziva VIEW datoteke (vidno polje). Svaki blok ke�a je opisan kontrolnim blokom virtuelne adrese (virtual adress control block � VACB) u kojem se uva virtuelna adresa i ofset datoteke kao i broj procesa koji koriste view.

Za svaku otvorenu datoteku ke�- menad�er obezbje uje poseban VACB indeksni niz koji opisuje ke�iranje za itav fajl. Ovaj niz ima po jedan unos za svakih 256 KB fajla tako da npr. fajl od 2 MB ima VACB indeksni niz od 8 unosa. Kada I/O menad�er primi zahtjev za itanje od strane neke datoteke iz korisni kog re�ima, on �alje IRP (I/O paket zahtjeva) drajverskom steku. Sistem datoteka potra�uje zahtijevane podatke menad�eru ke�a koji upore uje VACB indeksni niz te datoteke i 8-bitni ofset zahtjeva koja pokazuje na neko vidno polje u ke�u (view). Ukoliko nema tog polja menad�er ke�a mu dodeljuje blok i premje�ta tra�eno polje (view) u dodijeljeni mu blok. Posljednji korak je kopiranje podatka iz bloka u bafer podatke koja ih je tra�ila. Ako kopiranje izostane razlog za to je gre�ka na stanici (page fault) �to uzrokuje da VM menad�er �alje zahtjev za itanje I/O menad�eru. I/O menad�er �alje jo� jedan zahtjev steku ovaj put za operaciju strani enja, koja zaobilazi menad�er ke�a i u itava podatke iz fajla direktno na stranici dodijeljenu menad�eru ke�a. VACB se pode�ava da pokazuje na tu stranicu. Podaci koji su sada u ke�u kopiraju se u bafer datoteke potra�ioca. Na slici 5.su grafi ki prikazane prethodno opisane operacije.

Page 100: Operativni_Sistemi

Operativni sistemi ______________________________________________________________________________

_____________________________________________________________________________________________________________ 99

Slika 5. Zbog pobolj�avnja performansi menad�er ke�a pravi i uva istoriju zahtjeva za itanjem i iz nje poku�ava da predvidi budu e zahtjeve. Kada menad�er ke�a prona e �ablon u prethodna tri zahtjeva premje�ta podatke u ke� prije sljede eg. Na ovaj na in aplikacija pronalazi ke�irane tra�ene podatke i ne mora da eka I/O operaciju sa diskom. Zbog toga �to mre�ni sistem datoteka premje�ta podatke izme u diska i mre�nog intrefejsa, menad�er ke�a obezbje uje DMA (Direct Media Acess � direktni pristup medijumu) interfejs za direktno premje�tanje podataka. ime se izbjegava kopiranje kroz posredni bafer. Monitor bezbjednosti Kada proces zatra�i pristup objektu monitor bezbjednosti (SRM � Security reference monitor) provjerava sigurnosni dodatak procesa i listu za kontrolu pristupa objekta i na osnovu upore ivanja odbija ili dozvoljava pristup procesa objekta. SRM je tako e odgovoran za manipulaciju privilegijama u sigurnosnim dodacima. Posebne privilegije su potrebne korisnicima za operacije backup i restore na sistemu datoteka, izvo enje odre enih provjera kao sistem administrator itd. Po�to je SRM zadu�en za provjere pristupa onn snima ve inu pristupa kriti nim objektima u log datoteku doga aja vezanih za bezbjednost (security event log).

Plug And Play menad�er. Menad�er napajanja Windows XP koristi PnP menad�er da bi mogao da prepozna i prilagodi se promjenama hardverske konfiguracije. Da bi PnP mogao da radi i ure aj i drajver ure aji moraju podr�avati PnP standard. PnP menad�er automatski prepoznaje instalirane ure aje i detektuje promjene dok je sistem pod napajanjem. Tako e PnP menad�er vodi ra una o resursima koje koristi ure aj kao i o resursima koje bi mogao da koristi kao i o u itavanju odgovaraju ih drajvera. Ovaj na in upravljanja hardverskih resursima (primarno interaptima i I/O memorijskih opsezima) ima za cilj odre ivanje hardverske konfiguracije u kojoj svi ure aji mogu da rade bez problema. PnP menad�er funkcioni�e na sljede i na in: prvo dobija listu ure aja od svakog drajvera magistrale (PCI,USB); u itava instalirani drajver (ili ga instalira ako je potrebno) i �alje zahtjev «dodaj ure aj» (add-device) odgovaraju em drajveru ure aja. PnP dodeljuje resurse ure aju i �alje zahtjev «pokreni ure aj» (start-device) drajveru. Ako je potrebno izvr�iti rekonfiguraciju ure aja ure aja PnP menad�er �alje zahtjev querry-stop kojim pita drajver mo�e li privremeno isklju iti ure aj. Ako mo�e sve teku e operacije se zavr�avaju i vr�i se prevencija izvr�avanja novih. PnP menad�er �alje stop zahtjev da bi mogao rekonfigurisati ure aj sa novim «pokreni ure�aj» zahtjevom. PnP menad�er XP-a podr�ava i druge zahtjeve: querry-remove i surprise-remove. Prvi se koristi kada je korisnik spreman da izbaci pccard ure aj (npr.) i sli an je zahtjevu querry-stop. Surprise-remove (iznenadno uklanjanje) se koristi kod zakazivanja ure aja ili e� e kada korisnik ukloni (izbaci) ure aj prije zaustavljanja (npr. USB � diska bez disable-ovanja) Windows XP podr�ava sofisticirano upravljanje napajanjem. Cio sistem i posebni ure aji mogu se prebaciti u stanje niske potro�nje (standby ili sleep re�im) kada se ne koriste. Ve ina potro�nje

Page 101: Operativni_Sistemi

Operativni sistemi ______________________________________________________________________________

_____________________________________________________________________________________________________________ 100

je tada usmjerena na uvanje podataka u fizi koj memoriji (RAM-u). Sistem se mo�e vratiti u normalno stanje dolaskom paketa podataka preko mre�e, pozivom telefonske linije na koju je priklju en modem, otvaranjem laptopa ili pritiskom bilo kojeg dugmeta na tastauri ili pomjeranjem mi�a. Windows XP ima i opciju hibernacije (hibernation) kojom se sadr�aj RAM-a upisuje na disk i sistem se isklju uje. Podizanje sistema poslije hibernacije traje znatno kra e od procesa booting. Kada je procesor besposlen, Window XP prebacuje sistem u stanje ni�e potro�nje smanjivanjem procesorskog takta. Registry Windows XP uva veli inu informacija o konfiguraciji u bazi podataka koja se zove registry. Registry baza podataka se naziva hive (ko�nica) zbog strukture. Postoje odvojene «ko�nice» za informacije o sistemu, pode�avanja korisnika, instalaciju softvera i bezbjednost. Menad�er registry-ja je komponenta izvr�nog dijela. Svaki put kada se sistem uspje�no podigne snima hive kao poslednju poznatu ispravnu (last-known-good) konfiguraciju. Ako korisnik instalira softver (drajver) i tom konfiguracijom se ne mo�e podi i sistem korisnik to mo�e uraditi koriste i «posljednju poznatu ispravnu». XP ima i opciju system restore, koja periodi no snima konfiguracije u slu aju da se poslije neke izmjene sistem mo�e podi i ali ne radi kako treba.

Podizanje sistema (Booting)

Podizanje Windows XP-a po inje kada se uklju i napajanje i po ne izvr�enje BIOS-a iz ROM-a. BIOS identifikuje ure aj sa kojeg se vr�i podizanje sistema (booting device). U itava se NTLDR program iz root direktorijuma pomenutog ure aja (HDD-a,CD-a, FDD-a). NTLDR u itava kernel, HAL i sistemski hive iz registry-ja. Na kraju NTLDR po inje izvr�avanje kernela i utvr uje koji od boot ure aja sadr�i operativni sistem. Kernel inicijalizuje sistem i kreira 2 procesa. Sistemski proces sadr�i sve interne radne niti i nikad se ne izvr�ava u korisni kog re�imu. Prvi proces u korisni kom re�imu je SMSS koji vr�i dalju inicijalizaciju sistema uklju uju i formiranje datoteka za strani enje, u itavanje drajvera ure aja i kreiranje WINLOGON i CSRSS procesa (CSRSS � Win32 podsistem). XP optimizuje podizanje sistema koriste i �ablon pristupa pojedinim djelovima diska i preraspore uju i sistemske fajlove da bi se smanjio broj I/O operacija kod narednih podizanja sistema. Tako e, procesi potrebni za podizanje sistema se grupi�u u jedan proces. Ove novine drasti no smanjuju vrijeme za podizanje sistema. Me utim, mogu nost Windows-a sleep i posebno hibernacija u inili su vrijeme podizanja sistema mnogo manje bitnim nego �to je to nekada bilo.

Podsistemi okru�enja

Page 102: Operativni_Sistemi

Operativni sistemi ______________________________________________________________________________

_____________________________________________________________________________________________________________ 101

Podsistemi okru�enja su procesi u korisni kom re�imu. Nalaze se u sloju iznad izvr�nog dijela u XP-u i omogu avaju izvr�avanje programa napisanih za druge operativne sisteme (MS-DOS, 16-bitni Windows, POSIX). Windowss XP koristi Win32 kao glavni podsistem tako da on zapo inje sve procese. Kada se pokrene aplikacija Win32 poziva VM menad�era da u ita izvr�ni kod aplikacije. Ako se kod ne mo�e izvr�iti u Win32 podsistemu pokre e se odgovaraju i podsistem okru�enja kao proces u korisni kom re�imu. Aplikacije u razli itim podsistemima su me usobno izolovane tako da npr. Win32 aplikacija ne mo�e pristupiti POSIX podsistemu jer samo jedan podsistem mo�e biti pridru�en svakom procesu. Po�to se svaki podsistem izvr�ava u odvojenom procesu u korisni kom re�imu, gre�ka u jednom se ne odra�ava na drugi proces. Izuzetak je Win32 koji obezbje uje tastaturu, mi�a i grafi ke mogu nosti. Ako on «padne» potrebno je reboot-ovati sistem. Win32 dijeli aplikacije na grafi ke i karakterno orijentisane i transformi�e karaktere u grafi ku reprezentaciju u komadnom prozoru (MS-DOS ili POSIX aplikacije). MS-DOS okruženje DOS okru�enje u Windows XP-u je omogu eno zahvaljuju i Win32 aplikaciji koja se zove VDM (Virtual DOS Machine) koja radi kao proces u korisni kom re�imu. VDM posjeduje jedinicu za izvr�avanje i emulaciju Intel 486 instrukcija. Tako e su implementirani virtuelni drajveri ure aja za monitor, tastaturu i komunikacioni port. VDM se zasniva na MS-DOS 5.0 izvornom kodu i dodeljuje najmanje 620 KB memorije aplikaciji. Windows XP komandni shell je program koji kreira prozor koji li i na DOS okru�enje na 32-bitnim procesorima MS-DOS. Grafi ke aplikacije se izvr�avaju u full-screen re�imu a aplikacije na bazi karaktera u full-screen ili prozoru. Sve MS-DOS aplikacije se ne mogu izvr�avati pod VDM jer tu spadaju aplikacije koje pristupaju hardveru direktno. 16-bitno Windows okruženje Win16 aplikacije se u XP-u izvr�avaju zahvaljuju i VDM i dodatnom softveru koji se naziva WOW32 (za 16-bitne aplikacije). WOW32 obezbje uje rutine kernela, menad�era prozora i GDI (Graphical Device Interface) funkcije i tako e prevodi 16-bitne adrese u 32-bitne. Samo jedna Win16 aplikacija mo�e biti aktivna u XP-u zato �to Win16 aplikacije zauzimaju isti adresni prostor. Postoji relativno malo 16-bitnih aplikacija koje su potrebne korisnicima sa XP-om. Uprkos tome WOW32 okru�enje i dalje postoji iz razloga �to neke 32-bitne aplikacije ne mogu biti instalirane u XP-u bez njega. Win32 okruženje Glavni podsistemi u Windows-u XP je Win32 koji pokre e sve Win32 aplikacije i upravlja tastaturom, mi�em i monitorom pri emu je on projektovan kao izuzetno stabilan.

Page 103: Operativni_Sistemi

Operativni sistemi ______________________________________________________________________________

_____________________________________________________________________________________________________________ 102

Da bi se postigao visok nivo kompatibilnosti sa Windows 95/98 aplikacija Windows XP omogu uje korisniku da neke «zahtjevne» aplikacije za Win 95/98 pokrene u re�imu kompatibilnosti . Time se modifikuje Win32 API bolje aproksimira pona�anje koje se o ekuje od aplikacije na njoj odgovaraju em operativnom sistemu. Mane re�ima kompatibilnosti su slabije performanse i interoperabilnost sa drugim aplikacijama. POSIX podsistem POSIX podsistem namijenjen je izvr�avanju POSIX aplikacija i bazira se na UNIX modelu. POSIX aplikacije se mogu startovati od strane Win32 podsistema ili druge POSIX aplikacije i koriste server POSIX podsistema PSXSS.EXE, POSIX biblioteku dinami nih linkova PSXDLL.DLL i menad�er sesije na POSIX konzoli POSIX.EXE. POSIX aplikacije imaju pristup svakom sistemu datoteka na Windows XP sistemu. Windows XP obezbje uje znatno vi�i stepen kompatibilnosti sa UNIX aplikacijama nego u prethodnim verzijama NT-a. Proces prijavljivanja i sigurnosni podsistemi Prije nego korisnik stekne pravo pristupa objektima u Windows XP-u mora pro i provjeru sistema za prijavljivanje WINLOGON koji odgovara na sekvencu CTRL+ALT+DELETE sa tastature. Naziv sekvence je security atention i predvidjena je da sprije i aplikaciju da se pona�a kao «trojanski konj». Sama prijava korisnika zahtijeva korisni ko ime i njegovu lozinku, mada se alternativno mogu prijavljivati kori� enjem smart-card kartice i li nog identifikacionog broja. LSASS podsistem – Local Security Authority Subsystem LSAS je proces koji generi�e sigurnosne dodatke (tokens) koji predstavljaju korisnike na sistemu. Ovaj podsistem poziva paket za autentifikaciju da bi izvr�io identifikaciju koriste i informacije od podsistema za prijavljivanje ili mre�nog servera. Paket za autentifikaciu tra�i informaciju o accountu u lokalnoj bazi podataka i provjerava ta nost lozinke. Sigurnosni podsistem tada generi�e pristupni dodatak za korisnikov ID koji sadr�i odgovaraju e privilegije, limite kvote i grupni ID. Kad god korisnik poku�a da pristupi objektu u sistemu, pristupni dodatak se proslje uje do monitora za bezbjednost koji provjerava privilegije i kvote. Windows XP je naslijedio paket za autentifikaciju Kerberos od svog prethodnika Windows-a 2000.

NTFS fajl sistem MS-DOS sistemi su koristili FAT (file allocation table) fajl sistem. FAT (16-bitni) sistem je imao dosta nedostataka:

- internu fragmentaciju - limit od 2 GB - lo�u za�titu pristupa fajlovima.

Page 104: Operativni_Sistemi

Operativni sistemi ______________________________________________________________________________

_____________________________________________________________________________________________________________ 103

32-bitni FAT je donekle rije�io probleme limita i fragmentacije ali su njegove mogu nosti i dalje ograni ene u pore enju sa modernim fajl sistemima. NTFS sistem donosi nove mogu nosti:

- oporavak o�te enih podataka - bezbjednost - tolerancija prema gre�ci - podr�ka za velike datoteke - UNICODE imena datoteka - rasute datoteke - �ifrovanje - kompresiju

Windows XP nastavlja da koristi FAT16 za pristup flopi disketama i drugim prenosnim medijumima. XP podr�ava i dodatne sisteme datoteka za pristup CD i DVD medijumima. NTFS unutrašnji raspored Osnovna jedinica u NTFS fajl sistemu je volumen (zapremina, koli ina) i mo�e zauzimati dio, itav disk ili vi�e diskova. NTFS ne radi sa pojedina nim sektorima diska ve koristi klaster

(cluster) kao jedinicu alokacije diska. Klaster je broj sektora diska koji je eksponent od 2. Veli ina klastera kod formatiranja diska je jednaka veli ini sektora za volumen:

-do 1 GB � 512 B do 1 KB; -do 2 GB � 2KB; -preko 2 GB � 4KB.

Ove vrijednosti su po default-u tj. mogu se promijeniti. Primjer prednosti NTFS nad 16-bitnim FAT: ako imamo 16000 datoteka i disk od 1.6 GB kod FAT16 sistema bi e 400 MB izgubljenog prostora zbog interne fragmentacije a kod NTFS-a samo 17 MB. NTFS koristi logi ki broj klastera (LCN - Logical Cluster Number) kao adresu na disku i dodeljuje LCN redom od po etka ka kraju diska. Datoteka u NTFS-u je struktuiran objekat koji se sastoji od atributa, kao �to su ime datoteke, datum kreiranja i sigurnosni deskriptor koji slu�i za kontrolu pristupa. Svaka datoteka u NTFS sistemu je opisana sa jednim ili vi�e zapisa u niz koji se uva u posebnoj datoteci koja se zove glavna tabela datoteka ili skra eno MFT (Master File Table). Veli ina zapisa u MFT varira od 1 do 4 KB manji rezidentni atributi se uvaju u MFT a ve i nerezidentni kao neimenovani skup podataka u bliske oblasti na disku a pokaziva na svaku oblast se nelazi u MFT. Ako datoteka ima mnogo atributa ili je jako fragmentirana potrebno joj je vi�e pokaziva a i nije joj dovoljan jedan zapis u MFT. U tom slu aju datoteka se opisuje zapisom koji se zove osnovni zapis dadoteke koji sadr�i poziva e na preostale zapise u kojima su dodatni pokaziva i i atributi. Svaka dadoteka u NTFS-u ima jedinstven 64-bitni ID zvani reference koji se sastoji od 48-bitnog broja fajla i 16-bitnog broja sekvence. Broj sekvence se uve ava za 1 svaki put kada se koristi MFT. NTFS metapodaci – podaci o podacima

Page 105: Operativni_Sistemi

Operativni sistemi ______________________________________________________________________________

_____________________________________________________________________________________________________________ 104

Metapodaci o NTFS volumenima uvaju se u fajlovima. Prvi fajl je MFT. Drugi, koji se koristi za oporavak o�te enih podataka ako je MFT tako e o�te en sadr�i kopiju prvih 16 unosa u MFT. Ostale specijalne datoteke su:

- LOG datoteka - volume datoteka - tabela definicija atributa - osnovni direktorijum (root) - bitmap datoteka - boot datoteka - datoteka za lo�e klastere (bad cluster file)

U log datoteku se snimaju sve promjene metapodataka Volume datoteka sadr�i ime volumena, verziju NTFS sistema kojim je volumen formatiran i bit koji pokazuje da je volumen mo�da o�te en. Tabela definicija atributa prikazuje koji tipovi atributa su kori� eni u volumenu i koje operacije se mogu izvesti nad njima. Osnovni direktorijum je direktorijum najvi�eg nivoa u hijerarhiji sistema datoteka. U bitmar datoteci se uvaju podaci o zauzetim i slobodnim klasterima na volumenu. Boot datoteka sadr�i kod za podizanje Windows-a XP i mora biti locirana na posebnoj adresi na disku da bi je BIOS lako prona�ao pri podizanju sistema. Boot datoteka tako e sadr�i i fizi ku adresu MFT. Datoteka za lo�e klastere vodi ra una o o�te enim oblastima na volumenu. NTFS koristi ovu datoteku za ispravljanje gre�aka. Oporavak poslije grešaka – NTFS log datoteka U mnogim jedostavnim sistemima datoteka nestanak napona u pogre�no vrijeme mo�e zna ajno da o�teti strukture podataka sistema datoteka. U NTFS-u prije nego �to do e do izmjene strukture podataka pravi se log zapis koji sadr�i undo i redo informacije. Poslije pada sistema strukture podataka sistema datoteka se mogu oporaviti obradom log datoteke ime se ne garantuje oporavak sadr�aja korisnikovih datoteka. Metapodaci ostaju neo�te eni tako �to se vra aju u stanje prije pada sistema. Kada se slobodan prostor u log datoteci pribli�i kriti nom nivou, NTFS zaustavlja sve I/O operacije i teku e upisivanje u datoteku, resetuje je i nastavlja prekinuti upis. Bezbjednost NTFS volumena poti e od objektne orijentisanosti Windows-a XP. Svaka NTFS datoteka je snabdjevena bezbjedonosnim deskriptorom koji sadr�i sigurnosni dodatak vlasnika datoteke i listu kontrole pristupa. Za upravljanje volumenom i toleranciju na gre�ke odgovoran je FtDisk. FtDisk je drajver diska «otporan na gre�ke». Obezbje uje nekoliko kombinacija vi�e diskova u jedan volume i time pobolj�anja performansi, kapaciteta i pouzdanosti. Set volumena predstavlja vi�e diskova povezanih tako da formiraju veliki logi ki volumen (slika 6.) sadr�i najvi�e 32 particije i mo�e se pro�irivati dodatnim diskovima bez mijenjanja sistema datoteka. Bitmap metapodaci se jednostavno pro�iruju da bi pokrili novonastali prostor.

Page 106: Operativni_Sistemi

Operativni sistemi ______________________________________________________________________________

_____________________________________________________________________________________________________________ 105

Slika 5.

Trakasti (stripe) set je prikazan na slici broj 7. Ova �ema se zove jo� i RAID nivoa O. FtDisk uzima veli inu trake od 64 KB. Prvih 64 KB logi kih volumena se nalaye na prvoj fizi koj particiji, sljede ih 64 KB na drugoj itd. Ovakav raspored doprinosi pobolj�anju I/O propusnog opsega zbog toga �to se podaci prenose paralelno.

Slika 7

Trakasti set sa parno� u je prikazan na slici 8. � ova �ema se zove jo� i RAID nivoa 5. Ako trakasti set ima 8 diskova, za svakih sedam «traka» podataka na sedam odvojenih diskova dolazi po jedna traka parnosti na osmom disku. Ako je bilo koja od ovih osam traka uni�tena ili o�te ena mo�e rekonstruisati podatke izra unavanjem funkcije EX � ILI od preostalih sedam. Ukoliko se sve trake parnosti nalaze na jednom disku na njemu bi se izvr�avalo sedam puta vi�e I/O operacija nego na ostalim diskovima. Da bi se izbjeglo ovo «usko grlo» trake parnosti se raspore uju na sve diskove na na in prikazan na slici. Da bi se napravio trakasti set sa parno� u potrebne su minimum 3 particije iste veli ine raspore ene na tri posebna diska.

Page 107: Operativni_Sistemi

Operativni sistemi ______________________________________________________________________________

_____________________________________________________________________________________________________________ 106

Slika 8

Ogledanje diskova. Set ogledala. RAID i duplex setovi Ogledanje diskova ili RAID nivoa 1 je predstavljeno na slici 9. Sastoji se od dvije particije iste veli ine na dva diska takvih da im je sadr�aj podataka identi an. Kada aplikacija zapisuje podatke u set ogledala, FtDisk ih zapisuje na obje particije. Ako jedna particija zaka�e FtDisk ima njenu kopiju na ogledalu. Ova �ema pobolj�ava i performanse zato �to se zahtjevi za itanje dijele izme u dva ogledala. Da bi se za�titili od otkaza kontrolera diska oba diska se priklju uju na posebne kontrolere (dupleks set).

Slika 9.

Rezervni sektori i remapiranje klastera

Page 108: Operativni_Sistemi

Operativni sistemi ______________________________________________________________________________

_____________________________________________________________________________________________________________ 107

Kada se disk formatira kreira se mapa brojeva logi kih blokova za ispravne sektore na disku. Tehnikom rezervnih sektora, kako joj ime ka�e, ostavlja se odre eni broj sektora nemapiran kao rezerva. Ako se sektor o�teti FtDisk daje instrukciju disku da ga zamijeni rezervnim. Ova tehnika se zasniva na hardverskim mogu nostima i podr�ava je ve ina diskova. Remapiranje klastera je softverska tehnika koju izvodi sistem datoteka. Ako se oblast na disku o�teti, NTFS je zamjenjuje drugom, promjenom pokaziva a u MFT ozna ava tu oblast neupotrebljivom da ubudu e ne bi bila dodijeljena nekom fajlu. Kombinovanjem gornjih tehnika sa �emama tolerantnim na gre�ke (ogledala, trakasti setovi) posti�e se visoka pouzdanost. Kompresija i šifrovanje podataka Da bi kompresovao fajl NTFS ga dijeli na jedinice kompresije koje predstavljaju blokove od 16 susjednih klastera. Kada se zapi�e svaka jedinica kompresije primjenjuje se algoritam za kompresiju. Ako rezultat stane u manje od 16 klastera, rezultat kompresije se snima. Da bi se pobolj�ale performanse kod itanja NTFS dekompresuje podatke i prije nego �to aplikacija uputi zahtjev za itanje odre enog dijela diska koriste i tehniku predvi anja. NTFS koristi jo� jednu tehniku za u�tedu memorijskog prostora kod fajlova koji sadr�e dosta logi kih nula. Klasteri koji sadr e sve nule se ne snimaju na disk, a u MFT tj. u sekvencu brojeva virtuelnih klastera ostavljaju se praznine. Kod itanja takvih datoteka NTFS popunjava nulama odgovaraju e djelove bafera tra�ioca. U NTFS sistemu mogu se �ifrovati datoteke i cijeli direktorijumi. Bezbjedonosni sistem upravlja �iframa i obezbje uje oporavak kod gubljenja �ifre. Mount point je tip simboli kog linka specifi an za direktorijume pod NTFS-om. Obezbje uje fleksibilniji na in organizovanja disk volumena nego jednostavno dodeljivanje slovnih oznaka. Dnevnik promjena opisuje sve promjene izvr�ene u sistemu datoteka. Servis za replikaciju datoteka koristi dnevnik promjena za identifikaciju datoteka koje treba replicirati kroz mre�u. Kopija «sjenke» volumena (volume shadow copies) je mogu nost Windows-a XP da povrati volumen u poznato stanje i da tada kreira shadow kopiju koja se mo�e iskoristiti za bekap (backup). Serverska verzija XP-a koristi shadow kopije za uvanje starijih verzija datoteka na serveru. Ovo omogu ava korisnicima da pregledaju dokumente uskladi�tene na serveru kakvi su bili ranije, prije odre enih izmjena. Tako e se ova mogu nost mo�e iskoristiti za oporavak slu ajno izbrisanih ili ne�eljeno izmijenjenih datoteka bez potrebe za bekap diskom.

Page 109: Operativni_Sistemi

Operativni sistemi ______________________________________________________________________________

_____________________________________________________________________________________________________________ 108

DODATAK 2: Linux

Ova skripta je namijenjena da slu�i kao pomagalo za poha anje kursa linux-a. Nedovoljna je za samostalno u enje linux-a i slu�i samo kao podsjetnik na najva�nije pojmove sa kursa.

Linux Linux predstavlja modifikovani klon operativnog sistema koji je za�ti en imenom UNIX. Unix je ime proizvoda za�ti eno od strane Bell lab i AT&T korporacija. Linux je pokrenuo Finac, tada student Linus Torvalds. Linux izvorni kod, nadalje (source), mo�e se slobodno na i na internetu i spada u open � source projekte. Zna i taj software mo�e biti slobodno distribuiran, mijenjan, dora ivan. Unix je multiuser multitasking operativni sistem visokih performansi i sigurnosti, ali nepristupa niji korisnicima. Za razliku od drugih operativnih sistema Unix je zami�ljen i izveden tako da predstavlja skup kvalitetnih programa koji izvr�avaju samo jednu stvar, ali je izvr�avaju pouzdano i brzo i lako ih je kombinovati. Kombinovanje ovih kockica je jednostavno i veoma korisno iz razloga �to programer esto nema potrebe da pi�e gomilu programa, ve samo da iskoristi gotove visoko izoptimizirane programe, i dovoljno je da napi�e program koji njima upravlja i povezuje ih. Visoke performanse su rezultat velike iskori� enosti hardware-a. Postoji vi�e Unix proizvoda i to Solaris (Sun), IRIX (SGI), AIX (IBM), SCO UNIX, Linux, OSF (DEC), besplatna BSD familija (free, net, open)... UNIX-i postoje gotovo za sve platforme, od ru nih palm top, preko PC-a, Mac-ova, grafi kih radnih stanica, raznih malih servera do mane frame ra unara, �to omogu uje lako preno�enje programa sa platforme na platformu bez ikakvih izmjena u izvornom kodu. Linux je klon Unix-a koji se besplatno mo�e nabaviti i to u vi�e distribucija (zbirki razli itih autora). Linux je jedan od retkih sistema koji je do�iveo veliki uspeh i popularnost kao alternativa skupim i nedovoljno stabilnim sistemima. Kod Linux-ovog jezgra (kernel) je dostupan (open source) i izdat pod op�tom javnom licencom koja se ozna ava kao GPL (General Public License). Naziv �Linux� se odnosi samo na kernel (core) operativnog sistema. Kernel predstavlja softver koji upravlja pristupom korisni kih programa hardverskim i softverskim resursima. Sami programi koji se koriste na linux sistemima su proizvod GNU (GNU is Not Unix) i drugih nezavisnih open source projekata. Zajedno sa Linux kernelom ti programi ine GNU/Linux operativni sistem. Postojanje vi�e razli itih kolekcija Linux kernela i programskih alata (naj e� e GNU) rezultovalo je nastankom velikog broja razli itih operativnih sistema koji se nazivaju GNU/Linux Distribucije. Primjeri Linux distribucija su: Red Hat Linux, SuSE, Mandrake, Debian GNU/Linux, Knoppix, Slackware itd... Sve ove distribucije su vi�e � manje sli ne, a zajedni ko im je to da sve imaju Linux kernel i razli ite skupove Linux programa. Neke distribucije imaju akcenat na grafi kom okru�enju, druge na boljoj konfiguracionoj strukturi, tre i na alatima koji su uklju eni u samu distribuciju.. GNU/Linux je multitasking, vi�ekorisni ki 32-bitni operativni sistem, prvobitno zami�ljen samo za Intel x86 arhitekturu. Iskoristiv�i besplatno dostupan izvorni kod, veliki broj programera odlu io je da prilagodi Linux i ostalim arhitekturama. Sada Linux radi na Motorolinim 68x00 procesorima, PowerPC i DEC Alpha procesorima i Sun-ovim Sparc procesorima. Razlikuju se stabilne i razvojne verzije Linux kernela. Aktuelna stabilna verzija kernela je 2.6. Nova izdanja stabilnih verzija pojavljuju se zbog ispravljenih gre�aka (bug-ova) ali glavni algoritam i struktura podataka ostaju nepromenjeni.

Page 110: Operativni_Sistemi

Operativni sistemi ______________________________________________________________________________

_____________________________________________________________________________________________________________ 109

Moderni operativni sistemi smanjuju direktnu interakciju sa hardverskim komponentama. Struktura Linux kernela je monolitna tj. jezgro je integrisano u jedinstven program koji se izvr�ava u kernel modu (slika). Me utim, mikrokernel arhitektura je osnov razvoja savremenih operativnih sistema, iako su takvi operativni sistemi generalno sporiji od monolitnih. S druge strane mikrokernel operativni sistemi zahtevaju vrlo mali skup funkcija od samog kernela �to im daje odre ene prednosti nad monolitnim.

Grafi ki prikaz arhitektire Linux-a Da bi mu se smanjila veli ina, bez degradacije performansi, kernel Linuxa se sastoji od modula. Modul je objektni fajl iji kod mo�e biti priklju en kernelu u vreme izvr�avanja (runtime). Izborom potrebnih modula korisnik uti e na veli inu Linux kernela. Modul, za razliku od eksternih objekata mikrokernel operativnih sistema, ne radi kao poseban proces ve se izvr�ava u kernel modu, kao bilo koja druga stati ki vezana funkcija kernela. Kao posledica osobine otvorenosti GNU/Linux operativnih sistema, drajveri i softverski alati koji pru�aju podr�ku novim tehnologijama i raznom hardveru su javno dostupni i brzo se razvijaju.

Naredbe Linux-a

Osnove kori� enja Linux-a (Unix) U ovoj skripti su opisane samo osnove kori� enja komandi. Za vi�e informacija koristite �man� komandu.

o Nalozi

Page 111: Operativni_Sistemi

Operativni sistemi ______________________________________________________________________________

_____________________________________________________________________________________________________________ 110

Unix je multiuser operativni sistem i prava korisnika se ure uju putem korisni kih naloga, pa stoga, da bi se i�ta radilo na Unix-u treba imati korisni ki nalog. Postoje dvije op�te kategorije naloga obi ni i administratorski. Kroz obi ne naloge korisnik ima pristup samo resursima koji su mu dodijeljeni od strane administratora, dok administrator ima pristup svim resursima, �to zna i da mo�e da ita svaku datoteku, koristi svaki hardverski ure aj, mijenja konfiguraciju sistema... Svaki korisni ki nalog ima unikatni USERNAME i PASSWORD. USERNAME je ime pod kojim se korisnik loguje na sistem, a PASSWORD je tajna rije koju bi trebalo samo korisnik da zna i koja mu slu�i da ostali ne mogu da se prijavljuju na sistem pod njegovim nalogom. PASSWORD treba da bude rije koja se te�ko poga a, mje�avina slova, brojeva i dozvoljene interpunkcije, i trebala bi da bude periodi no mijenjana, �to e� e, to bolje.

o Logovanje Po etak rada po inje logovanjem na sistem (prijavljivanjem). To zna i da u odgovaraju a mjesta na terminalu unesete svoje identifikacione podatke (username i password). Ako se logujete preko konzule, ona bi ekran za unos username-a i password-a bio ne�to sli no ovom:

login: Kada ukucate username i pritisnete <Enter>, onda e vam se pojaviti ''Password:'', i tada unesete password koji se ne e vidjeti i tako e pritisnete <Enter>. Ako ste unijeli ispravno username i password, onda idete dalje i uba eni ste na sistem, ime je logovanje zavr�eno i nalazite se u svom login shell-u.

o Shell-ovi Da biste komunicirali sa operativnim sistemom potrebno je da postoji neki set definisanih komandi, definisano radno okru�enje, a to u stvari omogu uju shell-ovi. Shell-su interfejsi izme u korisnika i operativnog sistema (koji dalje upravlja hardware-om). Shell se po logovanju pokre e i eka korisnikove komande. Da bi korisnik znao da je shell spreman, shell izbacuje ��prompt�� na terminal. To je odre eni niz simbola koji naj e� e izgleda ovako: [user@comp ~]$ gdje user predstavlja username korisnika, a comp ime ra unara na kome radi. ~ obavje�tava da se nalazimo u ��home�� direktorijumu. Svakom korisniku se dodjeljuje jedan direktorijum na file szstem-u, koji e biti samo njemu na raspolaganju i to je home direktorijum. Kada se korisnik uloguije na sistem, rad po inje ba� u korisnikovom home direktorijumu.

o Pokretanje programa Program pokre ete jednostavnim ukucavanjem imena programa i pritiskom <Enter> dugmeta kada je shell spreman za primanje komandi. Na pr. komanda ��date�� ispisuje sistemsko vrijeme i datum:

Page 112: Operativni_Sistemi

Operativni sistemi ______________________________________________________________________________

_____________________________________________________________________________________________________________ 111

[user@comp ~]$ date Fri Nov 17 16:06:05 CET 2000 [user@comp ~]$ U daljnjem tekstu ne emo ponavljati da na kraju uno�enja imena komande ili programa treba pritisnuti <Enter>. Po zavr�etku programa vra a se ponovo u shell i on eka dalje na�e komande. Nave� emo jo� jedan primjer, a to je komanda ��clear�� koja bri�e ekran.

o On-line pomo (man) Za svaku komandu postoji help i ona se dobija komandom ��man�� koja se koristi ovako: Man [# poglavlja] [druge opcije] <ime komande> Za opis sintakse emo koristiti Bakusovu notaciju koja se tuma i ovako: Sve �to je izme u karaktera [ i ] je neobavezno a | b ozna ava ili a ili b sve izme u < i > je obavezan parametar sve bez <>, [ ] je ime komande. Zna i, da bismo otkucali otkucali help za komandu ��date�� kucamo ��man date�� Iz man-a se izlazi pritiskom na slovo ��q��. Man-om se ide gore � dolje po stranici sa PageUp/PageDown tasterima na tastaturi, dolje po stranu sa <space> tasterom, ili gore � dolje po red, kursorskim tasterima.

Osnovne naredbe Linux-a

pwd � informacija o teku em direktorijumu cd adresa.direktorijuma � promjena teku eg direkt. ls [-a l R] � prikaz sadr�aja direktorijuma

*d, b, c, l, s, p, - rwx rwx rwx broj vlasnik grupa veli ina datum ime

mkdir � kreiranje dir. rmdir � brisanje praznih dir. find - pronala�enje fajlova ili dir. df � prikazuje atribute svih fajl sistema file � odre uje �prirodu� fajla chmod, chgrp, chown � promjene prava, gr. i vlasn. umask � definisanje �default� prava vlasnika 777-br login - logovanje telnet ime.hosta � terminalsko povezivanje na host passwd username � promjena �ifre exit - odjavljivanje which naredba � odre ivanje lokacije naredbe

Page 113: Operativni_Sistemi

Operativni sistemi ______________________________________________________________________________

_____________________________________________________________________________________________________________ 112

man naredba �sadr�aj UNIX-ovog priru nika o toj naredbi touch ime.fajla � enja vrijeme pristupa ili ga kreira rm ime.fajla � brisanje mv � premje�tranje ili promjena imena cp - kopiranje cat � prikaz sadr�aja ili kreiranje ln � kreiranje linka (-s soft link) more - prikaz sadr�aja ekran po ekran vi ime.fajla - editor grep � pretra�ivanje fajlova lp � �tampanje fajlova lpstat � prikaz statusa �tampa a cancel � otkazivanje �tampe koja je na ekanju compress ime.fajla� kompresija fajlova uncompres ime.fajla� raspakivanje fajlova cpio � kopiranje sa i na ure aje za arhiviranje date � prikaz i pode�avanje datuma i vremena env � prikaz teku eg okru�enja stty- prikaz statusa terminala uname � informacije o operativnom sistemu vmstat � informacije o procesima, memoriji, CPU, ...

D�oker znaci

* - zamenjuje svaki string (i prazan) ? - zamenjuje svaki karakter [...] - zamenjuje svaki od karaktera u zagradama (mo�e se pisati i [a-d],

�to zna i "a,b,c, ili d") [^...] - zamenjuje svaki znak osim karaktera u zagradama (mo�e se pisati i

[^a-d], �to zna i "sve osim a,b,c, ili d") Za�tita fajlova i direktorijuma: Prava: - itanja (r), - upisivanja ili mijenjanja (w) i - izvr�avanja ili prolaska kroz direktorijum (x) Korisnici se svrstavaju u tri kategorije: - vlasnik fajla ili direktorijuma (u), - grupa kojoj fajl pripada (g) i - svi ostali (o). % ls -al total 72676 drwx--x--- 11 pera user 1024 Aug 24 15:12 .

Page 114: Operativni_Sistemi

Operativni sistemi ______________________________________________________________________________

_____________________________________________________________________________________________________________ 113

drwxr-xr-x 18 root sys 512 Aug 23 20:12 .. -r-------- 1 pera user 15 Aug 22 19:11 .rhosts -rw------- 1 pera user 44 Aug 22 19:11 .Sgiresources -rw------- 1 pera user 0 Aug 22 19:11 .Xauthority drwxr-xr-x 5 pera user 512 Aug 22 19:11 .desktop-Afrodita -------rw- 1 pera user 80 Aug 22 19:11 x.c Promjena prava pristupa:

chmod grupe promena prava Gde su:

grupe - "u" za vlasnika, "g" za grupu, "o" za ostale, "a" za sve (uklju uju i i vlasnika i grupu)

promjena - "+" dodaje pravo, "-" oduzima pravo, "=" dodeljuje pravo

prava - "r" za itanje, "w" za upis/menjanje, "x" za izvr�avanje ili prolaz (u slu aju direktorijuma)

% chmod ug+w dat - vlasniku i grupi se dozvoljava modifikacija datoteke "dat" i zadr�avaju se ostala prava

% chmod u=r dat - vlasniku se dozvoljava samo itanje datoteke "dat" dok se ostalima ukidaju sva prava

Postavljanje podrazumijevanih prava vlasnika umask maska � gdje su podrazumijevana prava = 777 � maska (dirktorijum) 666 � maska (fajlov) VI EDITOR Vi (visual)je standardni ekranski editor na UNIX-u (Linux-u). Sintaksa njegovog pozivanja je: % vi [opcije] imefajla

-r - oporavak u slu aju nasilnog prekida poslednje sesije sa "vi" -wn - n je vroj redova teksta na ekranu +R - "read-only"

"Vi" editor radi u tekst modu i komandnom modu. U komandnom modu se otkucani znaci interpretiraju kao komande, dok se u u tekst modu one unose u editovani tekst. Pomo u <Esc> tastera prelazi se iz tekst moda u komandni. Komande za pomjeranje kursora:

<left>, "h", ili <Backspace> - kursor ulevo <right>, "l," ili <Space> - kursor udesno <down>, "j", ili <Enter> - kursor nani�e <up>, "k", ili "-" - kursor navi�e

Page 115: Operativni_Sistemi

Operativni sistemi ______________________________________________________________________________

_____________________________________________________________________________________________________________ 114

"w" - kursor na prvo slovo slede e re i "e" - kursor na poslednje slovo slede e re i "b" - kursor na po etno slovo prethodne re i "(" - po etak teku e re enice ")" - po etak slede e re enice "{" - po etak teku eg paragrafa "}" - po etak slede eg paragrafa "G" - pomeranje na poslednji red datoteke, ukoliko je

otkucano nG, na n-ti red. Npr. 1G za odlazak na po etak datoteke

"0" - po etak reda "^" - prvi znak reda koji nije belina "$" - poslednji znak reda "f"x - udesno do znaka x "F"x - ulevo do znaka x "t"x - udesno do znaka pre x "T"x - ulevo do znaka iza x ";" - ponavlja "f", "F", "t", "T" u istom smeru "," - ponavlja "f", "F", "t", "T" u suprotnom smeru "H" - po etak prvog reda ekrana "M" - po etak srednjeg reda ekrana "L" - po etak poslednjeg reda ekrana <Ctrl-F> - slede i ekran <Ctrl-D> - pola ekrana unapred <Ctrl-B> - prethodni ekran <Ctrl-U> - pola ekrana unazad

Pretra�ivanje: "/"izraz - nala�enje prve slede e pojave regularnog izraza

Dodavanje i promjena teksta: Slede im naredbama (osim naredbe "r") se prelazi u tekst mod. Iz tekst moda se izlazi pomo u <Esc> tastera.

"a" - dodavanje iza kursora "A" - dodavanje na kraju reda "i" - dodavanje ispod kursora "I" - dodavanje na po etku reda (posle svih "belih" znakova) "o" - u novom redu koji se ume e ispod trenutno aktivnog reda "O" - u novom redu koji se ume e iznad trenutno aktivnog reda "R" - zamenjuje stari tekst novim, znak po znak (tzv. "Replace mode")

Uklanjanje teksta i kopiranje teksta u bafer: "x" - uklanja znak ispod kursora "X" - uklanja znak levo od kursora "d"x - uklanja tekst od teku e pozicije do pozicije x.

x ozna ava naredbu pozicioniranja i mo�e biti npr: "d" (teku a linija),

Page 116: Operativni_Sistemi

Operativni sistemi ______________________________________________________________________________

_____________________________________________________________________________________________________________ 115

"{" (do po etak paragrafa), "G" (do kraja datoteke), "$" (do kraja reda) ili "`b" (do markera "b")

"D" - uklanja tekst od kursora do kraja reda (skra enica za naredbu "d$") "y"x - kopira tekst u bafer od teku e pozicije do pozicije x.

x ozna ava naredbu pozicioniranja i mo�e biti npr: "y" (teku a linija), "}" (do kraja paragrafa), "0" (do kraja reda) ili "`a" (do markera "a")

"Y" - kopira tekst teku eg reda u bafer Pomjeranje teksta:

"p" - preme�ta prethodno sme�teni tekst u bafer (jednom od naredbi: d, D, x, X, y, Y) u red ispod teku eg ili desno od kursora (ako je samo deo reda uklonjen)

"P" - preme�ta prethodno sme�teni tekst u bafer (jednom od naredbi: d, D, x, X, y, Y) u red ispod teku eg ili levo od kursora (ako je samo deo reda uklonjen)

Zavr�etak rada (izlaz iz editora):

"ZZ" - snimanje i izlazak Tako e je mogu e zavr�iti sa radom i iz "ex" dela "vi" editora (u koji se prelazi sa :):

":w" - snimanje ":q" - izlazak (ukoliko tekst nije snimljen,

ispisuje se upozorenje (znak ?),kada se mo�e ponoviti "q" ili izvesti snimanje sa "w"

":q!" - izlaz u kome se poni�tavaju izmene (ako su bile) ":x" ili ":wq" - snimanje i izlazak

Kori� enje "shell script"-a: "Shell" mo�e startovati naredbe navedene u fajlu, to su takozvani "shell script"-ovi. Da bi fajl bio "shell script" mora da: - ima dozvolu za izvr�avanje i - da je pisana u jeziku tog "shell-a" (npr "sh", "csh", "tcsh") Dakle procedura za kreiranje "shell script"-e proc je:

% vi proc - pravljenje script-a u editoru "vi"

% chmod u+x proc - dodeljuje pravo izvr�avanja "proc" vlasniku % proc - startovanje proc

Linkovanje fajlova Linkovanje je u stvari dodeljivanje vi�e imena istom fajlu, odnosno pristupa iz vi�e direktorijuma. Dobija se u�teda prostora i obeze ena je jedinstvenost sadr�aja fajlova. Postoje "hard link"-ovi i "soft link"-ovi (simboli ki linkovi). - U slu aju "hard link"-a, fajlu se pridru�uje drugo ime (unutar istog "file" sistema). Fajl se fizi ki bri�e kad se obri�e poslednji "hard link" na njega (oni se �broje�).

Page 117: Operativni_Sistemi

Operativni sistemi ______________________________________________________________________________

_____________________________________________________________________________________________________________ 116

- Simboli ki linkovi su fleksibilniji i omogu uju da postoji samo ukaz na drugo simboli ko ime, te ukazana datoteka fizi ki ne mora da postoji (kao shortcut). Brisanje simboli kog linka ne uti e na fajl ve se samo bri�e "ukaz" iz direktorijuma. Tako e je simboli kim linkom mogu e vr�iti ukaz i na datoteku u drugom "file" sistemu za razliku od "hard link"-a koji to ne omogu uje. Primjeri:

% ln dat1 dir\dat2 - "dat1" je postoje i fajl i na nju se linkuje (povezuje) "dat2" u direktorijumu "dir"

% ln -s f1 f2 - simboli ko linkovanje za fajl "f1" u fajl "f2" Pristup i mountovanje file sistema: mount -t iso9660 /dev/cdrom /mnt/cdrom - mountovanje cdrom-a i imenovanje imenom cdrom pod /mount direktorijem mount -t msdos /dev/hdd /mnt/ddrive -mountovanje hard diska d kao msdos file i imenovanje imenom ddrive pod /mnt direktorijem. mount -t vfat /dev/hda1 /mnt/cdrive -mountovanje hard diska kao VFAT file sistem i imenovanje imenom cdrive pod /mnt direktorijem. umount /mnt/cdrom -demountovanje cdrom-a eject -demountovanje i vadjenje cdrom-a Formatiranje i kori� enje diskete: - fdformat /dev/fd0h1440 -formatiranje standardne diskete od 1,44 MB - mkfs -t ext3 /dev/fd0h1440 -kreiranje fajl sistema na formatiranoj disketi (Linux FS) - mount /dev/fd0h1440 /mnt/floppy -formatiranje standardne diskete od 1,44 MB /etc/fstab - fajl koji sadr�i podatke o automatskom mountovanju Prostor na diskovima Izve�taj o slobodnom prostoru na diskovima sistema (tako da se vrednosti dobijaju u kilobajtima) i o broju slobodnih i-node-a (svaki fajl zauzima jedan i-node ) dobija se sa: % df -k Izve�taj o prostoru zauzetom u podstablu direktorijuma

% du - za teku i direktorijum

% du /tmp - za direktorijum "/tmp" % du bin - za poddirektorijum "bin"

Promjena korisni kog ID-a

Page 118: Operativni_Sistemi

Operativni sistemi ______________________________________________________________________________

_____________________________________________________________________________________________________________ 117

su username � promjena korisni kog naloga, ako je samo su - � super-user nalog Kreiranje i brisanje korisni kih naloga adduser � pokretanje procedure za kreiranje novog naloga (mo�e samo root) /etc/passwd - mo�e svak da ga ita i ne sadr�i password-e(x), ve username, ID, grupni ID, finger informacije, home direktorijum i pripadaju i shell /etc/shadow - mo�e samo root da mu pristupi i sadr�i kriptovane password-e /etc/group - spisak grup-a i pripadnost njima userdel [-r] username � brisanje korsni kog naloga [i njegovih fajlova] (mo�e samo root) Kreiranje i brisanje korisni kih grupa groupadd groupname � kreuranje korisni ke grupe groupname (mo�e samo root) /etc/group - spisak grupa i pripadnost njima /etc/gshadow - bezbjedonosne informacije o grupama groupdel groupname � brisanje prazne grupe groupname (mo�e samo root) Promjena vlasni�tva nad fajlovima - chown [-R] novi_vlasnik:nova_grupa fajl � promjena vlasni�tva i grupe nad fajlovima Promjena grupe nad fajlovima - chgrp [-R] nova_grupa fajl � promjena vlasni�tva i grupe nad fajlovima SAMO root (superuser) mo�e mijenjati vlasni�tvo i grupe Komprimovanje fajlova - gzip [-r] ime_fajla - komprimovanje fajla pomo u gzip-a - gunzip ime_fajla.gz - dekomprimovanje fajla pomo u gzip-a - bzip2 [-r] ime_fajla - komprimovanje fajla pomo u bzip2-a - bunzip2 ime_fajla.bz2 - dekomprimovanje fajla pomo u bzip2-a - zip [-r] ime_zip_fajla.zip ime_fajla - komprimovanje fajla pomo u zip-a - unzip ime_zip_fajla.zip - dekomprimovanje fajla pomo u unzip-a Arhiviranje fajlova - tar [-cvf] ime_arhive ime_fajla - arhiviranje fajla pomo u tar-a - tar [-xvf] ime_arhive - dearhiviranje fajla pomo u tar-a Procesi: 1. Interaktivni � procesi koji se odvijaju uz aktivno u e� e korisnika 2. Batch � procesi pokrenuti od strane neke skripte ili batch procedure 3. Daemon � sistemski procesi koji se mogu i sami startovati (cron) Proces init ima PID 1 i on je �otac� svih procesa

Page 119: Operativni_Sistemi

Operativni sistemi ______________________________________________________________________________

_____________________________________________________________________________________________________________ 118

Provjera statusa procesa: % ps st30@PCBozo:~$ ps PID TTY TIME CMD 594 pts/1 00:00:00 bash 633 pts/1 00:00:00 ps Zna enja pojedinih podataka su:

PID - identifikacija procesa

TTY - dodeljeni terminal TIME - vreme posve eno procesu od kad je kucano ps CMD - naredba koja je startovala proces

Opcija ps -e daje informacije o svim procesima, a ne samo o onim koji su dodijeljeni korisniku. Korisnik mo�e pokrenuti vi�e procesa. Oni mogu biti: - "foreground" (interaktivni) ili - "background" (u pozadini). "Foreground" procesi, na�alost, nemaju vi�i prioritet od "background" proces. Kori� enje pozadinskih procesa:

% komanda & - startovanje procesa (programa "komanda") u "background"-u

<Ctrl+Z> - "suspend" interaktivnog (tj. "foreground") procesa % bg - "resume" suspendovanog procesa i prebacivanje u

"background" % fg - "resume" suspendovanog procesa i prebacivanje u

"foreground"

Prekidanje ("ubijanje") procesa, i slanje signala: % kill 712 - �alje SIGTERM signal procesu sa PID-om 712, �to obi no

uzrokuje njegovim prevremenim zavr�etkom ako ne hvata ili ignori�e taj signal

% kill -9 712 - �alje SIGKILL signal procesu sa PID-om 712 �to uvek uzrokuje njegovim prevremenim zavr�etkom jer se ovaj signal ne mo�e uhvatiti ili ignorisati

% killall ime Dierktorijum /etc/rc.d Fajlovi za inicijalizaciju sistema nalaze se u ovom direktorijumu. Postoje:

- sistem startup fajlovi, - runlevels fajlovi, - fajlovi za inicijalizaciju mre�e i - fajlovi za System V kompatibilnost.

Page 120: Operativni_Sistemi

Operativni sistemi ______________________________________________________________________________

_____________________________________________________________________________________________________________ 119

- Startup fajlovi Prvi je fajl init i on ita fajle /etc/inittab. Tako e startuje skriptu /etc/rc.d/rc.S koja uklju uje virtualnu memoriju, mountuje fajl sisteme, inicijalizuje PNP ure aje, u itava module kernela, konfiguri�e PCMCIA ure aje, postavlja serijske portove, isti log direktorijume, ... Postoji jo� skripti koje rc.S poziva da bi se zavr�io startup proces:

- rc.modules (u itava kernel module, rc.netdevice) - rc.pcmcia (konfiguri�e PCMCIA ure aje � posebno za laptop-ove) - rc.serial (konfiguri�e serijskie portove) - rc.sysvinit (System V init skriptaa)

- Runlevels fajlovi Runlevels je nivo na kojem �elite da vam ra unar radi (singleuser, multiuser, bez mre�e, bez X windows-a, ...):

- rc.0 (zaustavljanje sistema � runlevel 0) - rc.4 (multiuser startup sa KDM, GDM ili XDM loginom) - rc.6 (reboot sistema) - rc.K (singleuser startup) - rc.M (multiuser �default- startup sa standardnim tekst loginom)

- Fajlovi za inicijalizaciju mre�e Runlevels 2, 3 i 4 startuju mre�ne servise. Fajlovi odgovorni za inicializaciju mre�e su:

- rc.inet1 (kreira se pomo u netconfig-a i sadr�i konfiguraciju aktuelnog mre�nog interfejsa)

- rc.inet2 (odradi se nakon rc.inet1 i postavi osnovne mre�ne servise) - rc.httpd (startuje Apache web server) - rc.samba (startuje samba server )

Ostali konfiguracioni fajlovi: - rc.cdrom (ako je uklju en, skenira CDROM i mount-uje ga ako nadje disk) - rc.gpm (omogu ava copy/paste pomo u mi�a sa konzole) - rc.font (u itava korisni ki-pode�ene ekranske fontove za konzolu) - rc.local (sadr�i specifi ne startup komande koje administrator �eli; po default-

u je prazan ) GENERALNO: uklju enje skripti se vr�i tako �to ime se dodijeli pravo izvr�avanja sa naredbom chmod, i obrnuto. Manuelno uklju enje/isklju enje se vr�i naredbom - rc.ime start/stop Izbor kernel-a Kernel (jezgro) sadr�i podr�ku za pripadaju i hardver, tako da je njegov izbor veoma va�an. Slackware podr�ava oko 60-tak vrsta kernela-a. Mo�e se koristiti neko od postoje ih kernel-a ili se mo�e kreirati vlastiti popravkom source-a te njegovim kompajliranjem. U svakom slu aju kernel mora potpuno podr�avati va� hardver. Postoje i kompajlirani kerneli se nalaze na CDROM-u Slackware-a u /kernels ili na Slackware sajtu. Svaki poddirektorijum ima naziv odgovaraju eg kernela i sadr�i:

o System.map - system map fajl za taj kernel o bzImage (ili zImage) - image tog kernela o config - konfiguracioni sorce fajl tog kernela

Da bi koristili novi kernel treba: o kopirati System.map (i raspakovati) i config u /boot

Page 121: Operativni_Sistemi

Operativni sistemi ______________________________________________________________________________

_____________________________________________________________________________________________________________ 120

o kopirati bzImage u /boot/vmlinuz o startovati /sbin/lilo za instalaciju LILO-a za novi kernel o restartovati ra unar

Konfigurisanje mre�e o ifconfig - pregled mre�ne konfiguracije o netconfig - mre�na konfiguracija o pppsetup - dialup konfiguracija

Konfiguracioni /etc fajlovi

- /etc/inetd.conf - konfiguracioni fajl za inetd. On odre uje koji e servisi biti dostupni na tom ra unaru. To se radi prostim uklanjanjem ili postavljanjem komentara (#) ispred linije u konfiguracionom fajlu i restartovanjem inetd-a.

- /etc/resolv.conf � za pronala�enje DNS servera. - /etc/hosts � za lokalno razre�avanje domenskih imena. - /etc/hosts.allow /etc/hosts.deny � zabrana ili dozvola odre enim hostovima pristup.