UNIVERZITET CRNE GORE ELEKTROTEHNIČKI FAKULTET

OPERATIVNI SISTEMI
- skriptadr Božo Krstajić

PODGORICA, 2005.

PREDGOVOR
U ovoj skripti je izlažena struktura operativnih sistema, principi njihovog funkcionisanja, problemi vezani za pravljenje operativnih sistema, kao i načini rešavanja ovih problema. Dio objašnjenja, navedenih u ovoj skripti, je u tradiciji operativnog sistema UNIX. Podrazumijeva se da čitalac ove skripte poznaje arhitekturu računara. Kao dodatak u skripti je detaljnije obrađen koncept Windows XP-a i dat je pregled osnovnih Linux naredbio (Slackware distribucija). Ova skripta je namijenjena studentima III godine ETF-a, a kao dodatak za praktičan rad je skripta koju je autor sa kolegalma prof. dr Zdravkom Uskokovićem i Radosavom Puzovićem priredio za potrebe sličnog predmeta na Studijama primijenjenog računarstva. Tekst skripte (u pdf formatu), dodatni materijal i seminarske radove možete naći na web adresi www.os.cg.ac.yu. Skripta je priređena i štampana kao rezultat projekta CDP+ finansiranog od strane WUS Austrija, kojem se ovim putem zahvaljujem.

Autor

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

razmjenjuju (bez obzira na udaljenost). To je bilo ogroman elektronski uređaj. Sredinom prošlog vijeka (1945. obrada teksta. Da bi razmjenjivali informacije ljudi moraju da komunicijaju. Danas je prenos infomacija skoro trenutan u okviru planete zahvaljujući savremenim sredstvima komunikacije: telefonu. bolji i jeftiniji. na neki način treba „natjerati“ procesor da sabere dva broja. monitor da prikaže podatke kako treba. mobilnom telefonu. Oni su postali nezaobilazni u poslovnom. organi. radiju. Harderom treba upravljati. Određeni periodi u istoriji su obilježeni naglašenim razvojem u nekoj tehnološkoj oblasti. . kreiranje zvuka i pokretne slike. ako zamislimo da je ljudsko biće računar.. disk da zapamti određenu sliku. Softver ne služi samo da upravlja hardverom nego i za pružanje usluga korisniku (čovjeku). štampač da odštampa željene podatek itd.. Dakle. To je posao softvera ili programa. Tehnologije koje se koriste za prenos informacija u raznim oblicima nazivaju se komunikacionim tehnologijama (communication tehnologies). Program (software) je niz komandi koje određuju šta treba uraditi sa podacima. crtanje. Infromaciono-komunikacione tehnologije (Information Communication Tehnologies) ili ICT je skup tehnologija koje se koriste pri automatskoj obradi informacija i njihovom prenosu nekim komunikacionim sredstvom.. a softver nema smisla bez hardvera jasno je da oni čine računar. god.). Pomoću računara informacije (podaci) mogu da se: . proizvodnje.) je konstruisan prvi računar (computer). . ispravan hardver ne radi ako nema softvera. Ljudi pronalaze načine za poboljšanje svakodnevnog života. televiziji i računarskim mrežama. Pronalaskom telefona (1876. pamti ili razmjenjuje informacije. Kroz vjekove čovjek je smišljao sredstva da sebi olakša (automatuzuje) proces računanja. Tip softvera koji upravlja hardverom zove se sistemski softver (jer upravlja sistemom) ili operativni sistem.hardver – uređaj (hardware ) i . onda bi hardver predstavljale ćelije (tkiva. ali i u privatnom životu. Ako želite da kreirate neku sliku koristićete neki drugi _____________________________________________________________________________________________________________ 1 . telefaksu. Današnji računari su mnogo manji.pamte (trajno ili privremeno ) i . god.).softver – program (software). Računar je uređaj (hardware) koji obrađuje. komunikacije. Tako su za razne poslove kreirani različiti programi. putovanja itd. pointer da prati kretanje miša. Na primjer.) prenos informacija se automatizovao i ubrzano razvijao. dva neodvojiva dijela računara su:: . Tako je period u kome živimo obilježen informatikom i komunikacijama. Način na koji to radi je određen u programu.Operativni sistemi ______________________________________________________________________________ UVOD Istorija čovječanstva je istorija neprekidnog tehnološkog napretka: od točka do satelita i dalje. Ako želite da otkucate neki tekst određeni program vam nudi tu mogućnost. tj. Pošto hardver ne može da radi bez softvera. Zato se informacionim tehnologijama (information tehnologies) nazivaju tehnologije koje se koriste za bilo koji oblik računarske (automatske) obrade informacija (podataka). Znači. a misli i ideje bi predstavljali softver.obrađuju (računanje. Računar je uređaj koji vrši obradu informacija. ..

Delphi. Naime. Ako bi grafički prikazali odnos korisnika i računara onda bi to izgledalo kao na slici 1. Dakle. . C++. podacima i izvršavaju naredbe korisnika. ima konkretnu primjenu (application) u svakodnevnom poslu se zove aplikativni softver (primijenjeni ili upotrebni program). sluša muziku.upravljanje aplikacijama. softver dijelimo na: .. računa. Najpoznatiji programski jezici su: Basic.upravljanje procesorom (CPU).upravljanje podacima i .upravljanje memorijom (RAM). Funkcije operativnog sistema su: . . C. VisualBasic itd. Aplikacija koristi operativni sistem da bi izvršila obradu podataka na hardveru. Čak i korisnik može napraviti neki svoj program za neku posebnu cvrhu.Operativni sistemi ______________________________________________________________________________ program.upravljanje I/O uređajima. Dakle.aplikativni (primjenjivi). Softver se kreira pomoću nekog programskog jezika. Pascal. . OS kontroliše i upravlja računarom uz pomoć instrukcija korisnika. Java.. korisnik radi na nekoj aplikaciji (unosi tekst. projektuje. Većina današnjih operativnih sistema je kreirana („napisana“) u C-u. Fortran. _____________________________________________________________________________________________________________ 2 .). Operativni sistem (sistemski softver) je skup programa koji upravljaju harverom. Ova vrsta softvera koja pruža razne usluge korisnicima tj. .sistemski (operativni sistem za upravljanje hardverom) i .

To je jeftin ili besplatan OS kojeg razvijaju programeri širom svijeta. aplikacija izrađena za Windows obično neče raditi na PC koji koristi Linux OS. za tabelarnu obradu podataka. obrada zvuka. komponovanje. Ovo su aplikacije opšte namjene. evidencija građana. pamćenje i prenos informacija). postoje aplikacije za posebne namjene (bankarsko poslovanje. kreiranje animacija. crtanje. Njegova osnovna prednost je otvorenos. I on ima grafički interfejs i postaje sve prisutniji kod PC računara. Windows NT (New Technology). za kreiranje i obradu slike. sve popularniji OS. Dakle. Kompanija koja proizvodi ovaj OS je američka i zova se Microsoft. je Linux. zabava itd. Simboli Windows-a i Linux-a Aplikativni softver ili prosto aplikacije se koriste za izvršavanje određenih poslova na računaru: obrada teksta. Windows XP (Experience) i Windows 2003. itd. To znači da je svaki detalj svih programa Linux OS javan i poznat. Drugi. Korisnici kroz aplikacije koriste funkcije računara (obrada. poznavanje operativnog sistema je neophodan preduslov za kreiranje i korišćenje aplikacija. učenje. za kreiranje prezentacija. Windows ME (Millennium). statistika. UVOD U OPERATIVNE SISTEME _____________________________________________________________________________________________________________ 3 . Postoje razne verzije ovog operativnog sistema: Windows 95. Slične aplikacije postoje za sve OS. Poznate aplikacije koje se svakodnevno koriste su: za unos i obradu teksta. za kreiranje WEB stranica za čitanje WEB stranica. Drugm riječima. 1. finansijko poslovanje. Pored njih. Drugim riječima svako može vidjeti ili mijenjati ovaj OS.Operativni sistemi ______________________________________________________________________________ Trenutno se na PC računarima najviše koristi razne verzija Windows operativnog sistema. Zbog toga se aplikacije kreiraju i prilagođavaju za razne operativne sisteme. za kreiranje grafika i crteža. itd). tabelarni proračuni. Aplikacije koriste operativni sistem da bi pristupile hardveru. Koristeći asocijativne sličice korisnik upravlja računarom i koristi njegove mogućnosti. Upravo zbog toga se Linux najviše koristi u obrazovnim institucijama. Aplikacije su onaj dio računara koji krajnji korisnik najviše koristi. Za takav OS se kaže da ima grafički interfejs (interfejs je veza između nečega). za kreiuranje baza podataka. za obradu zvuka. Windows 98. obrada slike. Da bi aplikacije pravilno funkcionisale treba da su prilagođene operativnom sistemu i da koriste njegove prednosti. Razlog za to je lak i dopadljiv način upotrebe PC računara. Windows 2000.

Pisanje programa koji nadziru ove komponente i pravilno ih koriste je vrlo težak posao. nazvan operativni sistem. Sledeći nivo je mikroarhitekturni nivo u kome su fizički uređaji povezani tako da čine funkcionalne celine. Mašinski jezik sadrži obično između 50 i 300 instrukcija. tastature. a iznad njega se nalazi mašinski jezik. uglavnom za pomeranje podataka. diskova. Na dnu se nalazi hardver. što predstavlja složen sistem (slika 1. čiji je posao da upravlja svim ovim uređajima i da obezbijedi korisničke programe sa jednostavnijim interfejsom prema hardveru. aritmetičke operacije i poređenje vrednosti. memorije. disku se može komandovati da čita upisivanjem vrednosti adrese diska. 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.1). napajanja i slično. _____________________________________________________________________________________________________________ 4 . displeja i drugih ulazno-izlaznih uređaja.2.Operativni sistemi ______________________________________________________________________________ Moderni kompjuterski sistemi se sastoje od jednog ili više procesora. broja bajta i smer (upis ili čitanje) u njegove registre. i status koji vraća drajv posle operacije je vrlo kompleksan. žica. adrese glavne memorije. Na primjer. Zbog toga razloga kompjuteri poseduju “sloj” softvera. Položaj operativnog sistema je prikazan na slici 1. 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. U praksi je potrebno još dosta parametara.

on ga sam može napisati. iznad sistemskih programa dolaze aplikacioni programi. inženjerski proračuni. Ako nije uključen. jasno je da prosečan programer ne želi da se previše intimizuje sa programiranjem flopi diska (ili hard diska. veličina slobodnog prostora između pojedinih sektora i slično. Kompajleri i editori rade u korisničkom modu. S druge strane.1 ŠTA JE OPERATIVNI SISTEM ? Teško je tačno reći šta je operativni sistem. a i dosta drugih pojedinosti u obzir. broj sektora po stazi. 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. Pogledajmo obe funkcije operativnog sistema. Konačno. mod snimanja korišćen na fizičkom medijumu. To su napisani ili kupljeni programi koji služe za rešavanje određenih problema. Tu imamo komandni interpreter (shell). što je jednako _____________________________________________________________________________________________________________ 5 . Mora se voditi računa o tome da li je motor uključen ili nije. organizacija memorije. editore i slične programe nezavisne od aplikacije.2. kao što je obrada teksta. Deo problema leži u činjenici da operativni sistem obavlja dve. 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. Uzimajući sve ovo. skladištenje informacija u bazama podataka i slično. OPERATIVNI SISTEM KAO PROŠIRENA MAŠINA Arhitektura (skup instrukcija. 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.Operativni sistemi ______________________________________________________________________________ Slika 1. I/O i struktura magistrale) većine kompjutera na nivou mašinskog jezika je primitivna i teška za programiranje. On se sastoji od sloja softvera koji (delimično) prikriva pravu složenost hardvera i obezbijeđuje programeru pogodniji skup instrukcija za rad. 1. onda se mora uključiti (sa određenim zaletnim zakašnjenjem) pre nego se podaci mogu zapisati ili pročitati. Kompjuterski sistem se sastoji od hardvera. Iznad operativnog sistema se nalazi ostatak sistemskog softvera. rad sa tabelama. sistemskih programa i aplikacionih programa Da bi se sakrila ova složenost koristi se operativni sistem. kompajlere. Ako se korisniku ne sviđa određeni kompajler. Iako se ovi programi isporučuju zajedno sa operativnim sistemom oni nisu deo operativnog sistema. u osnovi različite funkcije: proširenje mašine i upravljanje resursima.

Za razliku od vremenskog multipleksiranja. Na primjer. brojača. i konačno zatvoriti. miševa. kao i dosta drugih uređaja. operativni sistem sakriva dosta neprijatnog posla koji se tiče interrupt-a. 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. zatim drugi i tako dalje. ono što programer želi je da radi sa jednostavnom apstrakcijom visokog nivoa. Kada se javi više zahtjeva za štampanje mora se doneti odluka koji se dokument štampa sledeći. mrežnih interfejsa.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. Vremensko multipleksiranje se javlja u slučaju kad se različiti programi smenjuju u korišćenju resursa. S druge strane. 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. I/O kontroleri. memorija. U slučaju diskova tipična apstrakcija je ta da disk sadrži skup imenovanih fajlova koji se mogu otvoriti. glavni zadatak operativnog sistema je da vodi računa o tome ko koristi koji resurs. Tipičan zadatak operativnog sistema je alokacija prostora na disku i vođenje računa o tome ko koristi koje blokove diska. operativni sistem stvara za krajnjeg korisnika računara pristupačno radno okruženje. S jedne strane. operativni sistem ima dvostruku ulogu. bajtima i blokovima u mašinu koja rukuje datotekama i procesima. brojača. rada sa memorijom i drugih pojedinosti nižeg nivoa. 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. Osim toga. _____________________________________________________________________________________________________________ 6 . Prvo jedan program koristi određeni resurs. Upravljanje resursima uključuje multipleksiranje (podelu) resursa na dva načina: u vremenu i u prostoru. Drugi resurs koji je prostorno multipleksiran je hard disk. naročito kad multipleksiranje je potreban samo mali deo. prati upotrebu istih i da posreduje između konfliktnih zahtjeva različitih korisnika ili programa. tako što pretvara računar od mašine koja rukuje bitima. gde se korisnici smenjuju. 1. memorija i I/O uređaja između tih programa. Primjer vremenskog multipleksiranja je deoba štampača. on upravlja delovima od kojih se sastoji računar (procesor. radna memorija). Umjesto toga. glavna memorija je podeljena između nekoliko programa. u njih se može upisivati ili iz njih čitati. Ovako posmatrajući.Znači. OPERATIVNI SISTEM KAO UPRAVLJAČ RESURSIMA Moderni kompjuteri se sastoje od procesora. Operativni sistem određuje koji je program sledeći i koliko dugo će on koristiti resurs. Ovako posmatrajući. diskova. štampača. 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.Operativni sistemi ______________________________________________________________________________ kompleksno i potpuno različito). kod prostornog multipleksiranja svaki korisnik dobija deo resursa. da dozvoli korišćenje određenog resursa. sa ciljem da oni budu što celishodnije upotrebljeni.

Upravljanje datotekom obuhvata ne samo upravljanje njenim sadržajem. Tako. čija imena su sadržana u ovim direktorijumima). izmjena datoteke može da obuhvati ne samo izmjenu njenog sadržaja. kompilacije. Poželjno je da ime datoteke ukazuje na njen konkretan sadržaj. u kojoj su na višem nivou hijerarhije direktorijumi. OZNAČAVANJE DATOTEKA Svaka datoteka poseduje ime koje bira korisnik. veličina ili vreme njegovog nastanka. folder). Zato su imena datoteka dvodelna. odnosno njen tip. na primjer.Operativni sistemi ______________________________________________________________________________ 1. Tako. Hijerarhijsku oznaku ili putanju (path name) datoteke obrazuju ime direktorijuma kome datoteka pripada i ime datoteke. ORGANIZACIJA DATOTEKA (FILE SYSTEM) Datoteke se grupišu u skupove datoteka. Atributi fajla se čuvaju u deskriptoru fajla. na primjer: smjer može da predstavlja ime direktorijuma. Takođe. u editiranju). kopiranja i slično). Na primjer. tako da prvi deo imena datoteke označava njen sadržaj. jer nema potrebe za klasifikacijom direktorijuma (pogotovo ne po njihovom sadržaju). Sadržaj fjla obrazuju korisnički podaci. Ova dva dela imena datoteke obično razdvaja tačka. koja sadrži podatke o studentima prve godine studija. dok drugi deo imena txt ove datoteke govori da je datoteka tekstualna (da sadrži samo vidljive ASCII znakove). koji obuhvata datoteke sa podacima o studentima svih godina studija istog smjera. svaki od njih poseduje ime koje bira korisnik. na primjer. ali i na vrstu njenog sadržaja (radi klasifikacije datoteka po njihovom sadržaju). Tako. a drugi deo označava vrstu njenog sadržaja.txt može da predstavlja ime datoteke. na primjer. prirodno je da datoteke sa podacima o studentima pojedinih godina studija istog smjera pripadaju jednom skupu datoteka. Razvrstavanjem datoteka u direktorijume nastaje hijerarhijska organizacija datoteka. a na nižem nivou se nalaze datoteke. nego i upravljanje njenim imenom. Ovakva hijerarhijska organizacija povlači za sobom i hijerarhijsko označavanje datoteka. na primjer: _____________________________________________________________________________________________________________ 7 . U atribute fajla spada.3 POJAM FAJLA – DATOTEKE (FILE) Za pojam fajla su vezani sadržaj i atributi. stvaranje datoteke podrazumijeva i zadavanje njenog sadržaja. Skupu datoteka pristaje naziv direktorijum (directory. ali i zadavanje njenog imena (što se dešava u toku editiranja. Na to ukazuje prvi deo imena godina1. Djelove putanje obično razdvaja znak / (ili znak \). Tako. Datoteke omogućuju korisnicima da organizuju podatke u skladu sa svojim potrebama. koje pripadaju pomenutim direktorijumima (odnosno. Radi razlikovanja direktorijuma. na primjer: godina1. Za direktorijume su dovoljna jednodjelna imena. nego i izmjenu njenog imena (što se dešava. ako se prihvati gledište da skup datoteka sadrži imena svih datoteka koje su obuhvaćene pomenutim skupom.

pod uslovom da pripadaju raznim direktorijumima. na slici 1. Putanje omogućuju razlikovanje istoimenih direktorijuma. Hijerarhijska organizacija datoteka dozvoljava da postoje datoteke sa istim imenima (odnosno. koji pripada direktorijumu fakultet iz korenskog direktorijuma. u kojoj se nalaze datoteke sa istim imenima i direktorijumi sa istim imenima. Na vrhu hijerarhijske organizacije datoteka se nalazi korenski direktorijum (root). pored imena datoteka. koja sadrži podatke o studentima prve godine studija sa prvog smjera.txt fakultet2 smjer2 .txt predstavlja putanju datoteke. Na primjer. putanju datoteke obrazuju imena direktorijuma sa svih nivoa hijerarhije (navedena u redosledu od najvišeg nivoa na dole). Slika 1. a on pripada korenskom direktorijumu (koji nema imena). Tako. smjer2 smjer1 godina1. direktorijum fakultet obuhvata direktorijume pojedinih smjera. Svaki od njih sadrži direktorijume smjer1 i smjer2. i druge direktorijume (odnosno sadrži.3) korijenskom direktorijumu pripadaju direktorijumi fakultet1 i fakultet2. i imena drugih direktorijuma).Operativni sistemi ______________________________________________________________________________ smjer1/godina1. pored datoteka.. da postoje direktorijumi sa istim imenima). Na prethodno opisani način se obrazuje i putanja direktorijuma. Pri tome. kao i ime datoteke. Na primjer. oba direktorijuma sa imenom smjer1 sadrže datoteku godina1. kada jedan direktorijum obuhvata..txt predstavlja putanju datoteke godina1.3 Grafička predstava hijerarhijske organizacije fajlova U hijerarhijskoj organizaciji datoteka (prikazanoj na slici 1.. Obuhvaćeni direktorijumi se nalaze na nižem nivou hijerarhije. U slučaju više nivoa u hijerarhijskoj organizaciji datoteka. Tako. putanje: /fakultet1/smjer1 /fakultet2/smjer1 _____________________________________________________________________________________________________________ 8 . na primjer: /fakultet/smjer1 predstavlja putanju direktorijuma smjer1.txt. koja pripada direktorijumu smjer1.3 je prikazana hijerarhijska organizacija datoteka.txt .txt.. Ovaj direktorijum pripada direktorijumu fakultet. odnosno istoimenih datoteka. Hijerarhijska organizacija datoteka ima više nivoa. Na primjer: /fakultet/smjer1/godina1. fakultet1 smjer1 godina1.

koja zahtjevaju preuzimanje njenog sadržaja. nisu dozvoljena upravljanja datotekom. kao što je. koji ne poseduje pravo pisanja datoteke. koja obezbijeđuje da podatke. sadržane u fajlu jednog korisnika. Podaci. Pravo čitanja. koji mu pripadaju). koji ne poseduje pravo čitanja datoteke. korisnik može da pokrene izvršavanje programa.txt omogućuju razlikovanje datoteka sa imenom godina1. koja pripada direktorijumu smjer1 iz direktorijuma fakultet1. Iskustvo pokazuje da su dovoljne tri klase korisnika. Ali. na osnovu kojih se za svakog korisnika utvrđuje koje vrste upravljanja datotekom su mu dopuštene. sadržani u fajlu. radi čitanja (radi preuzimanja njenog sadržaja). jer sprečava ne samo neovlašteno uzimanje tuđeg izvršnog programa. korisniku. bez njegove dozvole drugi korisnici ne mogu da koriste. Zahvaljujući hijerarhijskoj organizaciji datoteka. odnosno. sadržanog u izvršnoj datoteci. tada: godina1. a putanje: /fakultet1/smjer1/godina1. Za uspešnu upotrebu podataka neophodna je zaštita fajlova. Zahvaljujući posedovanju ovog prava. a trećoj ostali korisnici. Jednoj pripada vlasnik datoteke. radi izvršnih datoteka. Na primjer. pravo pisanja i pravo izvršavanja datoteke predstavljaju tri prava pristupa datotekama. uvesti posebno pravo izvršavanja programa.txt /fakultet2/smjer1/godina1. na primjer. Zato je uputno. drugoj njegovi saradnici. Za izvršne datoteke uskraćivanje prava čitanja je prestrogo. sadržani u fajlu. ostaju neizmjenjeni. koja izazivaju izmjenu njenog sadržaja. tada se njegova putanja podrazumijeva i ne mora se navoditi.Operativni sistemi ______________________________________________________________________________ omogućuju razlikovanje direktorijuma sa imenom smjer1. a koja ne. Ili. nego i njegovo izvršavanje. Nakon razvrstavanja korisnika u tri klase. direktorijuma) je potrebno kad god je moguć nesporazum. ako se podrazumijeva da je: /fakultet1/smjer1 radni direktorijum. ako se onemogući pristup datoteci. ZAŠTITA FAJLOVA Fajlovi su namjenjeni za trajno čuvanje podataka. 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. Navođenje potpune putanje datoteke (odnosno. sadržanih u izvršnim datotekama. kopiranje celog direktorijuma (odnosno kopiranje svih datoteka i direktorijuma. i onda kada nema pravo njenog čitanja. ako se onemogući pristup fajlu i radi pisanja (radi izmjene njegovog sadržaja). nisu dozvoljena upravljanja datotekom. uputno je sve korisnike razvrstati u klase i za svaku od njih vezati pomenua prava pristupa. Takođe. Da se za svaku datoteku ne bi evidentirala prava pristupa za svakog korisika pojedinačno. podaci. korisniku. zbog datoteka sa istim imenima (odnosno. Tako.txt označava datoteku. _____________________________________________________________________________________________________________ 9 . ne mogu biti korišćeni. ako postoji mogućnost određivanja nekog direktorijuma kao radnog (working directory). sadržani u datoteci. zbog direktorijuma sa istim imenima). neće biti izmjenjeni bez znanja i saglasnosti njihovog vlasnika. moguće je upravljanje celim direktorijumima.txt. koja obezbijeđuje da podaci.

Nakon prepoznavanja korisnika (odnosno. radi pristupa korisničkim datotekama. Za predstavljanje korisnika uvodi se posebna operacija. U toku predstavljanja korisnik predočava svoje ime (username) i navodi dokaz da je on osoba za koju se predstavlja.Operativni sistemi ______________________________________________________________________________ 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. za šta je. niti ih koristiti. koja se naziva administrator (superuser.3 je prikazan primjer matrice zaštite. odnosno od tačnosti pretpostavke da on neće odavati lozinke. na primjer. da ne bi nehotice izmjenio sadržaj datoteke file2. koja omogućuje samo promenu lozinke onome ko zna postojeću lozinku. najčešće.. uz pomoć matrice zaštite moguće je ustanoviti koja prava pristupa korisnik poseduje za svaku other --x --x --r-- _____________________________________________________________________________________________________________ 10 . Na slici 1.). Primijetite i malu nelogičnost za file4.. njegovi saradnici (group) nemaju pravo pisanja. a ostali korisnici (other) imaju samo pravo izvršavanja (pretpostavka je da je reč o izvršnoj datoteci). Zbog prirode njegovog posla. ili da ne bi pokušao da izvrši datoteku koja nije izvršna (file3). Jedina dva slučaja. da bi se među njima mogao prepoznati vlasnik datoteke. nakon njegovog uspešnog predstavljanja). Zaštita datoteka potpuno zavisi od odgovornosti i poverljivosti administratora. Predočeno ime i navedena lozinka se porede sa spiskom imena i (za njih vezanih) lozinki registrovanih korisnika. ili njihovo izbacivanje iz ovog spiska) nalaze se u nadležnosti poverljive osobe. Jedino vlasnik datoteke sme da zadaje i menja prava pristupa (sebi. s tim da on tada svoje nadležnosti mora vrlo oprezno da koristi. Predstavljanje je uspešno. u kojima ima smisla dozvoliti korisnicima posredan pristup ovom spisku.4 Matrica zaštite U primjeru matrice zaštite sa slike 1. Za uspeh izloženog koncepta zaštite datoteka neophodno je onemogućiti neovlašteno menjanje matrice zaštite. ali da su im lozinke tajne.4 vlasnik (owner) datoteke file1 ima sva prava pristupa. file1 file2 file3 file4 owner rwx -wx rwrwx group r-x --x -w--Slika 1. Zato je potrebno znati za svaku datoteku ko je njen vlasnik. Zato je i spisak imena i lozinki registrovanih korisnika tajan. . admin. administratora ima smisla potpuno izuzeti iz zaštite datoteka. Takođe. root. za izmjenu lozinki uvodi se posebna operacija. znači. To se postiže tako što svoju aktivnost svaki korisnik započinje svojim predstavljanjem. koja omogućuje samo provjeru da li zadani par ime i lozinka postoji u spisku imena i lozinki registrovanih korisnika. ako se u spisku imena i lozinki registrovanih korisnika pronađu predočeno ime i navedena lozinka. Sva druga upravljanja spiskom imena i lozinki registrovanih korisnika (kao što su ubacivanje u ovaj spisak parova imena i lozinki. Ima smisla uskratiti i vlasniku neka prava. svojim saradnicima i ostalim korisnicima). dovoljna lozinka (pasword). su: (1) radi njihovog predstavljanja i (2) radi izmjene njihove lozinke. Slično. 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. potrebno je i razlikovanje korisnika. Predstavljanje korisnika se zasniva na pretpostavci da su njihova imena javna. direktno nepristupačan korisnicima.

a drugi od njih označava člana grupe. On čeka kada nisu ispunjeni neophodni preduslovi za obradu podataka. umesno je takvu provjeru obaviti samo pre prvog pristupa. Ako je njegova namera u skladu sa njegovim pravima. Ipak. potrebna je i operacija zatvaranja datoteke. • Aktivnost procesa odgovara angažovanju procesora na izvršavanju korisničkog programa. Trenutke isticanja kvantuma označavaju prekidi sata. Podrazumijeva se da su svi korisnici iz iste grupe međusobno saradnici. Saradnici vlasnika su svi korisnici koji imaju isti redni broj grupe kao i vlasnik. Numerička oznaka vlasnika datoteke i prava pristupa korisnika iz pojedinih klasa predstavljaju atribute datoteke. redni broj grupe i redni broj člana grupe zajedno jednoznačno određuju vlasnika. ali samo u granicama iskazanih namera.4 POJAM PROCESA (PROCESS) Za pojam procesa su vezani aktivnost (izvršenje). pomoću koje korisnik saopštava da završava korišćenje datoteke. • U atribute procesa spadaju. • Slika procesa pokriva adresni prostor procesa sa naredbama izvršavanog programa.Operativni sistemi ______________________________________________________________________________ datoteku. Posebna grupa se rezerviše za administratore. Podrazumijeva se da je aktivan uvek proces sa najvišim prioritetom. pristup datoteci nije dozvoljen do njenog narednog otvaranja. slika i atributi. stanje procesa i njegov prioritet. Pomoću operacije otvaranja se saopštava i na koji način korisnik namerava da koristi datoteku. 1. Nakon zatvaranja datoteke. da se takva provjera ne bi obavljala prilikom svakog pristupa datoteci. STANJA I PRIORITET PROCESA Stanja procesa su: • aktivan (running). Prema tome. Atributi procesa se čuvaju u deskriptoru procesa. uputno je. • čeka (blocked) i • spreman (ready). U ostale korisnke spadaju svi korisnici čiji redni broj grupe je različit od rednog broja grupe vlasnika. Radi klasifikacije korisnika zgodno je da ovu numeričku oznaku obrazuju dva redna broja. Ako postoji nekoliko procesa najvišeg prioriteta. a pristup datoteci je dozvoljen. uvesti njegovu numeričku oznaku. na primjer. otvaranje datoteke je uspešno. koja prethodi svim drugim operacijama (kao što su pisanje ili čitanje datoteke). Ona se postiže ako aktivni proces prepušta procesor spremnom procesu najvišeg prioriteta čim istekne unapred određeni vremenski interval. Prvi od njih označava grupu kojoj korisnik pripada. tada je interesantna ravnomerna raspodela procesorskog vremena između aktivnog i spremnih procesa najvišeg prioriteta. Od prioriteta procesa zavisi kada će spreman proces da postane aktivan. jasno pod pretpostavkom da se razmatra jednoprocesorski računar (sa jednim procesorom namjenjenim za izvršavanje korisničkih programa). Obrada prekida sata izaziva prevođenje aktivnog procesa u _____________________________________________________________________________________________________________ 11 . koji se naziva kvantum (quantum). stekom i podacima koji se obrađuju u toku izvršavanja programa. Zato se uvodi posebna operacija otvaranja datoteke. Numerička oznaka korisnika pojednostavljuje provjeru njegovog prava pristupa datoteci. Proces je aktivan kada procesor izvršava program. Proces je spreman kada samo zauzetost procesora onemogućuje izvršavanje programa. umjesto imena korisnika. Da bi se pojednostavila provjera korisničkih prava pristupa. Pored operacije otvaranja.

što dovodi do preključivanja procesora na prekinutu pozadinsku nit. Praksa pokazuje da je korisno za procese vezati više od jedne niti. svaka od niti procesa ima svoj stek. tada se pomenute aktivnosti odvijaju jedna za drugom (sekvencijalno). ako se za editorski proces vežu dve niti raznih prioriteta. Tada. pozadinska nit može biti aktivna sve dok. On se može otkloniti. pritisak dirke na tastraturi ne najavi početak interakcije sa korisnikom. odnosno svoj deskriptor. To dovodi do preključivanja procesora sa prekinutog procesa na hitni proces. između ostalog. hitni proces ne prelazi u stanje čeka dok ne odreaguje na sve u međuvremenu registrovane događaje. Tada obrada odgovarajućeg prekida prevodi hitnu nit u stanje spremna. Ovakve naredbe obrazuju sekvencu naredbi. a druga je zadužena za periodično smeštanje unesenog teksta na masovnu memoriju (radi sprečavanja gubljenja teksta). Na taj način procesor ostaje iskorišćen dok god ima spremnih procesa. Dok ovakav hitni proces čeka da se desi spoljnji događaj. Nakon toga on prepušta procesor prekinutom procesu. jasno. Pod pretpostavkom da hitna nit čeka na interakciju sa korisnikom. a manje prioritetna (pozadinska) nit se pridružuje drugoj aktivnosti. aktivan je neki drugi manje prioritetan proces. Zahvaljujući _____________________________________________________________________________________________________________ 12 . prioritet i stanje se ne vezuju za proces. za vreme trajanja druge aktivnosti nije moguća interakcija sa korisnikom. nego za njegove niti. Za sekvencijalni program se podrazumijeva da se naredbe izvršavaju jedna za drugom u unapred zadanom redosledu. pa se procesor preključuje sa prekinute pozadinske niti na hitnu nit. POJAM NITI (THREAD) Aktivnost procesa karakteriše redosled u kome se izvršavaju naredbe programa. što je ozbiljan nedostatak. Znači. Ako su se takvi događaji desili. Kada se desi spoljnji događaj.Operativni sistemi ______________________________________________________________________________ stanje spreman i preključivanje procesora na onaj od ostalih spremnih procesa najvišeg prioriteta koji je najduže u stanju spreman. obrada odgovarajućeg prekida prevodi hitni proces iz stanja čeka u stanje spreman. Znači. 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. Hitni proces u toku svoje aktivnosti odreaguje na dešavanje vanjskog događaja. Ovaj redosled se naziva trag (trace) procesa. Na primjer. svoj prioritet i svoje stanje. Trag procesa može da se prikaže kao nit (thread) koja povezuje izvršene naredbe u redosledu njihovog izvršavanja. Bržu reakciju na dešavanje vanjskih događaja omogućuje proces najvišeg prioriteta. tada ona ima atribute procesa. za editiranje teksta su važne. Prioritetnija (hitna) nit se pridružuje prvoj aktivnosti. jer se vraća u stanje čeka dok se ne desi novi vanjski događaj. znači njegovo stanje i njegov prioritet. njihova dešavanja se registruju u obradama odgovarajućih prekida (za šta je potrebno da su prekidi omogućeni u toku aktivnosti hitnog procesa). ULOGA PROCESA Procesi omogućuju bolje iskorišćenje računara (procesora) i njegovu bržu reakciju nadešavanje vanjskih događaja. Ako je za editorski proces vezana jedna nit. Ako se za proces veže jedna nit. Vezivanje za proces jedne niti je posledica pretpostavke da proces odgovara izvršavanju sekvencijalnog programa. U toku svoje aktivnosti hitna nit obavi interakciju sa korisnikom i vrati se u stanje čeka. koji je zavisan od obrađivanih podataka. U toku aktivnosti niti izvršavaju se naredbe koje ona povezuje. Prva je posvećena interakciji sa korisnikom. na primjer. ako se u međuvremenu nisu desili novi vanjski događaji. U tom slučaju stek. dve aktivnosti. nakon reakcije na prvi događaj.

sledi da se operativni sistem može raščlaniti na module namijenjene upravljanju: • procesorom. apstraktni disk. CD/DVD ROMovi. na primjer. Modul za upravljanje procesorom ostvaruje svoj zadatak tako što uvodi operaciju preključivanja. Pozivi te operacije dovode do preključivanja procesora.Operativni sistemi ______________________________________________________________________________ preključivanju procesora sa pozadinske niti na hitnu nit.. 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. dok su druge niti u adresnim prostorima raznih procesa. umjesto staza i sektora. diskete. Za razliku od stvarnog diska. štampač. U okviru ovih operacija se zaustavlja aktivnost niti za _____________________________________________________________________________________________________________ 13 . drajver diska stvara predstavu apstraktnog diska. u toku editiranja nema perioda bez odziva. • radnom memorijom. 1. ekran. Pošto upravljanje I/O uređajima zavisi od vrste uređaja. Drajver diska. Modul za upravljanje kontrolerima ostvaruje svoj zadatak tako što uvodi (drajverske) operacije ulaza i izlaza. • fajlovima i • procesima. Zato. pa je ovakvo preključivanje brže (kraće) nego preključivanje procesora između niti raznih procesa. modul za upravljanje kontrolerima se sastoji od niza komponenti. • kontrolerima I/O. kontrolere i radnu memoriju. a logički delovi računara obuhvataju fajlove i procese. radi ulaza (preuzimanja podataka).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. U ovakve ulazno/izlazne uređaje spadaju tastatura. MODUL ZA UPRAVLJANJE PROCESOROM Zadatak modula za upravljanje procesorom je da preključuje procesor sa jedne niti na drugu. preslikavajući blokove u staze i sektore. Procesi sa više niti odgovaraju izvršavanju konkurentnih programa u kojima istovremeno postoji više relativno nezavisnih sekvenci naredbi. miš. 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. omogućuje pristup blokovima apstraktnog diska. . odnosno radi izlaza (pohranjivanja podataka). 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. odnosno uređaji masovne memorije kao što su diskovi. Pozivi ovih operacija dovode do prenosa podataka na relaciji između radne memorije i ulazno/izlaznih uređaja. sadrži niz blokova koji su označeni rednim brojevima. nazvanih drajveri. u toku preključivanja procesora između niti istog procesa ne dolazi do izmjene adresnog prostora procesa.. Pošto fizički delovi računara obuhvataju procesor.

zatvaranja. Oni omogućuju nastavak aktivnosti niti. Pozivi poslednje dve operacije dovode do prenosa sadržaja fajlova na relaciji između radne i masovne memorije. Pošto pozivi operacija preključivanja mogu biti posledica dešavanja prekida. čitanja i pisanja. nije moguće odmah obaviti zatraženi ulaz ili izlaz. To znači da se iz modula za upravljanje radnom memorijom pozivaju operacije ulaza i izlaza. odnosno čitanje i pisanje njihovog sadržaja. Radi toga ovaj modul vodi evidenciju o blokovima (masovne memorije) u kojima se nalaze sadržaji fajlova. trenutak preključivanja je u opštem slučaju nepredvidiv kao što su nepredvidivi i trenuci dešavanja prekida. Modul za upravljanje radnom memorijom ostvaruje svoj zadatak tako što uvodi operacije zauzimanja i oslobađanja. Radi toga se. 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. a to je preduslov za: 1. Modul za upravljanje fajlovima ostvaruje svoj zadatak tako što uvodi operacije otvaranja. brine i o prebacivanju delova sadržaja fajlova između radne i masovne memorije. Modul za upravljanje procesima ostvaruje svoj zadatak tako _____________________________________________________________________________________________________________ 14 . Iz modula za upravljanje procesima se poziva operacija čitanja. Kada podržava virtuelnu memoriju. koji su potrebni za svaranje slike procesa. za bržu reakciju računara na vanjske događaje. Pošto je za stvaranje slike procesa potrebna radna memorija. MODUL ZA UPRAVLJANJE PROCESIMA Zadatak modula za upravljanje procesima je da omogući stvaranje i uništavanje procesa. To znači da se iz modula za upravljanje fajlovima pozivaju operacije ulaza i izlaza. kao i stvaranje i uništavanje njihovih niti. iz modula za upravljanje procesima se pozivaju i operacije zauzimanja. Tada se poziva operacija preključivanja. MODUL ZA UPRAVLJANJE FAJLOVIMA Zadatak modula za upravljanje fajlovimaa je da omogući otvaranje i zatvaranje fajlova. takođe. za istovremenu podršku većeg broja korisnika (višekorisnički režim rada. multiuser environment) i 3.Operativni sistemi ______________________________________________________________________________ čiji račun se operacije obavljaju ako. da je moguće obavljanje zatražene operacije ulaza ili izlaza. Do nastavaka aktivnosti niti može doći čim ulazno/izlazni uređaj javi. ulaze u sastav drajvera. Obradu ovakvih prekida preuzimaju obrađivači prekida. odnosno oslobađanja. On se. zbog sporosti ulazno/izlaznog uređaja. odnosno više niti (multithreading). radi rezervisanja dovoljno velikog baferskog prostora. multiprocessing). Na taj način postaje moguće da istovremeno postoji više procesa (višeprocesni režim rada. iz modula za upravljanje fajlovima se poziva i operacija zauzimanja. opet. 2. Pozivi tih operacija dovode do zauzimanja i oslobađanja zona radne memorije. radi preuzimanja sadržaja izvršnih fajlova. ovaj modul se brine i o prebacivanju sadržaja stranica između radne i masovne memorije. takođe. odnosno radi oslobađanja prethodno zauzetih zona radne memorije. posredstvom mehanizma prekida. koji. za bolje iskorišćenje procesora. Pošto su za pomenuto prebacivanje delova sadržaja fajlova potrebni baferi. poziva operacija preključivanja.

prikazan na slici 1. smeštenog iznad hijerarhije njegovih slojeva. odnosno niti.5 Slojeviti operativni sistem Pozivi operacija 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 zahtjevaju korišćenje specifičnih asemblerskih naredbi i zbog toga se sakrivaju unutar sistemskih _____________________________________________________________________________________________________________ 15 . Iako su svi procesi locirani u korisničkom sloju. 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. Svaki od slojeva je predodređen da sadrži jedan od modula operativnog sistema. Na ovaj način je obrazovan slojeviti operativni sistem. U prvi niži sloj dospeva modul za upravljanje fajlovima. Sistemski pozivi Slojeviti operativni sistem dozvoljava pozivanje (odnosno korišćenje) operacija stvaranja i uništavanja (procesa) samo iz sloja. Pozivi tih operacija dovode do stvaranja i uništavanja procesa.5 modul za upravljanje procesima modul za upravljanje fajlovima modul za upravljanje radnom memorijom modul za upravljanje kontrolerima modul za upravljanje procesorom Slika 1. postojanje procesa je isključivo vezano za ovaj. Raspodjelu modula po slojevima diktira pravilo koje nalaže da se iz svakog sloja pozivaju samo operacije uvedene u nižim slojevima hijerarhije. 1. Na istom principu se zasniva i razdvajanje procesa od operativnog sistema. oni su međusobno jasno razdvojeni zahvaljujući činjenici da svaki od procesa poseduje zaseban adresni prostor. koji se naziva sistemski prostor (kernel space). Primjena pomenutog pravila dovodi do smeštanja modula za upravljanje procesima u sloj na vrhu hijerarhije. koji se naziva korisnički prostor (user space). korisnički sloj.Operativni sistemi ______________________________________________________________________________ što uvodi operacije stvaranja i uništavanja. a u poslednjem sloju nalazi se modul za upravljanje procesorom. dok je sledeći niži sloj namjenjen modulu za upravljanje radnom memorijom. Prema tome. razdvojenost korisničkih prostora od adresnog prostora operativnog sistema. Ali. sastavljenu od 5 slojeva.6 PODJELA OPERATIVNIH SISTEMA PREMA STRUKTURI SLOJEVITI OPERATIVNI SISTEM Prethodno opisani moduli operativnog sistema formiraju hijerarhiju. Predposlednji sloj hijerarhije sadrži modul za upravljanje I/O kontrolerima.

Zato se može smatrati da obavljanje sistemskih operacija predstavlja sastavni deo izvršavanja korisničkog programa. Sistemski potprogrami obrazuju sistemsku biblioteku. pozivanje sistemskih operacija se svodi na pozivanje potprograma iz sistemske biblioteke. Čak je i u monolitskim sistemima moguće postići malo strukturnosti: _____________________________________________________________________________________________________________ 16 . Struktura je takva da uopšte nema strukture.Operativni sistemi ______________________________________________________________________________ potprograma. koji se naziva interpreter komandnog jezika (shell). U opštem slučaju u posredovanju obično učestvuju i procesi koje stvara interpreter komandnog jezika. koji su započeli. MONOLITSKI SISTEMI Iako je raslojavanje operativnog sistema u hijerarhiju slojeva moguće uspešno primjeniti i prilikom pravljenja operativnog sistema. kao što je. uzrokuje da je moguće da istovremeno postoji više procesa. Zahvaljujući sistemskim potprogramima. Sistemska biblioteka se isporučuje uz operativni sistem da bi se koristila u postupku linkovanja. Komande komandnog jezika precizno opisuju upravljanja procesima i datotekama. Ovo je dosad najviše korišćena organizacija i može se sa punim pravo nazvati “Velika zbrka”. Što se tiče sakrivanja informacija. namjenjenih samo za koiršćenje unutar operativnog sistema. iako nije za njega direktno linkovan. One tako lišavaju korisnika potrebe da poznaje mehanizme. da biim prepustio izvršavanje prepoznatih komandi. Neki od sistemskih potprograma. To znači da se iz svakog od modula monolitnih operativnih sistema mogu slobodno pozivati operacije svih ostalih modula. za razliku od strukture koja sadrži module ili pakete. čija aktivnost je zaustavljena unutar operativnog sistema). pored sistemskih poziva. u kojoj je većina informacija sakrivena unutar modula. odnosno pripada aktivnosti procesa. na primjer. koji se pokreću unutar operativnog sistema radi upravljanja procesima i fajlovima. koji tako postaje spreman za saradnju sa operativnim sistemom. vezanog za ovo izvršavanje. To. namjenjenih korisničkom sloju. to ovde uopšte ne postoji. sadrže i specifične obrade podataka. jer se sastoje od modula čija saradnja nije ograničena pravilima kao kod slojevitih operativnih sistema. komande komandnog jezika omogućuju korišćenje operativnog sistema na interaktivnom nivou. Za preuzimanje i interpretiranje komandi komandnog jezika zadužen je poseban proces iz korisničkog sloja. U toku linkovanja njeni potprogrami se vezuju za objektni oblik korisničkog programa radi stvaranja izvršnog oblika korisničkog programa. Operativni sistem je napisan kao skup procedura. odnosno sistemskoj biblioteci. tj. operativni sistem predstavlja deo korisničkog programa. Svaki od sistemskih potprograma je namjenjen za pozivanje jedne od operacija operativnog sistema. Prema tome. svaka procedura je vidljiva u odnosu na bilo koju drugu proceduru. od kojih svaka može pozvati bilo koju drugu proceduru kad god joj zatreba. Interakcija korisnika i operativnog sistema Dok sistemska biblioteka omogućuje korišćenje operativnog sistema na programskom nivou. uz istovremeno postojanje više procesa i nepredvidivost preključivanja. Ovakve operacije se nazivaju sistemske operacije. u praksi se uglavnom sreću monolitni (monolithic) operativni sistemi. a nisu završili svoju aktivnost u okviru operativnog sistema (odnosno. da bi se razlikovale od ostalih (internih) operacija operativnog sistema. tako da se samo u određenim tačkama mogu pozvati van modula. Interpreter komandnog jezika posreduje između korisnika i operativnog sistema. pretvaranje brojeva iz znakovnog u binarni oblik i obrnuto kod formatiranog ulaza ili izlaza. Monolitni operativni sistemi nemaju pravilnu strukturu kao slojeviti operativni sistemi.

a na drugima interaktivni jednokorisnički sistem zvani CMS (Konverzacioni monitor sistem) za interaktivno multipleksiranje. Skup uslužnih procedura koje izvršavaju pozive sistema. Ovaj sistem. Struktura VM/370 sa VMS-ovima Zbog te svoje osobine na svakoj od njih može da radi bilo koji operativni sistem.Operativni sistemi ______________________________________________________________________________ 1. za vremenskim multipleksiranjem. CMS onda poziva normalne hardverske I/O instrukcije. taj poziv upada u operativni sistem sopstvene virtuelne mašine. Glavni program koji priziva zahtjevanu uslužnu proceduru. 3. Ovaj sistem je bio previše velik i spor. Na nekima rade potomci OS/360. Prvi oficijalni IBM-ov operativni sistem koji je podržavao vremensko multipleksiranje bio je TSS/360. U ovom modelu. obezbijeđujući ne jednu. fleksibilniji i lakši za održavanje. uključujući kernel/korisnički mod. a ne u VM/370. višem nivou. Te instrukcije hvata VM/370 i izvršava ih kao deo svoje simulacije pravog hardvera. 2. kao što je uzimanje podataka iz korisničkih programa i slično. Za razliku od drugih operativnih sistema ove virtuelne mašine nisu proširene mašine. za svaki poziv sistema postoji jedna uslužna procedura koja odrađuje taj poziv. _____________________________________________________________________________________________________________ 17 . I/O. Kada CMS program izvršava poziv sistema. kao što je prikazano na slici 1. prvo nazvan CP/CMS a kasnije preimenovan u VM/370. grupa u IBM-ovom naučnom centru u Kembridžu kasnije razvija drugačiji operativni sistem. Kompletnim razdvajanjem funkcija multiprogramiranja i obezbijeđivanja proširene mašine. Skup korisničkih procedura koje pomažu uslužnim procedurama.6. svaki od delova može biti jednostavniji. već nekoliko virtuelnih mašina na sledećem. poznato kao monitor virtuelne mašine.6. kao što bi na čistom hardveru. Srce sistema. Međutim. Slika 1. radi na čistom hardveru i obavlja multipleksiranje. 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). Korisničke procedure rade stvari koje su potrebne nekolicini uslužnih procedura. Suština VM/370 je da potpuno razdvoji ove dve funkcije. VIRTUELNE MAŠINE Ovaj sistem se razvio iz potrebe mnogih korisnika prvih operativnih sistema. interrupt-e i sve što ima realna mašina. već predstavljaju čiste kopije hardvera. sa fajlovima i ostalim apstrakcijama. a kasnije je napušten jer se pokazalo da je za njegov razvoj utrošena prevelika svota novca. pre svega OS/360. 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.

Operativni sistemi ______________________________________________________________________________ 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

_____________________________________________________________________________________________________________

18

Operativni sistemi ______________________________________________________________________________ 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.

_____________________________________________________________________________________________________________

19

Operativni sistemi ______________________________________________________________________________ 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 najniža adresa mašinske naredbe 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
_____________________________________________________________________________________________________________

20

podatak o radnom direktorijumu procesa 10. Ovi atributi karakterišu aktivnost procesa. koji sadrži atribute procesa. za aktivnost procesa je vazan i deskriptor procesa. Ovu operaciju poziva proces stvaralac i ona se obavlja u toku njegove aktivnosti. Inače tamo dospeva stvarani proces. To se desi. Ovo spada u nadležnost sistemske operacije uništenja procesa. SISTEMSKE OPERACIJE ZA STVARANJE I UNIŠTENJE PROCESA Za stvaranje procesa potrebno je pristupiti odgovarajućoj izvršnoj datoteci sa inicijalnom slikom procesa. U tom slučaju. između ostalog. aktivan. podatke o slici procesa (njenom položaju u radnoj memoriji i njenoj veličini) 8. a jedan deo nastaje u toku stvaranja procesa (na primjer. proces stvaralac dospeva među spremne procese. numerička oznaka vlasnika procesa. ukupno vreme angažovanja procesora) 7. kao i pravljenje slike procesa na osnovu njegove inicijalne slike. koja.Operativni sistemi ______________________________________________________________________________ steka i promenljivih. čime izaziva svoje samouništenje. jer se jedan njihov dio nasleđuje iz deskriptora procesa stvaraoca (na primjer. moguće je preključivanje procesora sa procesa stvaraoca na stvarani proces. Oni obuhvataju: 1. kao i dovoljno veliku zonu radne memorije za sliku procesa. 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. sadržaje procesorskih registara (zatečene u njima prije poslednjeg preključivanja procesora sa procesa) 3. 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). stanje procesa (spreman. Uništenje procesa se _____________________________________________________________________________________________________________ 21 . trenutak pokretanja aktivnosti procesa 6. numeričku oznaku vlasnika procesa 4. Kada se. u okviru stvaranja procesa. spada u nadležnost sistemske operacije stvaranja procesa. oznaku procesa stvaraoca 5. čeka) 2. ako je prioritet stvaranog procesa viši od prioriteta procesa stvaraoca. podatke o fajlovima koje proces koristi 9. podaci o slici procesa). sadrži mašinske naredbe i početne vrednosti (inicijalizovanih) statičkih promenljivih odgovarajućeg programa. Sve to. ali i podatak o veličini (pojedinih djelova) slike procesa. stigne do pokretanja njegove aktivnosti. Svi atributi deskriptora stvaranog procesa ne moraju biti navođeni u okviru poziva sistemske operacije stvaranja procesa. podatak o radnom direktorijumu procesa ili njegov prioritet). potrebno je zauzeti deskriptor procesa. ukupno trajanje aktivnosti procesa (odnosno. sa fatalnim ishodom po aktivnost procesa. odnosno popunjavanje atributa njegovog deskriptora. Takođe. Nju automatski poziva proces na kraju svoje aktivnosti. Pored slike. U okviru poziva sistemske operacije stvaranja procesa kao argument se navodi putanja odgovarajuće izvršne datoteke.

to je i veća vjerovatnoća da je procesor zaposlen (jer je veća vjerovatnoća da postoji spreman proces). u toku aktivnosti procesa. u okviru poziva sistemske operacije stvaranja procesa. kada se desi nepopravljiv prekid (izuzetak) u toku aktivnosti procesa. obavezno postoji i njena kopija u masovnoj memoriji. nego među procese u stanju čekanja. Prethodno opisani način oslobađanja prostora za sliku procesa u radnoj memoriji uzrokuje da. mijenja samo dio njegove slike u radnoj memoriji (jer se mijenjaju samo vrijednosti njegovih promenljivih i njegov stek). stvaranje novih procesa postaje problematično. Kada broj istovremeno postojećih procesa dostigne stepen multiprogramiranja. on mora da. U okviru poziva sistemske operacije uništenja procesa uputno je predvideti argument. Takođe. posebnim argumentom zatraži zaustavljanje svoje aktivnosti (i tako omogući preključivanje procesora na stvarani proces). U ovom slučaju. 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. Jasno. se naziva stepen multiprogramiranja (degree of multiprogramming). posredstvom koga uništavani proces može da saopšti svom stvaraocu svoje završno stanje. prilikom _____________________________________________________________________________________________________________ 22 . da bi proces stvaralac mogao iskoristiti ovakvu povratnu informaciju od stvorenog procesa. uz sliku procesa u radnoj memoriji. Što je stepen multiprogramiranja viši. Stepen multiprogramiranja zavisi od veličine radne memorije. 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. što ne predstavlja problem. Pošto se. proces stvaralac ne dospeva među spremne procese. jer deskriptori procesa ne zauzimaju mnogo radne memorije). jer čeka kraj aktivnosti stvorenog procesa. 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.Operativni sistemi ______________________________________________________________________________ završava preključivanjem procesora sa uništavanog na neki od spremnih procesa. koje mogu da istovremeno postoje u radnoj memoriji. odnosno informaciju da li je aktivnost uništavanog procesa bila uspešna ili ne. ZAMJENA SLIKA PROCESA Najveći mogući broj slika procesa.

Operativni sistemi ______________________________________________________________________________ izbacivanja slike procesa potrebno je samo njen izmijenjeni dio prebacivati u kopiju slike u masovnoj memoriji. To je model 5 stanja prikazan na slici 2.2. Na slici 2.proces je u sekundarnoj memoriji i čeka izvršenje neke operacije (I/O) i _____________________________________________________________________________________________________________ 23 . uputno je periodično vršiti zamjenu slika procesa (swapping). Postoji bit u PSW registru (Program Status Word) koji označava u kom modu se izvršava proces. Ona ne spada obavezno u sistemske operacije.2. radi ubacivanja slike drugog procesa.blocked/suspend . control) mode – ovo je “privilegovani” način izvršenja instrukcija. Za to je potrebna posebna operacija za zamjenu slika procesa. U nadležnosti ove operacije je dugoročno raspoređivanje (long term scheduling). pa je vraćanje slike jednog procesa vezano za uništavanje drugog procesa (kada se oslobađa prostor u radnoj memoriji). Ali. i pristup određenim memorijskim lokacijama. 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). u okviru koga se odabira proces. Stanja procesa Procesi se mogu nalaziti u stanjim: aktivan (running). . Podaci o kopiji slike procesa (koja nastaje istovremeno sa slikom procesa. osnovne ulazno-izlazne instrukcije. Ovaj model se proširuje sa dodatna 3 stanja: suspendovan (suspended). Prilikom izbacivanja slike procesa. Kernel (system. u deskriptoru procesa se naznačava da se njegova slika ne nalazi vise u radnoj memoriji. pri vraćanju slike u radnu memoriju. ne bi bili dugo zapostavljeni. suspendovanspeman (suspended-ready) i suspendovan-blokiran (suspended-blocked). Da procesi. Korisničkim programima ovaj nivo kontrole nije potreban a iz sigurnosnih razloga nije ni poželjan. User mode . prebacuje se cijela njena kopija (da bi se u radnoj memoriji obnovila cijela slika procesa). kao i proces.suspend . čija slika se ubacuje.proces je obustavljen i nalazi se u sekundarnoj memoriji (swap). Dodatna stanja procesa su: .3 je dat prošireni model stanja procesa. blokiran (blocked) i spreman (ready). U ovom modu softver ima punu kontrolu nad procesorom i svim njegovim instrukcijama. ili prilikom njenog prvog izbacivanja. a nestaje istovremeno sa slikom procesa) se čuvaju u deskriptoru procesa. instrukcije koje se odnose na upravljanje memorijom. registrima i memorijom. Prelazak iz ovih stanja se dešava ostvarenjem nekih od uslova koji su dati na slici 2. što podrazumjeva čitanje CONTROL registra. zajedno sa podacima o slici procesa. Važno je uočiti da se dugoročno raspoređivanje razlikuje od običnog ili kratkoročnog raspoređivanja (short term scheduling). čije su slike izbačene van radne memorije. kada se tamo oslobodi prostor. koje među spremnim procesima odabira proces na koga se preključuje procesor. Ova dva moda su uvedena zbog toga što je potrebno zaštititi operativni sistem i ključne tabele operativnog sistema od korisničkih programa. Do vraćanja slike procesa u radnu memoriju dolazi. Ovaj model je mnogo bliži modernim operativnim sistemima jer uzima u obzir uvođenje virtualne memorije odnosno proširenje operativne memorije. znači izbacivati sliku jednog procesa.manje privilegovan mod se naziva korisnički ili USER mod zato što se korisnički programi obično izvršavaju u njemu. čija slika se izbacuje.

2 Model 5 stanja procesa New Suspend Admit Time-out Release Ready Suspend Event Occurs Activate Suspend Ready Dispatch Event Occurs Running Event Wait EXIT Blocked Suspend Suspend Activate Blocked Slika 2. . U većini modernih operativnih sistema ovi prelazi se dešavaju najčešće iz sledećih razloga: . .READY -> READY-SUSPENDED .proces je u sekundarnoj memoriji ali je spreman za izvršavanje čim se učita u glavnu memoriju.Operativni sistemi ______________________________________________________________________________ ready/suspend .kada nema spremnih procesa u memoriji ili kada je neki READY-SUSPENDED proces većeg prioriteta od drugog READY procesa. Admit Time-out Release New Ready Dispatch Event Occurs Running Event Wait EXIT Blocked NEW Proces još nije ucitan u memoriju READY Proces je spreman za izvršavanje RUNNING Proces se izvršava BLOCKED Proces je blokiran do izvršenja neke operacije ( I/O) EXIT Proces je završen (ili ukinut) Slika 2. .READY-SUSPENDED -> READY .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.3 Prošireni model 5 stanja procesa Prelaz između stanja procesa se obavljaju nakon ostvarenja nekog događaja.BLOCKED -> BLOCKED-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 _____________________________________________________________________________________________________________ 24 .

a procesa C od 12000.4 je dat grfički prikaz dijela izvršenja 3 procesa. a istovremeno procesor može da izvršava jedan ili više procesa. Na slici 2. Raspoređivač procesa je na adresama od 100. Procesor obrađuje po 6 instrukcija jednog procesa prije nego pređe na novi. - Radi ilustracije na slici 2.kada se neki proces kreira on ne mora da ide pravo u READY stanje vec moze i u READY-SUSPENDED . Instrukcije procesa A (slika) su smještene u glavnu memoriju od 5000 adrese. NEW -> READY-SUSPENDED (READY) . procesa B od 8000.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. Main Memory 0 100 Dispatcher 5000 Process A 8000 Process B 12000 Process C 1 5000 27 12004 2 5001 28 12005 3 5002 ----------------------Time out 4 5003 29 100 5 5004 30 101 6 5005 31 102 ------------------Time out 33 103 7 100 34 104 8 101 35 5006 9 102 36 5007 10 103 37 5008 11 104 38 5009 12 105 39 5010 13 8000 40 5011 14 8001 --------------------Time out 15 8002 41 100 16 8003 42 101 ----------------------I/O request 43 102 17 100 44 103 18 101 45 104 19 102 46 105 20 103 47 12006 21 104 48 12007 22 105 49 12008 23 12000 50 12009 24 12001 51 12010 25 12002 52 12011 26 12003 -----------------Time out Slika 2.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. Na ovaj način se ostavaruje multiprocesing kod OS. 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).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.5 je prikazano upoređenje poznatih OS sa stanovišta procesa i niti. jer je pretpostavka da su procesi istog prioriteta.Operativni sistemi ______________________________________________________________________________ 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. _____________________________________________________________________________________________________________ 25 . RUNNING -> READY-SUSPENDED. BLOCKED-SUSPENDED -> BLOCKED .

Brže se prekida izvršavanje niti 3. fajlove) Slika 2.5 Procesi i niti u raznim OS Osnovni razlozi za korišćenje niti su: 1. prikaz audio/videa. Komunikacija izmedju niti je efikasnija nego komunikacija izmedju procesa (koriste isti adresni prostor tj.6 Modeli procesa sa jednom ili više niti _____________________________________________________________________________________________________________ 26 .. dodjela prioriteta prilikom izvršavanja.Operativni sistemi ______________________________________________________________________________ MS-DOS Java Tradicionalni UNIX W2K. Prebacivanje izvršavanja sa niti na nit je brže 4... Organizacija izvršavanja programa (paralelno izvršavanje više funkcija. memoriju.. 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. . Solaris.) 3.. Izbjegavanje uskih grla u izvršavanju programa (pristup disku. ..) 2. Slika 2. . Linux. mrežna komunikacija.

Pošto ona pripada slici procesa. pa se u nastavku izlaganja pominju samo procesi. tada poziv blokirajuće sistemske operacije iz jedne niti dovodi do zaustavljanja aktivnosti procesa kome ta nit pripada. Jasno je da je na ovaj način procesor maksimalno iskorišđen. Slika 2. ali i ne mora. deskriptori i sistemski stek niti se nalaze u sistemskom prostoru. Na slici 2. biti u nadležnosti sloja za upravljanje procesima. tada operativni sistem nudi sistemske operacije za upravljanje nitima. a pri tome su procesi podijeljeni na niti i ima na raspolaganju jedan procesor.7 je dat primjer OS koji obavlja više procesa (1 i 2) “istovremeno”. Sa stanovišta ostalih slojeva operativnog sistema nema suštinske razlike između procesa i niti. jer operativni sistem može da pripiše sve pozive sistemskih operacija samo procesima (posto ne registruje postojanje niti). Kada je upravljanje nitima povjereno sloju za upravljanje procesima. uništavanje i sinhronizaciju niti.7 Primjer realizacije više niti na jednom procesoru Na slici 2. koje omogućuju stvaranje.6 su dati modeli procesa sa jednom ili više niti. Na taj način se sprečava konkurentnost unutar procesa (jer zaustavljanje aktivnosti procesa sprečava aktivnost njegovih spremnih niti). U ovom slučaju. Upravljanje nitima može. kada operativni sistem ne rukuje nitima.Operativni sistemi ______________________________________________________________________________ Stanja niti su ista kao i stanja procesa. Ali. a procesi se realizuju na efikasan način. Ova mana upravljanja nitima van operativnog sistema ozbiljno umanjuje praktičnu vrednost ovakvog pristupa. kao i stekovi niti). U slučaju kada upravljanje nitima nije u nadležnosti operativnog sistema. dok se sopstveni stek niti nalazi u korisničkom prostoru (unutar slike procesa). _____________________________________________________________________________________________________________ 27 . brigu o nitima potpuno preuzima konkurentna biblioteka. u ovom slučaju upravljanje nitima se potpuno odvija u korisničkom prostoru (u kome se nalaze i deskriptori niti. Osnovna prednost upravljanja nitima van operativnog sistema je efikasnost (jer su pozivi potprograma konkurentne biblioteke brži od poziva sistemskih operacija).

sloj za upravljanje procesima se oslanja i na sloj za upravljanje radnom memorijom. ovaj proces se uspava (odnosno. jer se za njih rezerviše poseban fajl. radi pozivanja operacije za zamjenu slika procesa. radi preuzimanja njegovog imena (koje se prikazuje na ekranu) i njegove lozinke (koja se ne prikazuje na ekranu). Pri tome. ako je prepoznao korisnika. Po preuzimanju imena i lozinke. neophodna je odgovarajuća sistemska operacija. da bi posredstvom svog terminala stupio u interakciju sa korisnikom u toku njegovog predstavljanja. I proces dugoročni raspoređivač postoji za sve vreme aktivnosti operativnog sistema (jasno. koji nastavlja interakciju sa korisnikom. tada stvara proces komunikator. njegova aktivnost se zaustavlja. sto znači da je beskonačan proces uvijek ili spreman ili aktivan (on ne prelazi u stanje čekanja). Znači. U toku aktivnosti beskonačnog procesa izvršava se beskonačna petlja. jer proticanje vremena registruje drajver sata. sloj za upravljanje procesima se oslanja i na sloj za upravljanje procesorom. beskonačan proces ima zadatak da zaposli procesor. potrebnih za smještanje slika procesa. radi pristupa sadržaju izvrsnog fajla. Tada proces identifikator opet preuzima opsluživanje svog terminala. _____________________________________________________________________________________________________________ 28 . Nakon toga. PROCES DUGOROČNI RASPOREĐIVAČ Drugi primjer sistemskog procesa je proces dugoročni raspoređivač (swapper).Operativni sistemi ______________________________________________________________________________ OSNOVA SLOJA ZA UPRAVLJANJE PROCESIMA Sloj za upravljanje procesima se oslanja na sloj za upravljanje fajlovima. da bi podržao novo predstavljanje korisnika. a on postoji za sve vreme aktivnosti operativnog sistema. i procesi identifikatori postoje za sve vreme aktivnosti operativnog sistema. Na kraju. dok ne nastupi trenutak za njegovo novo aktiviranje). jer do preključivanja dolazi prilikom stvaranja i uništenja procesa.2 SISTEMSKI PROCESI Za obavljanje pojedinih zadataka operativnog sistema prirodno je koristiti procese. ako ima potrebe za dugoročnim raspoređivanjem). Prema tome. proces identifikator provjerava njihovu ispravnost i. kada za to ima potrebe). Ovakvi procesi se nazivaju sistemski (daemon). kada nema mogućnosti za korisnu upotrebu procesora. 2. PROCESI IDENTIFIKATOR I KOMUNIKATOR U sistemske procese spadaju i procesi identifikatori (login process). NULTI PROCES Tipičan primjer sistemskog procesa je nulti ili beskonačni (idle) proces. Njegov prioritet je niži od prioriteta svih ostalih procesa. jer su u sluzbi operativnog sistema. Ona se nastavlja tek nakon završetka aktivnosti procesa komunikatora. koji se brine o zamjeni slika procesa (jasno. Pored toga. radi zauzimanja i oslobađanja zona radne memorije. kada ne postoji drugi spreman proces. ali i radi upravljanja kopijama slika procesa. On se periodično aktivira. koji podržavaju predstavljanje korisnika. Ona pripada sloju za upravljanje kontrolerima. proces identifikator prepušta svoj terminal stvorenom procesu komunikatoru i zaustavlja svoju aktivnost. Da bi se proces uspavao (odnosno da bi se njegova aktivnost zaustavila do nastupanja zadanog trenutka). na koga se procesor preključuje. Svaki proces identifikator opslužuje po jedan terminal.

Operativni sistemi ______________________________________________________________________________ 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).
_____________________________________________________________________________________________________________

29

Operativni sistemi ______________________________________________________________________________ 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
_____________________________________________________________________________________________________________

30

Operativni sistemi ______________________________________________________________________________ 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.

_____________________________________________________________________________________________________________

31

Ova dužina može biti izražena brojem bajta. To dovodi do daljeg drobljenja (skraćenja) nizova slobodnih susednih blokova. koje sadrži svaki blok). jer nepopunjeni poslednji blok datoteke predstavlja neupotrebljen (i potencijalno neupotrebljiv) deo masovne memorije. Problem eksterne fragmentacije se može riješiti sabijanjem (compaction) svih datoteka. Da bi ovakvo prebacivanje bilo moguće. ostatak deljenja ukazuje na relativni položaj bajta u bloku. Kod kontinualnih datoteka redni broj bloka. u kome svaki bit odgovara jednom bloku i pokazuje da li je on zauzet (0) ili slobodan (1). prilikom traženja dovoljno dugačkog niza susednih blokova. koga obavezno prati podatak o popunjenosti poslednjeg bloka. nego i o rednom broju početnog bloka datoteke. Ova pojava je važna. neophodno je da sloj za upravljanje datotekama uspostavi preslikavanje rednih brojeva bajta u redne brojeve njima odgovarajućih blokova. čija dužina je jednaka sumi slobodnih blokova. U slučaju ovakve evidencije. zauzme iste slobodne blokove masovne memorije. kada se. Ta pojava se zove eksterna fragmentacija (external fragmentation). a iz masovne u radnu memoriju radi obrade. na primjer. Za potrebe kontinualnih datoteka bitno je da ova evidencija olakša pronalaženje dovoljno dugačkih nizova susednih blokova. Pojava iscepkanosti slobodnih blokova masovne memorije u kratke nizove susednih blokova otežava upravljanje kontinualnim datotakama.Operativni sistemi ______________________________________________________________________________ KONTIUNALNI FAJLOVI Sadržaji datoteka se nalaze u blokovima masovne memorije. Upravljanje slobodnim blokovima masovne memorije zahtjeva sinhronizaciju (međusobnu isključivost procesa). jer preostaju sve kraći nizovi slobodnih susednih blokova. pronađe niz duži od potrebnog. Problem eksterne fragmentacije se povećava. ako se sadržaj datoteke nalazi u susednim blokovima (čiji redni brojevi su uzastopni). Ovakve datoteke se nazivaju kontinualne (contiguous). kao i o dužini datoteke. tako da svi slobodni blokovi budu potisnuti iza datoteka i da tako obrazuju niz susednih blokova (mana ovog postupka je njegova dugotrajnost). Ovakvo preslikavanje se najlakše uspostavlja. Pri tome se bajti prebacuju iz radne u masovnu memoriju radi njihovog trajnog čuvanja. se određuje kao količnik rednog broja bajta i veličine bloka (izražene brojem bajta. čija veličina se zadaje prilikom njihovog stvaranja (znači. jer posredno izaziva neupotrebljivost slobodnih blokova masovne memorije. 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. nezavisno jedan od drugog. Pri tome. kada oni ne obrazuju niz susednih blokova. Kontinualne datoteke zahtjevaju od sloja za upravljanje datotekama da za svaku datoteku vodi evidenciju ne samo o njenom imenu. međusobno razdvojenih blokovima postojećih datoteka. u kome se nalazi neki bajt. Eksterna fragmentacija je problematična. eksterna fragmentacija onemogućuje stvaranje kontinualne datoteke. Za bilo kakvo upravljanje ovim sadržajem neophodno je da on dospe u radnu memoriju. jer se tada zauzima (allocation) samo deo blokova u pronađenom nizu. Zato je podesna evidencija u obliku niza bita (bit map). Sloj za upravljanje fajlovima obavezno vodi i evidenciju slobodnih blokova masovne memorije. Ovakvo pronalaženje je neizbježno pri stvaranju kontinualnih datoteka. _____________________________________________________________________________________________________________ 32 . Ona nastaje kao rezultat višestrukog stvaranja i uništenja datoteka u slučajnom redosledu. izbjeglo da više procesa. Pojava da poslednji blok datoteke nije popunjen do kraja se naziva interna fragmentacija (internal fragmentation). mora biti unapred poznata). pa iza uništenih datoteka ostaju nizovi slobodnih susednih blokova. da bi se. Zato je upravljanje bajtima sadržaja datoteke neraskidivo povezano sa prebacivanjem blokova sa ovim bajtima između radne i masovne memorije. Na primjer. ali i brojem blokova.

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. ...8 Grafički prikaz bitnih elemenata organizacije rasute datoteke _____________________________________________________________________________________________________________ blok prvog stepena indirekcije b 33 . blok drugog stepena indirekcije p+b+b2 +b3-1 Slika 2. RASUTI FAJLOVI Upotrebnu vrednost kontinualnih datoteka značajno smanjuju problem eksterne fragmentacije.. b . čiji sadržaj je smješten (rasut) u nesusjednim blokovima masovne memorije. dok indekse ovih elemenata određuje količnik rednog broja bajta i veličine bloka.Operativni sistemi ______________________________________________________________________________ U opštem slučaju produženje kontinualne datoteke je komplikovano.. deskriptor rasutog fajla tabela pristupa 0 p p-1 p b p+b-1 p+b . jer se ne može očekivati da se neposredno iza produžavane datoteke uvek nađe dovoljno dugačak niz susednih slobodnih blokova). . . b . Njeni elementi sadrže redne brojeve blokova. Kod rasutih datoteka redni brojevi bajta se preslikavaju u redne brojeve blokova pomoću posebne tabele pristupa (file allocation table). b p+b+b2-1 p+b+b2 .... potreba da se unapred zna veličina kontinualnih datoteka i teškoće sa njihovim produžavanjem... prepisivanje sadržaja produžavane datoteke u novu datoteku i uništavanje produžavane datoteke (sve ovo je potrebno... Zato se umjesto kontinualnih koriste rasute (noncontiguous) datoteke.. veće kontinualne datoteke.. jer zahtjeva stvaranje nove..

.9 Grafička predstava evidencije slobodnih blokova u obliku liste _____________________________________________________________________________________________________________ 34 . pri uništenju datoteke. važno je da se u blokovima masovne memorije ne čuva uvijek cijela tabela pristupa. . On sadrži do b rednih brojeva blokova sa dodatnim odsječcima. Evidencija slobodnih blokova masovne memorije u obliku liste slobodnih blokova je prikazana na slici 2. U svakom od njih se nalazi b novih elemenata tabele pristupa. i sadržaji datoteka).. može da se upotrebi i za organizaciju evidencije slobodnih blokova masovne memorije. Dodatni odsječci su prisutni samo kad su neophodni. ali njena prednost je da olakšava pronalaženje susjednih slobodnih blokova. Alternativna organizacija evidencije slobodnih blokova je u obliku niza bita. Zato se tabela pristupa dijeli u odsječke. nego samo njen neophodan (stvarno korišćen) deo. direktno uključuju u listu slobodnih blokova.. a u svakom od njih se nalazi b novih elemenata tabele pristupa. blokovi. b-1 rednih brojeva slobodnih blokoa koji nijesu vezani u listu Slika 2. u kome se nalazi narednih b elemenata tabele pristupa. Ovakva evidencija slobodnih blokova je usklađena sa tabelom pristupa. za ovu tabelu se zauzima poseban blok drugog stepena indirekcije. Kada zatreba još dodatnih odsječaka. uostalom. .Operativni sistemi ______________________________________________________________________________ Tabele pristupa se čuvaju u blokovima masovne memorije (kao. Za ovu tabelu se. Ovakva organizacija ima za posledicu dugotrajnije uključivanje slobodnih blokova u evidenciju. jer se. po potrebi. Radi manjeg zauzeća. koji nisu uvezani u listu. kao i redni brojevi blokova prvog i drugog stepena indirekcije. kao što su sadržaj početnog odsječka tabele pristupa i redni broj njenog prvog dodatnog odsječka. koji odgovaraju dodatnim odsječcima. Na kraju. Početni odsječak (sa p elemenata tabele pristupa) je uvijek prisutan.. Prema tome. Ideja. u kome se nalazi početni odsječak tabele pristupa sa p njenih elemenata. b-1 rednih brojeva slobodnih blokoa koji nijesu vezani u listu . zauzima jos jedan blok sa dodatnim odsečkom. On sadrži do b rednih brojeva blokova prvog stepena indirekcije. pored rednog broja narednog slobodnog bloka iz ove liste. sadrži do b-1 rednih brojeva slobodnih blokova. ukupno ima 1+b+b2 dodatnih odsečaka (svaki sa b elemenata tabele pristupa).9. jer i kod nje poslednji blok njenog sadržaja ne mora biti popunjen do kraja..8 sadrži grafički prikaz bitnih elemenata organizacije rasute datoteke. za tabelu pristupa se zauzima poseban blok prvog stepena indirekcije. Pored toga. U tom slučaju ova evidencija ima oblik liste slobodnih blokova. Prema tome. Svaki od njih sadrži do b rednih brojeva blokova sa dodatnim odsječcima. ovaj deskriptor obuhvata i dužinu rasute datoteke. Svaki od njih.. Svaki dodatni odsječak je jednak bloku masovne memorije i može da sadrži b elemenata tabele pristupa (b > p). obrazuju deskriptor rasute datoteke. po potrebi. korišćena za organizaciju tabele pristupa. On je manji od bloka masovne memorije. svaka rasuta datoteka zauzima jedan blok (ili njegov deo). Slika 2. Podaci.

eventualno. nego ljudskog rada (na primjer. Zato je neophodno uvijek prebacivati u masovnu memoriju prvo promijenjenu kopiju bloka evidencije slobodnih blokova. U jednom slučaju. tada je produženje rasute datoteke uspješno obavljeno. editovanja). Znači. jednog bloka sa deskriptorom datoteke. spor (dugotrajan). U drugom slučaju. važno je što pre izmijenjenu kopiju prebaciti u masovnu memoriju. pa. Upravljanje ovim blokovima usložnjava činjenica da se međusobno zavisni podaci nalaze u raznim blokovima. u kojima se nalaze i sadržaj i deskriptor i. eventualno. tada produženje rasute datoteke nije obavljeno. na primjer. na kraju. tada se javljaju problemi konzistentnosti sistema datoteka. potrebno je paziti na redosled u kome se izmjenjene kopije blokova prebacuju u masovnu memoriju. sa stanovišta procesora. dobra ideja je zauzeti u radnoj memoriji prostor za više bafera. Nakon izmjene kopije bloka u radnoj memoriji. koje će biti korišćene u neposrednoj budućnosti (jer se samo tako značajno ubrzava obrada podataka). jednog ili više dodatnih blokova tabele pristupa i. ostaje i dalje uključen u evidenciju slobodnih blokova. Ako obje izmjenjene kopije budu prebačene u masovnu memoriju. Isti efekat ima i izmjena tabele pristupa produžavane rasute datoteke. BAFERSKI PROSTOR Pristupi sadržaju datoteke mogu zahtjevati prebacivanje više blokova u radnu memoriju (na primjer. pa tek iza toga i promenjenu kopiju bloka tabele pristupa. a niti u tabeli pristupa neke od rasutih datoteka). jer može da izazove istovremeno uključivanje istog bloka u vise rasutih datoteka (čime se narušava njihova konzistentnost). njeni baferi mogu istovremeno da sadrže mali broj kopija blokova masovne memorije. prenos blokova na relaciji radna i masovna memorija. ako izmjena nije rezultat automatske obrade. dodatni odsječci tabele pristupa svake rasute datoteke. prebačene u masovnu memoriju. sa međusobno zavisnim podacima. kao i izmjenu tabele pristupa produžavane rasute datoteke (radi smještanja rednog broja novog bloka u element ove tabele). pridružen ovoj tabeli. ako samo jedna od promenjenih kopija dospe u masovnu memoriju. ni u tabelama pristupa rasutih datoteka). drugi slučaj je neprihvatljiv. jer se izgubljeni blokovi mogu pronaći (pronalazenje izgubljenih blokova se zasniva na traženju blokova koji nisu prisutni ni u evidenciji slobodnih blokova. To je naročito važno. a trajno čuvaju u masovnoj memoriji. Pošto je radna memorija mnogo manja od masovne. kada samo promijenjena kopija bloka evidencije slobodnih blokova dospije u masovnu memoriju. produženje rasute datoteke zahtjeva izmjenu evidencije slobodnih blokova (radi isključivanja pronađenog slobodnog bloka iz ove evidencije). Tako. Pošto se blokovi modifikuju u radnoj memoriji. Ako ni jedna od kopija ne dospije u masovnu memoriju. Za razliku od prvog slučaja. prirodno je da u pojedinim trenucima postoji razlika između blokova u masovnoj memoriji i njihovih kopija u radnoj memoriji. kada samo promenjena kopija bloka tabele pristupa dospe u masovnu memoriju. jer se tada ne može automatski rekonstruisati. Prvi slučaj je bezazlen. namjenjenih za čuvanje kopija korišćenih blokova (block cache. Probleme izaziva gubitak kopija blokova u radnoj memoriji (na primjer. Izmjena evidencije slobodnih blokova dovodi do promjene jedne od kopija njenih blokova u radnoj memoriji. kao posledica nestanka napajanja). Pošto je. prije nego su sve kopije blokova. zbog nestanka napajanja). blok. buffer cache). jer nije registrovano u masovnoj memoriji. Ali. a potrebno je _____________________________________________________________________________________________________________ 35 .Operativni sistemi ______________________________________________________________________________ KONZISTENTNOST FAJL SISTEMA Iza upravljanja datotekama krije se upravljanje blokovima masovne memorije. blok isključen iz ove evidencije postaje izgubljen (jer njegov redni broj nije prisutan niti u ovoj evidenciji. Problem se javlja kada su svi baferi napunjeni. radi smanjenja mogućnosti da se ona izgubi (na primjer. bloka sa traženim bajtima sadržaja). Zato je važno da baferi sadrže kopije blokova.

da deskriptor fajla sadrži prava pristupa fajlu. DESKRIPTOR FAJLA Deskriptor fajla. Iskustvo pokazuje da je najbolji pristup osloboditi bafer. 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). čija kopija nije prisutna u nekom od bafera. Na početak ovakve liste se uvek prebacuje bafer sa upravo korišćenom kopijom (sa najnovijom referencom). ako se uvede posebna operacija (sync) za izazivanje prebacivanja sadržaja bafera (sa izmjenjenim kopijama blokova) u masovnu memoriju. Baferovanje izmjenjenih kopija blokova u radnoj memoriji zahtjeva da se odredi trenutak u kome se izmjenjena kopija prebacuje u masovnu memoriju. Pri tome se podrazumijeva da su aktivnosti ovih procesa _____________________________________________________________________________________________________________ 36 . sto je blok veći. a da su samo periferni djelovi računara (kao što su terminali ili štampači) direktno na raspolaganju korisnicima. prisutnih u baferima (Least Recently Used . a ako se izmjenjena kopija prebacuje u masovnu memoriju tek pri oslobađanju bafera. Međutim. neophodno je sačuvati izmjeene. 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. Najstariju referencu ima kopija kojoj je poslednji put pristupano u trenutku. Podatak da li je fajl zaključan ili ne je uveden radi ostvarenja međusobne isključivosti procesa u toku pristupa datoteci. datum poslednje izmjene fajla. podatak da li je fajl zaključan ili ne. Pri oslobađanju bafera. pa na njen kraj nužno dospeva bafer sa kopijom čija referenca je najstarija. baferi se uvezuju u listu. 3. zbog nestanka napajanja). sadrži: 1. podrazumijeva da je sadržaj masovne memorije fizički zaštićen (tako da nema načina za neovlašteni pristup masovnoj memoriji). tada se usporava rad. starijem od trenutaka poslednjih pristupanja svim ostalim kopijama. pored atributa koji omogućuju preslikavanje rednih brojeva bajta u redne brojeve blokova. 4. Ako se izmjenjena kopija prebacuje u masovnu memoriju odmah nakon svake izmjene. U suprotnom slučaju. Da bi se znalo koja od kopija ima najstariju referencu. Činjenica. Rješavanje ovoga problema se može posredno prepustiti korisniku. kada bafer sadrži neizmijenjenu kopiju bloka (jer je ona identična bloku masovne memorije). veća je i interna fragmentacija. pa se kopija prebacuje u masovnu memoriju. kao i 5. U oslobođeni bafer se prebacuje kopija potrebnog bloka masovne memorije.Operativni sistemi ______________________________________________________________________________ pristupiti bloku masovne memorije. tada se povećava mogućnost gubljenja izmjene (na primjer. što je blok veći. Ta dva suprotna zahtjeva utiču na izbor veličine bloka. To podrazumijeva da se centralni djelovi računara (procesor. da bi se u njega smjestila kopija potrebnog bloka. 2. U tom slučaju neizbežno je oslobađanje nekog od bafera. kontroleri i sabirnica) nalaze u zaštićenoj (sigurnoj) prostoriji. numeričku oznaku vlasnika fajla. Na brzinu prebacivanja podataka između radne i masovne memorije važan uticaj ima i veličina bloka. prava pristupa fajlu za njenog vlasnika. za njegove saradnike i za ostale korisnike. jer.LRU). koja se kreće od 512 bajta do 8192 bajta. njegov dotadašnji sadržaj se poništava. radna i masovna memorija. koji sadrži kopiju čija referenca je starija od referenci svih ostalih kopija. u prosjeku se potroši manje vremena na prebacivanje jednog bajta između radne i masovne memorije.

jer je moguće da proces nastavi svoju aktivnost i nakon neuspešnog pokušaja zaključavanja datoteke (jasno. Zbog ovakvih procesa potrebna je operacija otključavanja datoteke. Prema tome. Pomenuta sinhronizacija obezbjeđuje da uvek najviše jedan proces zaključa datoteku. količnik rednog broja deskriptora i ukupnog broja deskriptora u bloku određuje redni broj bloka sa deskriptorom. Pod pretpostavkom da blok sadrži cijeli broj deskriptora. u direktorijum. Da bi se uspostavila veza između imena datoteka. odnosno ime direktorijuma. istovremeno zaključaju pomenutu datoteku. tipičan način korišćenja direktorijuma je njihovo pretraživanje. u toku njenog obavljanja dolazi do zaustavljanja aktivnosti procesa. odnosno sadržaju direktorijuma. Ovakvo pretraživanje prirodno prethodi pristupu sadržaju datoteke. Prema tome. dok se ne stvore uslovi za međusobno isključive pristupe zaključanoj datoteci. dok svi preostali istovremeno aktivni procesi pronalaze zaključanu datoteku. direktorijum odgovara tabeli. imena direktorijuma) i redne brojeve njihovih deskriptora. Pošto se ime datoteke nalazi u direktorijumu. kada.Operativni sistemi ______________________________________________________________________________ međusobno isključive u toku obavljanja operacije zaključavanja datoteke. tada se njihova aktivnost zaustavlja do otključavanja datoteke. mogao da bude smješten i deskriptor datoteke. izvjestan broj susjednih blokova se rezerviše samo za smještanje deskriptora. uz njega bi. u kome se deskriptor nalazi. u kojoj se provjerava da li je datoteka zaključana i eventualno obavi njeno zaključavanje. uz imena datoteka. Njeno izvršavanje omogućuje nastavak aktivnosti samo jednog od procesa. pogotovo ako su oni veliki. čija aktivnost je zaustavljena do otključavanja datoteke. Brzina tog pretraživanja je veća što su direktorijumi kraći. radi pronalaženja imena direktorijuma ili imena fajla. čiji elementi sadrže imena datoteka (odnosno. 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. odnosno imena direktorijuma sa jedne strane i njihovih deskriptora sa druge strane. Zato je uputno da direktorijumi sadrže samo imena datoteka i direktorijuma. tada se podrazumijeva da on neće pristupati pomenutoj datoteci). Međutim. da bi se spriječilo da dva ili više procesa istovremeno zaključe da je ista datoteka otključana i da. radi uslovne sinhronizacije. nego i sve druge operacije za upravljanje deskriptorima datoteka. u direktorijumima se. DIREKTORIJUMI Ime fajla je prirodno vezano za njegov deskriptor. povezuje sa odgovarajućim deskriptorom. Pri tome se podrazumijeva da je deskriptor sa rednim brojem 0 rezervisan za _____________________________________________________________________________________________________________ 37 . Sinhronizaciju procesa moraju da obezbijede ne samo operacije zaključavanja i otključavanja datoteke. jer samo on pronalazi otključanu datoteku. U slučaju zaključavanja datoteke. nego se samo prepusta novom procesu. datoteka se otključava. Na taj način se ime datoteke. Jedino tako se može obezbijediti očuvanje konzistentnosti deskriptora (i njima odgovarajućih datoteka). datoteka se i ne otključava. nezavisno jedan od drugog. kada njena povratna vrednost ukazuje na neuspješan pokušaj zaključavanja datoteke i na nemogućnost pristupa datoteci. I operacija otključavanja datoteka zahtijeva sinhronizaciju procesa. jer se tada manje podataka prebacuje između radne i masovne memorije. Prethodno opisana sinhronizacija procesa predstavlja primjer uslovne sinhronizacije. operacija zaključavanja datoteke je blokirajuća. a ne i njihove deskriptore. Ova operacija je neblokirajuća. navedene u datoj putanji. Inače. koju je zaključao neki drugi proces. Sinhronizacija procesa u toku obavljanja ove operacije je neophodna. uslovna sinhronizacija nije uvek obavezna. Ako takav proces postoji. odnosno uz imena direktorijuma. Ako je za nastavak aktivnosti ovih preostalih procesa neophodno da pristupe datoteci. Da bi se iz rednog broja deskriptora mogao odrediti redni broj bloka masovne memorije. navode i redni brojevi njihovih deskriptora (koji jednoznačno određuju ove deskriptore).

Ova kopija se ne uključuje u deskriptor procesa. jer ista datoteka može istovremeno biti otvorena u toku aktivnosti više procesa. moguće je uvek pronaći deskriptor korijenskog direktorijuma i od njega započeti pretraživanje direktorijuma. Ako sadrži. Rezultat njenog izvršavanja je prebacivanje kopije deskriptora datoteke u radnu memoriju. Po prebacivanju ovog bloka u radnu memoriju. Zahvaljujući ovoj pretpostavci. što obavezno prethodi pristupu sadržaju datoteke. u pomenutom deskriptoru se pronalaze redni brojevi blokova sa sadržajem direktorijuma smjer1. U toku _____________________________________________________________________________________________________________ 38 . Nakon prebacivanja ovih blokova u radnu memoriju. Po prebacivanju ovog bloka u radnu memoriju. 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. Tako. u pomenutom deskriptoru se pronalaze redni brojevi blokova sa sadržajem direktorijuma fakultet. da bi se ustanovilo da li on sadrži ime smjer1. SISTEMSKE OPERACIJE SLOJA ZA UPRAVLJANJE FAJLOVIMA Prethodno opisano pretraživanje direktorijuma se dešava u okviru izvršavanja sistemske operacije otvaranja datoteke (open). 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 i ovog direktorijuma. moguće je pretražiti sadržaj korijenskog direktorijuma. u deskriptoru svakog procesa postoji tabela otvorenih datoteka. u toku čije aktivnosti je inicirano njeno prebacivanje. ili za pisanje. Da bi svaki od njih koristio istu kopiju deskriptora datoteke.Operativni sistemi ______________________________________________________________________________ korijenski direktorijum. Po prebacivanju ovog bloka u radnu memoriju. On određuje datoteku na koju se pomenuti poziv odnosi. Njeni elementi sadrže adresu kopije deskriptora odgovarajuće datoteke. kao i naznaka zaključavanja datoteke. da bi se ustanovilo da li on sadrži ime datoteke godina1. u pomenutom deskriptoru se pronalaze redni brojevi blokova sa sadržajem datoteke godina1. iz koga se može odrediti redni broj bloka u kome se nalazi ovaj deskriptor.txt. iz koga se može odrediti redni broj bloka u kome se nalazi ovaj deskriptor. neophodno je njihovo zaključavanje.txt. koji je poznat. Nakon prebacivanja ovih blokova u radnu memoriju moguće je pretražiti sadržaj i ovog direktorijuma. Ovaj indeks otvorene datoteke se koristi kao argument u pozivima drugih sistemskih operacija sloja za upravljanje fajlovima. Ako sadrži. U toku pristupa direktorijumima. uz ovo ime je i redni broj deskriptora odgovarajućeg direktorijuma. 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. što podrazumijeva i njeno čitanje). zahvaljujući činjenici da je redni broj (0) deskriptora korenskog direktorijuma unapred zadan. Zato je putanja datoteke obavezni argument poziva ove operacije. da bi se ustanovilo da li on sadrži ime fakultet. radi obezbijeđenja međusobne isključivosti pristupa raznih procesa istom direktorijumu (čime se obezbijeđuje očuvanje konzistentnosti direktorijuma). Indeks elementa tabele otvorenih datoteka (u kome je adresa kopije deskriptora otvorene datoteke) predstavlja povratnu vrijednost poziva sistemske operacije otvaranja datoteke. Od veličine tabele otvorenih datoteka zavisi najveći mogući broj istovremeno otvorenih datoteka nekog procesa. uz ovo ime je i redni broj deskriptora odgovarajućeg direktorijuma.txt potrebno je prebaciti u radnu memoriju blok sa deskriptorom korijenskog direktorijuma. za pristup sadržaju datoteke sa putanjom: /fakultet/smjer1/godina1. Tek tada je moguć pristup ovom sadržaju. Ako sadrži. na primjer.

da. između uzastopnih poziva sistemskih operacija otvaranja i zatvaranja datoteke). izraženim u otvaranju datoteke) pozivom sistemske operacije pisanja datoteke (write). 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). kada je operacija otvaranja datoteke neblokirajuća (kada se oslanja na neblokirajuću operaciju zaključavanja datoteka). zaustavlja aktivnost procesa. Ona. proces nije pod uticajem izmjena prava pristupa otvorenoj datoteci (jer izmjena prava pristupa postaje delotvorna tek pri narednom otvaranju datoteke. Međutim. eventualno. Podrazumijeva se da sistemske operacije pisanja i čitanja nude sekvencijalne pristupe datotekama. pokušava se zaključati otvarana datoteka (za šta se. Obavezni argument poziva sistemske operacije zatvaranja datoteke je indeks otvorene datoteke. ako. To znači. sadržaj datoteke se može čitati pozivom sistemske operacije čitanja datoteke (read) i pisati (ako je to u skladu sa namerama. postoje i drugi procesi koji joj pristupaju (zato kopija deskriptora datoteke sadrži broj procesa koji pristupaju datoteci). Važno je uočiti da u periodu dok je datoteka otvorena (znači. a poziv sistemske operacije pisanja sadrži. Obavezni argumenti ovih poziva su indeks otvorene datoteke i broj bajta (koji se čitaju ili pišu). što je navedeno u deskriptoru otvarane datoteke). 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). pa je uvek obezbijeđena međusobna isključivost pristupa datoteci). pristupa njenom deskriptoru). adresu zone radne memorije iz koje se preuzimaju bajti za pisanje. čisti odgovarajući element tabele otvorenih datoteka procesa. Takođe. naredni takav poziv datoteke će da pročita (upiše) drugi bajt datoteke. kao argument. radi naknadne provjere ispravnosti pristupa datoteci. Oba poziva vraćaju vrednost.Operativni sistemi ______________________________________________________________________________ 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. Inače. takođe. Kopija deskriptora zatvarane datoteke ostaje u radnoj memoriji. Kod greške sadrži obavestenje o neuspjehu pri zaključavanju datoteke. automatski zatvore sve otvorene datoteke. Radi podrške sekvencijalnom pristupu. kopiju deskriptora i baferovane kopije blokova sadržaja zatvarane datoteke u masovnu memoriju (što je neophodno samo ako je ona izmjenjena). Korišćenje datoteke se završava pozivom sistemske operacije zatvaranja datoteke (close). numerička oznaka vlasnika otvarane datoteke. Tada poziv sistemske operacije otvaranja datoteke vraća indeks otvorene datoteke. koja ukazuje na uspješan poziv ili na grešku. Nakon otvaranja. Korisna praksa je da se. kome je potebno otvaranje datoteke (po obavljanju blokirajuće operacije otvaranja datoteke. on vraća kod greške. i prebacuje. na kraju aktivnosti procesa. Ako je operacija otvaranja datoteke blokirajuća (ako se oslanja na blokirajuću operaciju zaključavanja datoteka). za njegove saradnike i za ostale korisnike. do zaključavanja datoteke. datoteka je zaključana. pošto se tek tada ova prava ponovo provjeravaju). ako jedan poziv sistemske operacije čitanja (pisanja) pročita (upiše) prvi bajt datoteke. tada se. poziv sistemske operacije čitanja sadrži. u toku obavljanja sistemske operacije otvaranja datoteke. kao i prava pristupa datoteci za njenog vlasnika. Pokušaj otvaranja nepostojeće datoteke dovodi do njenog stvaranja (ako se tako navede u argumentima poziva sistemske operacije otvaranja datoteke). pored procesa koji zatvara datoteku. Pored toga. kao argument. koji je pozvao ovu sistemsku operaciju. moguće je da postoji i posebna sistemska operacija za stvaranje datoteke. adresu zone radne memorije u koju se smještaju pročitani bajtovi. eventualno. svaki element tabele otvorenih datoteka sadrži (pored polja sa _____________________________________________________________________________________________________________ 39 . otključava datoteku.

U sistemske operacije za izmjenu atributa datoteke spada i sistemska operacija za izmjenu imena datoteke. uništenje nepostojeće datoteke ne može biti uspješno obavljeno). Nakon toga se u radnoj memoriji oblikuje novi sadržaj blokova i oni se prebacuju u masovnu memoriju. Zatim se provjerava da li je ove sistemske operacije pozvao vlasnik datoteke (jer jedino on ima pravo da mijenja atribute datoteke). tada se mijenja zadani atribut i blok sa izmjenjenom kopijom deskriptora vraća u masovnu memoriju. prava pristupa datoteci za njenog vlasnika. U okviru izvršavanja ovih sistemskih operacija pretražuju se direktorijumi. i ovde je neophodan pristup deskriptoru datoteke. upisivanju bajta prethodi zauzimanje blokova. Povratna vrijednost ove operacije ukazuje da li je ona uspješno obavljena (na primjer. Ako blok ne postoji. Prvi poziv izmjeni poziciju datoteke u odgovarajućem elementu tabele otvorenih datoteka. pretražuju se direktorijumi.Operativni sistemi ______________________________________________________________________________ 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). radi provjere da li je ovu operaciju pozvao vlasnik datoteke (kao i pristup deskriptoru njenog direktorijuma). Na kraju se uništava ime datoteke u odgovarajućem direktorijumu (što predstavlja izmjenu njegovog sadržaja). Tako. Obavezni argumenti poziva ovih sistemskih operacija su putanja datoteke i nova vrednost menjanog atributa datoteke. Obavezni argument njenog poziva je putanja uništavane datoteke. nego njen direktorijum. oslobađaju se blokovi datoteke i njen deskriptor. Za uništenje datoteke (delete) neophodna je posebna sistemska operacija. Radi toga se mijenja (proširuje) tabela pristupa datoteke (što znači da produžavanje datoteke dovodi do izmjene njenog deskriptora). ako se ponude posebne sistemske operacije za upravljanje _____________________________________________________________________________________________________________ 40 . kao sto su oznake. na osnovu ove pozicije i kopije deskriptora datoteke. ako jeste. dok povratna vrednost ovog poziva ukazuje da li je poziv bio uspješan ili ne. sadržanih u njenom deskriptoru (kao sto su numerička oznaka vlasnika datoteke. Potreba za poznavanjem organizacije direktorijuma se izbegava. Ako jeste. postoji sistemska operacija izmjene pozicije datoteke (seek). Zatim se provjerava da li je ovu sistemsku operaciju pozvao vlasnik datoteke i. Drugi poziv. Prethodno opisane sistemske operacije omogućuju pristup svim datotekama. Iako se u okviru ove operacije ne mijenja deskriptor datoteke. Svako čitanje ili pisanje pomjera poziciju na prvi naredni nepročitani (neupisani) bajt. ako se želi pisati na kraj datoteke. U ovu kopiju se smjeste dopisivani bajti i ona se prebaci (odmah ili kasnije. koje se odnose na prethodni i naredni direktorijum u hijerarhiji i slično). Ali za pristupe direktorijumima je potrebno poznavati njihovu organizaciju (koliko bajta je rezervisano za imena datoteka i direktorijuma. radi prebacivanja u radnu memoriju kopije deskriptora datoteke. Da bi bili mogući direktni pristupi bajtima datoteke (u proizvoljnom redosledu). ili ako se upisivanje proteže na više blokova. odredi redni broj bloka (ako on postoji) i prebaci njegovu kopiju u radnu memoriju (ako ona već nije bila prisutna u radnoj memoriji). stvorenog na osnovu sadržaja datoteke). za njegove saradnike i za ostale korisnike. Sloj za upravljanje datotekama nudi posebne sistemske operacije za izmjenu atributa datoteke. i zatim pozvati sistemsku operaciju pisanja. ili podatak da li numerička oznaka vlasnika datoteke postaje numerička oznaka vlasnika procesa. radi prebacivanja u radnu memoriju kopije deskriptora uništavane datoteke. neophodno je prvo pozvati sistemsku operaciju izmjene pozicije datoteke. a povratna vrednost ovog poziva ukazuje na njegovu uspješnost. a njihova povratna vrednost ukazuje na uspješnost poziva. a koliko za redne brojeve njihovih deskriptora. U okviru sistemske operacije uništenja datoteke. da li ima oznaka sa posebnim značenjem. na primjer. Obavezni argumenti njenog poziva su indeks otvorene datoteke i podatak o novoj poziciji. znači i direktorijumima. radi pozicioniranja iza poslednjeg bajta datoteke. zavisno od strategije baferovanja) u masovnu memoriju.

koga datoteka predstavlja). stampač ili mrežni kontroler) i na • blokovske (one odgovaraju. kao sto je tastatura. Blokovske specijalne datoteke podržavaju čitanje ili pisanje blokova. ulazno izlazni uređaj. koji se upućuju na ekran.. kao sto je ekran.. a sastoji se od bajta iz pojedinih blokova diska. kod pronalaženja izgubljenih blokova. Specijalne datoteke se dijele na: • znakovne (one odgovaraju uređajima kao sto su tastatura. kod sabijanja datoteka. Za njih izmjena pozicije omogućuje određivanje rednog broja bloka na koga se primjenjuje naredna operacija. Slično. ili kod pripremanja disk jedinica za korišćenje. ili odlaze na odgovarajući uređaj). kao sto je disk. odgovara datoteci. izlazni uređaj.. koga datoteka predstavlja).. Znakovne specijalne datoteke podržavaju sekvencijalno čitanje ili pisanje znakova (koji dolaze sa odgovarajućeg urađaja. Takođe. koji nisu upotrebljeni za smještanje sadržaja datoteka ili za tabele pristupa). odgovara datoteci. što je važno. ili radi zaključavanja (čime se zaključava uređaj. koje predstavljaju pojedine ulazne ili izlazne uređaje. ulazni uređaj. odgovara datoteci. To prikazuje slika 2. čiji sadržaj se može samo pisati. U poslednjem slučaju se određuje namjena pojedinih blokova diska. koji su potrebni za pokretanje računara (operativnog sistema). podatke o nizu susednih blokova. SPECIJALNI FAJLOVI Važno svojstvo pojma fajla je da je on primjenljiv i za opisivanje ulaznih i izlaznih uređaja.. Za ove datoteke izmjena pozicije nema smisla. blok 0 blok 1 blok 2 . a sastoji se od bajta. se nazivaju specijalne datoteke (special file). na primjer. Slika 2.10) je rezervisan za podatke. na primjer. podatke o slobodnim mjestima za deskriptore datoteka i 3.Operativni sistemi ______________________________________________________________________________ direktorijumima. 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). čiji sadržaj se može samo čitati. Blokovske specijalne datoteke omogućuju direktno pristupe blokovima diska. Datoteke. a drugi (super) blok sadrži: 1. radi provjere prava pristupa (čime se provjerava pravo pristupa uređaju. 2.10. . podatke potrebne za evidenciju (preostalih) slobodnih blokova (u ovu evidenciju se uključuju svi blokovi. neophodno je njihovo otvaranje. slijedi _____________________________________________________________________________________________________________ prvi (boot) blok drugi (super) blok blokovi namijenjeni za deskriptore blokovi namijenjeni za sadržaj fajlovai za tabele pristupa 41 . diskovima). čiji sadržaj se može i pisati i čitati. ekran. blok n . Prije korišćenja specijalnih datoteka. koji stižu sa tastature. Tako.10 Namjena pojedinih blokova diska Prvi (boot) blok (sa slike 2.. a sastoji se od bajta. Nakon korišćenja.

služi vrednost 1. nastavi interakciju sa korisnikom. U slučaju da proces stvaralac zaustavlja svoju aktivnost. ili podatak da li je datoteka zaključana ili ne. služi vrednost 0. nego podaci o odgovarajućem drajveru i primjerku uređaja. Sistemske operacije prave razliku između običnih i specijalnih datoteka na osnovu odgovarajuće oznake. da bi se na njega mogla usmeriti odabrana operacija drajvera. Međutim. na primjer. završavajući u drugoj. ako se redni broj drajvera čuva u deskriptoru specijalne datoteke. Za izmjenu atributa specijalnih datoteka primjenljive su sistemske operacije. Kada se otkriju. bez otvaranja se može čitati standardni ulaz i pisati standardni izlaz. _____________________________________________________________________________________________________________ 42 . Isto važi i za sistemske operacije za izmjenu imena datoteke i za njeno uništenje (pri čemu. navedene u deskriptoru datoteke. ulazne datoteke. prava pristupa datoteci za njenog vlasnika. pošto za čitanje ili pisanje specijalnih datoteka nije bitno preslikavanje rednih brojeva bajta u redne brojeve blokova masovne memorije. Pri tome je tipično da obrađivani podaci stižu u proces iz jedne. loši blokovi se izbacuju iz upotrebe. SPAŠAVANJE FAJLOVA U nadležnosti sloja za upravljanje fajlovima nalazi se i podrška spašavanju (saving) fajlova. pojavom loših (neispravnih) blokova. nego se oslobađa samo njen deskriptor). koje su uvedene s tom namerom za obične datoteke. nema oslobađanja blokova. U pomenutom deskriptoru se čuva i redni broj (minor number) uređaja (koga predstavlja specijalna datoteka). na primjer numerička oznaka vlasnika datoteke. Na osnovu ovakvih kopija moguće je rekonstruisati sadržaj oštećenih datoteka. čiji cilj je da se redovno prave kopije postojećih (svih. koje ove datoteke predstavljaju. dok traje aktivnost stvorenog procesa. izlaznoj datoteci. Deskriptori specijalnih datoteka obuhvataju atribute. Pri tome se podrazumijeva da se u toku stvaranja procesa otvore i njegov standardni ulaz i njegov standardni izlaz. tada je prirodno da stvoreni proces nasledi standardni ulaz i standardni izlaz od procesa stvaraoca i da tako. koji služi kao indeks posebne tabele drajvera. a kao indeks otvorene datoteke. STANDARDNI ULAZ I STANDARDNI IZLAZ Pojmovi datoteke i procesa su čvrsto povezani. Kao podrazumijevajući standardni ulaz služi specijalna datoteka. ili samo u međuvremenu izmijenjenih. neophodno je da one posjeduju svoje deskriptore. jer je aktivnost procesa posvećena obradi podataka. sadržanih u datotekama. za njegove saradnike i za ostale korisnike. da opravda uvođenje naziva standardni ulaz (standard input) za ulaznu datoteku i standardni izlaz (standard output) za izlaznu datoteku. koja odgovara standardnom ulazu. koga on opslužuje. Ovakav model obrade podataka je dovoljno čest. Za jednoznačno identifikovanje drajvera uvodi se njegov redni broj (major number). koja predstavlja ekran. koja predstavlja tastaturu. kao što su. a da obrađeni podaci napuštaju proces. Jedan način da se to postigne je da se. formira datoteka loših blokova. u deskriptorima specijalnih datoteka se ne nalaze podaci o tabeli pristupa. na primjer. Kao indeks otvorene datoteke. nego pozivanje odgovarajućih operacija drajevera uređaja. na osnovu njega je moguće pronaći adrese operacija ovog drajvera (uz konsultovanje odgovarajućeg elementa tabele drajvera). Prema tome. odnosno stvorenih) datoteka. preuzimajući opsluživanje terminala. Do oštećenja datoteka dolazi na razne načine. kod uništenja specijalne datoteke. koja odgovara standardnom izlazu. Zahvaljujući tome. Za podršku otvaranja i zatvaranja specijalnih datoteka. a kao podrazumijevajući standardni izlaz služi specijalna datoteka. Polja indeksiranog elementa ove tabele sadrže adrese operacija dotičnog drajvera.Operativni sistemi ______________________________________________________________________________ zatvaranje specijalne datoteke.

Hidden bit skriva fajl tako da ne bude vidljiv u listingu direktorijuma. na primjer. Ovo znači da je root direktorijum (koji je i dalje imao fiksnu maksimalnu veličinu) mogao sadržati poddirektorijume. oni koriste upise fiksne dužine od 32 bajta. tako da različite aplikacije ne dolaze u konflikt.0. 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. potreban za arhiviranje. Od verzije MS-DOS 2. Arhiv bit nema neke sistemske funkcije. Ime fajla kraće od 8+3 karaktera je poravnato u lijevu stanu sa prazninama u nastavku. Najveće unapređenje je bilo uvođenje hijerarhijskog fajl sistema po kome su direktorijumi mogli biti ugnježdavani u dubinu. PRIMJERI FAJL SISTEMA U ovom poglavlju razmotrićemo neke od postojećih fajl sistema. ili kopija deskriptora. Polje za atribute je novo i sadrži bitove koji pokazuju da li je fajl read-only. atribute. radi zauzimanja bafera. MS-DOS fajl sistem MS-DOS radi samo na Intelovim platformama i ne podržava multiprogramiranje. On može da koristi i operacije sloja za upravljanje radnom memorijom.Operativni sistemi ______________________________________________________________________________ OSNOVA SLOJA ZA UPRAVLJANJE FAJLOVIMA Sloj za upravljanje fajlovima se oslanja na operacije drajvera iz sloja za upravljanje kontrolerima. sakriven ili je sistemski fajl. početni blok i tačnu veličinu fajla. Format upisa u direktorijum kod MS-DOS-a prikazan je na slici 2. Ulogovani korisnik ima pristup svim fajlovima. Slika 2. Ne postoji ograničenje u broju direktorijuma ili fajlova koji mogu biti kreirani. namjenjenih za smještanje kopija blokova. funkcionalnost fajl sistema se umnogome proširila. za svako polje pojedinačno. On sadrži ime fajla. a oni opet svoje poddirektorijume i tako u nedogled. Upis u direktorijum takođe sadrži datum i vrijeme kada je fajl kreiran ili zadnji put izmjenjen. Prva verzija DOS-a bila je ograničena na rad sa samo jednim direktorijumom. vrijeme i datum kreiranja.11 Upis u MS-DOS direktorijum _____________________________________________________________________________________________________________ 43 .11. Sistem bit takođe skriva fajl i onemogućuje brisanje komandom del koja može biti i slučajno pritisnuta. Iako direktorijumi kod MS-DOS-a imaju promjenljivu veličinu. Read-only fajlovi se ne mogu mijenjati. Ovjde ne postoji koncept više različitih korisnika.

FAT-32 može koristiti blok od 4 KB za particiju od 2 GB. disk od 8 GB može da bude jedna particija. može da se koristi manja veličina bloka. kod FAT-32. a veličina diska 8 GB sa maksimum 4 particije po disku. blok diska može biti setovan na multipl od 512 bajtova. označava se posebnim kodom. Mnogi fajlovi su kraći od 32 KB. Slika 2. dajući tako maksimalnu veličinu particije od 212 x 512 bajtova. Onda su mogle da postoje i particije od 16 MB. Na primjer. fajl sistem se pojavljuje u tri verzije: FAT-12. pa je prednost manje veličine bloka očigledna. jer inače sa samo 64 K dostupnih adresa diska. sa 16-bitnim disk pointerima. Tabela za FAT-16 sada je stalno zauzimala 128 KB glavne memorije. zavisno od toga koliko bita sadrži adresa na disku. Za sve FAT-ove. a verzija MS-DOS-a je bila prilagođena da podrži FAT-32. 16 KB i 32 KB. Kada je MS-DOS-u potreban novi blok.Operativni sistemi ______________________________________________________________________________ MS-DOS prati blokove fajla preko tabele za alokaciju fajlova koja se nalazi u glavnoj memoriji. 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. Druga prednost je ta da za datu veličinu particije diska. FAT-16 i FAT-32. Počev od druge verzije Windowsa 95. Microsoft je kasnije dodao veličine blokova od 1KB. svi blokovi se mogu pronaći. Svaki blok koji se trenutno ne koristi. Dozvoljene su i veličine blokova od 8 KB. Maksimalna veličina particije za različite veličine bloka. on pretražuje FAT tragajući za tim kodom. Prateći lanac. Sa ovim parametrima. Prvo. 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. U ovim sistemima particija je ograničena na 2 TB (2048 GB). Efikasnost iskorišćenja prostora na disku je velika jer je izgubljenog prostora jako malo. FAT-32 fajl sistem ima dvije prednosti u odnosu na FAT-16 gledajući podršku velikim diskovima. uveden je FAT-32 fajl sistem sa njegovim 28bitnim adresama. za particiju diska od 2 GB. maksimalna veličina particije diska bila je 2 MB a veličina FAT tabele u memoriji bila je 4096 upisa od 2 bajta svaki. ne može pokriti cijelu particiju. Ovaj broj se koristi kao indeks kod 64K upisa FAT (File Allocation Table) u glavnu memoriju. Najveće particije na disku sada su bile 2 GB.12. Prazna polja prikazuju zabranjene kombinacije. Maksimalna veličina particije za različite veličine blokova i za sva tri tipa FAT-a je prikazana na slici 2. Na ovaj način ni bitmape ni slobodne liste nisu potrebne. MS-DOS koristi FAT da bi pratio i slobodne blokove diska. Za MS-DOS. FAT-16 mora da koristi blokove od 32 KB. Kod FAT-16 mogu da postoje maksimalno 4 particije. Nakon toga došlo je do predstavljanja FAT-16. _____________________________________________________________________________________________________________ 44 . Upis u direktorijum sadrži broj prvog bloka fajla.12. 2 KB i 4 KB.

Uveden je FAT-32. Osnovna ideja je da se uzmu prvih šest karaktera imena fajla. a praznine se brišu. Kako su duga imena predstavljena tako da budu kompatibilna sa MS-DOS-om. _____________________________________________________________________________________________________________ 45 . koje smješta datum (ali ne i vrijeme) poslednjeg pristupa fajlu. i 8+3 ime za kompatibilnost sa MS-DOS-om. Specijalni karakteri se pretvaraju u ″_″ znak.Operativni sistemi ______________________________________________________________________________ Windows 98 fajl sistem Počev od druge verzije Windowsa 95. Kada dođe do kreiranja fajla čije ime nije 8+3 karaktera. da se ona predstave velikim slovima i da im se doda ~1 formirajući tako bazno ime fajla. Najzad.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.14. Slika 2. Ako takvo ime već postoji onda se dodaje ~2 i tako redom. imena fajlova duža od 8+3 karaktera su postala dozvoljena. Polje ″Sec″ rešava problem nemogućnosti smještanja dnevnog vremena u 16-bitno polje.x.13. Ono daje dodatne bitove tako da je novo ″Creation time″ polje precizno do 10 msec. 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. Rešenje je bilo da se svakom fajlu dodijele dva imena: (potencijalno) dugo ime fajla. 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. Zapis u direktorijum kod Windowsa 98 imao je oblik prikazan na slici 2. Fajlu se može pristupiti preko oba imena. Polje NT je tu najviše zbog kompatibilnosti sa Windowsom NT kada je u pitanju pravilno prikazivanje imena fajlova. Ovo je u stvari značilo da je struktura direktorijuma Windowsa 98 morala biti kompatibilna sa MS-DOS strukturom direktorijuma. Sad dolazimo na srce fajl sistema Windowsa 98. 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. Još jedno novo polje je ″Last access″. Windows 98 stvara MS-DOS ime za njega pomoću određenog algoritma. Format svakog dugačkog imena je dat na slici 2. 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.

neki program stvara novi fajl koji ponovo zauzima maloprije oslobođeni zapis. Stari MS-DOS programi će ovo samo ignorisati kao nevažeće. NTFS je novija vrsta fajl sistema koju koriste Windows NT 4. FAT32 bolje organizuje disk prostor i particije mogu biti veličine do 2 TB.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. ovdje mislimo na EFS sistem enkripcje fajlova. Prvo. Zadnji dio dugačkog imena je označen dodavanjem broja 64 sekvenci. tj.Operativni sistemi ______________________________________________________________________________ Slika 2. U stvari taj broj je iz istorijskih razloga ograničen na 260. Windows 2000 pravi kopiju podataka koje će privremeno _____________________________________________________________________________________________________________ 46 . NTFS i drugi fajl sistemi Windowsa 2000 podržava: NTFS (New Technology File System). zaista njemu i pripada. 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. teoretski maksimum za dugačka imena fajlova je 63x13=819 karaktera. tabela će konceptualno imati milion upisa. 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. Kada govorimo o zaštiti. Windows 98 održava prozor u tabeli i čuva samo pojedine djelove u memoriji odjednom. Da bi se izbjeglo da sva budu u memoriji odjednom. zaštitu i veću toleranciju (i korekciju) greški. Ovaj fajl sistem koristi 64 bit-ne adrese i teoretski radi sa particijama do 264 bajta. Ovjde sada ukoliko se koristi milion blokova. Tolerancija greške se odnosi na činjenicu da NTFS fajl sistem automatski otklanja greške ne prikazujući pri tome poruke o greškama. podržava FAT32 (File Alocation Table) i FAT16 particionisane diskove. Treće. ^etvrto. Proces otkrivanja ovih greški se ovdje radi tako što prije upisa podataka na disk.0 i Windows 2000. Drugo. računar je restartovan i podešen da radi u MS-DOS-u ili Windowsu 3. Svaki zapis dugačkog imena fajla sadrži i polje Checksum da bi se izbjegao sledeći problem. FAT16 je MS-DOS fajl sistem i omogućava korišćenje disk particija do 2 GB. Korišćenje NTFS tehnologije znači veću sigurnost. Djelovi imena su sekvencirani koristeći prvi bajt zapisa. Cluster Remapping što znači da onemogućava ponovno korišćenje tih losih klustera. što predstavlja još jednu od nemogućih kombinacija atributa. Implementacija FAT-32 fajl sistema konceptualno je slična implementaciji FAT-16 fajl sistema. Polje Cheksum omogućava Windowsu 98 da detektuje ovakvu situaciju verifikujući da MS-DOS ime fajla koje prati dugačko ime. On lokalizuje loše klustere i vrši tzv. Odgovor leži u polju ″Attributes″. Za upis dugačkog imena ovo polje ima vrijednost 0x0F. Windows 98 kreira fajl dugačkog imena. S obzirom da se samo 6 bita koristi u sekvenci.

Način pristupa je takav da se daje početni blok i ofset koji ukazuje broj narednih blokova kojima treba pristupiti. grčko pismo ili neko drugo nelatinsko pismo. Ovdje se kao argumenti daju početni blokovi na koje se “skace” i dužina hoda. MFT je linearni niz zapisa od po 1 KB od kojih svaki opisuje po jedan fajl. svi metadata zapisi počinju znakom $. Kao što je poznato. on pokušava da podatke smjesti na disk i odmah poslije toga upoređuje te podatke sa podacima u memoriji. Od atributa. Svaki od ovih zapisa je običan MFT podatak koji sadrži atribute za fajlove na disku. Obično poslije njega dolazi vrijednost atributa ali to ne mora biti pravilo. 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. ima tzv. MFT je u stvari jedan fajl koji može da se povećava teoretski sve do 248 zapisa. NTFS fajl sistem omogućava automatsko prepoznavanje prečica u slučaju da se izvorno mjesto fajla dislocira. S druge strane. Primjer fajla koji je zadržan u 9 blokova i koji ima 3 “skoka” ( run) je dat na slici. itd. kod multimedijalnih zapisa. ako pravimo novi direktorijum ili brišemo neki direktorijum. velikih baza podataka i slicno. potrebne su veće paritcije. atribut data. NTFS definiše 13 atributa koji se mogu pojaviti na MFT zapisima. broj blokova u nizu počevsi od navedenog početnog bloka (engl. Oni sadrže atribute fajlova kao i adrese blokova na disku gdje su ti fajlovi memorisani. Tako. ipak. metadata fajlovi koji su u stvari prvih 16 zapisa MFT.Operativni sistemi ______________________________________________________________________________ držati u memoriji. Ako je neki fajl mali (reda nekoliko stotina bajtova). najinteresantniji je atribut data koji predstavlja mjesto na disku (blokove) gdje je određeni fajl fizicki memorisan. nerezidentan atribut. mogu biti od 512 bajta do 64 KB. Naime. da su putanje (engl. po memorijskoj veličini. Ako ovi podaci u ovom trenutku nijesu identični. paths) limitirane na 32767 karaktera. 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. 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). tj. Svaki MFT zapis (1KB) sadrži zaglavlje zapisa poslije kojeg dolaze dvije vrijednosti: zaglavlje atributa i vrijednost atributa. Dalje. Kada se prave particije. Master File Table (MFT). ova se radnja loguje u drugom zapisu MFT fajla ($LogFile). npr. Ono što korisnik može u radu sa fajlovima NTFS sistema primjetiti. Takvi atributi se nazivaju nerezidentnim atributima. Svaka particija predstavlja linearni niz blokova koji. Inače. Zaglavlje atributa identifikuje određeni atribut. immediate) fajlom. U ovim slučajevima potrebno je “skakati” sa jednog bloka na drugi. s’tim što ovo nijesu obični fajlovi vec fajlovi koji ukazuju ja informacije o samom fajl sistemu.2. unutar disk prostora. Dalje se niz nastavlja na zaglavlje drugog atributa i na vrijednost drugog atributa. Obično je. Veoma važnu ulogu u objašnjavanju fajl sistema Windowsa 2000. itd. je da imena fajlova mogu imati maksimalno 255 karaktera. Najčešće su ovi blokovi veličine 4KB i njima se pristupa preko 64-bitno adresiranog ofseta. Važna kategorija zapisa su tzv.15 _____________________________________________________________________________________________________________ 47 . da su imena fajlova Unicode što znači da je dozvoljeno koristiti npr. postoje fajlovi ili direktorijumi ciji su atributi veliki pa se moraju podijeliti na dva ili više bloka na disku. disk drajv može da ima više particija. on se može smjestiti citav u MFT zapis i takav fajl se naziva direktnim (engl. run length). 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. 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.

15 Ovdje npr. informacije o zaštiti i broj _____________________________________________________________________________________________________________ 48 . Atributi sadrže veličinu fajla. poslednjeg pristupa i poslednje izmjene. grupu. UNIX V7 fajl sistem Fajl sistem V7 kod UNIX-a je u formi ″drveta″ počev od root direktorijuma sa dodacima u obliku linkova. tj. Svi ovi Run-ovi su upisani u MFT kao podaci. 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). kao što je prikazano na slici 2. 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. vremena kreiranja. Upis u direktorijum kod UNIX-a V7 Kod UNIX-a i-čvorovi sadrže neke atribute.16. rekli smo da se sastoje od 64-bitnih brojeva. NTFS particije se mogu kreirati na dva načina: direktan način (odmah poslije formatizacije diska) i pretvaranjem sa FAT sistema. Parovi adresa-broj blokova. Ovi parametri ograničavaju broj fajlova po fajl sistemu na 64K. imamo prvi run koji ukazuje na blokove 20. Slika 2. da ih smjesti što blize jedno drugom. Kompresijom se danas u praksi veličina ovih parova svodi na 4 bajta.Operativni sistemi ______________________________________________________________________________ Slika 2. Koliko ce biti Run-ova zavisi od efikasnosti Disk Block Alocatora u trenutku kreiranja fajlova kada se njegova efikasnost mjeri sposobnošću da broj Run-ova što više reducira. Upis u direktorijum sadrži samo dva polja: ime fajla (14 bajtova) i broj ičvorova za taj fajl (2 bajta). 21.16. što znači da zauzimaju 2x8 bajtova ili 16 bajtova. Svaki upis u direktorijum kod UNIX-a V7 fajl sistema je jako jednostavan zato jer on koristi šemu i-čvorova. 22 i 23. itd. vlasnika.

sadrži adresu bloka koji opet sadrži listu single indirektnih blokova. i-čvor se ponovo vraća natrag a blokovi diska se stavljaju na slobodnu listu. zvana double indirektni blok. Ovaj blok sadrži dodatne adrese diska. tako da za male fajlove. Kadgod je novi link usmjeren na i-čvor. ali recimo da je u našem slučaju u pitanju blok 1. Slika 2.Operativni sistemi ______________________________________________________________________________ upisa u direktorijum koji pokazuju na i-čvor. lociramo root direktorijum koji može biti bilo gdje na disku. kako bi se rukovalo sa veoma velikim fajlovima. može se koristiti i triple indirektni blok. Za velike fajlove. Ukoliko ovo još uvijek nije dovoljno. brojač se smanjuje. UNIX i-čvor Pratićemo jedan primjer kod UNIX-a. 17. brojač u ičvoru se povećava.17. mada je algoritam uglavnom isti kod svih hijerarhijskih sistema direktorijuma. još jedna adresa u i-čvoru. _____________________________________________________________________________________________________________ 49 . jedna od adresa u i-čvoru je adresa bloka diska koja se zove single indirektni blok. Prvo fajl sistem locira root direktorijum. Potpuna ilustracija data je na slici 2. Pogledajmo kako se vrži traženje puta /usr/ast/mbox. Njegov i-čvor je lociran uvijek na fiksnom mjestu na disku. Praćenje blokova diska se vrši na osnovu generalizacije. Kada se link otkloni. sve potrebne informacije se nalaze u i-čvoru koji se zahvata i prebaca sa diska u glavnu memoriju kada se fajl otvori. Svaki od ovih single indirektnih blokova ukazuje na nekoliko stotina blokova podataka. Polazeći od tog i-čvora. Ukoliko ni ovo nije dovoljno. Prvih 10 adresa na disku je smješteno u sami i-čvor. Kada dođe na nulu.

Argument poziva operacije zauzimanja je dužina zauzimane zone (broj njenih lokacija). sa uzastopnim adresama) sistemske slobodne radne memorije.18. I-čvor za ovaj fajl se onda učitava u memoriju i drži tamo sve dok se fajl ne zatvori. OS obično zauzima lokacije sa početka i. Radi toga ovaj sloj nudi operacije zauzimanja i oslobađanja (sistemske radne memorije). 2. KONTINUALNA RADNA MEMORIJA Sistemsku slobodnu radnu memoriju obrazuju lokacije radne memorije.4 SLOJ ZA UPRAVLJANJE RADNOM MEMORIJOM Zadatak sloja za upravljanje radnom memorijom je da omogući zauzimanje zona (susednih lokacija. Imena relativnih puteva se traže na isti način samo se pretraga počinje u trenutnom radnom direktorijumu a ne u root-u. u njemu. u root direktorijumu da bi našao broj i-čvora fajla /usr. sistem locira direktorijum /usr i traži sledeću komponentu. Ovaj proces je predstavljen na slici 2. Koraci pri traženju /usr/ast/mbox Zatim čita root direktorijum i traži prvu komponentu puta. Lociranje i-čvora na osnovu njegovog broja je pravolinijsko. s obzirom da svaki ima fiksnu lokaciju na disku.18. koje ne koristi operativni sistem. ili indikacija da je operacija zauzimanja završena neuspešno. ast. one su. kao i da omogući oslobađanje prethodno zauzetih zona sistemske radne memorije.Operativni sistemi ______________________________________________________________________________ Slika 2. onda on ima i-čvor za direktorijum /usr/ast. a pozivaju se prilikom stvaranja i uništenja slike procesa. eventualno. Argumenti poziva operacije oslobađanja su adresa oslobađane zone (adresa prve od njenih lokacija) i njena dužina (broj njenih lokacija). usr. podrška sloju za upravljanje procesima. Iz ovog čvora pronalazi sam direktorijum i traži mbox. sa kraja adresnog _____________________________________________________________________________________________________________ 50 . prije svega. Iz ovog i-čvora. Iako ove operacije može da koristi i sloj za upravljanje datotekama. a povratna vrednost ovog poziva je adresa zauzete zone (adresa prve od njenih lokacija). Kada je pronašao upis za ast.

lokacije. Na početku rada operativnog sistema ovakva lista sadrži jedan odsječak. koji obuhvata cijelu sistemsku slobodnu radnu memoriju. najčesće. Ova evidencija može da bude u obliku niza bita (bit map). Novonastali kraći odsječci se nalaze na mjestu slika uništenih procesa. da pronađe odsječak. u toku čije aktivnosti se istovremeno obavljaju operacije zauzimanja i oslobađanja. u kome svaki bit odgovara grupi susjednih lokacija. njoj odgovarajući bit sadrži 1. Upravljanje radnom memorijom se zasniva na pretpostavci postojanja logičkog i fizičkog _____________________________________________________________________________________________________________ 51 . Iskustvo pokazuje da se eksterna fragmentacija povećava. ili najveći dovoljno dugačak odsečak (worst fit). Ovakav odsječak se drobi u više kraćih odsječaka. č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. a između njih se nalaze lokacije sistemske slobodne radne memorije. pokušava naći najmanji dovoljno dugačak odsječak (best fit). da pronađe dva susedna odsječka. Podrazumijeva se da je broj lokacija u ovakvoj grupi unaprijed zadan. najčesće. Zato se češće evidencija sistemske slobodne radne memorije pravi u obliku liste slobodnih odsječaka sistemske radne memorije. olakšava operaciji oslobađanja: 1. namijenjene za tabelu prekida. Važno je uočiti da upravljanje evidencijom sistemske slobodne radne memorije zahtjeva sinhronizaciju procesa. ili 3. radi pronalaženja dovoljno dugačkog odsječka. pored eksterne. radi pronalaženja dovoljno dugačkog niza jedinica. a druga postavlja takav niz jedinica u evidenciju. dok preostali deo odsječka ostaje u listi kao novi odsječak. on sadrži 0.Operativni sistemi ______________________________________________________________________________ prostora. čime nastaje neupotrebljiva radna memorija). određuje najmanju dužinu odsječka i predstavlja jedinicu u kojoj se izražavaju dužine odsječaka (odnosno. lokacije. Na početku adresnog prostora su. potrebnih za smještanje dužine dotičnog odsječka i adrese narednog odsječka. buddy system) i da postoji posebna lista odsječaka za svaku od mogućih dužina takođe nisu najbolje. kao rezultat višestrukog stvaranja i uništavanja procesa u slučajnom redosledu. Ona posredno uzrokuje neupotrebljivost odsječaka. nego od tačke u kojoj je zaustavljeno poslednje pretraživanje (next fit). Listu slobodnih odsječaka pretražuje i operacija zauzimanja. Broj lokacija. da pronađe mjesto u listi u koje će oslobađana zona biti uključena kao poseban odsječak. Na kraju adresnog prostora su. uvode i internu fragmentaciju (pošto se na ovaj način u prosjeku zauzimaju duže zone od stvarno potrebnih. Mana ovakve evidencije je da su i operacija zauzimanja i operacija oslobađanja dugotrajne. prilikom oslobađanja zone. radi ostvarenja međusobne isključivosti obavljanja ovih operacija (jer se jedino tako može očuvati konzistentnost pomenute evidencije). ako se. To. jer onemogućuje zauzimanje zone. jer prva pretražuje evidenciju. a između njih su slike postojećih procesa. Sloj za upravljanje radnom memorijom obavezno vodi evidenciju o sistemskoj slobodnoj radnoj memoriji. Inače. u koji se može smjestiti zauzimana zona. Odsječci su uređeni u rastućem redosledu adresa njihovih početnih lokacija. Pri tome se zauzima samo deo odsječka. Ako je grupa lokacija slobodna. Iza njih slijede lokacije sa naredbama i promenljivim operativnog sistema (koje obuhvataju i prostor za smeštanje deskriptora procesa i njihovih sistemskih stekova). koje odgovaraju registrima kontrolera. Na ovaj način se odsječci dalje usitnjavaju. koji mogu da se spoje u jedan. jer. kada se između njih ubaci oslobađana zona. umjesto traženja prvog dovoljno dugačkog odsečka (first fit). kome može da se doda (spreda ili straga) oslobađana zona. Na početku svakog odsječka su njegova dužina i adresa narednog odsječka. dužine zauzimanih i oslobađanih zona). ili 2. On ujedno predstavlja jedinicu u kojoj se izražava dužina zauzimane i oslobađane zone. Poboljšanje ne nudi ni ideja da lista odsječaka bude ciklična i da se pretražuje ne od početka. Ideje da dužina zauzimanih zona bude uvijek jednaka stepenu broja 2 (quick fit. To dovodi do eksterne fragmentacije.

tako da svaki od elemenata ove tabele sadrži dva polja. Važna posledica segmentacije je mogućnost korišćenja istog segmenta u slikama raznih _____________________________________________________________________________________________________________ 52 . Dovoljno je da to važi samo za svaki od njenih segmenata. Ona je značajna. radi formiranja korespondentne fizičke adrese). dospeva kopija tabele segmenata. Ova tri para graničnih i baznih registara obrazuju tabelu segmenata. prilikom preključivanja procesora sa procesa na proces. Međutim. deskriptor svakog od njih sadrži kopiju tabele segmenata. segmenta promenljivih i segmenta steka). Adresa lokacije u segmentu se poredi sa sadržajem graničnog polja iz elementa tabele segmenata. Jedno. smještena u razdvojene zone radne memorije. ako nije veća. upravljanje tabelom segmenata produžava (usporava) preključivanje. jer predstavlja preduslov za zamjenu slika procesa (swapping). bazno polje odgovara baznom registru. pošto se slika procesa sastoji od tri segmenta (segmenta mašinskih naredbi. na koga se procesor preključuje. sa koga se procesor preključuje. a drugo. Pozivanje sistemskih operacija. Sadržaji ovih registara se razlikuju za razne procese. a zatim se u tabelu segmenata prebacuje njena kopija iz deskriptora procesa. Razbijanje slike procesa u tri segmenta. Drugi deo (preostali biti) logičke adrese predstavlja adresu lokacije u segmentu. Tako prvi deo (najznačajnija dva bita) logičke adrese predstavlja adresu segmenta i služi kao indeks za tabelu segmenata. odnosno za sabijanje slika procesa (compaction). ne samo zaštita operativnog sistema od korisničkih procesa i međusobna zaštita korisničkih procesa.Operativni sistemi ______________________________________________________________________________ adresnog prostora i automatskog pretvaranja logičkih adresa u fizičke. U privilegovanom režimu rada operativni sistem koristi sistemski stek aktivnog procesa. jasno. radi eliminisanja eksterne fragmentacije. Prema tome. na nju se dodaje sadržaj baznog polja iz pomenutog elementa tabele segmenata. SEGMENTACIJA Upravljanje radnom memorijom ima zadatak da zauzme dovoljno veliku zonu radne memorije. 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). jer njen jedan deo mora da ukaže na segment. automatski prevodi procesor u privilegovani režim rada (dok je. ili u kome je mehanizam zaštite isključen. neophodan je privilegovani režim rada procesora. 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. granično polje odgovara graničnom registru. za svaki od segmenata mora biti vezan poseban par graničnih i baznih registara. a sadržajem drugog se uvećava ispravna logička adresa. kao što su operacije zauzimanja ili oslobađanja. a drugi na lokaciju u segmentu. Time se obezbijeđuje. koga indeksira adresa segmenta i. Pri tome. Posto se sadržaji parova graničnih i baznih polja razlikuju od procesa do procesa. sa lokacijama koje imaju uzastopne fizičke adrese. nema stvarne potrebe da cijela slika procesa bude u lokacijama sa uzastopnim fizičkim adresama. da bi u njih sistemska operacija stvaranja procesa smjestila sliku stvaranog procesa. utiče na način interpretiranja logičke (virtualne) adrese. To znači da. u deskriptor procesa. Da mehanizam zaštite (koji se zasniva na korišćenju graničnog registra) ne bi sputavao operativni sistem. za vreme aktivnosti korisničkih procesa van operativnog sistema. procesor u neprivilegovanom režimu rada). pa se zato čuvaju u njihovim deskriptorima. nego i dinamička relokacija. Za zauzimanje i oslobađanje zona sistemske radne memorije potrebno je da operativni sistem neograničeno pristupa svim lokacijama radne memorije. u kome je moguće mijenjati sadržaj graničnog (i baznog) registra. čime nastaje fizička adresa.

stvaraju se uslovi za dinamičko linkovanje (povezivanje) potprograma za program (koje se ne dešava u toku pravljenja izvršne datoteke. Inače. eventualno. Tako. Upravljanje segmentima se obavlja posredstvom sistemskih programa. ako su slika procesa. Jasno. sadržaj njegovog graničnog polja). dužinu segmenta (odnosno. ovakav način ostvarenja saradnje procesa zahtjeva njihovu sinhronizaciju. segmenti se ne razlikuju od datoteka. koje se posebno pozivaju prilikom stvaranja i uništavanja svakog od segmenata slike procesa. Jasno. 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. nego u trenutku prvog poziva potprograma. VIRTUELNA MEMORIJA Prethodno opisano upravljanje radnom memorijom nije u stanju da riješi problem. ili njen segment veći od ukupno raspoložive sistemske slobodne radne memorije (ili njenih odsječaka). Prethodno opisana (osnovna) segmentacija se razvija u punu segmentaciju. kao i fizičku adresu njegove početne lokacije (odnosno. segmentacija ubrzava zamjenu slika procesa (swapping). zbog toga što tabela segmenata postaje prevelika).Operativni sistemi ______________________________________________________________________________ procesa. podatak o broju slika procesa u koje je segment uključen. 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. kada se pronalazi njegov segment i. Uspjeh segmentacije zavisi od efikasnosti pretvaranja logičke adrese u fizičku (što je za punu segmentaciju teško ostvariti. veličinu slike procesa ne ograničava veličina radne memorije. prava pristupa segmentu obuhvataju pravo čitanja. Puna segmentacija dozvoljava i deljenje promenljivih između raznih procesa (ako se segment iste promenljive uključi u slike više procesa). ako se dozvoli da svakom potprogramu ili promenljivoj odgovara poseban segment. koji sadrže promenljive. pod uslovom da se kopije neophodnih djelova slike _____________________________________________________________________________________________________________ 53 . upravljanje procesima mora voditi posebnu evidenciju segmenata. jer se segment naredbi ne mora izbacivati (ako je ranije već izbačen u masovnu memoriju). nego veličina masovne memorije. kao što su kompajler ili linker. ubacuje u radnu memoriju). Na pokušaj narušavanja prava pristupa segmentu reaguje segmentacioni hardver. Radi očuvanja konzistentnosti evidencije segmenata. Prema tome. operacije za upravljanje ovom evidencijom moraju obezbijediti sinhronizaciju procesa. logički (virtuelni) adresni prostor može biti mnogo veći od fizičkog adresnog prostora. Zahvaljujući tome. U pogledu prava pristupa. a drugima treba dozvoliti i da pišu u deljenu promenljivu. pravo pisanja i pravo izvršavanja segmenta (prva dva prava se primjenjuju na segmente. Prema tome. Za segmente sa deljenim promenljivim su važna i prava pristupa segmentu. Ovakva evidencija obuhvata oznaku segmenta (koja jednoznačno identifikuje segment). dok se cijela slika može da nalazi u masovnoj memoriji. Zato se elementi tabele segmenata proširuju trećim poljem. jer nekim od procesa treba dozvoliti samo da čitaju deljenu promenljivu. mogu da dele isti segment naredbi. koje sadrži oznaku prava pristupa segmentu. radi očuvanja konzistentnosti dijeljenih promenljivih. prisutnih u radnoj memoriji (da bi moglo otkriti kada je moguće iskoristiti isti segment u slikama raznih procesa). To znači da u radnoj memoriji mora da bude samo kopija trenutno potrebnog dijela slike procesa. U tom slučaju. segmentacija se oslanja na već opisane operacije zauzimanja i oslobađanja. koji se javlja. a treće pravo se primjenjuje na segment sa mašinskim naredbama programa ili potprograma). nastalih na osnovu iste izvršne datoteke. čime se postiže racionalnije korišćenje radne memorije. Sem uštede radne memorije. sadržaj njegovog baznog polja). generisanjem prekida (izuzetka). kao i bajti njenih operanada. što dovodi do uništenja aktivnog procesa. slike svih procesa. niti ubacivati (ako već postoji u radnoj memoriji).

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). radi stvaranja uslova za automatsko pretvaranje logičkih adresa u fizičke. Pri tome. Da bi se znalo koja kopija je izmijenjena. Ovo prebacivanje se obavlja. odnosno fizičke stranice. istovremeno. Zbog toga. da bi se oslobodila radna memorija i.. adresu lokacije u stranici određuje n manje značajnih bita i u logičkoj i u fizičkoj adresi. Zahvaljujući tome. Ostvarenje ideje virtuelne memorije je u nadležnosti sloja za upravljanje virtuelnom memorijom (koji predstavlja specijalizovani oblik sloja za upravljanje radnom memorijom). jednak nekom stepenu broja 2. Uz pomenuta dva polja. Svaki element tabele stranica. I za polje prisustva i za polje izmjene dovoljan je jedan bit. Pošto stranica predstavlja jedinicu prenosa na relaciji masovna i radna memorija. svaki element tabele stranica sadrži i polje izmjene. smještene u radnoj memoriji. ako je u njemu prisutna adresa fizičke stranice (sa kopijom logičke stranice.Operativni sistemi ______________________________________________________________________________ procesa. Preostali.20). Svaka stranica obuhvata isti broj lokacija. Element tabele stranica je u upotrebi. Ovo polje pokazuje da li je dotični element tabele stranica u upotrebi. automatski prebacuju iz masovne memorije u radnu memoriju i obrnuto. čija adresa indeksira dotični element). koje su u međuvremenu izmijenjene. Kada zatreba. Takođe se podrazumijeva da se adresa fizičke stranice. pored polja za adresu fizičke stranice. a samo izmjenjena kopija se vraća iz fizičke stranice u logičku stranicu. odnosno fizičke adrese određuju adresu logičke. virtuelna memorija dijeli logički i fizički adresni prostor u stranice (page). smješta u element tabele stranica. koga indeksira adresa ove logičke stranice. Logički adresni prostor se sastoji od logičkih stranica. neophodno je automatski registrovati svaku izmjenu svake od kopija djelova slike procesa. kada zatreba. Pri tome se podrazumijeva da svaka logička stranica odgovara jednom elementu tabele stranica (i to onom. 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. obezbijedilo da masovna memorija uvijek sadrži ažurnu sliku procesa. 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). a fizički adresni prostor sačinjavaju fizičke stranice. Č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. _____________________________________________________________________________________________________________ 54 . značajniji biti logičke. u kome se registruje izmjena kopije logičke stranice (čija adresa indeksira dotični element). Pošto je logički adresni prostor veći od fizičkog (pa sadrži više stranica nego fizički). sadrži i polje prisustva adrese fizičke stranice.19). kopija logičke stranice se prebacuje u fizičku stranicu.smještenih u masovnoj memoriji. ako stranica obuhvata 2n bajta. 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 ove stranice). kada je potrebno osloboditi lokacije radne memorije sa kopijama delova slika procesa. Za virtuelnu memoriju je neophodno uspostaviti korespondenciju logičkih (virtuelnih) i fizičkih adresa. Do prebacivanja u obrnutom smjeru dolazi. Ovaj problem se rešava pomoću tabele stranica. sa kopijom neke logičke stranice. adresa logičke stranice sadrži više bita od adrese fizičke stranice. koga indeksira adresa pomenute logičke stranice (Slika 2.

stranični hardver zamijeni tom adresom adresu logičke stranice i tako formira fizičku adresu. U toj situaciji stranični hardver mora da aktivira sloj za upravljanje virtuelnom memorijom. Pretvaranje logičke adrese virtuelne memorije u fizičku adresu obavlja poseban stranični hardver. Njegov zadatak je da prebaci kopiju potrebne logičke stranice u neku fizičku stranicu. pa nije moguće pretvaranje logičke adrese u fizičku (jer ne postoji fizička stranica sa kopijom dotične logičke stranice). Nakon što u indeksiranom elementu tabele stranica pronađe odgovarajuću adresu fizičke stranice. pa se u njima javljaju neupotrebljive lokacije). radi prebacivanja potrebne kopije logičke stranice u neku fizičku stranicu. Stranični hardver izaziva stranični prekid (page fault). nakon svake izmjene kopije logičke stranice). To produžava (usporava) preključivanje. On izdvaja adresu logičke stranice. jer se u toku preključivanja kopija tabele stranica prebacuje u deskriptor jednog procesa. Obrađivač straničnog prekida. na koga reaguje obrađivač straničnog prekida sloja za upravljanje virtuelnom memorijom. pri tome. Za virtuelnu memoriju je važno pitanje dužine stranice. pa zato i tabela stranica ima više elemenata). Tom prilikom on postavlja polje sa adresom fizičke stranice i polje prisustva odgovarajućeg elementa tabele stranica. tada to znači da se u radnoj memoriji ne nalazi kopija odgovarajuće logičke stranice. ažurira odgovarajući element tabele stranica. Za kratke stranice postaje izražen problem veličine tabele stranica (jer tada logički adresni prostor ima više stranica. Praksa je veličinu stranice smjestila između 512 i 8192 bajta. Za dugačke stranice postaje izražen problem interne fragmentacije (jer sve stranice nijesu uvek potpuno iskorišćene. a zatim se tabela stranica puni svojom kopijom iz deskriptora drugog procesa. To se ostvaruje pomoću mehanizma prekida (izuzetka).19. Ako polje prisustva indeksiranog elementa pokazuje da on nije u upotrebi. a čisti polje izmjene (polje izmjene automatski postavlja stranični hardver. Primjer preslikavanja virtaelnog adresnog prostora u fizički Tabela stranica se razlikuje od procesa do procesa. radi indeksiranja tabele stranica. pa deskriptor svakog od njih sadrži kopiju tabele stranica. _____________________________________________________________________________________________________________ 55 .Operativni sistemi ______________________________________________________________________________ Slika 2.

u toku aktivnosti procesa. desi stranični prekid (koji zahtijeva prebacivanje kopije nove logičke stranice u radnu memoriju). tada nema potrebe za izmjenom broja fizičkih stranica u skupu fizičkih stranica aktivnog procesa. 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). neophodne za aktivnost procesa. U ovom slučaju skup fizičkih stranica _____________________________________________________________________________________________________________ 56 . pa veliki broj obrada straničnih prekida može u potpunosti da angažuje procesor i da tako vrlo uspori. kada je. Kada se. Smanjenje skupa fizičkih stranica procesa je važno. ako sve kopije logičkih stranica procesa ne mogu stati u radnu memoriju). jer obrada svakog prekida troši procesorsko vrijeme. ili potpuno spriječi njegovu bilo kakvu korisnu aktivnost (trashing). 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. 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. ako je učestanost straničnih prekida ispod neke (iskustveno određene) donje granice. u kojima se nalaze kopije logičkih stranica. da bi se učestanost straničnih prekida svela na prihvatljiv nivo. ili u postojećem skupu fizičih stranica procesa zamijeniti sadržaj neke od njih kopijom nove logičke stranice. Primjer preslikavanja virtaelne adrese u fizički Važno je uočiti da se kopije logičkih stranica prebacuju na zahtjev (demand paging). tada ima smisla uvećanje skupa fizičih stranica procesa. svakom procesu je pridružen skup fizičkih stranica. odnosno jer se time podiže stepen multiprogramiranja. To je važno.20. U slučaju da je učestanost straničnih prekida između pomenute dve granice. učestanost straničnih prekida iznad neke (iskustveno određene) gornje granice.Operativni sistemi ______________________________________________________________________________ Slika 2. u radnoj memorijin nalaze kopije samo neophodnog podskupa njenih logičkih stranica. u toku aktivnosti procesa. Međutim. umjesto cijele slike procesa. jer se tako omogućuje neophodni rast skupova stranica drugih procesa. tada ima smisla smanjenje skupa fizičkih stranica procesa. jer u opštem slučaju ne postoji način da se predvidi redosled korišćenja logičkih stranica. Prema tome. Koncept virtuelne memorije omogućuje da se. Znači. a ne unapred (prepaging).

čije naredbe imaju najviše dva operanda. ako postoji brojač. jer se oslanja na hardver. tako što se iz njega periodično izbacuje najstariji bit referenciranja. tada je stranici sa najstarijom referencom pridružena najmanja vrednost ovog brojača. U ovoj situaciji je potrebno odlučiti koju logičku stranicu izbaciti iz radnog skupa. Radi toga _____________________________________________________________________________________________________________ 57 . ili će biti referencirana iza svih ostalih logičkih stranica iz radnog skupa (pod referenciranjem se podrazumijeva pristup bilo kojoj lokaciji stranice. 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. procese karakteriše i minimalni skup. jer se. U ovom slučaju pomaže izbacivanje (swapping) procesa. Ipak. odnosno zapažanju da se pristupi lokacijama sa bliskim adresama dešavaju u bliskim trenucima. Na primjer. elementima tabele stranica se dodaje i polje starosti referenciranja. veliko 1 bit. Za izbacivanje iz radnog skupa kao kandidat se nameće logička stranica. po jedan bit za svaku od vrijednosti polja referenciranja u poslednjih n trenutaka. koji se automatski uvećava za jedan nakon izvršavanja svake naredbe. 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. Važno je uočiti da se u toku aktivnosti procesa obavezno javlja trashing. 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). kada njegov radni skup ne može da stane u radnu memoriju. moguće značajne kratkotrajne varijacije radnog skupa). i bajti mašinske naredbe. prethodno pomenuti ekstremni slučaj uslovljava da je pridruživanje minimalnog skupa procesu preduslov bilo kakve njegove aktivnosti. Stepen multiprogramiranja kod virtuelne memorije zavisi od broja radnih skupova. zahvaljujući lokalnosti referenciranja. on se sporo mijenja u toku aktivnosti procesa (iako su. ovaj pristup je moguće softverski simulirati (Not Frequently Used . Prema tome. Međutim. Ovakva simulacija se zasniva na postojanju podatka o referenciranju svake logičke stranice. Polje starosti referenciranja se periodično ažurira. Međutim. Zato se u elemente tabele stranica dodaje i polje referenciranja. Opisani pristup ima samo teoretsko značenje. Pad učestanosti straničnih prekida ispod donje granice ukazuje na mogućnost smanjenja radnog skupa. Pored radnog skupa. mogu nalaziti u različitim susjednim fizičkim stranicama. čim radna memorija postane pretijesna za sve radne skupove (load control). koja neće biti referencirana do kraja aktivnosti procesa. u opštem slučaju nema načina da se precizno ustanovi da li će i kada neka logička stranica biti referencirana. povremeno. minimalni skup sadrži šest fizičkih stranica. koji u opštem slučaju nije raspoloživ. radi preuzimanja ili izmjene njenog sadržaja). Broj fizičkih stranica u minimalnom skupu zavisi od procesora. Ako se njegova zatečena vrednost automatski pridružuje logičkoj stranici prilikom njenog svakog referenciranja. Na ovaj način se oslobađaju fizički blokovi za preostale procese. u ekstremnom slučaju.LRU) neophodno je registrovanje starosti referenciranja. čije poslednje referenciranje je najstarije.Operativni sistemi ______________________________________________________________________________ (odnosno. njima odgovarajući skup logičkih stranica) obrazuje radni skup (working set). To je moguće. Za ovo polje se podrazumijeva da ga stranični hardver automatski postavlja prilikom svakog referenciranja stranice. Za uspeh koncepta virtuelne memorije važno je da se stalno prate radni skupovi istovremeno postojećih procesa i da se povremeno izbacuju procesi. Prilikom kasnijeg ubacivanja procesa. najmanju vjerovatnoću da bude referencirana u neposrednoj budućnosti ima stranica. Radni skup procesa nije statičan. koje obrazuju njegov radni skup. Takođe. U prosjeku. neophodni za smještanje njihovih radnih skupova. kao i bajti oba njena operanda.NFU). Za pronalaženje stranice sa najstarijom referencom (Least Recently Used . uputno je ubacivati kopije svih logičkih stranica. koji se istovremeno mogu smjestiti u raspoloživu radnu memoriju. Ono sadrži n bita. za procesor. odnosno prethodi referenciranju svih ostalih stranica iz radnog skupa.

čiji značajniji bit odgovara bitu polja reference. niti referencirana niti izmijenjena). Pomenuti dvobitni broj sadrži 01. načini određivanja fizičke stranice.FIFO). kada kopija logičke stranice nije izmijenjena. koja sadrži kopiju logičke stranice sa najstarijom referencom. 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.Operativni sistemi ______________________________________________________________________________ se periodično (u trenucima sa pravilnim vremenskim razmacima) aktivira obrađivač vremenskog prekida (kao posledica dešavanja posebnog vremenskog prekida). U oba prethodna slučaja kandidat za zamjenu je fizička stranica. bez obzira da li je on skoro referenciran. Po tom kriterijumu radnom skupu pripadaju sve logičke stranice. To je karakteristično. čiji sadržaj je svježiji (čak i ako one neće biti uskoro referencirane). referencirana nakon poslednjeg vremenskog prekida. U ovom slučaju. čiji dvobitni broj je najmanji. Za ovaj pristup je dovoljno posmatrati dvobitni broj. uz to. Međutim. kada je kopija logičke stranice izmijenjena i. Ovo je važno istaći. ali je referencirana nakon poslednjeg vremenskog prekida. Kriterijum može biti postavljenost nekog od k najznačajnijih bita iz polja starosti referenciranja (k < n). odnosno prilikom zamjene njenog sadržaja). a manje značajan bit odgovara bitu polja izmjene. na primjer. odnosno nakon svake njene izmjene. obavljanje liste istih zahtjeva za pristupe logičkim stranicama dovodi do pojave manje straničnih prekida nakon proširenja radnog skupa. Do ovakve zamjene dolazi i kada se javi potreba za ubacivanjem kopije nove stranice. Kandidati za zamjenu su stranice. Pomenuti dvobitni broj sadrži 11. za algoritam zamjene. čiji sadržaj se zamjenjuje) obezbijeđuju smanjenje učestanosti straničnih prekida nakon proširenja radnog skupa (znači. a zatim očisti ovo polje. Ako nema slobodnih fizičkih stranica. kada kopija logičke stranice nije korišćena nakon nekog od poslednjih vremenskih prekida (znači. Znači i ovde se može primjeniti softverska simulacija pristupa pronalaženja najmanje korišćene stranice. Ovaj broj sadrži 10. Povećanje učestanosti straničnih prekida preko gornje granice ukazuje na potrebu proširenja radnog skupa. kod koga se za zamjenu odabira fizička stranica. a da obrađivač vremenskog prekida čisti bit reference (oba bita se čiste i prilikom zauzimanja fizičke stranice. jer svi algoritmi zamjene ne dovode obavezno do smanjenja učestanosti straničnih prekida nakon proširenja radnog skupa. nego se oslobađa jedna od fizičkih stranica iz njegovog radnog skupa. U oslobođenoj fizičkoj stranici zatečenu kopiju zamenjuje (replacement) kopija potrebne logičke stranice. koje imaju bar jedan bit postavljen u najznačajnijih k bita svog polja starosti referenciranja. ako se on modifikuje. Na ovaj način polje starosti referenciranja sadrži najmanju vrednost za logičku stranicu. a učestanost straničnih prekida je između gornje i donje granice. potrebno je procesu pridružiti novu fizičku stranicu. tada se oslobađa (kada je to moguće) fizička stranica. nego pre toga). Prethodno opisani algoritmi zamjene (odnosno. čiji sadržaj je najstariji (First In First Out . mana ovog algoritma zamjene se otklanja. pomjenuti dvobitni broj sadrži 00. koja je najranije referencirana u prethodnih n trenutaka. koja je pridružena nekom drugom procesu (što znači da se radni skup ovog drugog procesa smanjuje). Ovaj algoritam zamjene ima tendenciju da u radnom skupu čuva stranice. Prema tome. Pri tome se podrazumijeva da segmentacioni hardver automatski postavlja ove bite nakon svakog referenciranja kopije logičke stranice. Još je jednostavniji pristup u kome se traži stranica koja nije korišćena u nekom prethodnom periodu (Not Recently Used .NRU). 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 _____________________________________________________________________________________________________________ 58 . kada kopija logičke stranice nije referencirana nakon nekog od poslednjih vremenskih prekida (ali je prethodno izmijenjena). Polje starosti referenciranja se može iskoristiti i za određivanje radnog skupa. da bi se u nju smjestila kopija potrebne logičke stranice. pa se radni skup aktivnog procesa ne proširuje.

obrađivač straničnog prekida usmjerava ka oslobođenoj fizičkoj stranici prenos kopije potrebne logičke stranice. da bi oslobodio izvjestan broj fizičkih stranica. nakon završetka ovog prenosa i ažuriranja polja odgovarajućeg elementa tabele stranica. odabira fizičke stranice za oslobađanje po nekom od prethodno opisanih algoritama zamjene. ako se uvede poseban stranični sistemski proces. pokazuje na stranicu sa najstarijim sadržajem). referencirana logička stranica. Kada se taj prenos završi. pa upravljanje ovom evidencijom mora obezbijediti sinhronizaciju procesa (i to onemogućenjem prekida). kada je referencirana logička stranica. koji se periodično aktivira. On. Pri tome. radi stvaranja procesa. za svaki segment postoji posebna tabela stranica). Nju koriste i operacija zauzimanja i operacija oslobađanja. ovaj obrađivač oslobađa neku od fizičkih stranica. ovaj obrađivač odabira slobodnu fizičku stranicu i prema njoj usmjerava prenos kopije potrebne logičke stranice sa masovne memorije. a operacija oslobađanja oslobađa sve fizičke stranice iz radnog skupa unišavanog procesa. Operacija zauzimanja omogućuje zauzimanje bar minimalnog skupa. a. pri čemu položaj u listi ukazuje na starost sadržaja fizičke stranice (u clock algoritmu zamjene ovakva lista je kružna. 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). koja uopšte ne postoji u slici procesa. obrađivaču straničnog prekida je potrebna evidencija o položaju logičkih stranica u masovnoj memoriji. pored operacija zauzimanja i oslobađanja (namijenjenih slojevima iznad ovog sloja). on omogućava nastavak aktivnosti prekinutog procesa. U sva tri poslednje pomenuta algoritma zamene (FIFO. sloj za upravljanje virtuelnom memorijom ima gornji i donji dio. on pokreće prenos ove kopije u masovnu memoriju. Gornji dio sačinjavaju operacije zauzimanja i oslobađanja.Operativni sistemi ______________________________________________________________________________ referencirani. Inače. Obrađivač straničnog prekida se aktivira. ali i na pojedine njene segmente. tek tada se odabira fizička stranica sa najstarijim sadržajem (second chance i clock algoritmi zamene). U ovom drugom slučaju reč je o straničnoj segmentaciji (paging segmentation). takođe. nego za njegove segmente (znači. znači. kao kazaljka na satu. čija kopija nije prisutna u radnoj memoriji (odnosno. U tom slučaju _____________________________________________________________________________________________________________ 59 . Po završetku ovoga prenosa. kada uvijek ima slobodnih fizičkih stranica. Posmatrano iz ugla pozivanja operacija i obrađivanja prekida. pri tome. koristi i evidenciju slobodnih fizičkih stranica. Donji dio ovog sloja sačinjavaju njegovi obrađivači prekida. radi ažuriranja odgovarajuće logičke stranice. obrađivač straničnog prekida ažurira polja odgovarajućeg elementa tabele stranica i omogućuje nastavak aktivnosti prekinutog procesa. Evidencija slobodnih fizičkih stranica može da ima i oblik liste. Kada nema slobodne fizičke stranice. second chance i clock) fizičke stranice iz radnog skupa procesa su uvezane u listu. a poseban pokazivač. obrađivač straničnog prekida završava aktivnost prekinutog procesa (uz odgovarajuću poruku). jer se pozivaju iz slojeva iznad ovog sloja. stranični sistemski proces i obrađivače vremenskog i straničnog prekida. To se može postići. Virtuelna memorija pokazuje najbolje rezultate. hardver. greškom. svaki od ovih bita pokazuje stanje odgovarajuće fizičke stranice. Ova evidencija može da ima oblik niza bita (bit map). Za uspješno obavljanje posla. u koju su uvezane sve slobodne fizičke stranice (ovaj pristup je efikasniji). Ako je. Sloj za upravljanje virtuelnom memorijom sadrži. Ako ona sadrži izmjenjenu kopiju logičke stranice. jer ih poziva mehanizam prekida. u nekoj od njenih fizičkih stranica). On. koji je ispod najnižeg sloja operativnog sistema. Za straničnu segmentaciju je karakteristično da tabela stranica nije vezana za proces. STRANIČNA SEGMENTACIJA Koncept virtuelne memorije može da se primijeni na celu sliku procesa.

Tako se u graničnom polju nalazi podatak o broju stranica dotičnog segmenta (odnosno. Ako se u ovom elementu nalazi adresa fizičke stranice. prilikom pretvaranja logičke adrese u fizičku. 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). 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. Kod stranične segmentacije. 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). Inače se izaziva stranični prekid i dalji postupak je kao kod virtuelne memorije.jedinice pristupa. ona se spaja sa adresom lokacije u stranici. Pristup ovakvoj datoteci ne zahtijeva sistemske operacije za čitanje. da bi se formirala fizička adresa. Ovakva podjela je uslovljena razlikama između ove dvije vrste ulaznih i izlaznih uređaja u pogledu: . 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).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. Prethodno opisano pretvaranje logičke adrese u fizičku se nalazi u nadležnosti stranično segmentacionog hardvera. OSNOVA SLOJA ZA UPRAVLJANJE VIRTUELNOM MEMORIJOM Sloj za upravljanje virtuelnom memorijom se oslanja na operacije sloja za upravljanje kontrolerima I/O uređaja. jer se direktno pristupa lokacijama sa odgovarajućim sadržajem datoteke. _____________________________________________________________________________________________________________ 60 . Pri tome. izdvojena adresa logičke stranice segmenta indeksira element pomenute tabele stranica. Izdvojena adresa segmenta indeksira element tabele segmenata. od adrese logičke stranice segmenta i od adrese lokacije u ovoj stranici. Takođe. iz logičke adrese se izdvajaju adresa segmenta i adresa logičke stranice segmenta. 2. što je važno za segmente promenljivih i steka. Stranična segmentacija pati od interne fragmentacije i izaziva produžavanje (usporavanje) preključivanja procesa.Operativni sistemi ______________________________________________________________________________ logička adresa se sastoji od adrese segmenta. Ako ova adresa nije veća od sadržaja pomenutog graničnog polja. podatak o najvišoj dozvoljenoj adresi logičke stranice tog segmenta). Prednost stranične segmentacije je da ona omogućava dinamičko proširenje segmenata (dodavanjem novih stranica). Pri tome se mijenja namjena graničnog i baznog polja iz elemenata tabele segmenata. problem je i što logički adresni prostor segmenta može biti suviše mali za pojedine datoteke. tada se sadržaj baznog polja istog elementa tabele segmenata koristi kao adresa tabele stranica dotičnog segmenta. Sadržaj graničnog polja ovog elementa se poredi sa izdvojenom adresom logičke stranice segmenta. pisanje ili pozicioniranje.

namijenjena za adrese operacija. Za adresu svake od ovih operacija predviđeno je posebno polje u elementu tabele drajvera. Tako je za blokovske uređaje jednica pristupa blok. 2. Dalje. nego i dodavanje objektnog oblika novog drajvera objektnom obliku operativnog sistema). Važno je uočiti da klasifikacija uređaja na znakovne i blokovske ne obuhvata sve uređaje. DRAJVERI Zajedničko svojstvo drajvera je da je svaki od njih namjenjen za upravljanje određenom klasom uređaja. koje se pozivaju iz slojeva iznad _____________________________________________________________________________________________________________ 61 . kao i 3.upravljanja. čije obavljanje nema efekta. Prekidi. operacije ulaza i izlaza blokova (koje koristi sloj za upravljanje datotekama). sadrže adresu posebne (lažne) operacije. kao što je. Tipične operacije drajvera blokovskih uređaja su: 1. sat ili miš ne spadaju ni u znakovne ni u blokovske uređaje. koje omogućuju jednoobrazno korišćenje ulaznih i izlaznih uređaja. Pri tome. ili od kontrolera. na primjer. obično. na primjer. operacija inicijalizacije (koja se poziva samo u toku pokretanja operativnog sistema) i 2. ili za operaciju ulaza kod drajvera štampača. Za razliku od operacija drajvera. dok značajan broj blokovskih uređaja dozvoljava direktan pristup. obrada prekida obuhvata ili preuzimanje podatka. Na primjer. Tabela drajvera nudi standardan način za povezivanje sloja za upravljanje datotekama i sloja za upravljanje ulaznim i izlaznim uređajima. ili pripremu prenosa novih podataka ka kontroleru. Zahvaljujući ovoj tabeli. U ovakvom slučaju. znakovni uređaji dozvoljavaju dinamičko podešavanje njihovih pojedinih funkcionalnih karakteristika. za razliku od blokovskih uređaja. brzina prenosa znakova od računara i ka računaru. kao što su. znakovni uređaji podržavaju samo sekvencijalni pristup. zaduženih za upravljanje kontrolerima. Tipične operacije drajvera znakovnih uređaja su: 1. a za znakovne uređaje jedinica pristupa je znak. operacije ulaza i izlaza znakova (koje koristi sloj za upravljanje datotekama). polja. njihove brzine prenosa znakova). U sklopu opsluzivanja kontrolera. na primjer. operacije ulaza ili izlaza. objavljuju da je završen prenos podataka ka kontroleru. Pri tome. Za ovakve obrade su zaduženi obrađivači prekida drajvera. ne samo dopunjavanje tabele drajvera adresama operacija novog drajvera.Operativni sistemi ______________________________________________________________________________ . To važi.načina pristupa i . pristiglih od kontrolera. radi vezivanja operacija običnih i specijalnih datoteka za operacije drajvera ulaznih i izlaznih uređaja. upravljačka operacija (koja omogućuje dinamičko podešavanje funkcionalnih karakteristika znakovnih uređaja. koji stižu od kontrolera. Zato se drajveri ovakvih uređaja razlikuju od drajvera znakovnih i blokovskih uređaja. koje dotični drajver ne podržava. na primjer. Podrazumijeva se da redni broj drajvera indeksira element ove tabele. operacija inicijalizacije (koja se poziva samo u toku pokretanja operativnog sistema). drajveri moraju da reaguju i na prekide. Drajveri se nalaze u tijesnoj saradnji sa kontrolerima ulaznih i izlaznih uređaja i kriju sve detalje i posebnosti funkcionisanja ovih kontrolera. Prethodne razlike utiču na oblikovanje drajvera. za upravljačku operaciju kod drajvera diska. na primjer. Van drajvera su vidljive samo operacije. koji sadrži polja sa adresama pojedinih operacija ovog drajvera. Na kraju. jedan drajver može da opsluži više primjeraka uređaja iste klase. moguće je u operativni sistem dodavati (statički i dinamički) nove drajvere (uslov za to je.

ili iz kog se prenosi blok. U ovom slučaju. da hardverski mehanizam prekida pozove nekog od obrađivača prekida. Za periodično pisanje ovakvih sadržaja bafera može biti zadužen poseban sistemski proces. Ako je za nastavak aktivnosti pomenutog procesa neophodno da prenos bloka bude završen. spadaju u klasu blokirajućih operacija. Drajverske operacije ulaza ili izlaza bloka. navodi sadržaj polja pozicije ove datoteke (ovo polje je prisutno u elementu tabele otvorenih datoteka procesa pozivaoca pomenute sistemske operacije). U slučaju da se pomenuta sistemska operacija pisanja odnosi na specijalnu datoteku. nakon pokretanja mehanizma direktnog memorijskog pristupa. Ovo se dežava prilikom oslobađanja bafera. U svakom slučaju. dok se ne obavi zatraženi prenos bloka. Ako se u toku aktivnosti ovog drugog procesa javi potreba za prenosom bloka i ako se. Uslov. ako to omogućuje kontroler. U slučaju da se pomenuta sistemska operacija čitanja odnosi na specijalnu datoteku. navodi izračunati redni broj bloka (u koji se smještaju pisani bajti). ona. To se ostvaruje u okviru drajverske operacije inicijalizacije.Operativni sistemi ______________________________________________________________________________ sloja za upravljanje ulaznim i izlaznim uređajima (pa zato predstavljaju gornji deo drajvera). navodi sadržaj polja pozicije ove datoteke (ovo polje je prisutno u elementu tabele otvorenih datoteka procesa pozivaoca pomenute sistemske operacije). ona. neizbježno zustavljanje aktivnosti pomenutog procesa. koje zaustavljaju aktivnost svog procesa pozivaoca. postavlja se pitanje sta učiniti sa aktivnošću procesa pozivaoca jedne od ovih operacija. Ako se ova sistemska operacija odnosi na običnu datoteku. tada je. Ako se ova sistemska operacija odnosi na običnu datoteku. ona. Za drajverske operacije ulaza ili izlaza bloka je prirodno da se oslone na mehanizam direktnog memorijskog pristupa (DMA). 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. kao prvi argument u pozivu drajverske operacije izlaza bloka. radi smanjenja mogućnosti gubljenja izmjena ovakvih kopija. kao drugi argument pozivane drajverske opercije koristi se adresa nekog od slobodnih bafera sloja za upravljanje datotekama. Pri tome. DRAJVERI BLOKOVSKIH UREĐAJA Aktivnost svakog drajvera započinje inicijalizacijom njegovog kontrolera (što se obavi pozivanjem drajverske operacije inicijalizacije u toku pokretanja operativnog sistema). dok se zatraženi prenos bloka ne obavi. Drajverska operacija izlaza bloka se poziva i kada je potrebno izmijenjene sadržaje bafera sloja za upravljanje datotekama sačuvati na disku. ali i periodično. Nakon toga. kao drugi argument pozivane drajverske opercije koristi se adresa nekog od slobodnih bafera sloja za upravljanje datotekama. koji sadrži izmjenjenu kopiju bloka. drajversku operaciju ulaza bloka poziva sistemska operacija čitanja sloja za upravljanje datotekama. obrađivače prekida poziva mehanizam prekida. Drajversku operaciju izlaza bloka poziva sistemska operacija pisanja sloja za upravljanje datotekama. nakon pokretanja mehanizma direktnog memorijskog pristupa. znači hardver ispod operativnog sistema (pa zato oni predstavljaju donji deo drajvera). aktivnost drajvera blokovskih uređaja se svodi na prenos blokova ka ovim uređajima i od njih. u okviru drajverske operacije ulaza ili izlaza bloka. kao prvi argument u pozivu drajverske operacije ulaza bloka. kao prvi argument u pozivu drajverske operacije izlaza bloka. je da adresa ovog obrađivača dospe u odgovarajući element tabele prekida. ustanovi da se zatraženi prenos ne može pokrenuti. radi prenosa bloka. jer _____________________________________________________________________________________________________________ 62 . navodi izračunati redni broj bloka. ona. kao prvi argument u pozivu drajverske operacije ulaza bloka. U svakom slučaju. Zaustavljanje aktivnosti jednog procesa u okviru drajverske operacije ulaza ili izlaza bloka prirodno dovodi do preključivanja procesora na drugi proces. u kome je pripremljen novi sadržaj upisivanog bloka.

ako lista zahtjeva nije prazna. Drajver blokovskog uređaja mora da poznaje karakteristike uređaja koga opslužuje. Tada se pristup drugom sektoru mora odložiti za jedan obrtaj. Ovo preslikavanje je bitno. i opet se zaustavlja aktivnost procesa pozivaoca. To znači da je moguć pristup samo jednom bloku u jednom obrtaju. glava diska pređe preko početka drugog sektora (koji prostorno sledi odmah iza prenosenog sektora) pre nego se pomenuti prenos završi. da bi se taj prenos pokrenuo. u toku prenosa jednog bloka. Nastavak ove aktivnosti omogućuje odgovarajući obrađivač prekida (interrupt handler). pokreće se mehanizam direktnog memorijskog pristupa. pamteći. kao što je (magnetni) disk. U suprotnom. kao i 4. izazivajući prekid nakon obavljanja zahtjevanog prenosa bloka. pri tome. Time se. zaustavlja aktivnost procesa pozivaoca ovakve operacije. drajver preračunava redni broj bloka u redne brojeve cilindara. 3. staza i sektora (jer jedan blok može da sadrži više sektora). ako nije moguće pokrenuti zahtjevani prenos bloka. staza i sektora može biti i u nadležnosti kontrolera). Tako. Pri tome. svaki zahtjev u ovakvoj listi zahtjeva mora da sadrži: 1. redni broj ovog bloka. na primjer. neizbježno je zaustavljanje aktivnosti i drugog procesa. kada opslužuje magnetni disk. Pri tome. jer od njega zavisi propusnost (broj blokova koji se mogu preneti u jedinici vremena) ulaznog ili izlaznog uređaja. Drajverske operacije ulaza ili izlaza bloka započinju pripremanjem zahtjeva za prenos bloka i njegovim ubacivanjem u listu zahtjeva. Važno je uočiti da upravljanje listom zahtjeva u toku drajverskih operacija ulaza ili izlaza bloka mora biti pod onemogućenim prekidima.Operativni sistemi ______________________________________________________________________________ je ulazni ili izlazni uređaj zauzet već pokrenutim prenosom bloka za potrebe prvog procesa. nego i registrovanje redosleda njihovog obavljanja. 2. U nadležnosti drajvera blokovskog uređaja je i određivanje načina preslikavanja blokova u sektore (mada i to može obavljati kontroler). Pre omogućavanja nastavljanja ove aktivnosti. Na primjer. Sticaj okolnosti može dovesti do toga da postoji viđ ovakvih zahtjva. 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. dok njegov početak ponovo ne dođe ispod glave diska. 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. Zato je moguće da se. mora ostati trag o zahtjevu za prenosom novog bloka. koje istovremeno opisuju razne glave diska iznad raznih rotirajućih površina). Na osnovu tih podatka. Pomenuti obrađivač prekida prvo izbaci iz liste zahtjeva upravo opsluženi zahtjev. da bi obrađivač prekida uvek zaticao tu listu u ispravnom (konzistentnom) stanju. jer je drugi prenos u toku. Njega pozove kontroler. zaustavljaju zbog zahtjeva za prenosom novih blokova. adresu bafera koji učestvuje u prenosu. obrađivač prekida pokreće prenos novog bloka. čija aktivnost se može nastaviti. čije aktivnosti se. procesor više puta preključi na razne procese. čija aktivnost se zaustavlja do obavljanja zahtjevanog prenosa bloka. adresu deskritpora procesa. adresu deskriptora procesa. ako se pretpostavi da sektor odgovara bloku i ako se pristupa uzastopnim blokovima. radi obavljanja zahtjevanog prenosa bloka. jedna za drugom. koji su preslikani u prostorno uzastopne sektore. jer je rad ulaznog ili izlaznog uređaja sporiji od rada procesora. čim se završi već pokrenuti prenos. zbog dužne prenosa jednog sektora između kontrolera i radne memorije. ujedno. drajver mora da zna koliko sektora ima u stazi. a cilindri se sastoje od staza. Uvezivanje svih istvoremeno postojećih zahtjeva za prenosom blokova u listu zahtjeva omogućuje ne samo registrovanje svih zahtjeva. Zato je bolje da uzastopni blokovi ne budu preslikani u prostorno _____________________________________________________________________________________________________________ 63 . moguće je da. smjer zahtjevanog prenosa bloka.

jedino kontroler zna kojoj stazi stvarno pripada koji sektor. čije prenošenje se zahtijeva. a glava diska se pomjera iz početne pozicije samo u jednom smjeru. Međutim. kao i na neke druge greške kontrolera. pored optimizacije kretanja glave diska. O optimizaciji kretanja glave diska može da se brine i kontroler (u ovom slučaju. čim nestanu zathevi za prenos blokova na nju i sa nje. odgovarajuće uzastopnim blokovima. radi usluživanja zahtjeva. Zadatak drajvera je da iskoristi sve mogućnosti kontrolera. Posle toga. nego u redosledu. u ovom slučaju. BLOKOVSKI I ZNAKOVNI UREĐAJI KAO SPECIJALNE DATOTEKE Za blokovske uređaje. ako reaguje na prolazne greške u radu diska. ulaz ili izlaz neće biti uspješan. koji obezbijeđuje minimalno pokretanje 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). Drajver može da poveća pouzdanost diska. čije prenošenje se zahtijeva). Ako se uzastopni blokovi preslikavaju u sektore. tada nema smetnje da se uzastopni blokovi preslikaju u prostorno uzastopne sektore. Tako. Drajver moše i da smanji trošenje magnetnih disketa (kod kojih glava disketne jedinice klizi po površini sa magnetnim premazom). potrebno je što manje pokretati glavu diska. vremena za koje staza prođe ispod glave diska (rotational delay). Pošto. Na ovaj način se. da je bolje da se zahtjevi za prenosom blokova ne uslužuju hronološki. To je naročito važno. Na sličan način drajver moše da reaguje i na pozicioniranje glave diska na pogrešnu stazu. zavisi od odnosa vremena prenosa bloka (između kontrolera i radne memorije) i vremena za koje sektor prođe ispod glave diska. Blokovskim uređajima se rIJetko pristupa kao _____________________________________________________________________________________________________________ 64 . dok svi zahtjevi u smjeru njenog kretanja ne budu usluženi. drajver samo ubacuje zahtjeve u listu zahtjeva. jedino on može da optimizira kretanje glave diska. višestrukim ponavljanjem operacije. međusobno razdvojene jednim sektorom (interleaving factor 1). Da bi se ovo vreme minimiziralo. Zato se lista ovakih zahtjeva sortira u rastućem redosledu staza (na kojima se nalaze blokovi. Zato je i moguće da se u listi zahtJeva istovremeno zateknu zahtJevi raznih procesa. u slučaju pojave zrnca prašine između glave (magnetnog) diska i (magnetne) površine. poput magnetnog diska. To znači.Operativni sistemi ______________________________________________________________________________ uzastopne sektore (interleaving). jer. 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). koji razdvajaju sektore. na propusnost diska značajno utiče i vreme premeštanja glave diska sa staze na stazu (seek time). 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). sem vremena prenosa bloka (transfer time). ako kontroler podržava više magnetnih diskova i omogućuje istovremena nezavisna pozicioniranja glava raznih diskova. Broj sektora (interleaving factor). Propusnost magnetnog diska zavisi i od redosleda usluživanja zahtjeva za prenosom blokova. na primjer. ona se vraća u početnu poziciju. je tipično da ih koriste istovremeno Postojeći procesi u toku pristupa (raznim) datotekama. Ako kontroler automatski prebacuje sve sektore staze (iznad koje se nalazi glava diska) u svoju lokalnu radnu memoriju (track_at_time caching). a kontroler se brine o redosledu njihovog usluživanja). koji su pristigli nakon što je glava diska prešla preko staza na kojima se nalaze blokovi. zaustavljanjem obrtanja diskete. kada se kontroler brine o zamjeni loših sektora (bad sectors) ispravnim (rezervnim) sektorima (sa posebnih rezervnih staza). i ako se prenos jednog sektora završi prije nego kraj njegovog prostornog sledbenika prođe ispod glave diska. tada to drajver može da iskoristi za smanjenje srednjeg vremena premještanja sa staze na stazu glave diska.

DRAJVERI ZNAKOVNIH UREĐAJA Blokovski i znakovni uređaji se razlikuju ne samo po načinu korišćenja. na primjer. ako je ulazni bafer prazan. čiji je zadatak najčešće provjera ispravnosti blokova. odnosno. da bi obezbijedili međusobnu isključivost u toku njihovog korišćenja. da bi obezbijedio međusobnu isključivost u toku njenog korišćenja. koji su upućeni ka ovim uređajima. takođe zadatak da provjeri da li je eho bafer prazan. _____________________________________________________________________________________________________________ 65 .Kada neki korisnički proces želi da odštampa tekst. Da bi ovakva saradnja procesa bila uspješna. za drajver terminala je potreban par takvih bafera za svaki od terminala (koje drajver opslužuje). Zato u sastav drajvera znakovnih uređaja obavezno ulaze i baferi. obrađivač prekida tastature upućuje prispjeli znak ka ekranu. tada obrađivač prekida tastature smješta prispeli znak u eho bafer. Preuzimanje znaka iz ulaznog bafera omogućuje drajverska operacija ulaza znaka. prispeće znakova sa tastature ne zavisi od aktivnosti procesa. Slično. Tada nastavljanje ove aktivnosti omogućuje obrađivač prekida tastature. za znakovne uređaje je tipično da im procesi pristupaju kao specijalnim datotekama i da ih zaključavaju. Tako. koji posreduju u razmjeni datoteka. uz svaki od sistemskih procesa posrednika postoji i poseban direktorijum. a drugi. aktivnost znakovnih uređaja zavisi i od aktivnosti korisnika. Ako je eho bafer prazan. nego od aktivnosti korisnika. jedan. U ovakvim baferima znakovi se čuvaju dok ih procesi ili uređaji ne preuzmu. on preuzima naredni znak iz eho bafera i upućuje ga ka ekranu. 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. da bi njihove sadržaje (jedan po jedan) uputio (posredstvom svoje specijalne datoteke) na željeni uređaj. koje “troši” drugopomenuti proces). upućenih ka ekranu. U svakom slučaju. obrađivač prekida ignorise prispeli znak. ili da pošalje poruku kroz mrežu. Obrađivač prekida tastature ima. Odgovarajući sistemski proces posrednik vadi datoteke iz svog direktorijuma (jednu po jednu). koji su prispjeli sa ovih uređaja (nezavisno od aktivnosti procesa). kao svoju vrednost. Svaki od ovih procesa pristupa svom znakovnom uređaju kao specijalnoj datoteci. dok blokovske uređaje uvek aktiviraju procesi. koji aktivira obrađivača prekida ekrana. on ga preuzima i smješta u ulazni bafer. koji aktivira obrađivača prekida tastature. za koje je prirodno da ih koristi više procesa. kao što su štampači ili mrežni kontroleri. on prvo pripremi datoteku sa odgovarajućim sadržajem. Nakon prikazivanja znaka. koristi ih samo jedan proces. preuzeti znak iz ulaznog bafera. a zatim tu datoteku ubaci u pomenuti direktorijum. aktivost obrađivača prekida se odmah završava. Na primjer. radi pronalaženja izgubljenih ili loših blokova. Inače. za koje je prirodno da ih opslužuje samo jedan proces. koju zaključava. Ako su ulazni i eho baferi puni. Za razliku od blokovskih uređaja. Ako ovaj bafer nije prazan. po smještanju znaka u ulazni bafer. prispelih sa tastature. U ulaznom baferu znak čeka da neki proces zatraži njegovo preuzimanje. namijenjeni za smještanje znakova. a kada se to i desi. Svaki pritisak dirke sa tastature izaziva prekid. nego i po načinu aktiviranja. Inače. nego i za štampače ili mrežne kontrolere. Inače. ulazni bafer služi za smještanje znakova. koji posreduju u korišćenju pomenutih uređaja.Operativni sistemi ______________________________________________________________________________ specijalnim datotekama. Pri tome. u slučaju znakovnih uređaja. upućivanje znakova na ekran zavisi i od aktivnosti korisnika (eho). drajverska operacija ulaza znaka vraća. Tako. ali i od aktivnosti procesa. U okviru ove operacije se zaustavlja aktivnost njenog procesa pozivaoca. Takav način upotrebe znakovnih uređaja je uobičajen ne samo za terminale. neophodno je da sloj za upravljanje datotekama obezbijedi sinhronizaciju procesa tokom njihovog pristupa direktorijumima. ekran izaziva prekid. Istovremeno. Zato se. uvode posebni sistemski procesi posrednici (spooler). eho bafer služi za smještanje znakova.

U sklopu toga. ona upućuje prikazivani znak ka ekranu. kao i da obezbijedi brisanje tog znaka sa ekrana. U okviru ove operacije se zaustavlja aktivnost njenog procesa pozivaoca. Argumenti njenog poziva utiču ne samo na funkcionisanje.Operativni sistemi ______________________________________________________________________________ Eho bafer je podesan i za čuvanje znakova. Znak prispio sa tastature se smješta u ulazni bafer aktivnog prozora. drajver terminala mora. da omogući brisanje poslednjeg znaka koji je prispio. drajver terminala se brine o interpretaciji upravljačkih znakova “prelazak na novu liniju” (line feed). da bi obrađivači prekida tastature i ekrana uvek zaticali bafere u ispravnom (konzistentnom) stanju. U slučaju da eho bafer nije ni pun ni prazan. nego i na funkcionisanje drajvera terminala. obrađivač prekida tastature i proces pozivalac drajverske operacije ulaza znaka se nalaze u odnosu proizvođač i potrosač. ako je on već prikazan. omogućujući tako pomeranje kursora. koje procesi žele da prikažu na ekranu. pored operacije inicijalizacije (namijenjene za inicijalizaciju kontrolera terminala) i operacija ulaza i izlaza znakova. na primjer. Inače. U istom odnosu se nalaze proces pozivalac operacije izlaza znaka i obrađivač prekida ekrana. Znači. pristiglog sa tastature. drajver terminala (odnosno. Prikazivanje znaka omogućuje drajverska operacija izlaza znaka. Zato je. drajver terminala mora da razdvoji znakove koji su rezultat eha od ostalih prikazivanih znakova na ekranu terminala (koje na ekran šalju procesi). kod grafičkog terminala. Eho znaka. Ako drajverska operacija izlaza znaka zatekne eho bafer prazan. mora biti pod onemogućenim prekidima. Upravljanje ulaznim i eho baferom. Ovaj poziv nema povratnu vrijednost. drajver terminala samo prosleđuje dalje znakove pristigle u njegov ulazni bafer. Poziv drajverske operacije ulaza nema argumenata. njegov obrađivač prekida tastature) mora da prethodno prispeli znak izbaci iz ulaznog i iz eho bafera. jer ovakvi terminali posjeduju video memoriju jer se njen sadržaj periodično prikazuje prilikom osvježavanja ekrana. niti obrađivač prekida ekrana. 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). Zato upravljačka operacija omogućuje da se drajveru terminala saopšti da li da vrši eho pristiglih znakova. nudi i upravljačku operaciju. za prikazivanje znaka na ekranu dovoljno smjestiti znak u odgovarajuću lokaciju video memorije. odnosno piše specijalna datoteka. terminala. drajverska operacija pisanja znaka samo smješta prikazivani znak u eho bafer. ili ne. ili ne (raw mode). Prethodno opisane drajverske operacije čitanja i pisanja znaka spadaju u blokirajuće operacije. pomeranje linija. pristigle za prikazivanje. Kada vrši eho. ako je eho bafer pun. u okviru drajverskih operacija ulaza i izlaza znaka. Za poziv drajverske operacije izlaza kao jedini argument služi pisani znak (njegov kod). return ili enter i slično). koji dolaze sa tastature (cooked mode). kao i druga upravljanja ekranom (uključujući tu i upravljanje prozorima). u nadležnosti drajvera terminala se nalazi editovanje znakova prispjelih sa tastature. kada se čita. Za grafičke (memorijski preslikane) terminale nije potreban eho bafer. “prelazak na početak linije” (carriage return). nije uvek poželjan (na primjer. _____________________________________________________________________________________________________________ 66 . U slučaju kada ne interpretira znakove. Tada nastavljanje ove aktivnosti omogućuje obrađivač prekida ekrana i to nakon pražnjenja jednog znaka (ili više znakova) iz ovog bafera. Ove operacije se pozivaju iz sistemskih operacija čitanja i pisanja sloja za upravljanje datotekama. a njegova povratna vrednost je pročitani znak (njegov kod). Jedini argument njenog poziva je prikazivani znak. Upravljačka operacija omogućuje da se drajveru terminala saopšti da li da interpretira znakove. na primjer. kao i drugih upravljačkih znakova (escape. za svaki od prozora je potreban poseban ulazni bafer. U slučaju da se želi podržati više prozora (window) na ekranu grafičkog terminala. kod zadavanja znakova lozinke). kada primi odgovarajući upravljački znak (delete). Drajver terminala može da interpretira i znakove. Takođe. U prvom slučaju. Drajver terminala.

koje u pravilnim vremenskim intervalima generise sat (kristalni oscilator sa pravilnom frekvencijom i brojačem. Praćenje proticanja vremena se zasniva na brojanju periodičnih prekida (clock). jer se u obradi prekida. Obrađivač prekida sata broji prekide sata. izbjegava preključivanje sa prekinutog procesa. jer se u njegovoj nadležnosti nalazi više poslova. Kada postoji ovakva nepreciznost. zbog brzine. 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. Pomoću razlike sadržaja ovog registra. Kvantum se predstavlja kao cijeli broj prekida sata. održavanje sistemskog vremena. 4. a njih ima u toku aktivnosti procesa. radi otkrivanja učestanosti izvršavanja pojedinih delova programa). Slično. obrada prekida obično predstavlja dio aktivnosti prekinutog procesa. koga je prekinuo prekid sata. trajanje obrade prekida je obično kraće od perioda prekida sata i pripisuje se prekinutom procesu. nju izaziva nemogućnost mjerenja dužine vremenskih intervala. kao sto su: 1. čime dozvoljava da viši slojevi operativnog sistema mogu da reaguju na prekide. jer ona pruža mogućnost da se ugrozi funkcionisanje operativnog sistema i naruši _____________________________________________________________________________________________________________ 67 . dotle pripisivanje procesorskog vremena procesima (odnosno. Važno je uočiti da. za odlaganje njegove aktivnosti. 3. Sistemsko vrijeme može da se računa u odnosu na neki nepromenljivi trenutak u prošlosti. a čije anuliranje izaziva prekid). praćenje ukupnog korišćenja procesorskog vremena aktivnog procesa. Za operaciju smještanja adresa obrađivača prekida u tabelu prekida nije uputno da bude sistemska operacija. cijeli period se pripisuje kvantumu poslednjeg aktivnog procesa. ili 5. koji se umanjuje u svakoj oscilaciji. Pomenute nepreciznosti se mogu izbjeći. ako procesor broji svoje cikluse i njihovu sumu čuva u posebnom registru. ako se u toku jednog perioda prekida sata desi više preključivanja. Gornji deo ovog drajvera predstavljaju sistemske operacije za preuzimanje ili izmjenu sistemskog vremena i za uspavljivanje procesa (odnosno. a njihov zbir predstavlja sistemsko vreme (lokalno vreme u računaru). ili u odnosu na trenutak poslednjeg pokretanja operativnog sistema. skupljanje statistika o aktivnosti procesa (koje se svodi na registrovanje sadržaja programskog brojača.Operativni sistemi ______________________________________________________________________________ DRAJVER SATA U nadležnosti sloja za upravljanje kontrolerima se nalazi i praćenje proticanja vremena. mjerenje trajanja aktivnosti procesa) ne mora biti precizno. iako pomenuta obrada prekida ne mora biti sa njim povezana (inače. 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). koji su kraći od perioda prekida sata. preuzetog na početku i preuzetog na kraju perioda aktivnosti procesora koji je kraći od perioda sata. UPRAVLJANJE TABELOM PREKIDA Sloj za upravljanje kontrolerima omogućuje i smještanje adresa obrađivača prekida u tabelu prekida. 2. provjera da li je nastupilo vreme buđenja uspavanog procesa (čija aktivnost se nastavlja tek kada istekne zadani vremenski interval). dok ne istekne zadani vremenski interval). praćenje isticanja kvantuma aktivnog procesa. dok je sistemsko vrijeme precizno (jer je sat precizan). Ovaj obrađivač prekida predstavlja donji deo drajvera sata. odnosno preključivanje na prekinuti proces). Na primjer.

Ovakav cilj se ostvaruje kru\nim raspoređivanjem (round robin scheduling). ako se uspostavi obrnuta proporcionalnost između prioriteta procesa i obima u kome je on iskoristio poslednji kvantum. odnosno odmah po omogućavanju nastavka aktivnosti prioritetnijeg procesa. koji najdu\e čeka na svoj kvantum. 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. Tako. nazvan kvantum. ako se _____________________________________________________________________________________________________________ 68 . procesima se dodeljuju novi prioriteti. ali i smanjenju iskorišćenja procesora (jer se na preključivanje troši procesorsko vreme).6 SLOJ ZA UPRAVLJANJE PROCESOROM Osnovni zadatak upravljanja procesorom je preključivanje procesora sa aktivnog procesa na neki od spremnih procesa. zbog toga. Za operacije sloja za upravljanje kontrolerima (odnosno za drajverske operacije) je zajedničko da se obavljaju pod onemogućenim prekidima što je prihvatljivo. ako se uvede lutrijsko raspoređivanje (lottery scheduling). Od dužine kvantuma zavisi odziv računara (brzina kojom on reaguje na korisničku akciju posredstvom terminala). ali i iskorišćenje procesora. to prioritet njegovih procesa više raste). Procesor se preključuje na proces sa višim prioritetom (preemptive scheduling) odmah po pojavi ovakvog procesa. Neophodan preduslov za primjenu kružnog raspoređivanja je da se preključivanje vezuje za trenutak u kome se završava tekući kvantum. 2. Suviše kratak kvantum može da ugrozi i odziv. odnosno. Kružno raspoređivanje se uspješno primjenjuje i u situaciji kada hitnost svih procesa nije ista. OSNOVA SLOJA ZA UPRAVLJANJE KONTROLERIMA Sloj za upravljanje kontrolerima se oslanja na sloj za upravljanje procesorom. aktivni proces prepu[ta procesor spremnom procesu. ako se uspostavi obrnuta proporcionalnost između prioriteta procesa. procesima dodeljuju razni prioriteti. Takođe. Pri tome se periodično provjerava iskorišćenje poslednjeg kvantuma svakog od procesa i. Po isticanju kvantuma. Dinamička izmjena prioriteta procesa doprinosi ravnomernosti raspodele procesorskog vremena između procesa. jer su preključivanja sastavni deo aktivnosti drajvera. koji istovremeno koriste računar). 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. u prosjeku koristi n/m kvantuma procesorskog vremena. proces. Pri tome. pa se. Zato je neophodno da se preključivanje poziva iz obrađivača prekida sata.Operativni sistemi ______________________________________________________________________________ njegov mehanizam zaštite. Ravnomerna raspodjela procesorskog vremena se može postići i bez izmjena prioriteta. u skladu s tim. Ono se zasniva na dodeli procesima lutrijskih lozova. ako ukupno ima m lozova. koji pripadaju nekom korisniku. 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. brine raspoređivanje. koji poseduje n od m lozova. dinamička izmjena prioriteta procesa doprinosi ravnomjernosti raspodele procesorskog vremena između korisnika. skraćenje kvantuma (do određene granice) doprinosi poboljšanju odziva. Ovaj izbor zavisi od cilja raspoređivanja. na koga se preključuje procesor. Za interaktivno kori[ćenje računara cilj raspoređivanja je da ravnomerno rasporedi procesorsko vreme između istovremeno postojećih procesa. Pri tome se podrazumijeva da kružno raspoređivanje važi u okviru grupe procesa sa istim prioritetom. jer je reč o kratkotrajnim operacijama). između njihovih vlasnika (korisnika. O izboru spremnog procesa. koje svakom od istovremeno postojećih procesa dodeljuje isti vremenski interval.

Ono obuhvata pripremu listi deskriptora spremnih procesa. pripremljeni deskriptor odgovara beskonačnom procesu. se dodeljuje najniži prioritet i najduži kvantum. Pri tome se interaktivnim procesima dodeljuje najviši prioritet i najkraći kvantum. osigurava konzistentnost ovih listi). ako se dio programa. koji su u interakciji sa korisnicima. opisuje aktivnost beskonačnog procesa). Pozadinskim procesima. sistemska operacija za izmjenu prioriteta procesa. koji odgovara delu programa. Procesu automatski opada prioritet i produžava se kvantum što je on duže aktivan i ima manju interakciju sa korisnikom. Ključni korak u ovoj inicijalizaciji je stvaranje uslova za preključivanje. dinamička izmjena prioriteta se obavlja periodično. tada. S tom idejom na umu moguće je opet iskoristiti dinamičku izmjenu prioriteta procesa za istovremeno održavanje i dobrog odziva za procese. zaduženog za inicijalizaciju operativnog sistema. Povećanje interakcije sa korisnikom dovodi do porasta prioriteta procesa i smanjenja njegovog kvantuma. Na taj način izvršavanje ovog dijela programa prerasta u proces. koji nastane pošto se stvore uslovi za preključivanje. na koju se primjenjuje kružno raspoređivanje). jer je reč o kratkotrajnim operacijama). Dio posla inicijalizacije operativnog sistema može da preuzme i poseban inicijalizacioni proces. Jedna uključuje proces među spremne procese. na primjer.Operativni sistemi ______________________________________________________________________________ prevelik procenat procesorskog vremena troši na preključivanje. koji nijesu u (čestoj) interakciji sa korisnicima. Pri tome. Druga od ove dve operacije vadi iz listi deskriptora spremnih procesa deskriptor najprioritetnijeg spremnog procesa. ili. tako što. završava beskonačnom petljom (koja. kao i pripremu deskriptora procesa. koja odgovara prioritetu dotičnog procesa (u ovom slučaju se podrazumijeva da za svaki prioritet postoji posebna lista deskriptora spremnih procesa. U nadležnosti sloja za upravljanje procesorom obično se nalazi i inicijalizacija operativnog sistema (ili bar njen deo). ili sistemske operacije za sinhronizaciju procesa. bar značajno smanjivanje učestanosti preključivanja. Prethodno izloženo ukazuje na veliku važnost postojanja mogućnosti za uticanje na prioritet procesa. Tada se procesor preključuje sa beskonačnog procesa na inicijalizacioni proces. U ovakve operacije spadaju operacija preključivanja (i operacije raspoređivanja). I u ovom slučaju. Za operacije sloja za upravljanje procesorom je zajedničko da se obavljaju pod onemogućenim prekidima (što je prihvatljivo. i dobrog iskorišćenja procesora za pozadinske (background) procese. 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. Operacije raspoređivanja obuhvataju bar dvije operacije. _____________________________________________________________________________________________________________ 69 . zadužen za inicijalizaciju operativnog sistema. Sa stanovišta iskorišćenja procesora prihvatljiva su samo neophodna preključivanja (kada nije moguć nastavak aktivnosti procesa). jer je to način da se upravlja ponašanjem računara. njegov deskriptor ubacuje na kraj liste deskriptora spremnih procesa. koji su vrlo dugo aktivni bez ikakve interakcije sa korisnikom.

a zatim drugi od njih otvori drugu datoteku. izbegavanje (avoidance) pojave mrtve petlje pažljivom alokacijom resursa 3. kao što su. procesi upadaju u beskonačnu petlju (starvation). Izbegavanje pojave mrtve petlje se zasniva na ideji da se. ako se unaprijed zna koliko treba resursa i ako se oni svi zauzmu pre korišćenja. koji čeka oslobađanje resursa koga drži prvi proces). a on čeka oslobađanje resursa koga drži treći proces.Operativni sistemi ______________________________________________________________________________ 3. maksimalno mogućih zahtjeva za resursima. jer je svaki od njih zauzeo (zaključao) datoteku. po svom ishodu. to se desi kada dva procesa žele da u režimu međusobne isključivosti pristupaju dvema datotekama. Na primjer. nakon njihovog usvajanja. Kod sprečavanja pojave mrtve petlje. ukupno postavljenih zahtjeva za resursima i 3. stanja resursa. važenje četvrtog uslova se može spriječiti. sprečavanje (prevention) pojave mrtve petlje (onemogućavanjem važenja nekog od četiri neophodna uslova za njenu pojavu). 3. postoji redosled zauzimanja i oslobađanja resursa u kome se mogu zadovoljiti maksimalno _____________________________________________________________________________________________________________ 70 . na primjer. U slučaju neblokirajuće sistemske operacije otvaranja (sa zaključavanjem). nakon zauzimanja izvjesnog broja resursa. Isto se dešava sa drugim procesom prilikom njegovog pokušaja da otvori prvu datoteku. prethodno pomenute datoteke. tada nema mogućnosti za nastavak aktivnosti tih procesa. ako se resursi uvek zauzimaju u unapred određenom redosledu (koji isključuje mogućnost cirkularne međuzavisnosti procesa). Postoje četiri pristupa rješavanja problema mrtve petlje: 1. pokušavajući da otvore datoteku. MRTVA PETLJA Mrtva petlja (deadlock) opisuje situaciju u kojoj je trajno zaustavljena aktivnost procesa. koja treba i drugom procesu za nastavak njegove aktivnosti. Važenje trećeg uslova se može spriječiti. Ona se. i nema nameru da tu datoteku oslobodi (otključa). udovoljava samo onim zahtjevima za koje se (provjerom) ustanovi da. na osnovu poznavanja: 1. za pojavu mrtve petlje je potrebno da budu ispunjena četiri uslova: 1. postoji cirkularna međuzavisnost procesa (prvi proces čeka oslobađanje resursa koga drži drugi proces. U slučaju blokirajućih sistemskih operacija otvaranja (sa zaključavanjem). otkrivanje (detection) pojave mrtve petlje i oporavak (recovery) od nje i 4. 2. 2. Važenje drugog uslova se može spriječiti. suštinski ne razlikuje od mrtve petlje. koju je isključivo za sebe već otvorio (zaključao) drugi proces. Ako prvi od njih otvori prvu datoteku. zauzimani resursi se koriste u režimu međusobne isključivosti. i tako redom do poslednjeg procesa iz lanca procesa. resursi se zauzimaju jedan za drugim. Ovakav oblik međusobne zavisnosti procesa se naziva i ziva petlja (livelock). Zaustavljanje aktivnosti ova dva procesa je trajno. tako da proces. ako je neophodno korišćenje resursa u režimu međusobne isključivosti. I konačno. jer nije započelo njihovo korišćenje). resurse oslobađaju samo procesi koji su ih zauzeli i 4. pokušaj prvog procesa da otvori drugu datoteku dovodi do trajnog zaustavljanja njegove aktivnosti. bez obzira da li je sistemska operacija otvaranja blokirajuća ili ne. Pri tome. važenje prvog uslova nije moguće spriječiti. Pojava mrtve petlje je vezana za zauzimanje resursa. ako postoji način da se zauzeti resurs privremeno oduzme procesu. mora da čeka da zauzme preostale resurse. 2. Pri tome. neuspjeh u zauzimanju bilo kog resursa dovodi do oslobađanja prethodno zauzetih resursa (što je moguće. ignorisanje problema mrtve petlje (Nojev algoritam).

ovakva provjera je komplikovana. Prema tome. čijim zahtjevima se ne može udovoljiti ni za jedan redosled zauzimanja i oslobađanja resursa. Ako se resursi ne mogu privremeno oduzeti od procesa. koji je primjeren datim okolnostima. Otkrivanje pojave mrtve petlje se zasniva na sličnom pristupu kao i izbegavanje pojave mrtve petlje. Praktična vrijednost ovoga pristupa nije velika. U ovom slučaju se provjerava da li postoji proces. _____________________________________________________________________________________________________________ 71 . jer se ovaj problem ne javlja tako često da bi se isplatilo da ga rešava operativni sistem. na korisniku je da se suoči sa ovim problemom i da ga riješi na način. radi oslobađanja resursa koje oni drže. Ignorisanje problema mrtve petlje je pristup koji je najčesće primjenjen u praksi. Pored komplikovanosti ovakve provjere. Sem toga. kada se mrtva petlja javi. preostaje jedino uništavanje procesa. a to je neophodno za provjeru da li se može udovoljiti pojedinim zahtjevima. a to znači i neefikasna. kada se i otkrije pojava mrtve petlje. jer se obično unaprijed ne znaju maksimalno mogući zathevi procesa za resursima. Zbog toga ni ovaj pristup nema veliki praktični značaj. a to nije uvek prihvatljiv zahvat.Operativni sistemi ______________________________________________________________________________ mogući zahtjevi svih procesa. problem je i šta učiniti.

nego samo operande komandi (izbor operanda se svodi na izbor nekog od.txt predstavlja primjer prethodno opisane komande znakovnog komandnog jezika.bin (pri čemu se podrazumijeva da tip bin odgovara izvršnoj datoteci). u korisničkom programu je neophodno navesti poziv odgovarajuće sistemske operacije. Ovakvi.txt. pretpostavka je da radni direktorijum obuhvata i tekst datoteku godina1. dijalog u kome korisnik navodi (ili opet bira) operand (operande) komande. imena datoteka). KOMUNIKACIJA SA OPERATIVNIM SISTEMOM 4. umjesto da ga pamti i u cjelosti navodi. uz pretpostavku da radni direktorijum obuhvata izvršnu datoteku sa imenom kopiraj. Komandni jezik može olakšati zadavanje komandi. u okviru njenog izvršavanja. Operand ovakve komande je.txt. Spisak operatora se prikazuje na ekranu. na ekranu prikazanih. odnosno procesima. graphical user interface) još više pojednostavljuju zadavanje komandi. ako svi studenti prve godine studija upisuju drugu godinu studija). preuzeo znak sa tastature. na prethodni način oblikovana komanda započinje operatorom u obliku putanje izvršne datoteke. 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. ako omogući korisniku da operator komande bira u spisku operatora (menu). ako se neka korisnička funkcija veže za događaj kao što je pritisak dirke na tastaturi. _____________________________________________________________________________________________________________ 72 . a završava operandom (ili operandima) u obliku putanja datoteka. tada. koja je po sadržaju identična datoteci godina1. Tako. kojima se rukuje. čije izvršavanje izaziva željeno upravljanje. podrazumijeva se da izvršavanje programa iz izvršne datoteke kopiraj. eventualno. koja opisuje upravljanje.txt godina2. da bi se. Nakon izbora operatora sledi. grafički komandni jezici (menu driven user interface. po dešavanju takvog događaja. Tako: kopiraj godina1.Operativni sistemi ______________________________________________________________________________ 4. Kada se takav događaj desi. na primjer. U svakom slučaju. Na primjer. Prema tome. operativni sistem poziva funkciju korisničkog programa koja je prethodno vezana za dotični događaj. po potrebi. Najjednostavniju komandu komandnog jezika predstavlja putanja izvršne datoteke sa izvršnim oblikom programa. 4. Međutim. na osnovu upotrebljene namjenske dirke. Vezivanje funkcije korisničkog programa za neki događaj se ostvaruje posredstvom poziva sistemske operacije. a izbor operatora se vrši pomoću namjenskih dirki tastature ili miša. operativni sistem poziva pomenutu korisničku funkciju. putanja datoteke kojom se rukuje. Takođe. ako korisniku omogućuju da ne bira operator. Pri tome se operator podrazumijeva ili na osnovu tipa odabrane datoteke.1 PROGRAMSKI NIVO KOMUNIKACIJE SA OPERATIVNIM SISTEMOM Komunikacija sa operativnim sistemom na programskom nivou se ostvaruje pozivanjem sistemskih operacija. Na kraju.txt i koja pripada radnom direktorijumu (prethodna komanda opisuje korisnu operaciju. da bi se preuzeo znak sa tastature. zadatak komandnog jezika je da omogući korisniku da zada komandu.2 INTERAKTIVNI NIVO KOMUNIKACIJE SA OPERATIVNIM SISTEMOM Interaktivni nivo korišćenja operativnog sistema se ostvaruje pomoću komandi komandnog jezika. Jedan način dobijanja usluga od operativnog sistema podrazumijeva da se za svaku uslugu poziva odgovarajuća sistemska operacija. koje omogućuju upravljanje datotekama.bin dovodi do stvaranja datoteke godina2. ili.

Tako. pre svega.txt (za obavljanje ovakvih akcija. a kao njene argumente upotrebi operator i operande komande (putanju izvršne datoteke i putanje datoteka sa obrađivanim podacima). koji obrazuju komandu. Na primjer. na primjer: *. shell script). na primjer. omogućavanje pravljenja komandnih datoteka (command file. u okviru komandi se mogu javiti magični znakovi-džoker znaci (magic character. prepoznaje u tom nizu znakova operator komande (i. zatraženo komandom.obj ili odštampati sve tekst datoteke iz radnog direktorijuma. a završava znakom 1: štampaj d*1. Stvoreni proces može da preuzme pomenute argumente sistemske operacije i da ih koristi u svojoj aktivnosti. omogućavanje kombinovanja izvršavanja više (korisničkih) programa i 3. on koristi djelove komandi (njen operator i njene operande) kao argumente sistemskih operacija. Njegova upotreba je vezana. ZNAKOVNI KOMANDNI JEZICI Izgled. čiji prvi deo imena započinju znakom d. jednom komandom uništiti sve objektne datoteke iz radnog direktorijuma: uništi *. čiji prvi deo imena započinje znakom d. na primjer.txt označava sve tekst datoteke u radnom direktorijumu. Pri tome. njene operande) i preduzima zahtjevanu akciju. wild cards). Zahvaljujući tome. Interpreter znakovnog komandnog jezika ostvaruje prethodne ciljeve tako što sa standardnog ulaza prima niz znakova.obj označava sve objektne datoteke u radnom direktorijumu. moguće je. za imena datoteka i namjenjena je za skraćeno označavanje grupa datoteka. Prilikom preduzimanja zahtjevane akcije. prijee nego što ih iskoristi kao argumente neke sistemske operacije.Operativni sistemi ______________________________________________________________________________ koja precizno određuje i vrstu upravljanja i objekat upravljanja. interpreter znakovnog komandnog jezika se oslanja na sistemske operacije. omogućavanje izvršavanja pojedinih (korisničkih) programa. a zadatak interpretiranja komande je da pokrene proces. a završava cifrom 1. koje komandni jezik treba da ostvari. Ciljevi znakovnih komandnih jezika obuhvataju: 1. znak *. kao što je. u okviru čije aktivnosti usledi upravljanje. a d*1. 2. eventualno. Rezultat svoje akcije ovaj interpreter prikazuje na standardnom izlazu. shell) zavise od ciljeva. neophodno je pretraživanje direktorijuma i provjera imena _____________________________________________________________________________________________________________ 73 . Zahvaljujući magičnim znakovima. Interpreter znakovnog komandnog jezika obavlja obradu znakova komande. do izvršavanja pojedinih korisničkih programa dolazi tako što interpreter znakovnog komandnog jezika poziva sistemsku operaciju stvaranja procesa. način rada i mogućnosti interpretera znakovnog komandnog jezika (command language interpreter.

Za prethodni primjer ovakav tok bi izgledao: obrni < recnik. Preusmeravanje standardnog ulaza i izlaza predstavlja osnovu za kombinovanje izvršavanja više korisničkih programa.txt > sortirani_obrnuti_recnik.txt > obrnuti_recnik. Međutim. jednostavnije je napraviti program za obrtanje redosleda znakova u riječima (tako da prvi i poslednji znak zamijene svoja mjesta u riječi. Rezultat kompilacije se smjesta u datoteku program. za prikazivanje poruka o greškama.c.c > program.txt U ovom primjeru su u tok nadovezana tri procesa. kao podrazumijevajući standardni izlaz greške služi specijalna datoteka. 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. jer. komanda: kompiliraj < program. koristi odabrane datoteke.txt Umjesto preusmeravanja standardnog ulaza i standardnog izlaza. a eventualne poruke o greškama kompilacije se prikazuju na ekranu.bin. sve riječi.txt > rime. moguće je nadovezati standardni izlaz jednog procesa za standardni ulaz drugog procesa i tako obrazovati tok procesa (pipe).Operativni sistemi ______________________________________________________________________________ datoteka). a kao njen indeks otvorene datoteke služi vrijednost 2). uz standardni izlaz se uvodi i standardni izlaz greške.obj (u ovom primjeru ekran i dalje služi kao standardni izlaz greške).c. umjesto tastature i ekrana. pre svega. a kao njegov standardni izlaz datoteka program. Uobičajeno je da preusmeravanje standardnog ulaza najavljuje znak <. Tako. Pošto je standardni izlaz greške namjenjen. na primjer.obj saopštava interpreteru znakovnog komandnog jezika da stvori proces na osnovu izvršne datoteke kompiliraj. koja odgovara ekranu (ova datoteka se otvara za vrijeme stvaranja procesa. nalaze se jedna uz drugu. Nadovezivanje u tok se označava pomoću znaka |. koje se rimuju. I standardni izlaz greške se može preusmeriti na proizvoljnu datoteku. Izvršavanje prethodne komande omogućuje kompilaciju C programa. 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. Prvi je nastao na osnovu komande: _____________________________________________________________________________________________________________ 74 .txt sortiraj < obrnuti_recnik.obj.txt | sortiraj | obrni > rime. Zahvaljujući preusmeravanju. pozadinski proces ne ometa interaktivni rad korisnika. Umjeesto pravljenja posebnog programa za sortiranje riječi po kriteriju rimovanja. sadržanog u datoteci program. Nakon sortiranja riječi po ovom kriteriju. Ovo je važno za pozadinske procese. da bi se korisnik upozorio na greške u toku aktivnosti pozadinskog procesa. pri čemu kao standardni ulaz procesa sluzi datoteka program. koji nijesu u interakciji sa korisnikom. Važnost pomenutog kombinovanja se može pokazati na primjeru uređivanja (sortiranja) riječi iz nekog rečnika po kriteriju rimovanja. a da preusmeravanje standardnog izlaza (kao i standardnog izlaza greške) najavljuje znak >.txt obrni < sortirani_obrnuti_recnik. čiji sadržaj tada ukazuje na eventualne greške u toku aktivnosti pozadinskog procesa. Zahvaljujući obradi znakova komande.

prethodni tok bi izgledao: obrni | sortiraj | obrni Razmjena podataka između dva procesa. a drugi samo čita iz nje). se ostvaruje posredstvom privremene datoteke.netačno) i da tako omogući uslovno izvršavanje programa. Svaka komanda.tačno. i rezultat kompilacije smješta u datoteku program. koji obavlja kompilaciju programa.obj & omogućuje stvaranje pozadinskog procesa. a za drugog od njih standardni ulaz (prvi proces samo pi[e u ovu datoteku. interpreter znakovnog komandnog jezika dobije od stvorenog procesa. nego nastavlja interakciju sa korisnikom. sadržanog u datoteci program.txt drugi je nastao na osnovu komande sortiraj a treći je nastao na osnovu komande: obrni > rime. interpreter znakovnog komandnog jezika direktno (sam) obavlja. različito od 0 . ne čeka kraj njegove aktivnosti. kao povratnu informaciju. interpreter znakovnog komandnog jezika može da protumači kao logičku vrijednost (0 .Operativni sistemi ______________________________________________________________________________ obrni < recnik. Ovo stanje. na primjer. Komande. a po rimama sortirani rečnik prikazivao na ekranu. koje se često koriste (pa je važno da budu brzo obavljene).bin označava da do linkovanja (povezivanja) dolazi samo nakon uspješne kompilacije. koji su povezani u tok. interpreter znakovnog komandnog jezika stvara procese.c. komanda: kompiliraj < program. Pri tome su IF _____________________________________________________________________________________________________________ 75 . Zatim interpreter znakovnog komandnog jezika čeka na kraj aktivnosti poslednjeg od ovih procesa. U prethodnom primjeru znak & sa kraja komande je naveo interpreter znakovnog komandnog jezika na stvaranje pozadinskog procesa. koja predstavlja za prvog od ovih procesa standardni izlaz.obj THEN linkuj < program. Međutim. Na primjer. kada stvori proces i sačeka kraj njegove aktivnosti. upućena interpreteru znakovnog komandnog jezika. ne dovodi do stvaranja procesa.c > program. Prilikom obrazovanja toka procesa. komanda: IF kompiliraj < program. koji se povezuju u tok (pri tome on koristi istu privremenu datoteku kao standardni izlaz i ulaz za svaki od parova ovih procesa). Zato su pozadinski procesi u principu neinteraktivni. Pozadinski procesi se razlikuju od običnih (interaktivnih) procesa po tome što interpreter znakovnog komandnog jezika. završno stanje stvorenog procesa.txt Ako bi se riječi zadavale sa tastature.obj > program.c > program. koje se obično kodira cijelim brojem. Tako. nakon stvaranja pozadinskog procesa.obj (a eventualne greške u kompilaciji prikazuje na ekranu).

interpreter znakovnog komandnog jezika interpretira komandu iza rezervisane reči THEN i stvara proces. poređenje sadržaja datoteka. spasavanje (arhiviranje) i vraćanje (dearhiviranje) datoteka. sadržanih u njemu). Administratorske komande omogućuju pokretanje i zaustavljanje rada računara. formiranje skupa _____________________________________________________________________________________________________________ 76 . između ostalog. administratorske komande. U komande za upravljanje direktorijumima spadaju komande za stvaranje i uništenje direktorijuma. ali i druge mogućnosti. To dozvoljava pravljenje komandnih datoteka. i navođenje njihovih karakteristika). Korisničke komande. komande za izmjenu imena i ostalih atributa direktorijuma. razmjenu poruka između korisnika. Zahvaljujući tome. U suprotnom slučaju (ako je bilo grešaka u kompilaciji. upravljanje direktorijumima. 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. zaduženog za kompilaciju. ažuriranje podataka o korisnicima računara i njihovim pravima. jer se podrazumijeva). kao što su razni ulazni i izlazni uređaji. komanda za pregledanje sadržaja direktorijuma (imena datoteka i imena direktorijuma. za vreme čije aktivnosti uslijedi kompilacija programa. a njihov sadržaj preuzima i interpretira interpreter znakovnog komandnog jezika. upravljanje datotekama. pronalaženje izgubljenih blokova i njihovo uključivanje u evidenciju slobodnih blokova. sabijanje (compaction) slobodnog prostora na disku. Najgrublja podela komandi je na: 1. na osnovu koje interpreter znakovnog komandnog jezika stvori proces. sadržanog u datoteci program. konstantama. bilo veće od vrednosti 0). izlazom i slično). U ovom slučaju. korisničke komande i 2. omogućuju: 1. upravljanje procesima i 4. 2. stvoreni proces vraća interpreteru znakovnog komandnog jezika vrednost 0 kao svoje završno stanje. 3. Prva najavljuje komandu. Pored prethodno opisanog načina za uslovno izvršavanje programa. kao i ime svake izvršne datoteke) predstavlja ispravnu komandu znakovnog komandnog jezika. tipične za procedurne programske jezike (upravljanje promenljivim. odnosno komanda za kopiranje direktorijuma.Operativni sistemi ______________________________________________________________________________ i THEN rezervisane reči za interpreter znakovnog komandnog jezika. kopiranje datoteka i uništenje datoteka. čija aktivnost dovodi do linkovanja datoteke program. interpreteri znakovnih komandnih jezika podržavaju i ponavljanje izvršavanja programa. upravljanje vremenom. Iako broj i vrste ovakvih komandi nisu ograničene (jer zavise samo od kreativnosti i potreba korisnika). Ako kompilacija prođe bez grešaka. opisivanje konfiguracije računara (pravljenje spiska uređaja koji ulaze u njegov sastav. Standardne komande za upravljanje datotekama omogućuju izmjenu imena (kao i atributa) datoteke. interpreter znakovnog komandnog jezika ne interpretira komandu iza rezervisane reči THEN i ne stvara proces zadužen za linkovanje.obj sa potprogramima iz sistemske biblioteke (čije ime se ne navodi. komanda za proglašavanje direktorijuma radnim.c. One opisuju okolnosti pod kojima se izvršavaju korisnički programi. ime svake komandne datoteke (uostalom. generisanje izvještaja o korišćenju računara (o korišćenju procesorskog vremena ili o korišćenju prostora na disku). ulazom. ipak je moguće napraviti njihovu klasifikaciju i navesti neke neizbježne grupe komandi. pa je završno stanje procesa. Zato komandne datoteke imaju poseban tip (da bi ih interpreter znakovnog komandnog jezika mogao prepoznati).

ili broj pritisaka i vremenski razmak između njih) određuju pozivanu komandu. 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. koja sadrži grafičku predstavu komande. a da pri tome ne tjeraju korisnike da znaju napamet imena komandi. njeno ime. koja se nalazi u pomenutoj zoni ekrana. Oni omogućuju pokazivanje tačke ekrana. Zadatak interpretera grafičkog komandnog jezika je da na ispravan način (u skladu sa kontekstom) protumači korisničke akcije. iste akcije korisnika u raznim okolnostima imaju različito značenje. 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). na primjer. ako je izabrano ime datoteke. Naknadni pritisci na dirku (dužina pritiska. Umjesto toga. ili izborom njenog imena sa spiska imena komandi. ili ime datoteke. grafički komandni jezici uvode grafičku predstavu komandi (icon). dozvoljavajući korisnicima da pozovu komandu izborom njene grafičke predstave. ili spiskove sa imenima komandi (menu). Time se pokazuje da je izabrana grafička predstava komande. njeno ime. Prema tome. ili njenog imena sa spiska imena komandi. GRAFIČKI KOMANDNI JEZICI Interpreteri grafičkih komandnih jezika omogućuju pozivanje bilo koje od prethodnih komandi. Tako. Grafički komandni jezici dozvoljavaju i da se komanda automatski pokrene izborom nekog od prikazanih imena datoteka. ili imena datoteke (koja je podrazumijevajući operand komande) omogućuju pokazivački uređaji kao što je miš. tada pritisak na odgovarajuću dirku pokazivačkog uređaja menja boju pozadine pomenute zone ekrana. 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). ili ime datoteke. _____________________________________________________________________________________________________________ 77 . Izbor grafičke predstave komande. dva pritiska na dirku pokazivačkog uređaja sa dužim međusobnim vremenskim razmakom omogućuju izmjenu imena datoteke. U istoj situaciji. niti tjeraju korisnike da zadaju komande posredstvom tastature (uz obavezu strogog postovanja sintakse znakovnog komandnog jezika). Ako pokazana tačka pripada skupu tačaka zone ekrana.Operativni sistemi ______________________________________________________________________________ datoteka na disku i njegovo uključivanje u skup datoteka računara).

operativni sistemi za ugrađene (embedded) sisteme 3. Zato obično svi procesi dijele isti fizički adresni prostor (što je moguće. njihove brze i lake saradnje. ili čijim ponašanjem se upravlja. KLASIFIKACIJA OPERATIVNIH SISTEMA Jedan od mogućih kriterijuma za klasifikaciju operativnih sistema je vrsta računara ili uređaja kojim operativni sistem upravlja. Pri tome. Pri tome se nude blokirajuće i neblokirajuće sistemske operacije. da bi se izbegla (ili umanjila) eksterna fragmentacija. multiprocesorski operativni sistemi i 5. Zahvaljujući neblokirajućim sistemskim operacijama. mora se obezbijediti da aktivnost procesa bude završena do graničnog trenutka (deadline scheduling). a zahvaljujući vremenski ograničenim blokirajućim sistemskim operacijama. U sklopu toga.Operativni sistemi ______________________________________________________________________________ 5. pa nema mjesta sumnji u njihove namjere). što ovde ne predstavlja manu.tajmeri). zbog toga. jer ne postoji potreba za međusobnom zaštitom procesa. moguće je odreagovati na izostanak željenog događaja (odnosno. omogućava jednostavno uključivanje novih drajvera za specifične uređaje. operativni sistemi za inteligentne kartice (smart card) 4. mrežni operativni sistemi 5. Ovakvi operativni sistemi su. jer sve primjene realnog vremena ne zahtjevaju masovnu memoriju) obično podržava kontinuirane datoteke (zbog brzine pristupa podacima). na izostanak obavljanja pozvane sistemske operacije) u zadanom vremenskom intervalu. Zato se operativni sistemi realnog vremena obično koriste samo na programskom nivou. Podrazumijeva se da ovo sortiranje dovodi na prvo mjesto deskriptor procesa sa _____________________________________________________________________________________________________________ 78 . jer su unapred poznati svi zahtjevi primjene. moguće je vremenski preklopiti aktivnosti procesora i kontrolera. čija veličina je predefinisana. podređeni ostvarenju što veće brzine izvršavanja korisničkih programa. Sloj za upravljanje kontrolerima podržava tipične ulazne i izlazne uređaje i. ali i vremenski ograničene blokirajuće sistemske operacije. što se postiže sortiranjem deskriptora spremnih procesa po dužini preostalog vremena do graničnog trenutka (earliest dedline first). Sloj za upravljanje procesima je podređen potrebi osiguranja brzog stvaranja i uništenja procesa. posto imaju istog autora. kao i brzog preključivanja procesora sa procesa na proces. operativni sistemi realnog vremena 2. čije ponašanje se ili samo prati. njihov zadatak je samo da stvore okruženje za korisničke programe. pošto je to u nadležnosti korisničkih programa. Sloj za upravljanje procesorom mora da obezbijedi efikasno upravljanje vremenom (za šta se često koriste posebni satovi . ili njihovi autori pripadaju istom timu. distribuirani operativni sistemi. Sloj za upravljanje radnom memorijom obično podržava efikasno zauzimanje memorijskih zona (sa susednim lokacijama). jer nije neophodna direktna komunikacija operativnog sistema realnog vremena sa krajnjim korisnikom.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. Po tom kriteriju mogu se izdvojiti: 1. 6. uz to. Sloj za upravljanje datotekama (kada postoji. Za operativne sisteme realnog vremena je tipično da su (zajedno sa računarom) ugrađeni (embedded) u sistem.

Operativni sistemi ______________________________________________________________________________ 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
_____________________________________________________________________________________________________________

79

Operativni sistemi ______________________________________________________________________________ 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
_____________________________________________________________________________________________________________

80

Operativni sistemi ______________________________________________________________________________ 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
_____________________________________________________________________________________________________________

81

ili posle pružanja usluge. nakon svog ponovnog pokretanja. podatak o vrsti usluge koje pružaju). jer. Ovo se izbjegava tako što server obustavlja pružanje usluga klijentima. Zato poziv udaljene operacije ne može garantovati da će zahtjevana usluga biti pružena samo jednom (kao kod poziva lokalne operacije). Činjenica da se u okviru klijentovog potprograma javlja potreba za pronalaženjem servera. periodičnom provjerom stanja klijenata. za koje ustanovi da su doživeli otkaz (to klijenti sami mogu da jave serveru. ako je izgubljena poruka 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 druge dve su sistemske operacije prijema zahtjeva i slanja odgovora. Da bi server razlikovao retransmitovanu poruku od originalne. Serveru imena se obraćaju i klijenti. koja je već primljena). jer otkaz računara znači i kraj izvršavanja celog programa. Međutim. tada treba spriječiti da. zbog otkaza. se oslanjaju na sistemske operacije sloja za razmjenu poruka. Poziv udaljene operacije praktično dozvoljava da argumenti budu samo vrednosti. Sistemska operacija zahtjevanja usluge je namjenjena klijentu (poziva se iz njegovog potpograma). U opštem slučaju. koji pruža zahtjevanu uslugu. Prva od ovih operacija je sistemska operacija zahtjevanja usluge. Njemu se. binder). nema načina da se ustanovi da li je do otkaza doslo pre. javlja se i problem konverzije vrednosti (jer se. server ponovi pružanje već pružene usluge. ukazuje da u vreme pravljenja izvršnog oblika klijentovog programa nije poznato koji server će usluživati klijenta. na primjer. 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. a retransmisija poruke zahtjeva može navesti ponovo pokrenutog servera da jož jednom pruži već pruženu uslugu (jer je. po prijemu retransmitovane poruke zahtjeva. u ovom slučaju. koje opslužuje). zbog problema kopiranja pokazanih vrednosti sa klijentovog računara na računar servera i u obrnutom smeru. ili to server može sam da otkrije. odnosno pokazivači. a omogućuje slanje poruke zahtjeva i prijem poruke odgovora. bez pokušaja njegovog automatskog oporavka. na početku svoje aktivnosti. Otkaz servera (izazvan kvarom računara) je problematičan. u opštem slučaju. a ne i adrese. radi pronalaženja servera. njenom retransmisijom se stvara mogućnost da ona stigne do servera i da on pruži traženu uslugu. Na strani klijenta otkaz servera se odražava kao izostajanje poruke odgovora. koji zahtjeva uslugu. Otkaz klijenta znači da server uzaludno pruža zahtjevanu uslugu. predstava realnih brojeva razlikuje od računara do računara). server izgubio. može biti više servera iste vrste i svaki od njih može istom klijentu da pruži zatraženu uslugu. u toku. Na ovaj način se ostvaruje dinamičko linkovanje (dynamic binding) klijenta. Radi toga se uvodi poseban server imena (name server.Operativni sistemi ______________________________________________________________________________ poruka zahtjeva. RAZMJENA PORUKA Klijentovi i serverovi potprogrami. ako su ovi računari različiti. evidenciju o rednim brojevima poslednje primljenih poruka zahtjeva od klijenata). obraćaju svi serveri i ostavljaju podatke o sebi (kao sto je. Kod poziva lokalne operacije ovo se ne može desiti. Pored toga. pomoću kojih se ostvaruje zamisao poziva udaljene operacije. i servera. Ove tri sistemske operacije ostvaruju poseban protokol razmjene poruka (request _____________________________________________________________________________________________________________ 82 . na primjer. koji pruža zahtjevanu uslugu. a sistemska operacija slanja odgovora se poziva iz drugog serverovog potprograma).

na početku svoje aktivnosti. kao i jedinstven redni broj procesa (po kome se razlikuju procesi. jer su komunikacione linije pristupačne svim _____________________________________________________________________________________________________________ 83 . njen redni broj i slično). Pomenute tri sistemske operacije pozivaju (neblokirajuće) operacije gornjeg dela drajvera mrežnog kontrolera. retransmituju poruke. koji je prilagođen potrebama poziva udaljene operacije. ili poslati poruku potvrde. one potvrđuju prijem poruka. šalju upravljačke poruke. slanje odgovarajuće upravljačke poruke drugom klijentu). Sistemske operacije sloja za razmjenu poruka se brinu o baferima. od upravljačkog dijela poruke i 2. umjesto ovih rednih brojeva.Operativni sistemi ______________________________________________________________________________ reply protocol). adresu izvorišnog procesa (od koga poruka kreće. ova poruka se smješta u slobodan bafer. Na primjer. kojima se provjerava i potvrđuje aktivnost servera (čime se omogućuje otkrivanje njegovog otkaza) i slično. koje se razmjenjuju između procesa. Korespondenciju između imena i rednih brojeva uspostavlja već pomenuti server imena (ove podatke o sebi ostavljaju svi serveri. 2. koji pripadaju istom računaru). od sadržaja poruke. koristiti imena za označavanje i računara i procesa. nakon kojih je. U toku programiranja. a na osnovu rednog broja procesa se određuje proces. Ove tri sistemske operacije su zadužene za prenos poruka. radi fizičkog prenosa i prijema paketa (u donjem delu ovog drajvera se nalaze obrađivači prekida. poruka zahtjeva se odbacuje (uz. opis poruke (njenu vrstu. Upravljački deo poruke obuhvata: 1. a kome se. kasnije upućuje odgovor) i 3. jer je aktivan na usluživanju prethodno primljenog zahtjeva od jednog klijenta. prijema zahtjeva i slanja odgovora su blokirajuće. radi reagovanja na isticanje zadanih vremenskih intervala. čiji prijem nije potvrđen. ili do isticanja zadanog vremenskog perioda. zaduženi za registrovanje uspješnog slanja i uspješnog prijema paketa). Pored slanja i prijema poruka. kao i prilagođavanje brzine slanja paketa brzini kojom oni mogu biti primani (flow control). mrežni kontroler utvrđuje da li prihvata ili propušta poruku. namijenjenim za (privremeno) smještanje poruka. eventualno. kome proces pripada (a po kome se razlikuju svi računari). Sistemske operacije zahtjevanja usluge. a pristigla je poruka zahtjeva od drugog klijenta. potrebno ili retransmitovati poruku. a treća zaustavlja aktivnost servera do isporuke odgovora ili do isticanja zadanog vremenskog intervala. Na osnovu rednog broja računara. adresu odredišnog procesa (kome se poruka upućuje). potvrda prijema paketa i retransmisija paketa. obrate serveru imena). čiji prijem nije potvrđen. Druga zaustavlja aktivnost servera do stizanja zahtjeva. Ako ne postoji slobodan bafer. ako server nije pozvao sistemsku operaciju prijema zahtjeva. Prva zaustavlja aktivnost klijenta do stizanja odgovora. Adresa (odredišnog ili izvorišnog) procesa sadrži jedinstven redni broj računara. eventualno. na primjer. Svaka od poruka. sastavljanje paketa (pristiglih preko komunikacionih linija) u poruke. U nadležnosti ovih operacija je i rastavljanje poruka u pakete (koji se prenose preko komunikacionih linija). zgodnije je. kome se poruka isporučuje. Ove tri sistemske operacije koriste usluge i sloja za upravljanje preključivanjem i prekidima. PROBLEMI RAZMJENE PORUKA Slaba tačka razmjene poruka je sigurnost. kada se. da bi bila sačuvana i kasnije isporučena serveru. se sastoji: 1.

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). može da pronađe ključ za dekriptovanje njenog sadržaja). koji je poznat samo povjereniku i serveru. Pod pretpostavkom da je algoritam poznat svim procesima. Takođe. Pri tome se podrazumijeva da poverenik posjeduje unapred dogovoren poseban ključ kriptovanja za komunikaciju sa svakim procesom. a da interni ključ kriptovanja treba da znaju samo klijent i server. a on. u koga svi procesi imaju poverenje i koji se. a ugrađivanjem u sadržaj poruke kodova za otkrivanje i oporavak od izmjena sadržaja. koja sadrži ime klijenta i ime servera sa kojim klijent želi da ostvari sigurnu komunikaciju (sadržaj ove poruke je kriptovan ključem. Za komunikaciju sa poverenikom ovi procesi koriste javni ključ povjerenika. Digitalni potpis (digital signature) se šalje uz poruku. da bi klijent i server mogli da razmjenjuju poruke sa šifrovanim sadržajima. radi neopozivog pripisivanja poruke njenom pošiljaocu. Ako se sigurna razmjena poruka zasniva na asimetričnoj kriptografiji. Na ovaj način. je _____________________________________________________________________________________________________________ 84 . tako da je razumljiv samo za klijenta). mogu se otkriti retransmisije starih poruka. koju klijent i server imaju u toku međusobne komunikacije (saradnje). Znači. javlja se problem kako dostaviti interni ključ kriptovanja samo pomenutom klijentu i serveru. tada je uloga povjerenika da čuva javne ključeve i tako osigura međusobnu identifikaciju procesa. tako da je razumljiv samo za povjerenika. ili izmjenom sadržaja poruka. koji je poznat samo klijentu i povjereniku. Sigurnu komunikaciju klijenta i servera mogu ometati drugi procesi zlonamernim retransmisijama starih poruka. oni se obraćaju povjereniku. U slučaju simetrične kriptografije. Primalac poruke kriptuje (retransformise) digitalni potpis primjenom algoritma kriptovanja i javnog ključa (pretpostavka je da su algoritmi kriptovanja i dekriptovanja komutativni). mogu se otkriti.Operativni sistemi ______________________________________________________________________________ korisnicima. pa je svaki od njih u poziciji da preuzima tuđe poruke i da šalje poruke u tuđe ime. koji znaju samo povjerenik i klijent. klijent može da pošalje povjereniku poruku. a za komunikaciju sa njima povjerenik koristi njihove javne ključeve. Ugrađivanjem u sadržaj poruke njenog rednog broja. na osnovu adrese izvorišnog procesa iz upravljačkog dela ove poruke. naziva poverenik. oba moraju da znaju i algoritam kriptovanja i svoj interni ključ kriptovanja. Sprečavanje preuzimanja tuđih poruka se zasniva na kriptovanju (encryption) poruka. On sadrži referentni deo poruke. a sprečavanje slanja poruka u tuđe ime se zasniva na nedvosmislenoj međusobnoj identifikaciji procesa (authentication). U tome može da pomogne poseban server. Zahvaljujući tome. da bi dobili javni ključ svog komunikacionog partnera. Asimetrična kriptografija omogućuje i digitalno potpisivanje poruka. tako da je razumljiv samo za servera). koja sadrži interni ključ kriptovanja i ime klijenta (sadržaj ove poruke je kriptovan ključem. kada je potrebno ostvariti sigurnu komunikaciju između dva procesa. koji je dekriptovan (transformisan) primjenom algoritma dekriptovanja i privatnog ključa. RAZLIKA KLIJENATA I SERVERA Različita uloga. povjerenik šalje poruku i klijentu. koja sadrži interni ključ kriptovanja i ime servera (sadržaj ove poruke je kriptovan ključem. koji razmjenjuju poruke. Ako se rezultat kriptovanja digitalnog potpisa poklapa sa referentnim delom poruke. Poverenik tada odredi interni ključ kriptovanja i pošalje poruku serveru. zato. tada je poruka nedvosmisleno stigla od pošiljaoca. pa i ispraviti izmjene sadržaja poruka.

Distribuirani operativni sistem obrazuje (nudi) jedinstven skup datoteka. Serveri direktorijuma podržavaju hijerarhijsku organizaciju datoteka. dok se ne stigne do servera datoteka sa traženom datotekom. direktorijum) generišu različite dozvole.Operativni sistemi ______________________________________________________________________________ prirodna posledica njihove namjene. middleware). a broj ovih niti zavisi od broja postavljanih zahtjeva i menja se u vremenu. deskriptora direktorijuma). U direktorijumima (kojima rukuju serveri direktorijuma) uz imena datoteka (odnosno uz imena direktorijuma) ne stoje samo redni brojevi deskriptora datoteka. Dok je za klijenta prihvatljivo da njegova aktivnost bude strogo sekvencijalna. Serveri direktorijuma i datoteka mogu da ubrzaju pružanje usluga. Dozvola sadrži: 1. dok kontroler ne prenese blok sa sadržajem datoteke između masovne i radne memorije. direktorijumu). radi pronalaženja servera direktorijuma. pri čemu korisnik nije svjestan mjesta na kome se usluge pružaju. redni broj servera. Iz toga proizlaze i razlike u njihovoj internoj organizaciji. drugi proces može nastaviti aktivnost u istom sloju. on mora da poseduje odgovarajuću dozvolu. svaka od niti (u okviru istog servera) opslužuje različitog klijenta. nego jedinstven sistem. Ubrzanju pružanja usluga doprinosi i repliciranje datoteka (da bi one bile fizički bliže korisnicima). nego se za svaku datoteku (odnosno. nego na pravima pristupa. radi usluživanja jednog klijenta. direktorijuma) ne postoje navedena prava pristupa za pojedine grupe korisnika. redni broj deskriptora datoteke (odnosno. Ovakva sekvencijalnost nije prisutna kod tradicionalnih operativnih sistema. Da bi klijent dobio neku uslugu. koju prosleđuje serveru u okviru zahtjeva za uslugom. Ovakav distribuirani skup datoteka se oslanja na više servera direktorijuma i na više servera datoteka. koje omogućuju razne vrste pristupa datoteci (odnosno. FUNKCIJE DISTRIBUIRANOG OPERATIVNOG SISTEMA Mikrokerneli stvaraju osnovu za obrazovanje distribuiranog operativnog sistema (distributed operating system. Za distribuirani skup datoteka zaštita datoteka se česće zasniva na dozvolama (capability). zaduženog za pružanje usluga. Pri tome. čak i ako bi se njihovi zahtjevi odnosili na blokove datoteka. nego i redni brojevi servera datoteka (odnosno servera direktorijuma). To je najlakše ilustrovati na primjeru servera datoteka. koji pruža mnoštvo usluga. Postojanje više niti zahtjeva njihovu sinhronizaciju. U međuvremenu ne bi bilo usluživanja drugih klijenata. Strogo sekvencijalna aktivnost ovoga servera bi izazvala zaustavljanje njegove aktivnosti. Njegov zadatak je da objedini sve računare distribuiranog računarskog sistema. ako kopiju često korišćenih podataka čuvaju u radnoj memoriji. kojima pripadaju pomenuti deskriptori. za servera stroga sekvencijalnost njegove aktivnosti znači manju propusnost i sporije pružanje usluga. 2. Sve ove usluge se dobijaju na uniforman način. dok pristupaju globalnim (statičkim) promenljivim servera. od koga kreće pretraživanje direktorijuma. _____________________________________________________________________________________________________________ 85 . prisutne u baferima radne memorije. a serveri datoteka podržavaju pristup sadržaju (običnih) datoteka. kada razni korisnici istovremno mijenjaju razne kopije iste datoteke (jer se tada postavlja pitanje koja od izmjena je važeća). kao što je čitanje ili pisanje datoteke. U distribuiranom skupu datoteka pristup datoteci podrazumijeva konsultovanje servera imena. iako to stvara probleme. To znači da u okviru deskriptora datoteka (odnosno. Zato je za servere potrebno obezbijediti više niti. jer nakon zaustavljanja aktivnosti jednog procesa u sloju za upravljanje datotekama. tako da korisnik distribuiranog operativnog sistema ne vidi pojedine računare. sa uniformnim načinom označavanja datoteka i sa jedinstvenom hijerarhijskom organizacijom datoteka (koju na isti način vidi svaki korisnik). Pretraživanje direktorijuma može zahtjevati kontaktiranje različitih servera direktorijuma.

Distribuirani algoritmi sinhronizacije zahtjevaju sredstva za grupnu komunikaciju procesa (odnosno. Za distribuirane operativne sisteme nije samo bitno da omoguće efikasnu sinhronizaciju procesa. a pri tome ne nude prednosti. što je važno. a on dozvoljava uvek samo jednom procesu da pristupi datoteci. Ovakvo upravljanje se svodi na raspoređivanje procesa po procesorima. oznaku ispravnosti dozvole. koji ih zaposljavaju). sredstva za efikasan način da jedan proces pošalje poruke svim ostalim procesima iz grupe procesa. aktivnih na raznim procesorima. raspoređivati na isti procesor. Tako. koje imaju svojstvo da se obave u cjelosti ili nikako. Zadatak upravljanja komplikuju razlike između računara. izmjenom oznake vrste usluge prepraviti dozvolu. Prije pružanja usluge. tako da nije moguće. stvaralac datoteke. Sem toga. Pored veće razmjene poruka. Pri tome. Upravljanje komplikuje i zahtjev za omogućavanje migracije procesa sa računara na računar (da bi se prezaposlen računar rasteretio. koja uključuje i uslugu stvaranja drugih. 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. Kada želi da poništi određenu dozvolu. Sadržaj dozvole je zaštićen kriptovanjem. server samo proglasi njenu oznaku ispravnosti nevažećom. koji obezbijeđuje da se obave ili sve operacije iz nekog niza pojedinačnih operacija. nego i da podrže poseban oblik sinhronizacije procesa. koji tijesno međusobno sarađuju. ako je potrebno. a ne na osnovu njihovih unapred uvedenih (numeričih) oznaka. važno je voditi računa o saradnji procesa i procese. svi procesi traže od koordinatora dozvolu za pristupe. a koordinator donosi odluke o njihovoj sinhronizaciji. Upravljanje je olakšano. jer grupišu korisnike po kriteriju posedovanja dozvole određene vrste. niti njihovo označavanje. Ovakav niz operacija se naziva transakcija. da ustanovi da li je ispravna i da li se njena oznaka vrste usluge podudara sa zatraženom uslugom. za distribuirani operativni sistem je bitno da obezbijedi automatsko upravljanje svim računarima (procesorima) distribuiranog računarskog sistema. tako da je njihov razvoj više od principijelnog. Saradnja procesa. za šta su potrebni posebni serveri procesa. se nazivaju _____________________________________________________________________________________________________________ 86 . Dozvole dijeli server (na zahtjev klijenata). zatheva njihovu sinhronizaciju. nego od praktičnog značaja. radi ostvarenja njihovog najboljeg iskorišćenja. distribuirani algoritmi sinhronizacije su komplikovaniji od centralizovanih algoritama. Prednost zasnivanja zaštite datoteka na dozvolama umjesto na pravima pristupa je u tome da prvi pristup ne zahtjeva razlikovanje korisnika. po njenom stvaranju automatski dobije dozvolu za sve vrste usluga. server provjerava dozvolu. Pored obrazovanja distribuiranog skupa datoteka. Za razliku od ovakvog centralizovanog algoritma sinhronizacije. zainteresovani za sinhronizaciju. Njemu se obraćaju svi procesi. za raspoloživu radnu memoriju i slično).Operativni sistemi ______________________________________________________________________________ 3. ili ni jedna od njih. ili radi ostvarenja najkraćeg vremena odziva (najbržeg usluživanja korisnika). a transakcije. a nezaposlen zaposlio). Na sličan način se može ostvariti i uslovna sinhronizacija. na primjer. koji se zasniva na uvođenju koordinatora. koji se zasnivaju na međusobnom dogovaranju procesa. zainteresovanih za sinhronizaciju. i da od njih primi odgovore). najjednostavniji način za ostvarenje sinhronizacije se zasniva na uvođenju procesa koordinatora. oznaku vrste usluge i 4. restriktivnijih dozvola). a čuvaju ih (i po potrebi prosleđuju jedan drugom) klijenti (pri tome se podrazumijeva da klijent. ako su unapred poznate karakteristike opterećenja računara (vrsta i broj procesa. jer upravljanje jedinstvenim i neponovljivim oznakama korisnika u distribuiranom računarskom sistemu nije jednostavno. Kod raspoređivanja procesa po procesorima. ostvariti međusobnu isključivost procesa u pristupu istoj datoteci. postoje i distribuirani algoritmi sinhronizacije. dozvole omogućuju veću selektivnost. zainteresovanih za sinhronizaciju. što se ostvaruje razmjenom poruka.

Ovakav multiračunarski sistem. s ciljem objedinjavanja njihovih skupova datoteka u jedinstven skup datoteka. Na taj način je moguće od više jeftinih i malih računara napraviti multiračunarski sistem. Pored integrisanja pojedinačnih računara u multiračunarski sistem. a nudi i prilagodljivost zahtjevima korisnika. Transfer se mora obaviti tako. nudi i veću pouzdanost (jer kvar pojedinačnog računara nije fatalan za ceo sistem). 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). Ovakva komunikacija zahtjeva usaglašenost svih računara (koje objedinjuje mrežni operativni sistem) u pogledu formata i značenja poruka. i veću sigurnost (jer korisnici mogu da čuvaju poverljive podatke na svom računaru. jednom napravljena izmjena ne može izgubiti). Slabe tačke distribuiranog operativnog sistema su nesigurnost komunikacionih linija i teško ostvarenje njegove ukupne funkcionalnosti. otvara mogućnost pojave mrtve petlje. algoritmi za izbegavanje pojave mrtve petlje. Zato.5 MREŽNI OPERATIVNI SISTEMI Mrežni operativni sistemi se ne zasnivaju na mikrokernelima. u uslovima distribuiranog računarskog sistema. uz to. To je neophodna (a često i jedina) dodirna tačka računara. koji se u pojedinim osobinama samo približavaju distribuiranim operativnim sistemima. koji je jeftiniji. Pri tome su korisnici svjesni prisustva i uloge pojedinih računara. Pri tome. pa. željenu raspoloživost i predvidivost odziva. kao i mogućnost proširenja (jer je moguće naknadno dodavanje računara u sistem). obuhvaćenih mrežnim operativnim sistemom. _____________________________________________________________________________________________________________ 87 . za koje je neophodno da obrazuju atomsku transakciju. koga fizički štite i čije korišćenje mogu da kontrolišu). koje objedinjuje mrežni operativni sistem. preostaje da se spreči njena pojava (sprečavanjem ispunjenja uslova. da bi obavio transfer iznosa sa jednog na drugi račun. Pokušaj pristupa datoteci iz nekog od uključenih direktorijuma automatski dovodi do komunikacije klijenta i odgovarajućeg servera. 5. nego nastaju dogradnjom postojećih (različitih) operativnih sistema. Distribuirani operativni sistem je zamišljen tako da integrise mnoštvo računara u moćan multiračunarski sistem. distribuirani operativni sistem omogućuje i deljenje skupih resursa ovakvog multiračunarskog sistema između više korisnika.Operativni sistemi ______________________________________________________________________________ atomske transakcije (atomic transaction). Znači. proces klijent (koji u ime korisnika obavlja ovo prebacivanje) kontaktira dva servera (koji reprezentuju dve banke). ili posle transakcije. pri čemu razni klijenti imaju različit pogled na ukupan skup datoteka mrežnog operativnog sistema. aktivnih na raznim procesorima. Zato se u praksi sreću mrežni operativni sistemi. ali i da njihovi rezultati budu trajni (da se. čak. Primjer niza operacija. Mrežni operativni sistemi objedinjuju skupove datoteka raznih računara. da drugi klijenti mogu videti oba računa samo u stanju ili pre. Pri tome. a moćniji od jednog velikog i skupog računara. Ovo uključivanje se ostvaruje na nivou direktorijuma. pa o tome vode računa u toku svog rada. jer direktorijume servera mogu da uključuju u proizvoljno mjesto lokalne hijerarhijske organizacije datoteka. kada nije prihvatljiv pristup ignorisanja problema 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. Aktivnost (saradnja) procesa. za atomske transakcije je neophodno da budu međusobno isključive (ako pristupaju istim podacima). neophodnih za pojavu mrtve petlje). u uslovima distribuiranog računarskog sistema. je prebacivanje nekog iznosa sa računa jedne banke na račun druge banke.

1 i Windows NT 3. Windows 2000 je značajno poboljšan u odnosu na NT: . visoke performanse _____________________________________________________________________________________________________________ 88 .bitni operativni sistem. Prve verzije NT-a su bile Windows NT 3.bolja podrška za mreže i prenosive računare (laptop) . 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. 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.podrška za PnP uređaje (Plug and Play) . pouzdanost 3.značajno poboljšan grafički interfejs . 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. 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.1 Advanced Server (32.0 je preuzeo korisnički interfejs Windows-a 95 i ugrađen internet pretraživač i web-server softver. XP koristi klijent-server arhitekturu kojom postiže kompatibilnost sa aplikacijama namijenjenim drugim operativnim sistemima.bolju podršku za mreže . napisan u asemblerskom jeziku.podrška za nove 64-bitne procesore Intel Ithanium i AMD Athlon.Operativni sistemi ______________________________________________________________________________ DODATAK 1: Windows XP Sredinom osamdesetih Microsoft i IBM su odlučili da zajednički razviju OS/2-operativni sistem namijenjen procesorima Intel 80286. Dizajn XP-a Microsoft-ovi dizajnerski ciljevi vezani za Windows XP su: 1. Prednosti Windows-a XP u odnosu na prethodnike su: . Windows NT verzija 4.1 je u to vrijeme bio 16 .podrška za više procesora i veću količinu memorije U Oktobru 2001. kompatibilnost sa Windows i POSIX aplikacijama 4. Windows NT 3.dodat je Active Directory .bitne verzije). bezbjednost 2.veću pouzdanost i bezbjednost . Microsoft je 1988 godine napravio NT (New Technology) «portabilni» operativni sistem namijenjen i ostalim mikroprocesorskim arhitekturama. 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. godine Microsoft je plasirao na tržište Windows XP kao zamjenu za Windows 95/98 i nadogradnju za Windows 2000. 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 64bitnim procesora.

Pouzdanost Windows XP po svojoj pouzdanosti nadmašuje do sada najpouzdaniji Microsoft-ov operativni sistem Windows 2000. Niti u podsistemima Windows-a XP mogu biti zamijenjene nitima višeg prioriteta a i sistem reguje brzo na spoljašnje događaje. 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. što se postiglo različitim tehnikama. Kompatibilnost Windows-a XP je znatno proširena – uključuje mnoge aplikacije koje rade pod Windows-om 95/98. Slično 64-bitna verzija Windows-a prevodi 32-bitne API pozive u 64-bitne. sofisticirano keširanje podataka za sistem datoteka. Kompatibilnost aplikacija je veoma teško postići zato što svaka aplikacija provjerava da li je pokrenuta na predviđenom operativnom sistemu. XP podržava 16-bitne aplikacije tako što se 16-bitni API pozivi prevode u 32-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. Proširivost Proširivost podrazumijeva mogućnost operativnog sistena da «drži korak» sa novim dostignućima u računarskoj tehnologiji. proširivost 6. Kompatibilnost sa Windows i POSIX aplikacijama Windows 2000 je bio prvenstveno fokusiran na kompatibilnost sa poslovnim aplikacijama. XP je dizajniran za simetrični višeprocesorski rad: na višeprocersorskom sistemu više niti se može izvršavati u isto vrijeme. regionalna podrška Bezbjednost XP je najbezbjedniji Microsoftov operativni sistem.Operativni sistemi ______________________________________________________________________________ 5. brojnim testiranjima opterećenih sistema i automatskoj detekciji grešaka u drajverima. Windows XP posjeduje «sloj kompatibilnosti» koji se nalazi između aplikacije i Win32 programskog interfejsa aplikacije (API). prebacivanje grafike u kernel. Pouzdanost je poboljšana XP-ovim novim grafičkim korisničkim interfejsom čije su glavne prednosti bolji vizuelni dizajn. bilo kućnog. 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. 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. Poboljšanje performansi je postignuto i smanjenjem broja linija programskog koda kod nekih kritićnih funkcija korišćenjem «pametnijih» algoritama. prenosivost – nezavisnost od hardvera 7. optimizovani mrežni protokol. Najveći dio XP-ove pouzdanosti duguje se detaljnoj provjeri izvornog koda . Neke od tih tehnika su asinhroni I/O (ulaz-izlaz). _____________________________________________________________________________________________________________ 89 . servera ili višeprocesorskog i višeprogramskog okruženja. intuitivnost uz prostije menije i «lakoća otkrivanja» načina za izvršavanje pojedinih zadataka.

koji sardži rutine za formate datuma. Regionalna podrška Windows XP obezbjeđuje podršku za različite lokalizme kroz programski interfejs aplikacije (API) nazvan NLS (National Language Support). izvršni dio i drajveri uređaja. HAL komunicira sa hardverom direktno.podsistemi okruženja koji emuliraju različite operativne sisteme . 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). Među njima su podsistemi okruženja koji emuliraju različite operativne sisteme. odvajajući odstatak XP-a od razlika u hardveru između platformi na kojima se izvršava. Glavni slojevi su HAL. ranije verzije Windows-a i POSIX rade u XP-u u odgovarajućem okruženju. Arhitektura XP-a Arhitektura Windows-a XP je slojeviti sistem modula (slika 1). vremena i valuta u skladu sa različitim nacionalnim običajima. 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). Tu je još i skup podsistema i servisa koji se izvršavaju u korisničkom režimu. Kernel i izvršni dio i svi rade u zaštićenom režimu.Operativni sistemi ______________________________________________________________________________ Na vrhu izvršnog dijela nekoliko serverskih podsistema se izvršava u korisničkom režimu. Zbog ovakve modularne strukture mogu se dodati novi podsistemi okruženja bez uticaja na izvršni dio. I/O uređaja i mrežnih uređaja mogu priključiti dok sistem radi. _____________________________________________________________________________________________________________ 90 .sigurnosni podsistemi. Glavna prednost ovakve arhitekture je u jednostavnosti veza između modula. Podsistemi korisničkog režima se dijele u dvije grupe: . Windows XP koristi samoučitavajuće drajvere u I/O sistemu tako da se novi sistemi datoteka. • Sloj abstrakcije hardvera (HAL) HAL omogućava da različiti računari koriste Windows XP professional. tj. XP podržava ANSI karaktere konvertujući ih u UNICODE prije manipulacije sa njima (8 – 16 bitna konverzija). Najveći dio programskog koda za XP je napisan u C i C++ programskom jeziku. slika 1. Jedna od važnih prednosti takvog pristupa je potreba za samo jednim drajverom za svaki uređaj. On takođe generiše interfejs virtuelne mašine koji koriste dispečer kernela. UNICODE je prirodni kod Windows-a XP. Zbog toga programi napisani za DOS. Portabilnost Operativni sistem je portabilan (prenosiv) ako se može prebaciti sa jedne hardverske arhitekture na drugu sa relativno malim izmjenama.

Operativni sistemi ______________________________________________________________________________ Slika 1 • Kernel (Jezgro) Kernel je centralni menadžer. transition state (stanje prelaska) i termination (terminacija). Šest mogućih stanja niti su: ready (spremno). stand-by. Niti i raspoređivanje Windows XP koristi koncepte procesa i niti za izvršni kod. softverski interapti (prekidi). dio koji u svakom trenutku zna koji se procesi izvršavaju u sistemu. Kernel izvršava zadatke korišćenjem seta kernelskih objekata Kernel dispečer Zadaci kernel dispečera su raspoređivanje niti. Objekat je primjer tipa objekta. koji dio memorije zauzimaju. _____________________________________________________________________________________________________________ 91 . Tip objekta je sistemski definisana vrsta podatka koja ima set osobina (vrijednost podataka) i set metoda (npr. uključujući aktuelni portret i informaciju o iskorišćenosti procesora. implementacija sinhronizacionih primitiva. waiting (čeka). koji im je prioritet i na šta čekaju ukoliko čekaju i on je objektno orijentisan.executing (izvršava se). Svaki proces ima adresni prostor u virtuelnoj memoriji i informaciju koju koristi da inicijalizuje niti i ima jednu ili više niti. upravljanje vremenom. funkcije ili operacije). Svaka nit ima sopstveno stanje u rasporedu.

Pomoću prioriteta dispečer određuje redosled izvršavanja niti. greške pri učitavanju strane. 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. nit se terminiše. Objekt dispečer koristi 32-bitnu šemu prioriteta. _____________________________________________________________________________________________________________ 92 . Ona se izvršava dok se ne pojavi nit višeg prioriteta. cjelobrojno (integer) prekoračenje. Nivoi Windows XP interapta su prikazani u tabeli (slika 2). procesor je «nezaposlen».Operativni sistemi ______________________________________________________________________________ Nit najvišeg prioriteta se prebacuje u stand-by stanje tj. Prioritet niti su podijenjeni u dvije klase: . privilegovane instrukcije. Izuzeci i interapti Interapt (prekid) je u stvari zahtjev procesora za pažnju. Samo korišćenje interapt objekta olakšava pridruživanje rutine interaptu bez potrebe za direktnim pristupom hardweru. Kernel koristi 8. U XP-u postoji strategija da se obezbijedi dobar odziv nitima povezanim sa I/O uređajima npr. Windows XP definiše nekoliko izuzetaka nezavisnih od arhitekture: kršenje pristupa memoriji.promjenljivu klasu . ta nit se sledeća izvršava. Kernel koristi tabelu raspoređivanje interapta da poveže svaki nivo interapta sa rutinom. Ako se opisana greška desi u režimu kernela operativni sistem zaustavlja rad svih aplikacija i prikazuje «plavi ekran». 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. tj. a ostala 24 su rezervisana za hardverske interapte kroz HAL. njen kvantum istekne ili je blokira objekt dispečer. Izuzeci se mogu dogoditi u korisničkom ili kernel – modu.klasu u realnom vremenu Prioritet niti promjenljive klase se može mijenjati: povećavati i smanjivati. dijeljenje sa nulom kod operacije sa pomičnim zarezom. prekoračenje ili potkoračenje (suviše mali rezultat) kod operacija sa pomičnim zarezom. Ukoliko dispečer ne pronađe nit koja je spremna za izvršenje izvršava posebnu nit koja se zove idle. greške kod razvrstavanja podataka. Jedan od najčešćih je takozvano «otimanje memorije» (Memory Acess Violation). nedozvoljenje instrukcije. nit povezana sa aktivnim grafičkim korisničkim interfejsom (GUI) dobija najviši prioritet da bi se poboljšalo vrijeme odziva. Sam interapt je predstavljen objektom koji sadrži sve informacije potrebne za manipulaciju. prekoračenje kvote datoteke za straničenje itd. Postoje 32 nivoa interapt zahtjeva u Windows XP-u.

_____________________________________________________________________________________________________________ 93 . Komponente putanje se odvajaju kosom crtom ulijevo (\).pravljenjem jedne tačke za komunikaciju između programa i perifernih uređaja (drugog programa. diskovima dok privremena figurišu samo za vrijeme dok proces pristupa objektu. open. Ona locira npr. Iz ove rečenice slijedi da je prva prednost objektno orijentisanih operativnih sistema olakšavanje rada programerima. identifikacija korisnika objekata i odlučivanje o pravima pristupa istim. 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. brisati. serijski port. U većini drugim operativnih sistema npr. Druga je bezbjednost . rastaviti i sigurnost). close. Poslije svakog novog podizanja sistema namespace se iznova definiše iz informacija o konfiguraciji koje se nalaze u sistemskom registry-ju. proces. Ukoliko je prethodni korak uspješan polja fajl objekta se ispunjavaju da bi se opisao fajl. fajl objekat i inicira i otvara ili kreira I/O operaciju na sistemu datoteka. diskovi). delete. I/O uređaja) olakšava se praćenje i kontrola pristupa programa objektima i određivanje prava pristupa tj. parse i security (kreirati. Samim objektima se upravlja korišćenjem seta funkcija: create. zatvoriti. Ime objekta može biti stalno ili privremeno. Ova procedura se koristi nad manjim brojem objekata koji su dio Windows-ovog GUI. nit itd. posao menadžera objekata je praćenje objekta u sistemu. NTFS). U njemu je sve implementirano kao objekat: datoteka. datoteke. pitati za ime. Menadžer objekata stvara interni apstraktni «prostor za imena» (namespace) u Windows-u XP. Querry name funkcija koristi kada ima «upit» na objekat ali joj treba ime tog objekta. konfiguracionog menadžera (Registry) i objekata uređaja koji predstavljaju sisteme datoteka ( particije. Definisanjem tih elemenata kao objekata postiže se jednobrazan način pristupanja svim objektima. querry name. Stalna imena se dodeljuju npr. Parse koristi menadžer da traži objekat poznatog imena. Imena objekata su struktuirana kao putanje do fajla u DOS-u i UNIX-u. zauzimanje serijskog porta i komunikacija sa njima zahtijeva sasvim drugačiji kod od otvaranja datoteke i njenog čitanja. otvoriti.Operativni sistemi ______________________________________________________________________________ Slika 2 Menadžer objekata Windows XP je objektno orijentisan operativni sistem.

a -drugim dodeljuje tom vitruelnom stvarni memorijski prostor u datotekama za straničenje. listu prava pristupa tj. Kod 32-bitnih procesora svaki proces ima 4GB virtuelnog adresnog prostora.Operativni sistemi ______________________________________________________________________________ Security se poziva za izvršavanje sigurnosnih provjera za sve operacije nad objektima.PDE (page directory entries) veličine po 4 bajta.). Kada proces logovanja autentifikuje korisnika (administrator.. Menadžer virtuelne memorije dodeljuje memoriju procesu u 2 koraka: -prvim reguliše dio virtuelnog adresnog prostora. Prostor sesije se koristi za dijeljenje Win32k i ostalih specifičnih drajvera između procesa. Gornja 2GB su skoro ista za sve procese i koristi ih Windows XP u režimu kernela. VM menadžer snima po potrebi na disk pojedine tabele. Oznaka pristupa ima polje koje kontroliše izmjenu pristupa. Ova struktura ilustrovana je na slici 3. kada proces otvara ili zatvara objekat. oznaka pristupa se «zakači» za proces USER. Svaki PDE upućuje na tabelu za stranićenje koja sardži takođe 1024 unosa PTE (page table entries). određuje servise i objekte kojima može pristupiti korisnik. dodjeljivanjem fizičke memorije i straničenjem. Za 32-bitne procesore svaki proces ima direktorijum za straničenje koji sadrži 1024 unosa . Ukupna veličina svih tabela za straničenje po jednom procesu je 4 MB. Oblasti u kernel režimu koje nijesu iste za sve procese su mapa tabele za straničenje. 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. i sadrži privilegije. Veličina stranice je 4KB za 32-bitne i 8KB za 64-bitne procesore. Svaki PTE pokazuje na okvir (frame) stranice veličine 4KB u fizičkoj memoriji. power user. npr. U hiperprostoru se nalazi set informacija o tekućem procesu. _____________________________________________________________________________________________________________ 94 . veličine 4 bajta. Menadžer virtuelne memorije Menadžer virtuelne memorije (VM) je izvršna komponenta koja upravlja virtuelnim adresnim prostorom. guest. hiperprostor i prostor sesije. Donja 2GB adresnog prostora su specifična za svaki proces i mogu im pristupati niti i iz korisničkog i iz kenelskog režima. SQL baze podataka. koje označava korisničko ime. Neke konfiguracije XP-a rezervišu samo 1GB za operativni sistem. Kada prestane potreba za pristupom objektu poziva se rutina za zatvaranje objekta što ne znači i brisanje objekta iz radne memorije. To je povoljno za velike aplikacije kao npr. Njegovo brisanje se dešava tek kad kod svih komponenti sistema prestane potreba za objektom – i iz korisničkog moda i od sistemskih komponenti.. Sama oznaka koja kontroliše pristup se pridružuje niti koja pristupa objektu.

atribute keširanja. ostalih 9 bita određuju da li je stranica pristupano ili upisano na nju. slobodna.Operativni sistemi ______________________________________________________________________________ Slika 3 32-bitna adresa virtuelne memorije se dijeli na tri dijela – slika 4. PTE određuje okvir stranice u fizičkoj memoriji. Prema tome tih 12 bita se koriste za opis stanja stranice z 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). 4KB tj 32000 bita su nule). pripravna (stand-by). Jedinica za upravljanje memorijom (MMU – memory management unit) koristi sledećih 10 bita virtuelne adrese za selekciju unosa u tabelu za straničenje (PTE). Slika 4. Modifikovana stranica je upisana od strane aktivnog procesa i mora biti snimljena na disk prije nego se dodijeli drugom procesu. način pristupa i validnost PTE. Ova adresa selektuje jedan unos u direktorijumu za straničenje (PDE) koji sadrže fizički okvir stranice tabele za straničenje. 3 bita su rezervisana za operativni sistem. modifikovana. 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. u kvaru (bad) ili u prelasku (in transition). nulovana (svih npr. Slobodna stranica je stranica za koju ne postoji upit u PTE. Validna stranica je stranica u upotrebi od strane aktivnog procesa. Stranica u kvaru (bad page) je neupotrebljiva zbog hardverske greške. Prvih 10 bita se koriste kao indeks u direktrijumu za straničenje. _____________________________________________________________________________________________________________ 95 .

20 bita za ostatak datoteke za straničenje. XP nadgleda greške na stranicama za svaki proces i srazmjerno podešava broj dodijeljenih stranica procesu. 4 bita za selekciju datoteke za straničenje i 3 bita za opis stanja stranice. po jedan unos za svaku stranicu memorije u sistemu. Na slici 5. Menadžer procesa takođe dodeljuje asinhrone pozive procedura APC nitima. VM menadžer zamjenjuje i rasporežuje stranke dodijeljene procesu zavisno od njihove starosti. 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). Pozivanje lokalne procedure . Windows XP koristi sistem prva unutra. terminaciju niti i procesa. Menadžer procesa Menadžer procesa u Windows XP-u obezbjeđuje usluge kreiranja. Tim predviđanjem koja stranica će se tražiti kao sljedeća smanjuje se rizik od grešaka na stranicama. Statistika pokazuje da kada nit ili proces koriste jednu stranicu. Menadžer drži popis svih stranica fizičke memorije u bazi podataka o okvirima stranica (page-frame database). «Starost» stranice se određuje iz broja ciklusa raspoređivanja (premještanja) bez PTE. PTE sadrži 5 bita za zaštitu stranice. FIFO) za zamjenu stranica kod procesa koji koriste više od radnog minimuma koji iznosi 50 stranica. U task menadžeru to je broj povlačenja podataka sa diska za potrebe nekog procesa zato što ih nije bilo u radnoj memoriji. završavanja I/O. vrlo vjerovatno da će traćiti i susjedne stranice u bliskoj budućnosti. brisanja i korišćenja procesa. APC sistem koristi za inicijalizaciju izvršavanja niti. Slika 5.prva napolje (first in-first out. niti i zadataka. 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. Koriste se kod velikih sistema za skladištenje podataka.Operativni sistemi ______________________________________________________________________________ Stranica u prelasku je stranica «na putu» sa diska u okvir stranice koji joj je dodijenjen u fizičkoj memoriji. 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.LPC _____________________________________________________________________________________________________________ 96 . prikazana je struktura PTE datoteke za straničenje. To svojstvo korist VM menadžer. 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.

Mini port drajver se koristi za specifične funkcije uređaja (npr. Kako se stek izgrađuje različiti drajveri imaju mogućnost da postanu dio steka kao filter drajveri. Poruke sadrže pkazivač na objekat dijeljena memorija i informaciju o veličini. • treća tehnika koristi programski interfejs aplikacije (API) koji upisuje ili čita direktno u adresni prostor procesa. Drajveri uređaja u Windows XP-u su napisani po WDM (Windows Driver Model) specifikaciji koja propisuje zahtjeve kao npr. Zbog strogih zahtjeva WDM čini se da je pisanje drajvera po toj specifikaciji prilično veliki posao. Poruke se kopiraju iz jednog procesa u drugi. Oni sami imaju mogućnost da ispitaju i modifikuju svaku I/O operaciju (mauntovanje. tačna logika za otkazivanje / deinstalaciju. antivirus aplikacije koriste filter drajvere za detekciju virusa. Za nju je potrebno kreirati objekat.Operativni sistemi ______________________________________________________________________________ Windows XP je organizovan po modelu klijent-server. Na sreću to ne važi zahvaljujući modelu port/miniport.jedan za poruke od klijenata ka severu . Obrada IRP-a se završava kada dođe na zadnjem drajveru u steku. Pošiljalac smiješta poruku u dijeljenu memoriju i ona je odmah dostupna primaocu. particionisanje). Menadžer keša _____________________________________________________________________________________________________________ 97 . Operativni sistem koristi LPC za proslijeđivanje zahtjeva i rezultata između klijentskih u serverskih procesa u jednom sistemu. Drajveri uređaja su grupisani u stekove (stack – zbog načina na koji se dodaju za svaki uređaj pojedinačno).drugi za poruke od servera ka klijentu Postoje tri tehnike za prenos poruka: • prva tehnika je pogodna za manje poruke – do nekoliko stotina bajta. Ovaj modul vodi računa o tome koji drajveri uređaja. Plug and Play. Slični uređaji (audio. filter drajveri i sistemi datoteka su učitani i takođe upravlja baferima za I/O zahtjeve. I/O Menadžer I/O menadžer je zadužen za sisteme datoteka. 10-kanalni ekvilajzer u slučaju zvučne kartice).dijeljenu memoriju (shared memory). npr. kontroliše keš menadžer koji upravlja keširanjem čitavog I/O sistema. drajvere uređaja i mrežne drajvere. SCSI i eternet kontroleri) dijele prost drajver koji se zove drajver porta i obezbjeđuje neke osnovne funkcije npr. • druga tehnika je za veće poruke.Koordiniran je sa VM menadžerom. I/O Menadžer konvertuje zahtjeve koje prima u standardnu formu nazvanu I/O paket zahtjeva (I/O request packet – IRP). Da bi klijent i server (aplikacija i podsistem) mogli da komuniciraju stvara se kanal za komunikaciju koji se sastoji od para portova za komunikaciju: . Podsistemi oktuženja su serveri koji zamjenjuju osobine pojedinih operativnih sistema. zatim prosljeđuje IRP prvom drajver u steku. port se koristi kao prelazno skladište. Model drajverskog steka je veoma fleksibilan. LPC je mehanizam za prenos poruka. jačina zvuka.

Za svaku otvorenu datoteku keš. fajl od 2 MB ima VACB indeksni niz od 8 unosa. 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. 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. _____________________________________________________________________________________________________________ 98 .Operativni sistemi ______________________________________________________________________________ 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).su grafički prikazane prethodno opisane operacije. Na slici 5. U mnogim operativnim sistemima to je posao sistema datoteka. Podaci koji su sada u kešu kopiraju se u bafer datoteke potražioca.menadžer obezbjeđuje poseban VACB indeksni niz koji opisuje keširanje za čitav fajl. koja zaobilazi menadžer keša i učitava podatke iz fajla direktno na stranici dodijeljenu menadžeru keša. Ukoliko nema tog polja menadžer keša mu dodeljuje blok i premješta traženo polje (view) u dodijeljeni mu blok. Keš je podijeljen u blokove od po 256 KB i svaki blok posjeduje oblast u memoriji koja se naziva VIEW datoteke (vidno polje). I/O menadžer šalje još jedan zahtjev steku ovaj put za operaciju straničenja. 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). VM Menadžer može podijeliti najviše polovinu – 1 GB za sistemski keš. 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. Posljednji korak je kopiranje podatka iz bloka u bafer podatke koja ih je tražila. Ovaj niz ima po jedan unos za svakih 256 KB fajla tako da npr. 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. Kada I/O menadžer primi zahtjev za čitanje od strane neke datoteke iz korisničkog režima. VACB se podešava da pokazuje na tu stranicu. on šalje IRP (I/O paket zahtjeva) drajverskom steku.

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. PnP menadžer XP-a podržava i druge zahtjeve: querry-remove i surpriseremove. Da bi PnP mogao da radi i uređaj i drajver uređaji moraju podržavati PnP standard. 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. Zbog toga što mrežni sistem datoteka premješta podatke između diska i mrežnog intrefejsa. Surprise-remove (iznenadno uklanjanje) se koristi kod zakazivanja uređaja ili ćešće kada korisnik ukloni (izbaci) uređaj prije zaustavljanja (npr. Većina potrošnje _____________________________________________________________________________________________________________ 99 . PnP dodeljuje resurse uređaju i šalje zahtjev «pokreni uređaj» (start-device) drajveru. izvođenje određenih provjera kao sistem administrator itd. Na ovaj način aplikacija pronalazi keširane tražene podatke i ne mora da čeka I/O operaciju sa diskom. Ako može sve tekuće operacije se završavaju i vrši se prevencija izvršavanja novih. Kada menadžer keša pronađe šablon u prethodna tri zahtjeva premješta podatke u keš prije sljedećeg. 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. PnP menadžer šalje stop zahtjev da bi mogao rekonfigurisati uređaj sa novim «pokreni urešaj» zahtjevom. Cio sistem i posebni uređaji mogu se prebaciti u stanje niske potrošnje (standby ili sleep režim) kada se ne koriste. 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. Plug And Play menadžer. čime se izbjegava kopiranje kroz posredni bafer.USB). USB – diska bez disable-ovanja) Windows XP podržava sofisticirano upravljanje napajanjem. Menadžer napajanja Windows XP koristi PnP menadžer da bi mogao da prepozna i prilagodi se promjenama hardverske konfiguracije. 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. menadžer keša obezbjeđuje DMA (Direct Media Acess – direktni pristup medijumu) interfejs za direktno premještanje podataka. SRM je takođe odgovoran za manipulaciju privilegijama u sigurnosnim dodacima. PnP menadžer funkcioniše na sljedeći način: prvo dobija listu uređaja od svakog drajvera magistrale (PCI. Prvi se koristi kada je korisnik spreman da izbaci pccard uređaj (npr. učitava instalirani drajver (ili ga instalira ako je potrebno) i šalje zahtjev «dodaj uređaj» (add-device) odgovarajućem drajveru uređaja. Posebne privilegije su potrebne korisnicima za operacije backup i restore na sistemu datoteka.) i sličan je zahtjevu querrystop. 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).Operativni sistemi ______________________________________________________________________________ Slika 5.

Windows XP ima i opciju hibernacije (hibernation) kojom se sadržaj RAM-a upisuje na disk i sistem se isključuje. procesi potrebni za podizanje sistema se grupišu u jedan proces. Podizanje sistema (Booting) Podizanje Windows XP-a počinje kada se uključi napajanje i počne izvršenje BIOS-a iz ROM-a. Kada je procesor besposlen. Ove novine drastično smanjuju vrijeme za podizanje sistema. Sistem se može vratiti u normalno stanje dolaskom paketa podataka preko mreže. Prvi proces u korisničkom režimu je SMSS koji vrši dalju inicijalizaciju sistema uključujući formiranje datoteka za straničenje. FDD-a). mogućnost Windows-a sleep i posebno hibernacija učinili su vrijeme podizanja sistema mnogo manje bitnim nego što je to nekada bilo. XP ima i opciju system restore. Kernel inicijalizuje sistem i kreira 2 procesa. Postoje odvojene «košnice» za informacije o sistemu. Međutim. 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». Na kraju NTLDR počinje izvršavanje kernela i utvrđuje koji od boot uređaja sadrži operativni sistem. Podsistemi okruženja _____________________________________________________________________________________________________________ 100 . otvaranjem laptopa ili pritiskom bilo kojeg dugmeta na tastauri ili pomjeranjem miša. 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. Registry Windows XP čuva veličinu informacija o konfiguraciji u bazi podataka koja se zove registry. učitavanje drajvera uređaja i kreiranje WINLOGON i CSRSS procesa (CSRSS – Win32 podsistem). Takođe. Podizanje sistema poslije hibernacije traje znatno kraće od procesa booting. koja periodično snima konfiguracije u slučaju da se poslije neke izmjene sistem može podići ali ne radi kako treba. NTLDR učitava kernel. podešavanja korisnika. HAL i sistemski hive iz registry-ja. instalaciju softvera i bezbjednost. BIOS identifikuje uređaj sa kojeg se vrši podizanje sistema (booting device).CD-a. Window XP prebacuje sistem u stanje niže potrošnje smanjivanjem procesorskog takta. Sistemski proces sadrži sve interne radne niti i nikad se ne izvršava u korisničkog režimu. Učitava se NTLDR program iz root direktorijuma pomenutog uređaja (HDD-a. Registry baza podataka se naziva hive (košnica) zbog strukture. pozivom telefonske linije na koju je priključen modem. Menadžer registry-ja je komponenta izvršnog dijela.Operativni sistemi ______________________________________________________________________________ je tada usmjerena na čuvanje podataka u fizičkoj memoriji (RAM-u).

Grafičke aplikacije se izvršavaju u full-screen režimu a aplikacije na bazi karaktera u full-screen ili prozoru. 16bitni Windows. VDM posjeduje jedinicu za izvršavanje i emulaciju Intel 486 instrukcija. Pošto se svaki podsistem izvršava u odvojenom procesu u korisničkom režimu. 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. Takođe su implementirani virtuelni drajveri uređaja za monitor. miša i grafičke mogućnosti. Windows XP komandni shell je program koji kreira prozor koji liči na DOS okruženje na 32bitnim procesorima MS-DOS.Operativni sistemi ______________________________________________________________________________ Podsistemi okruženja su procesi u korisničkom režimu.0 izvornom kodu i dodeljuje najmanje 620 KB memorije aplikaciji. mišem i monitorom pri čemu je on projektovan kao izuzetno stabilan. Win32 aplikacija ne može pristupiti POSIX podsistemu jer samo jedan podsistem može biti pridružen svakom procesu. Samo jedna Win16 aplikacija može biti aktivna u XP-u zato što Win16 aplikacije zauzimaju isti adresni prostor. 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). Win32 okruženje Glavni podsistemi u Windows-u XP je Win32 koji pokreće sve Win32 aplikacije i upravlja tastaturom. Izuzetak je Win32 koji obezbjeđuje tastaturu. Postoji relativno malo 16-bitnih aplikacija koje su potrebne korisnicima sa XP-om. _____________________________________________________________________________________________________________ 101 . Ako on «padne» potrebno je reboot-ovati sistem. Nalaze se u sloju iznad izvršnog dijela u XP-u i omogućavaju izvršavanje programa napisanih za druge operativne sisteme (MS-DOS. Uprkos tome WOW32 okruženje i dalje postoji iz razloga što neke 32-bitne aplikacije ne mogu biti instalirane u XP-u bez njega. greška u jednom se ne odražava na drugi proces. Sve MS-DOS aplikacije se ne mogu izvršavati pod VDM jer tu spadaju aplikacije koje pristupaju hardveru direktno. tastaturu i komunikacioni port. menadžera prozora i GDI (Graphical Device Interface) funkcije i takođe prevodi 16-bitne adrese u 32-bitne. VDM se zasniva na MS-DOS 5. 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. WOW32 obezbjeđuje rutine kernela. POSIX). Aplikacije u različitim podsistemima su međusobno izolovane tako da npr. 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). 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.

mada se alternativno mogu prijavljivati korišćenjem smart-card kartice i ličnog identifikacionog broja. 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. Sama prijava korisnika zahtijeva korisničko ime i njegovu lozinku.Operativni sistemi ______________________________________________________________________________ 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 . POSIX aplikacije se mogu startovati od strane Win32 podsistema ili druge POSIX aplikacije i koriste server POSIX podsistema PSXSS.internu fragmentaciju . LSASS podsistem – Local Security Authority Subsystem LSAS je proces koji generiše sigurnosne dodatke (tokens) koji predstavljaju korisnike na sistemu. Kad god korisnik pokuša da pristupi objektu u sistemu. pristupni dodatak se prosljeđuje do monitora za bezbjednost koji provjerava privilegije i kvote. FAT (16-bitni) sistem je imao dosta nedostataka: . POSIX podsistem POSIX podsistem namijenjen je izvršavanju POSIX aplikacija i bazira se na UNIX modelu. POSIX biblioteku dinamičnih linkova PSXDLL. Windows XP obezbjeđuje znatno viši stepen kompatibilnosti sa UNIX aplikacijama nego u prethodnim verzijama NT-a.DLL i menadžer sesije na POSIX konzoli POSIX.limit od 2 GB . limite kvote i grupni ID. Mane režima kompatibilnosti su slabije performanse i interoperabilnost sa drugim aplikacijama. Ovaj podsistem poziva paket za autentifikaciju da bi izvršio identifikaciju koristeći informacije od podsistema za prijavljivanje ili mrežnog servera. Time se modifikuje Win32 API bolje aproksimira ponašanje koje se očekuje od aplikacije na njoj odgovarajućem operativnom sistemu. NTFS fajl sistem MS-DOS sistemi su koristili FAT (file allocation table) fajl sistem.lošu zaštitu pristupa fajlovima. Paket za autentifikaciu traži informaciju o accountu u lokalnoj bazi podataka i provjerava tačnost lozinke. POSIX aplikacije imaju pristup svakom sistemu datoteka na Windows XP sistemu. Naziv sekvence je security atention i predvidjena je da spriječi aplikaciju da se ponaša kao «trojanski konj». _____________________________________________________________________________________________________________ 102 .EXE. Sigurnosni podsistem tada generiše pristupni dodatak za korisnikov ID koji sadrži odgovarajuće privilegije.EXE. Windows XP je naslijedio paket za autentifikaciju Kerberos od svog prethodnika Windows-a 2000.

-do 2 GB – 2KB. Broj sekvence se uvećava za 1 svaki put kada se koristi MFT.UNICODE imena datoteka . čitav disk ili više diskova. 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). Klaster je broj sektora diska koji je eksponent od 2.tolerancija prema grešci . Veličina klastera kod formatiranja diska je jednaka veličini sektora za volumen: -do 1 GB – 512 B do 1 KB. kao što su ime datoteke. NTFS unutrašnji raspored Osnovna jedinica u NTFS fajl sistemu je volumen (zapremina.oporavak oštećenih podataka . NTFS ne radi sa pojedinačnim sektorima diska već koristi klaster (cluster) kao jedinicu alokacije diska. 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.kompresiju Windows XP nastavlja da koristi FAT16 za pristup flopi disketama i drugim prenosnim medijumima. -preko 2 GB – 4KB.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. mogu se promijeniti. 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.6 GB kod FAT16 sistema biće 400 MB izgubljenog prostora zbog interne fragmentacije a kod NTFS-a samo 17 MB. Ako datoteka ima mnogo atributa ili je jako fragmentirana potrebno joj je više pokazivača i nije joj dovoljan jedan zapis u MFT.Operativni sistemi ______________________________________________________________________________ 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. XP podržava i dodatne sisteme datoteka za pristup CD i DVD medijumima.šifrovanje . Ove vrijednosti su po default-u tj. NTFS koristi logički broj klastera (LCN .rasute datoteke . količina) i može zauzimati dio. NTFS sistem donosi nove mogućnosti: . Primjer prednosti NTFS nad 16-bitnim FAT: ako imamo 16000 datoteka i disk od 1.podrška za velike datoteke . NTFS metapodaci – podaci o podacima _____________________________________________________________________________________________________________ 103 . datum kreiranja i sigurnosni deskriptor koji služi za kontrolu pristupa. 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.bezbjednost .

Datoteka za loše klastere vodi računa o oštećenim oblastima na volumenu. 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. resetuje je i nastavlja prekinuti upis. 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. U NTFS-u prije nego što dođe do izmjene strukture podataka pravi se log zapis koji sadrži undo i redo informacije.bitmap datoteka .tabela definicija atributa . 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. Svaka NTFS datoteka je snabdjevena bezbjedonosnim deskriptorom koji sadrži sigurnosni dodatak vlasnika datoteke i listu kontrole pristupa. Bitmap metapodaci se jednostavno proširuju da bi pokrili novonastali prostor. kapaciteta i pouzdanosti. U bitmar datoteci se čuvaju podaci o zauzetim i slobodnim klasterima na volumenu. _____________________________________________________________________________________________________________ 104 . Tabela definicija atributa prikazuje koji tipovi atributa su korišćeni u volumenu i koje operacije se mogu izvesti nad njima. verziju NTFS sistema kojim je volumen formatiran i bit koji pokazuje da je volumen možda oštećen. Osnovni direktorijum je direktorijum najvišeg nivoa u hijerarhiji sistema datoteka.) sadrži najviše 32 particije i može se proširivati dodatnim diskovima bez mijenjanja sistema datoteka. NTFS zaustavlja sve I/O operacije i tekuće upisivanje u datoteku.datoteka za loše klastere (bad cluster file) U log datoteku se snimaju sve promjene metapodataka Volume datoteka sadrži ime volumena.boot datoteka . Za upravljanje volumenom i toleranciju na greške odgovoran je FtDisk. Kada se slobodan prostor u log datoteci približi kritičnom nivou. Ostale specijalne datoteke su: . Set volumena predstavlja više diskova povezanih tako da formiraju veliki logički volumen (slika 6. Boot datoteka takođe sadrži i fizičku adresu MFT. FtDisk je drajver diska «otporan na greške». Poslije pada sistema strukture podataka sistema datoteka se mogu oporaviti obradom log datoteke čime se ne garantuje oporavak sadržaja korisnikovih datoteka. Prvi fajl je MFT. Obezbjeđuje nekoliko kombinacija više diskova u jedan volume i time poboljšanja performansi.volume datoteka . Metapodaci ostaju neoštećeni tako što se vraćaju u stanje prije pada sistema.Operativni sistemi ______________________________________________________________________________ Metapodaci o NTFS volumenima čuvaju se u fajlovima. NTFS koristi ovu datoteku za ispravljanje grešaka.LOG datoteka .osnovni direktorijum (root) . Drugi. Bezbjednost NTFS volumena potiče od objektne orijentisanosti Windows-a XP.

Ovakav raspored doprinosi poboljšanju I/O propusnog opsega zbog toga što se podaci prenose paralelno. za svakih sedam «traka» podataka na sedam odvojenih diskova dolazi po jedna traka parnosti na osmom disku. Ako trakasti set ima 8 diskova. Prvih 64 KB logičkih volumena se nalaye na prvoj fizičkoj particiji. – ova šema se zove još i RAID nivoa 5. Slika 7 Trakasti set sa parnošću je prikazan na slici 8. 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. _____________________________________________________________________________________________________________ 105 . Da bi se izbjeglo ovo «usko grlo» trake parnosti se raspoređuju na sve diskove na način prikazan na slici. Trakasti (stripe) set je prikazan na slici broj 7. sljedećih 64 KB na drugoj itd. FtDisk uzima veličinu trake od 64 KB. Ova šema se zove još i RAID nivoa O.Operativni sistemi ______________________________________________________________________________ Slika 5. Da bi se napravio trakasti set sa parnošću potrebne su minimum 3 particije iste veličine raspoređene na tri posebna diska. 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.

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). Ako jedna particija zakaže FtDisk ima njenu kopiju na ogledalu. 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. Rezervni sektori i remapiranje klastera _____________________________________________________________________________________________________________ 106 .Operativni sistemi ______________________________________________________________________________ Slika 8 Ogledanje diskova. Set ogledala. Kada aplikacija zapisuje podatke u set ogledala. FtDisk ih zapisuje na obje particije. Slika 9.

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

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

drajveri i softverski alati koji pružaju podršku novim tehnologijama i raznom hardveru su javno dostupni i brzo se razvijaju. o Nalozi _____________________________________________________________________________________________________________ 109 . S druge strane mikrokernel operativni sistemi zahtevaju vrlo mali skup funkcija od samog kernela što im daje određene prednosti nad monolitnim. Modul. Kao posledica osobine otvorenosti GNU/Linux operativnih sistema. Za više informacija koristite “man” komandu. kernel Linuxa se sastoji od modula. iako su takvi operativni sistemi generalno sporiji od monolitnih. Naredbe Linux-a • Osnove korišćenja Linux-a (Unix) U ovoj skripti su opisane samo osnove korišćenja komandi.Operativni sistemi ______________________________________________________________________________ Moderni operativni sistemi smanjuju direktnu interakciju sa hardverskim komponentama. kao bilo koja druga statički vezana funkcija kernela. Modul je objektni fajl čiji kod može biti priključen kernelu u vreme izvršavanja (runtime). mikrokernel arhitektura je osnov razvoja savremenih operativnih sistema. ne radi kao poseban proces već se izvršava u kernel modu. za razliku od eksternih objekata mikrokernel operativnih sistema. jezgro je integrisano u jedinstven program koji se izvršava u kernel modu (slika). bez degradacije performansi. Izborom potrebnih modula korisnik utiče na veličinu Linux kernela. Struktura Linux kernela je monolitna tj. Grafički prikaz arhitektire Linux-a Da bi mu se smanjila veličina. Međutim.

što znači da može da čita svaku datoteku.. Na pr. Svakom korisniku se dodjeljuje jedan direktorijum na file szstem-u. o Logovanje Početak rada počinje logovanjem na sistem (prijavljivanjem). PASSWORD treba da bude riječ koja se teško pogađa. definisano radno okruženje. čime je logovanje završeno i nalazite se u svom login shell-u. da bi se išta radilo na Unix-u treba imati korisnički nalog.. ona bi ekran za unos username-a i password-a bio nešto slično ovom: login: Kada ukucate username i pritisnete <Enter>. to bolje. Da bi korisnik znao da je shell spreman.Operativni sistemi ______________________________________________________________________________ Unix je multiuser operativni sistem i prava korisnika se uređuju putem korisničkih naloga. 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. To je određeni niz simbola koji najčešće izgleda ovako: [user@comp ~]$ gdje user predstavlja username korisnika. onda idete dalje i ubačeni ste na sistem. koristi svaki hardverski uređaj. shell izbacuje ’’prompt’’ na terminal. i trebala bi da bude periodično mijenjana. što češće. pa stoga. Shell-su interfejsi između korisnika i operativnog sistema (koji dalje upravlja hardware-om). Postoje dvije opšte kategorije naloga obični i administratorski. koji će biti samo njemu na raspolaganju i to je home direktorijum. Kroz obične naloge korisnik ima pristup samo resursima koji su mu dodijeljeni od strane administratora. mješavina slova. ~ obavještava da se nalazimo u ‘’home’’ direktorijumu. Kada se korisnik uloguije na sistem. brojeva i dozvoljene interpunkcije. dok administrator ima pristup svim resursima. USERNAME je ime pod kojim se korisnik loguje na sistem. a comp ime računara na kome radi. mijenja konfiguraciju sistema. o Shell-ovi Da biste komunicirali sa operativnim sistemom potrebno je da postoji neki set definisanih komandi. komanda ‘’date’’ ispisuje sistemsko vrijeme i datum: _____________________________________________________________________________________________________________ 110 . rad počinje baš u korisnikovom home direktorijumu. a to u stvari omogućuju shell-ovi. onda će vam se pojaviti ''Password:''. Svaki korisnički nalog ima unikatni USERNAME i PASSWORD. o Pokretanje programa Program pokrečete jednostavnim ukucavanjem imena programa i pritiskom <Enter> dugmeta kada je shell spreman za primanje komandi. Ako se logujete preko konzule. To znači da u odgovarajuća mjesta na terminalu unesete svoje identifikacione podatke (username i password). Ako ste unijeli ispravno username i password. Shell se po logovanju pokreće i čeka korisnikove komande. i tada unesete password koji se neće vidjeti i takođe pritisnete <Enter>.

Znači.hosta – terminalsko povezivanje na host passwd username – promjena šifre exit . dolje po stranu sa <space> tasterom. Man-om se ide gore – dolje po stranici sa PageUp/PageDown tasterima na tastaturi. [ ] je ime komande. • df – prikazuje atribute svih fajl sistema • file – određuje “prirodu” fajla • chmod. da bismo otkucali otkucali help za komandu ‘’date’’ kucamo ‘’man date’’ Iz man-a se izlazi pritiskom na slovo ‘’q’’. • Osnovne naredbe Linux-a • pwd – informacija o tekućem direktorijumu • cd adresa. s. b. 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 <>. c. • ls [-a l R] – prikaz sadržaja direktorijuma *d.direktorijuma – promjena tekućeg direkt. l. ili gore – dolje po red.logovanje telnet ime. chgrp. kursorskim tasterima. a to je komanda ‘’clear’’ koja briše ekran. • umask – definisanje “default” prava vlasnika 777-br • • • • • login .Operativni sistemi ______________________________________________________________________________ [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>. gr. rwx rwx rwx broj vlasnik grupa veličina datum ime mkdir – kreiranje dir. Po završetku programa vraća se ponovo u shell i on čeka dalje naše komande. • find . chown – promjene prava. Navešćemo još jedan primjer.pronalaženje fajlova ili dir. p. i vlasn.odjavljivanje which naredba – određivanje lokacije naredbe _____________________________________________________________________________________________________________ 111 . • rmdir – brisanje praznih dir.

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.čitanja (r). Džoker znaci * ? [.b. .kopiranje cat – prikaz sadržaja ili kreiranje ln – kreiranje linka (-s soft link) more .c.c.prikaz sadržaja ekran po ekran vi ime.fajla– kompresija fajlova uncompres ime.upisivanja ili mijenjanja (w) i .Operativni sistemi ______________________________________________________________________________ • • • • • • • • • • • • • • • • • • • • • man naredba –sadržaj UNIX-ovog priručnika o toj naredbi touch ime.fajla – enja vrijeme pristupa ili ga kreira rm ime. grupa kojoj fajl pripada (g) i svi ostali (o)..] - Zaštita fajlova i direktorijuma: Prava: .izvršavanja ili prolaska kroz direktorijum (x) Korisnici se svrstavaju u tri kategorije: vlasnik fajla ili direktorijuma (u).editor grep – pretraživanje fajlova lp – štampanje fajlova lpstat – prikaz statusa štampača cancel – otkazivanje štampe koja je na čekanju compress ime.fajla – brisanje mv – premještranje ili promjena imena cp .] zamenjuje svaki string (i prazan) zamenjuje svaki karakter zamenjuje svaki od karaktera u zagradama (može se pisati i [a-d].fajla . _____________________________________________________________________________________________________________ 112 . ili d") zamenjuje svaki znak osim karaktera u zagradama (može se pisati i [^a-d]. ili d") [^. što znači "sve osim a. CPU..b. memoriji. % ls -al total 72676 drwx--x--11 pera user 1024 Aug 24 15:12 . što znači "a.. ...prikaz statusa terminala uname – informacije o operativnom sistemu vmstat – informacije o procesima..

"a" za sve (uključujući i vlasnika i grupu) "+" dodaje pravo. Sintaksa njegovog pozivanja je: % vi [opcije] imefajla oporavak u slučaju nasilnog prekida poslednje sesije sa "vi" -r n je vroj redova teksta na ekranu -wn "read-only" +R "Vi" editor radi u tekst modu i komandnom modu.. "o" za ostale. dok se u u tekst modu one unose u editovani tekst. ili "-" kursor naviše _____________________________________________________________________________________________________________ 113 .desktop-Afrodita user 80 Aug 22 19:11 x.rhosts user 44 Aug 22 19:11 . "j". "k". "l. "=" dodeljuje pravo "r" za čitanje. U komandnom modu se otkucani znaci interpretiraju kao komande. "w" za upis/menjanje.Sgiresources user 0 Aug 22 19:11 . Komande za pomjeranje kursora: <left>. "x" za izvršavanje ili prolaz (u slučaju direktorijuma) vlasniku i grupi se dozvoljava modifikacija datoteke "dat" i zadržavaju se ostala prava vlasniku se dozvoljava samo čitanje datoteke "dat" dok se ostalima ukidaju sva prava % chmod ug+w dat % chmod u=r dat - 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). ili <Backspace> kursor ulevo <right>.c 5 Promjena prava pristupa: chmod grupe promena prava Gde su: grupe promjena prava "u" za vlasnika. ili <Enter> kursor naniže <up>. "h"." ili <Space> kursor udesno <down>.Operativni sistemi ______________________________________________________________________________ drwxr-xr-x -r--------rw-------rw------drwxr-xr-x -------rw18 root sys 1 pera 1 pera 1 pera pera user 1 pera 512 Aug 23 20:12 . "g" za grupu. "-" oduzima pravo. Pomoću <Esc> tastera prelazi se iz tekst moda u komandni. user 15 Aug 22 19:11 .Xauthority 512 Aug 22 19:11 .

dodavanje iza kursora "a" dodavanje na kraju reda "A" dodavanje ispod kursora "i" dodavanje na početku reda (posle svih "belih" znakova) "I" u novom redu koji se umeće ispod trenutno aktivnog reda "o" u novom redu koji se umeće iznad trenutno aktivnog reda "O" zamenjuje stari tekst novim. _____________________________________________________________________________________________________________ 114 .Operativni sistemi ______________________________________________________________________________ "w" "e" "b" "(" ")" "{" "}" "G" kursor na prvo slovo sledeće reči kursor na poslednje slovo sledeće reči 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 pomeranje na poslednji red datoteke." ". "t". "t". Iz tekst moda se izlazi pomoću <Esc> tastera. 1G za odlazak na početak datoteke početak reda prvi znak reda koji nije belina poslednji znak reda udesno do znaka x ulevo do znaka x udesno do znaka pre x ulevo do znaka iza x ponavlja "f". "F". na n-ti red. Npr. "F"." "H" "M" "L" <Ctrl-F> <Ctrl-D> <Ctrl-B> <Ctrl-U> Pretraživanje: nalaženje prve sledeće pojave regularnog izraza "/"izraz Dodavanje i promjena teksta: Sledećim naredbama (osim naredbe "r") se prelazi u tekst mod. "T" u suprotnom smeru početak prvog reda ekrana početak srednjeg reda ekrana početak poslednjeg reda ekrana sledeći ekran pola ekrana unapred prethodni ekran pola ekrana unazad "0" "^" "$" "f"x "F"x "t"x "T"x ". ukoliko je otkucano nG. "T" u istom smeru ponavlja "f". znak po znak (tzv. "d"x x označava naredbu pozicioniranja i može biti npr: "d" (tekuća linija). "Replace mode") "R" Uklanjanje teksta i kopiranje teksta u bafer: uklanja znak ispod kursora "x" uklanja znak levo od kursora "X" uklanja tekst od tekuće pozicije do pozicije x.

"csh". Postoje "hard link"-ovi i "soft link"-ovi (simbolički linkovi). "tcsh") Dakle procedura za kreiranje "shell script"-e proc je: % vi proc pravljenje script-a u editoru "vi" % chmod u+x proc % proc Linkovanje fajlova Linkovanje je u stvari dodeljivanje više imena istom fajlu. "}" (do kraja paragrafa). Dobija se ušteda prostora i obezeđena je jedinstvenost sadržaja fajlova. Da bi fajl bio "shell script" mora da: ima dozvolu za izvršavanje i da je pisana u jeziku tog "shell-a" (npr "sh". X. x. "p" Y) u red ispod tekućeg ili desno od kursora (ako je samo deo reda uklonjen) premešta prethodno smešteni tekst u bafer (jednom od naredbi: d. Fajl se fizički briše kad se obriše poslednji "hard link" na njega (oni se “broje”). x. fajlu se pridružuje drugo ime (unutar istog "file" sistema). to su takozvani "shell script"-ovi. kada se može ponoviti "q" ili izvesti snimanje sa "w" izlaz u kome se poništavaju izmene (ako su bile) ":q!" ":x" ili ":wq" snimanje i izlazak Korišćenje "shell script"-a: "Shell" može startovati naredbe navedene u fajlu. _____________________________________________________________________________________________________________ - dodeljuje pravo izvršavanja "proc" vlasniku startovanje proc 115 . . ":q" ispisuje se upozorenje (znak ?). D. "0" (do kraja reda) ili "`a" (do markera "a") kopira tekst tekućeg reda u bafer "Y" Pomjeranje teksta: premešta prethodno smešteni tekst u bafer (jednom od naredbi: d. X. D. "y"x x označava naredbu pozicioniranja i može biti npr: "y" (tekuća linija). "G" (do kraja datoteke).U slučaju "hard link"-a. odnosno pristupa iz više direktorijuma.Operativni sistemi ______________________________________________________________________________ "{" (do početak paragrafa). y. "P" Y) u red ispod tekućeg ili levo od kursora (ako je samo deo reda uklonjen) Završetak rada (izlaz iz editora): snimanje i izlazak "ZZ" Takođe je moguće završiti sa radom i iz "ex" dela "vi" editora (u koji se prelazi sa :): snimanje ":w" izlazak (ukoliko tekst nije snimljen. "$" (do kraja reda) ili "`b" (do markera "b") uklanja tekst od kursora do kraja reda (skraćenica za naredbu "d$") "D" kopira tekst u bafer od tekuće pozicije do pozicije x. y.

mount /dev/fd0h1440 /mnt/floppy /etc/fstab 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 % du bin Promjena korisničkog ID-a za direktorijum "/tmp" za poddirektorijum "bin" -demountovanje i vadjenje cdrom-a -formatiranje standardne diskete od 1.fajl koji sadrži podatke o automatskom mountovanju _____________________________________________________________________________________________________________ 116 . mount -t vfat /dev/hda1 /mnt/cdrive -mountovanje hard diska kao VFAT file sistem i imenovanje imenom cdrive pod /mnt direktorijem. Primjeri: % ln dat1 dir\dat2 % ln -s f1 f2 "dat1" je postojeći fajl i na nju se linkuje (povezuje) "dat2" u direktorijumu "dir" simboličko linkovanje za fajl "f1" u fajl "f2" Pristup i mountovanje file sistema: mount -t iso9660 /dev/cdrom /mnt/cdrom . umount /mnt/cdrom -demountovanje cdrom-a eject Formatiranje i korišćenje diskete: .fdformat /dev/fd0h1440 . 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.Operativni sistemi ______________________________________________________________________________ . Brisanje simboličkog linka ne utiče na fajl već se samo briše "ukaz" iz direktorijuma.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. te ukazana datoteka fizički ne mora da postoji (kao shortcut).Simbolički linkovi su fleksibilniji i omogućuju da postoji samo ukaz na drugo simboličko ime.44 MB -kreiranje fajl sistema na formatiranoj disketi -formatiranje standardne diskete od 1.44 MB .mkfs -t ext3 /dev/fd0h1440 (Linux FS) .

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

Oni mogu biti: "foreground" (interaktivni) ili "background" (u pozadini). _____________________________________________________________________________________________________________ 118 .fajlovi za System V kompatibilnost.d Fajlovi za inicijalizaciju sistema nalaze se u ovom direktorijumu. nemaju viši prioritet od "background" proces.fajlovi za inicijalizaciju mreže i . Korišćenje pozadinskih procesa: % komanda & startovanje procesa (programa "komanda") u "background"-u <Ctrl+Z> "suspend" interaktivnog (tj.dodeljeni terminal TTY TIME . Korisnik može pokrenuti više procesa. Postoje: . . i slanje signala: % kill 712 šalje SIGTERM signal procesu sa PID-om 712.identifikacija procesa PID .runlevels fajlovi. š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. . "foreground") procesa % bg "resume" suspendovanog procesa i prebacivanje u "background" % fg "resume" suspendovanog procesa i prebacivanje u "foreground" Prekidanje ("ubijanje") procesa.vreme posvećeno procesu od kad je kucano ps . a ne samo o onim koji su dodijeljeni korisniku. nažalost. "Foreground" procesi.naredba koja je startovala proces CMD Opcija ps -e daje informacije o svim procesima.sistem startup fajlovi.Operativni sistemi ______________________________________________________________________________ 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: .

skenira CDROM i mount-uje ga ako nadje disk) .cdrom (ako je uključen. Fajlovi odgovorni za inicializaciju mreže su: .map (i raspakovati) i config u /boot _____________________________________________________________________________________________________________ 119 .6 (reboot sistema) . 3 i 4 startuju mrežne servise.rc.. .rc.rc.system map fajl za taj kernel o bzImage (ili zImage) .. konfiguriše PCMCIA uređaje.ime start/stop Izbor kernel-a Kernel (jezgro) sadrži podršku za pripadajući hardver..inet1 (kreira se pomoću netconfig-a i sadrži konfiguraciju aktuelnog mrežnog interfejsa) .S poziva da bi se završio startup proces: .serial (konfiguriše serijskie portove) .rc.4 (multiuser startup sa KDM.rc.rc.gpm (omogućava copy/paste pomoću miša sa konzole) .rc.Runlevels fajlovi Runlevels je nivo na kojem želite da vam računar radi (singleuser.d/rc. tako da je njegov izbor veoma važan.rc. Manuelno uključenje/isključenje se vrši naredbom rc.rc.netdevice) . Može se koristiti neko od postojećih kernel-a ili se može kreirati vlastiti popravkom source-a te njegovim kompajliranjem. učitava module kernela.K (singleuser startup) . po defaultu je prazan ) GENERALNO: uključenje skripti se vrši tako što ime se dodijeli pravo izvršavanja sa naredbom chmod.Startup fajlovi Prvi je fajl init i on čita fajle /etc/inittab. rc. i obrnuto.rc.M (multiuser –default. Postoji još skripti koje rc.Fajlovi za inicijalizaciju mreže Runlevels 2.sysvinit (System V init skriptaa) . postavlja serijske portove.font (učitava korisnički-podešene ekranske fontove za konzolu) .rc.startup sa standardnim tekst loginom) .rc.local (sadrži specifične startup komande koje administrator želi. multiuser.rc.image tog kernela o config . čisti log direktorijume.inet1 i postavi osnovne mrežne servise) .rc.rc.rc.S koja uključuje virtualnu memoriju. Takođe startuje skriptu /etc/rc.modules (učitava kernel module.samba (startuje samba server ) Ostali konfiguracioni fajlovi: .konfiguracioni sorce fajl tog kernela Da bi koristili novi kernel treba: o kopirati System. bez X windows-a.pcmcia (konfiguriše PCMCIA uređaje – posebno za laptop-ove) .): . Postojeći kompajlirani kerneli se nalaze na CDROM-u Slackware-a u /kernels ili na Slackware sajtu. mountuje fajl sisteme. Slackware podržava oko 60-tak vrsta kernela-a.httpd (startuje Apache web server) . . GDM ili XDM loginom) ..Operativni sistemi ______________________________________________________________________________ .map .0 (zaustavljanje sistema – runlevel 0) .rc. bez mreže. U svakom slučaju kernel mora potpuno podržavati vaš hardver.inet2 (odradi se nakon rc. inicijalizuje PNP uređaje. Svaki poddirektorijum ima naziv odgovarajućeg kernela i sadrži: o System.

/etc/hosts – za lokalno razrešavanje domenskih imena.pregled mrežne konfiguracije o netconfig .konfiguracioni fajl za inetd. . .deny – zabrana ili dozvola određenim hostovima pristup./etc/resolv. On određuje koji će servisi biti dostupni na tom računaru. _____________________________________________________________________________________________________________ 120 .dialup konfiguracija Konfiguracioni /etc fajlovi .conf – za pronalaženje DNS servera. To se radi prostim uklanjanjem ili postavljanjem komentara (#) ispred linije u konfiguracionom fajlu i restartovanjem inetd-a.mrežna konfiguracija o pppsetup ./etc/hosts./etc/inetd.conf . .allow /etc/hosts.Operativni sistemi ______________________________________________________________________________ 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 .

Nutt: Operating systems.Operativni sistemi (problemi i struktura). Novi Sad. 2001. Hajduković . [3] W. _____________________________________________________________________________________________________________ 121 . P. [6] B. Galvin. 1999. 2000. [2] A. T Nguyen: Slackware Linux Unleashed. Ha. NJ: Prentice Hall.Operativni sistemi ______________________________________________________________________________ LITERATURA [1] M. SAMS. Upper Saddle River. [5] A. TANENBAUM: Modern operating systems. Upper Saddle River. STALLINGS: Operating systems. G Gagne: Operating systems concepts. Addison Wesley Longman Inc. elektronsko izdanje. S. 2003. 2000. 2003. [4] G. NJ: Prentice Hall. Silberschatz. John Wiley&Sons.

Sign up to vote on this title
UsefulNot useful