1.

Uvod u operativne sisteme
Svaki računarski sistem sastoji se od skupa tehničkih komponenti – hardvera, programskog koda – softvera i podataka koji se obrađuju. Kao što je poznato, hardver predstavlja samu mašinu, dok softver predstavlja programe. Predmet našeg izučavanja biće operativni sistemi, posebna vrsta softvera bez koje upotreba same mašine praktično ne bi bila moguća. Operativni sistem je program koji predstavlja interfejs između hardvera računara i korisnika računarskog sistema. Njegova svrha je da obezbedi okolinu u kojoj se izvršavaju korisnički programi. Prema tome, osnovni cilj operativnog sistema je da učini računarski sistem pogodnim za upotrebu. Drugi cilj je da se korišćenje resursa računarskog sistema odvija na efikasan način. 1.1. Definicija i zadaci operativnog sistema Računarski sistem se grubo može podeliti na četiri komponente (slika 1.1): • Hardver (CPU, memorija, U/I uređaji). • Operativni sistem. • Aplikativni softver (kompilatori, sistemi za upravljanje bazama podataka, tekst procesori, grafički porgrami, itd.). • Korisnici (ljudi, drugi računari ili druge mašine).

Hardver računara Sl. 1.1. Apstraktni pogled na komponente računarskog sistema. Hardver računara pruža osnovne resurese. Aplikativni programi definišu načine na koje se ti resursi koriste za rešavanje nekog od problema korisnika. U sistemu može postojati više različitih korisnika koji pokušavaju da reše različite probleme. Stoga mogu da postoje različiti aplikativni programi. Operativni sistem upravlja dodelom hardverskih resursa i vrši koordinaciju upotrebe hardvera između različitih aplikacija različitih korisnika. Iz ovih razloga možemo posmatrati operativni sistem kao alokator resursa. Računarski sistem sadrži različite resurse koji mogu biti hardverski ili softverski kao što su: CPU vreme, memorijski prostor, prostor za smeštaj datoteka, U/I uređaji itd. Operativni sistem deluje kao menadžer ovih resursa dodeljujući ih različitim programima i korisnicima na osnovu njihovih potreba tokom izvršavanja njihovih zadataka. Kako je sasvim moguće da se javi više zahtava za resursima koji često mogu biti međusobno suprostavljeni, opertivni sistem mora da odlučuje o tome kako će dodeljivati resurse kako bi se rad računarskog sistema odvijao na nepristrasan i efikasan način. Ukoliko se usresredimo na upravljačku funkciju operativnog sistema, možemo reći da je operativni sistem upravljački program koji nastoji da izvršenje korisničkih programa teče bez grešaka. Ovo se naročito odnosi na upravljanje U/I uređajima. Generalno, ne postoji potpuno adekvatna definicija operativnog sistema. Razlog za postojanje operativnog sistema je u tome što su operativni sistemi razuman način da se kreira upotrebljiv računarski sistem. Možda je lakše definisati operativni sistem definišući šta radi jedan operativni sistem nego šta je on u stvari. Operativni sistemi - predavanja 1

Već smo rekli da su dva osnovna cilja operativnog sistema da računarski sistem učini pogodnim za upotrebu i da obezbedi efikasan rad računarskog sistema. Ova dva cilja su ponekad u kontradikciji. U prošlosti se efikasnost smatrala važnijom od pogodne upotrebe, tako da se teorija operativnih sistema skoncentrisala uglavnom na optimalnu upotrebu resursa. 1.2 Začeci operativnih sistema Na početku, postojao je samo hardver računara. Prvi računari su bili fizički ogromne mašine kojima se upravljalo sa konzole. Programer bi napisao program i zatim upravljao radom programa sa konzole. Najpre bi se program ručno uneo u memoriju, bilo preko ploče se prekidačima, papirne trake ili bušenih kartica. Zatim bi se pritiskom na određene tastere unela početna adresa programa i započelo njegovo izvršavanje. Programer koji je ujedno bio i operater, pratio bi izvršavanje programa preko naročitih displeja na konzoli. U slučaju grešaka, programer bi zaustavljao program, ispitivao sadržaj registara i memorije i otklanjao grešku direktno sa konzole. Izlaz bi se štampao ili bušio na traku ili karticu radi kasnijeg štampanja. Mnogi sistemi koristili su šemu rezervacije. Onaj ko bi želeo da koristi računar bi se upisivao u raspored tražeći sebi slobodno vreme i rezervišući ga. Međutim, nekada je predviđeno vreme bilo prekratko (u slučaju kada se jave problemi) a nekada ne bi bilo iskorišćeno u potpunosti.

Slika 1.2. Izgled memorije za rezidentni monitor. Tokom vremena počelo se sa korišćenjem čitača kartica, štampača i magnetnih traka, Razvijeni su asembleri, louderi i linkeri kako bi olakšali programiranje. Kreirane su biblioteke funkcija. Javljaju se drajveri uređaja kao specijalni programi, napisani za svaki uređaj, a koji su uzimali u obzir posebnosti svakog uređaja. Nešto kasnije, sa pojavom viših programskih jezika, posao programiranja je olakšan, ali je zato otežan posao operatera. Da bi se, na primer, izvršio neki program napisan u Fortranu, bilo je potrebno najpre napuniti Fortran prevodilac u računar, tj. montirati odgovarajuću magnetnu traku. Program bi se čitao sa bušenih kartica i upisivao takođe na magnetnu traku. Prevodilac bi generisao asemblerski kod koji je morao da se asemblira sličnim postupkom a zatim da se izvrši linkovanje. Posle ovoga bi se program izvršavao i po potrebi prečišćavao. Pri ovome je vreme postavljanja bilo ogromno. Rešenje je potraženo na dva načina. Unajmljeni su profesionalni operateri, tako da programer i operater više nisu bili jedna osoba. Nije više bilo nužno da programeri rezervišu vreme na računaru. Drugi način je podrazumevao uvođenje paketne obrade. Poslovi slične prirode grupisani su u pakete i izvršavali jedan za drugim. Ova rešenja su malo poboljšala iskorišćenost računara. Ostajao je problem u tome što je, prilikom prekida rada programa, operater utvrđivao da li je prekid bio normalan ili abnormalan, po potrebi Operativni sistemi - predavanja 2

vršio damp memorije i potom punio čitač kartica novim poslom, ostavljajući procesor neiskorišćenim za to vreme. Da bi se i ovaj problem prevazišao, uvedeno je automatsko sekvenciranje poslova i prvi rudimentarni operativni sistemi. Na taj način vršen je automatski prenos upravljanja sa jednog posla na drugi. Kreiran je mali program nazvan rezidentni monitor (slika 1.2). Na početku rada računara upravljanje se predaje rezidentnom monitoru koji je dalje prenosio upravljanje programima. Kada se neki program završi kontrola se ponovao vraća rezidentnom monitoru koji opet ide dalje na drugi program. Da bi rezidentni monitor znao koji program treba da se izvršava uvedene su upravljačke kartice koje su ukazivale monitoru koji program treba da se izvrši. Na primer, $FTN – izvrši Fortran prevodilac $ASM – izvrši asembler $RUN – izvrši korisnički program Za određivanje granica poslova koristile se se još dve kartice: $JOB – Prva kartica posla $END – Poslednja kartica posla Znak $ odvajao je upravljačke kartice od kartica koje su predstavljale programe ili podatke. Neki proizvođači su koristili i druge znake (npr. //). Na slici 1.3 vidimo primer skupa kartica za izvršavanje jednog paketa poslova.

1.3 Poboljšavanje performansi prvobitnih operativnih sistema Računari su, pogotovu veliki, bili veoma skupe mašine, tako da se zahtevalo da izvršavaju što je moguće više poslova. Prelazak na paketne sisteme sa automatskim sekvenciranjem poslova bio je izvršen upravo iz razloga poboljšanja performansi. Ljudi su, u poređenju sa računarom, veoma spori pa je poželjno da se što više ljudskih operacija zameni softverom operativnog sistema. Međutim i kod ovog pristupa je CPU ostajao neuposlen. Mehanički U/I uređaji su mnogo sporiji od elektronskih uređaja. To znači da CPU često čeka na U/I. 1.3.1 Rad off-line Jedno rešenje problema sastojalo se da se ulaz sa sporih, mehaničkih uređaja iskopira najpre na magnetnu traku. Kada se traka napuni onda ona služi kao ulaz računarskog sistema. Prilikom izlaza se na sličan način punila magnetna traka, a štampanje je vršeno kasnije. Takav rad čitača kartica i štampača naziva se off-line. Postojala su dva pristupa ovom problemu. Uređaji specijalne namene, kao što su čitači kartica, linijski štampači i sl., pravljeni su tako da je njihov izlaz, tj. ulaz magnetna traka. Drugi pristup je podrzumevao upotrebu malog računara koji bi bio posvećen kopiranju sa ili na traku. Taj mali računar je predstavljao neku vrstu satelita većem računaru. Satelitskaobradaje jedan od prvih slučaja sistema sa više računara koji rade zajedno u cilju poboljšanja performansi. Glavna prednost off-linerada je u tome što glavni računar nije više bio ograničen brzinom sporih U/I uređaja, Operativni sistemi - predavanja 3

omogućen je planiranjeposlova(job scheduling). Ovde se disk koristi kao veliki bafer (slika 1.3. programi su na taj način mogli da se izvršavaju nezavisno od tipa U/I uređaja (device independence). Problem koji se kod implementacije baferovanja javljao sastojao se u otkrivanju kada je U/I uređaj završio svoj rad što je pre to moguće.4).već samo brzinom mnogo bržih jedinica magnetnih traka. Težnja kod baferovanja je da se i CPU i U/I uređaju uposle sve vreme. Spooling ima direktan uticaj na poboljšanje performansi. Baferovanje preklapa U/I aktivnosti nekog posla sa njegovim CPU aktivnostima. tako de se sve operacije obavljaju sa kopijom na disku i to mnogom većom brzinom (ovaj šema se naziva staging a tape). dok CPU obradi prethodne podatke. ali je ubrzo bila zamenjena u mnogim sistemima. kao što je disk.2 Baferovanje Još jedno rešenje problema sporosti U/I uređaja je baferovanje. Osim ovoga. Uz malo sreće. Programi su pisani da koriste logičkeU/I uređaje. kada imamo nekoliko poslova na brzom uređaju sa direktnim pristupom.3.3 Spooling Priprema poslova za off-linerad se nastavila neko vreme. Sličan proces može da se odvija i prilikom izlaza. naročito kod programa koji su ekstremno posvećeni U/I aktivnostima ili CPU aktivnostima. recimo čitač kartica nije mogao da upisuje na traku na jednom kraju a CPU da čita podatke sa drugog kraja. Čitač kartica Linijski štampač Sl. na komandu sa tastature. Operativni sistem bira jedan od poslova iz poola poslova i počinje da ga izvršava. 1. Baferi su obično sadržavali blokove podataka koji su se satojali od nekoliko logičkih zapisa. oni su morali da se izvršavaju u sekvencijalnom FIFO poretku. Spooling. Međutim. Dok su poslovi dolazili direktno sa čitača kartica pa i sa magnetne trake. dok se uparavljačkim karticama ili drugim komandama ukazivalo kako se logički uređaj preslikava na fizički uređaj. Ideja multiprogramiranja sastoji se u sledećem.predavanja 4 . jer je magnetna traka poluadresivi medijum sa ugrađenom sekvencijalnom prirodom pristupa. Pošto se podaci učitaju i CPU počinje da radi sa njima. U tom slučaju se operativni sistem jednostavno prebaci na drugi posao i počinje njega da izvršava. ulazni uređaj odmah počinje sa narednim ulazom. Pool poslova omogućuje da operativni sistem može da među spremnim poslovima iz poola odabere koji će se sledeći izvršiti i na taj način da poveća efikasnost. Sistemi diskova su ušli u široku upotrebu. Pre Operativni sistemi . Problem sa magnetnim trakama je bio što. Baferovanje nije uvek dovoljno da se poveća efikasnost rada računara. 1. Ovaj problem se rešavao uvođenjem sistema prekida. Način obrade koji se odvijao pomoću diskova nazivao se Spooling(Simultaneous Peripheral Operation On-Line).4 Multiprogramiranje Najvažniji aspekt planiranja poslova je sposobnost multiprogramiranja. Takođe se uvodi i direktnipristup memoriji(DMA). Kada se slična stvar dogodi i sa tim poslom priča se ponavlja. spooling obezbeđuje važnu strukturu podataka: poolposlova. Ekstremni oblik spoolinga je da se čitav sadržaj magnetne trake iskopira na disk. Osim ovoga. 1.4.3. omogućeno je preklapanje CPU aktivnosti jednog posla sa U/I aktivnošću drugog. završetak U/I operacije ili slično. U određenom trenutku posao će čekati na montiranje trake. novi ulaz biće učitan. Prednost spoolinga nad baferovanjem je što je ovde U/I aktivnost jednog posla preklopljena sa CPU aktivnostima drugih poslova. 1. Po ceni izvesnog prostora na disku i nekoliko tabela koje prate sadržaj na disku.

Obrada kod ovakvih sistema mora biti završena u okviru unapred zadanog vremenskog perioda. To povlači da moraju da postoje sredstva za upravljanje memorijom. 3. Računar analizira te podatke i po potrebi podešava upravljanje kako bi promenio ulaz u senzore.3.ili kasnije će prvi posao završiti svoje čekanje i dobiće ponovo CPU kako bi se nastavio. tako da bilo koja njegova intervencija u toku rada OS učiniče isti sporim i neefikasnim a samim tim i neadekvatnim za rešavanje mnogih problema. procesor.5). unapred definisanog vremenskog intervala. Takođe moramo da imamo i mogućnost kratkoročnog planiranja poslova (cpu scheduling). zaštite i dr. Dokle god postoji neki posao koji treba izvršavati CPU nije besposlen. Operativni sistemi sa multiprogramiranjem su prilično složeni. oni moraju da se istovremeno nalaze u memoriji (slika 1. 1. jer se upravljanje procesorom prenosi na druge poslove tokom svakog vremenskog intervala. upravljanja konkurencijom. Ovakvi sistemi se često koriste kao kontroleri u specijalnim aplikacijama. memorija. 1. Mogućnost planiranja i raspoređivanja poslova (scheduling) Operativni sistemi . upravljanja zastojima.predavanja 5 . Obezbeđivanje pristupačnog radnog okruženjaza krajnjeg korisnika Potrebno je da računar koji razume samo jednostavan ali nerazumljiv jezik 1 i 0 približi krajnjem korisniku i omogući mu da može da upravlja računarskim sistemom putem razumljivih naredbi bliskih jeziku kijm govorimo. Sada nije problem što korisnicima treba relativno puno vremena da izvrše unos sa tastature ili pročitaju sa ekrana monitora rezultate rada programa. Ovakav operativni sistem koristi planiranje CPU-a i multiprogramiranje dozvoljavajući svakom korisniku da koristi procesor tokom malog. Osnovni cilj svakog OS je da svi ovi rasursi budu optimalno upotrebljeni. planiranja U/I uređaja.6 Sistemi za rad u realnom vremenu (RealTime Systems) Još jedan oblik operativnih sistema jesu sistemi za rad u realnom vremenu. Automatsko funkcionisanje računarskog sistema OS mora da omogući funkcionisanje računarskog sistema bez dodatne intervencije korisnika. 4.3.5 Deljenje procesorskog vremena (Time Sharing) Sistemi sa deljenjem procesorskog vremena su rezultat pokušaja da se obezbedi interaktivna upotreba računarskog sistema po razumnoj ceni. Primer: punjenje memorije sa podacima ili programima. Upravljanje resursima računarskog sistema Pod resursima podrazumevamo programe. podaci. Osnovni razlog za to je sporost korisnika. I/O kontroleri i sve ostalo što se koristi da bi se dobila neka informacija ili izvršila neka radnja. Primer upis datoteke na HD računara. Funkcije operativnog sistema OS predstavlja skup sistemskih programa koji posreduje između korisnika i računarskog hardvera a clij mu je da: o Izvršava korisničke programe i olakša rešavanmje korisničkih problema o Približi korišćenje računarskog sistema i učini ga podesnijim za korisnika o Omoguči što efikasnije iskorišćenje računarskog hardvera 1. 2. Različiti senzori snabdevaju računar podacima. Da bi mogli da imamo nekoliko poslova spremnih za izvršavanje.

U tu svrhu koristimo dve hardverske strukture i to: kanal i tehniku prekida. Prihvatljiva veličina Vrste Operativnih sistema OS možemo podeliti na različite vrste što sve zavisi od kriterijuma koji se koristi i to: o Prema broju korisnika: Jednokorisnički(single user) i višekorisnički (multyuser) o Prema broju simultanih aktivnosti: jednoprocesni (single tasking) i višeprocesne(multitasking) o Prema nameni i načinu obrade poslova: sistemi sa grupnom obradom (bach). Eliminisanje zavisnosti U/I operacija Izvršavanje U/I operacija je znatno sporije od procesora pa je potrebno da OS te operacije izoluje tj. OS za sisteme sa deljenjem vremena. da više programa istovremeno izvršavamo neophodan preduslov je da imamo mogućnost trajnog skladištenja kako podataka tako i programa na nekom medijumu sa velikom brzinom pristupa istom. sinhronizacija aktivnosti koje zavise jedne od druge. sigurnost podataka i zaštita od grešaka i td. Tehnika prekida se koristi da se procesor obavesti ili da neki uređaj zahteva opsluživanje ili pak da je neka radnja koju procesor nije izvršavao završena. odvoji od procesora kako bi on mogao da za to vreme radi neke druge stvari. To se rešava putem uređaja sa velikim kapacitetom tj. zahtevi za dodelu nekih resursa. interaktivni(time sharing) i kombinovani. sekundarnom memorijom. DMA je sposoban da vrši prenos podataka između perifernih uređaja a da pri tom ne angažuje procesor za to. ugnježdeni OS (embedded). Poželjne osobine Operativnog sistema 1. 3. brzina upisivanja i očitavanja podataka. znatno se smanjuje cena jednog računarskog sistema. Visok nivo pouzdanosti 3. Visok nivo efikasnosti 2. Postojanje dugotrajne memorije Da bi smo mogli da opslužimo viče korisnika tj. 2. Javljaju se mnogi problemi koje tu treba razrešavati kao:uzajamno ne mešanje. kada izvršava isti program sa istim podacima on mora uvek da da isti rezultat bez obzira kada se vremenski taj program odvija. ručni OS (handheld system). OS za upravljanje u realnom vremenu. Postoji više razloga da se oni dele a na prvom mestu to je ekonomičnost korišćenja tj. distribuirane OS. 6. 5. Konkuretnost Predstavlja postojanje više simultanih. Kanal predstavlja uređaj koji kontroliše jedan ili više perifernih uređaja i po pravilu on se realizuje putem DMA (Direct Memory Access) kontrolera. greške u toku izvršavanja programa). prelazak sa jedne na drugu aktivnost i td.Radi preciznije dodele procesa i procesora uvode se kontrolne naredbe koje treba da upravljaju celokupnim radom računarskog sistema (job control language). Uloga operativnog sitema je Operativni sistemi . OS za stone računare. o Prema funkcionalnim osobinama računarskog sistema: OS za velike računarske sisteme. Deoba resursa U većini slučajeva konkurentne aktivnosti koriste zajedničke resurse ili informacije pa samim tim oni moraju da budu deljivi (shared). OS za višeprocesorske sisteme. korišćenje zajedničkih resursa. Mnogi problemi se tu javljaju koje OS treba da razreši kao: obezbeđenje jednostavnog pristupa podacima. Jednostavnost održavanja 4. 4. paralelnih aktivnosti koje se istovremeno izvršavaju. Multiprogramiranje Tehnika koja nam omogučuje da na jednom računaru pokrenemo više programa od jednom tj. Karakteristike Operativnih sistema 1. udružene sisteme.predavanja 6 . mrežne OS. Struktura Operativnog sistema Jedan računarski sistem posmatramo kao skup komponenti sa tačno definisanim ulogama i međusobnim vezama između softverske i hardverske koponente sistema. njihovo istovremeno izvršavanje. Nedeterminizam OS mora da se ponaša deterministički tj. Sa druge strane on mora da se ponaša i nedeterministički jer mora da odgovori na mnoge zahteve i događaje koji mogu da se dogode potpuno ne planirano u toku rada kao što su: razni nepredvidivi prekidi.

Sabv ostali softver radi korisnićkom ( user mode) gde je moguće manjati programski kod. realizaciju strategije dodeljivanja i oslobađanja uređaja kao i samu njihovu dodelu. realizuje strategija dodele resursa i određuje prioritet njihovog izvršavanja. 3. Jezgro vodi računa o procesoru kao resursu operativnog sistema. 2.da definiše sve te veze i omogući da se na najefikasnij način softverskim alatima upravlja hardverskim komonentama. njihovu sinhronizaciju i medjusobnu komunikaciju. dodela memorije. Upravljanje podacima 4. U višekorisničkom sistemu sve se to umnožava sa brojem korisnika pa se tu javlja i potreba da OS vodi računa i zaštiti pojedinih delova memorije od neovlašćenog upada i narušavanja integriteta podataka. 4. skup sistemskih procedura koje se pozivaju prilikom sistemskih poziva i skup pomoćnih procedura koje koriste sistemske porcedure. Ovde operativni sistem radi u zaštićenom ražimu rada ( kernel mode) gde je hardverski onemogućena izmena koda koji se izvršava. Jezgro operativnog sistema je najbliže hardveru. Upravljanje memorijom odnosi se na upravljanje glavnom (operativnom) memorijom. Zadaci koje OS na ovom nivou treba da izveši su: realizacija strategije dodele memorije. On podrazumeva interaktivni rad a ako te interakcije nema onda se koristi neki jezik za obradu polova – jezik za upravljanje poslovima. Svaki računarski sitem ima samo jednu memoriju i ona se posmatra kao jedna celina iako se sastoji iz nekoliko delova. Zbog toga ovakva organizacija OS dobila je naziv velika zbrka(big mess). realizacija strategije oslobađanja memorije i osloba\anje memorije. Monolitni OS je realizovan kao skup procedura koje se po potrebi mogu međusobno pozivati bez ikakvih ograničenja. Upravljanje U/I uređajima 5. Jezgro ( kernel ) 1. Uloga ovog dela je da vodi računa i o sekundarnoj memoriji kao i njenoj defragmentaciji tj. Operativni sistemi . Upravljanje prostorom na disku. Osnovna uloga ovog dela OS je da vodi računa o organizaciji podataka koji se smeštaju u vidu datoteka koje su oragnizovane kao adresari (direktorijumi) i obićni fajlovi kao i o njihovoj zaštiti. Zavisno od vrste računarskog sistema korisniku može biti na rspolaganju određeni komandni jezik. 2. Projektovanje Operativnih sistema Navešćemo tri osnovne koncepcije kod projektovanja OS koje su zastupljene: 1.1 1.Pod evidencijom se podrazumeva evidentiranje korišćenja resursa. vrši obradu procesa (manipulaciju nad procesima).Monolitni sistemi Predstavlja najčešću realizacij OS u prošlosti. Planiranje i evidencija Ovaj deo obuhvata aktivnosti koje su vezane za uvođenje novih poslova u sistem i pravljenje poretka u kom će se oni izvršavati. Upravljanje U/I uređajima odnosi se na obezbeđivanje nezavisnosti uređaja i efikasnosti njihovog rada. Kod nekih operativnih sistema ovaj najniži sloj se naziva upravljanje procesima ( kod LINUX-a imamo i upravljanje procesima i jezgro OS gde je jezgro nešto širi pojam). Tako na primer kod prvog slojevitog OS THE nulti sloj upravlja procesorom. Ono upravlja sistemom prekida računara i vrši obradu prekida. 5.Slojevita realizacija Ovde je OS podeljen na hijerahijski organizovane slojeve gde svaki sloj može da poziva samo funkcije iz nižih tj podređenih slojeva. Interpretacija komandnog jezika – može biti totalno van operativnog sistema ali je funkcijski tu. Interpretacija komandnog jezika 2. Uglavnom svi operativni sistemi imaju strukturu kao na slici br. Planiranje i evidencija 3. Ova komonenta je vrlo bitna kod složenijih sistema gde imamo višekorisnićki rad (multiuser mode). Svaki sloj ima tačno određenu funkciju i upravlja tačno određenim resursima. U ovakvom OS možemo da razlikujemo tri osnovna skupa programa i to: glavni program koji obrađuje sistemske zahteve. 6. zatim da se u memoriji nalaze i programi i različiti podaci kao i sam operativni sistem. planira procese (upravlja procesorom ili procesorima ako ih ima više). vrši se izbor posla.predavanja 7 . Dakle. Upravljanje memorijom 6. Operativni sistem maora da ima u vidu da se memorija sastoji od fizički različitih komonenti koje su izrađene različitim tehnologijama. Upravljanje podacima Ova komonenta treba da omogući korisniku što lakše korišćenje i manipulaciju podacima koji se nalaze u memoriji.

Virtuelne mašine Ovde je potrebni istači još jednu softversku strukturu koja je vezana za razvoj OS i koju je lansirao IBM. drugi sloj upravlja komunikacijom između različitih procesa i komandnog interpretera. Operativni sistemi . Pored toga ovakvi OS su lako prenosivi na druge računarske platforme a što je najvažnije postignuta je znatno veća pouzdanost i sigurnost u odnosu na ostale OS drugačije arhitekture. Sada se na te kopije tj. virtuelne mašine mogu instalirati različiti operativni sistemi koji izvršavaju različite programe. poseban sistem koji obezbeđuje niz virtuelnih mašina koje predstavljaju tačne kopije tog hardvera. Virtuelne mašine obezbeđuju kompletnu zaštitu sistemskih resursa. spremno da odgovori na sve zahteve jednog računarskog sistema. OS stvara iluziju o višestrukim procesima koji se izvršavaju na svom virtuelnom procesoru i svojoj virtuelnoj memoriji. Sve hardverske operacije koje ti OS šalju prema svojim virtuelnim mašinama prihvata monitor virtuelnih mašina i realizuje ih u skladu sa hardverom ispod sebe. Struktura virtuelnih mašina definisana je na sledeći način: na najnižem nivou nalazi se hardver.predavanja 8 . 3. treći sloj upravlja U/I operacijama a četvrti sloj je zadužen za korisničke programe koje ne interesuju niti upravljanje procesorom niti memorijom niti pak komunikacija između procesa.Arhitektura mikrojezgra Mikrojezgro (microkernel) predstavlja veoma savremen koncept u relizaciji savremenih OS. a iznad njega monitor virtuelnih mašina tj. Osnovna zamiso je da se napravi minimalno jezgro visokih performansi koj će biti jako pouzdano i robusno tj. Svaka virtuelna mašina realizovana je slojevito i ona tretira realni hardver i realno jezgro kao da je to hardver za operativni sistem koji ona predstavlja. pošto su sve one međusobno izolovane i ne mogu direktno deliti resurse. Tu se nalaze korisnički moduli koji mogu međusobno da komuniciraju ali samo preko sistema poruka (message passing).prvi sloj upravlja memorijom. Radi se o virtuelnoj mašini koja ima velike prednosti pri realizaciji novih OS. Ovakvom strukturom omogučili smo da se takvi OS jednostavno mogu proširiti novim modulima jer se njihovim dodavanjem ne narušava osnovno dobro zaštićeno jezgro. Sve ostale funkcije jezgra smeštaju se u korisnički prostor.

grafikoni. Sa razvojem računara programski sistem postaje sve složeniji i složeniji. a mogu se koristiti i sistemske biblioteke. Postoje i određeni uslužni programi koji spadaju u programski sistem a koji nisu od fundamentalnog značaja za razvoj programa tj. Taj sistem treba da obezbedi programeru različite komponente u zavisnosti od modela programa koji programer želi da realizuje tj. Takođe se sve više koriste sistemi za upravljanje bazama podataka. . slog u bazi podataka) koji su na raspolaganju procesima.linkeri ili povezivači objednjuju nezavisne komonente-module u jednu programsku celinu. Pojam procesor. Mogu biti apsolutni ili simbolički u zavisnosti od toga kako pristupaju adresama u programu.predprocesori i postprocesori – predprocesori su sistemski programi koji treba da pripreme naš program za rad u nekom okruženju – vrše pripremu za ulazak u neki drugi program. U/I kanali. makroasembler. operativna memorija) ili struktura podataka (semafor.U sistemskim programima može da se prepozna jedna grupa programa programski sistem koji obezbeđuje automatizaciju procesa razvoja programa. Računar ima mnogo sredstava i to više primeraka istog sredstva (na primer tri diska). prevodioci : asembler.dibageri (prečišćavaći) pomažu programeru u procesu pronalaženja grešaka u programskom kodu na asembleru.jezički procesori tj. konverziju. upotrebljava se da označi računarski program koji vrši obradu drugih računarskih programa. Suprotno ovome izvršavanje nekih operacija nad izlaznim podacima kao što je: formatiranje. preglede. Svakom programskom jeziku odgovara jedan program nazvan jezički procesor koji sve programe napisane na tom jeziku preslikava u oblik koji računar prepoznaje i direktno ih izvršava ili interpretira. Resursi mogu biti: . U/I jedinice. adresarima. . operativna memorija. za rad sa datotekama. Ove komponente se takođe ubrajaju u sistemske programe i sve se češće javljaju u proširenim operativnim sistemima. arhiviranje i kriptovanje podataka. visokom ili vrlo visokom prog. vektorski ili se sastoji iz više objekata. isti se uvodi u odgovarajući prevodilac-kompajler. disk. štampač. Operativni sistemi . Linker i loader se često mogu naći implementirani kao jedinstvena softverska komponenta. za štampanje podataka. sistemi za računarsku grafiku kao i multimedijalni sistemi.jednostruko korišćeni (consumable) kao što su poruke i signali. Za njih je bitno znati kako je projektant zamislio model editovanog dokumenta: da li je on alfanumerički. . Oni se prave za uske oblasti jer se danas još uvek nemoguće napraviti neki opšti generator. nakom izlaska iz editora kojim je napisan izvorni kod. bitmapiran. korekcije i testiranja programskog koda. . . Dibager je usko vezan određeni programski jezik. sistemi za komunikaciju.generatori na osnovu opisa neke operacije generišu program koji izvršava tu operaciju. Ako se radi o programima. U procesu nastanka jednog programa mogu se koristiti više programa koji mogu biti tipa glavnog programa ili potprograma. . Tu pre svega spadaju programi za sortiranje podataka. Sve njih povezuje linker ćija je osnovna uloga da formira program koji će biti spreman da se izvršava nakon njegovog punjena u operativnu memoriju.jeziku. a u vremenskom multipleksu više procesa ukoliko tip resursa to dozvoljava. matematičke formule i td. Bez njih je moguće napisati i pokrenuti neki program i njihova je uloga samo da pomažu programeru i prošire mogućnosti operativnog sistema. Služi za efikasno izvođenje razlićitih opštih funkcija. Rezultat kompilacije je objektni kod koji još uvek nije spreman za izvršavanje. .višestruko korišćeni (reusable) kao što su centralni procesor.predavanja 9 . Punilac ili loader tu izvršnu verziju programa prebacuje u operativnu memoriju i inicira njegovo izvršavanje. programi i td. U sistemske programe spadaju: . a kojima upravlja operativni sistem. kompajleri i interpretatori . Takav program se naziva izvršna jedinica ( bound unit ).loaderi ili punioci unose program u operativnu memoriju i pokreću njegovo izvršavanje. Prevodioci su jezički procesori koji prihvataju programe napisane na nekom programskom jeziku i generišu funkcionalno ekvivalentne programe na nekom drugom jeziku. Resursi su hardverska sredstva (procesor. Sve komponente programskog sistema se izvršavaju pod nadzorom operativnog sistema.editori omogućavaju unos i ažuriranje programa i podataka ali raznih drugih dokumenata kao što su: slike. u softverskom smislu. izbacivanje nepotrebnih delova kao i optimizacija programskog koda.sredstva za testiranje programa – pomažu kod testiranja programskih rešenja kako bi oni mogli da odgovore postavljenim zahtevima. fajlovi.vrše sistemski programi poznati kao postprocesori. Sredstvo u jednom trenutku može koristiti samo jedan proces. On treba da obezbedi samo automatizaciju procesa unošenja.

Dopušta se da veći broj korisnika radi konkuretno deleći resurse sistema u vremenskom multipleksu. Čak i kada ražunar ima hardverske mogučnosti da paralelno izvršava ulaz/izlaz sa glavnim programom (ima U/I procesor ili komunikacioni procesor) u jednom vremenskom intervalu se može izvršavati samo jedan program i na njemu može raditi samo jedan korisnik pa se takav računar smatra jednoprocesorskim. Multiprogramski sistemi se karakterišu time da više aktivnih programa mogu istovremeno konkurisati za resurse sistema. Višeprocesorski sistem (multiprocessor) je računarski sistem koji ima dva ili više centralna procesora koji istovremeno učestvuju u rešavanju istog problema. Paketna obrada (batch processing) je obrada kod koje se programi izvršavaju serijski bez interakcije između korisnika i programa. Višeprocesorski operativni sistem (multiprocessor operating systems ili multitasking operating systems) su sitemi projektovani tako da mogu konkurentno da izvršavaju više procesa ili zadataka.predavanja 10 . Obrada u vremenskoj podeli (timesharing) je obrada koja obezbeđuje da više korisnika istovremeno radi na sistemu pri čemu mogu koristiti isti ili različiti program.Višekorisnički (multiaccess ili multiuser) operativni sistemi su sistemi koji dopuštaju simultani pristup računaru sa dva ili više terminala. Jednoprocesorski sistem (uniprocesor) je računarski sistem koji ima samo jedan centralni procesor. Programi i podaci se unapred pripremaju na spoljnim medijumima i organizuju u vidu paketa koristeći naredbe JCL (Job Control Language). Operativni sistemi .

tada oni mogu da dele CPU. Paketni sistemi izvršvaju poslove dok sistemi sa deljenjem procesorskog vremena imaju korisničke programe. atribute i to su: prioritet. Proces je program koji se izvršava. ^ak i kod jednokorisničkih sistema korisnik može biti u stanju da izvršava više programa istovremeno: jedan interaktivni i više paketnih programa. Svaka akcija računarskog sistema se inicira od strane CPU-a. Kada u memoriji postoji više programa istovremeno. jer se skoro svi računarski resursi planiraju pre upotrebe. i mada se prilično razlikuju od procesa do procesa i od računara do računara. ona pokazuju hipereksponencijalnu krivu frekvencije (slika 3. Proces neprestano prelazi iz jednog u drugo od ovih stanja (cpu burst i I/O burst). Ideja multiprogramiranja je relativno prosta. Sve su ovo oprečni zahtevi koji su prouzrokovali da OS mogu da rade u različitim režimima rada u zavisnosti od toga kome treba dati veći prioritet: oprimalnom usluživanju korisnika ili oprimalnom iskorišćavanju resursa. Proces ima neka svoja obeležja tj. 3.2. U kodu se mogu ravnopravno naći mašinske naredbe i sistemski pozivi. CPU se takođe koristi i za druge sistemske aktivnosti. Propusna moć je iznos izvršenog posla u datom vremenskom intervalu. CPU mora da odgovori na trapove.3 čas 3. Postoji veliki broj veoma kratkih CPU aktivnosti i mali broj veoma dugih.1).2 Koncept planiranja poslova Planiranje je osnovna funkcija operativnog sistema.predavanja 11 . CPU je jedan od osnovnih računarskih resursa. programske zahteve i U/I prekide. Bez obzira na tip procesa. Prebacivanjem CPU-a sa procesa na proces se povećava produktivnost računarskog sistema. Ako bi mogli da u jednom trenutku zamrznemo stanje u OS videli bi stotine prisutnih procesa koji upravljaju razlićitim resursima i nalaze se u razlićitim stanjima. Umesto da CPU bude neuposlen tokom ispunjenja U/I zahteva. tu ne postoji nikakva anarhija. Dok je njegova glavna aktivnost izvršavanje korisničkih programa. Kad se izvršava samo jedan program. Operativni sistemi . Svaki program mora imati kod i podatke. Proces je osnovni element koji se koristi kod gradnje OS. Pošto program postaje proces tek kada počne da se izvršava 3. Po mnogo čemu su sve ove aktivnosti slične pa ih zovemo jednim zajedničkim imenom: procesi. Proces je program koji se izvršava tj. 3. Upravljanje procesima Upravljanje procesima predstavlja osnovni zadatak svih operativnih sistema koji omogučavaju multiuser i multitasking. Stalni problem kod operativnih sistema je kako nazivati sve aktivnosti CPU-a. U ovoj glavi ćemo se upoznati sa osnovnim principima planiranja procesa i algoritmima planiranja procesa. program postaje proces u trenutku kada počne da se izvršava. pa je njegovo planiranje centralno u projektovanju operativnog sistema. Ovim se povećava opšta efikasnost sistema i obavlja više poslova za kraće vreme. a svaki proces mora imati i neke sistemske podatke na osnovu kojih se razlikuje od ostalih procesa i na osnovu kojih OS može da upravlja tim procesom. pravila pristupa (ko može pristupiti procesu). svi procesi moraju međusobno da sarađuju pa samim tim mora da postoji određena sinhronizacija među njima. operativni sistem može da obavlja sopstvene interno programirane aktivnosti. Uspešnost planiranja poslova zasniva se na osobini procesa da njihovo izvršenje predstavlja ciklus CPU aktivnosti i U/I aktivnosti. Sve procese u OS možemo podeliti na sinhrone i asinhrone. Jedan posao se izvršava sve do momenta kada mu zatreba neka U/I aktivnost kada čeka da se njegov U/I zahtev zadovolji.Međutim. identifikacija ( podrazumeva adresu programa koji se izvršava a predstavlja proces).1 Osnovni koncepti CPU izvršava veliki broj poslova ili zadataka. Gledano sa strane OS proces je najmanji entitet koji se može planirati i koji ima svoj kod i podatke.1 Koncept multiprogramiranja Najvažniji koncept u modernim operativnim sistemima je multiporgramiranje. već se sve to odvija po određenom protokolu koji je definisao da se korisniku omogući da što efikasnije izvrši ono što želi i da postigne što optimalnije iskorišćenje svih raspoloživih resursa. Koristi od multiprogramiranja odslikavaju se u povećanoj iskorišćenosti CPU-a i većoj ukupnoj propusnoj moćiposlova. operativni sistem prenosi upravljanje nad CPU-om na drugi posao. Trajanja CPU aktivnosti su merena.

broj procesa. Stanje kada proces čeka da mu se dodeli CPU naziva se spreman. i dr. koja počinje i završava se CPU aktivnošću. čeka ili zaustavljen (slika 3. •Sadržaj programskog brojača. aktivan. pointeri na redove procesa i dr. Histogram trajanja CPU aktivnosti. Svaki od procesa može biti u jednom od sledećih stanja: novi. • Informacije o nalozima (iznos CPU vremena i stvarnog vremena.1. •Sadržaj registara CPU-a. 3. Upravljački blok procesa (Process control block) Svaki proces je u operativnom sistemu predstavljen njegovim upravljačkim blokom procesa (ponekad se zove i upravljački blok zadatka ili posla).2). Tokom svog izvršenja program menja stanje. lista otvorenih datoteka. Kako više procesa može da deli CPU.predavanja 12 .3.) Operativni sistemi . vremenska ograniženja. • Informacije o stanju U/I (U/I zahtevi. Stanje procesa definisano je trenutnom aktivnošću. U/I uređaji dodeljeni procesu. PCB je sadrži: •Stanje procesa. itd. broj naloga. Izvršenje procesa je alternativna sekvenca CPU i U/I aktivnosti.) • Informacije o planiranju CPU-a (prioritet procesa.). a kada mu se dodeli CPU onda je on u stanju izvršavanja. • Informacije o upravljanju memorijom (bazni i granični registri memorijske oblasti ili stranična tabela).frekvencija trajanje Sl. to aktivni proces može da čeka da mu se dodeli CPU ili da se na njemu izvršava. pointer Stanje procesa Broj procesa Programski brojač Registri Memorijske granice Lista otvorenih fajlova Broj procesa ••• 3.

ali zahteva složenije algoritme noseći i opasnosti od mogućih grešaka od pogrešnog dodeljivanja memorije. Zbog dugog intervala između dva izvršenja. srednja brzina dolaska poslova u sistem je jednaka srednjoj brzini izlaska iz sistema. Spremni procesi drže se u redovima spremnih procesa. Dugoročni planer bira poslove iz pula poslova i puni ih u memoriju radi izvršenja. dugoročni planer ima na raspolaganju duže vreme za izbor posla. Operativni sistemi . Takođe je bitno da dugoročni planer taj izbor izvrši pažljivo i da napravi dobru mešavinu poslova orijentisanih ka CPU-u i onih orijentisanih ka U/I aktivnostima. U opštem slučaju. Ovom memorijom se može upravljati na nekoliko načina. Opšta šema planiranja poslova je u obliku dijagrama redova kao na slici 3. Dugoročni planer (ili planer poslova) određuje koji će se poslovi propustiti u sistem radi obrade. Kratkoročni planer (planer CPU-a) bira jedan od tih poslova koji su u memoriji i spremni su za izvršenje i dodeljuje mu procesor. Redovi spremnih procesa ne moraju biti nužno FIFO strukture. Kratkoročni planer vrlo često bira proces koji će se izvršavati i zato mora da bude veoma brz.2 Redovi procesa Cilj multiprogramiranja je da se u svakom trenutku neki proces izvršava kako bi se maksimizirala iskorišćenost CPU-a. u sistemu postoje i redovi uređaja u kojima procesi čekaju da im se dodeli neki U/I uređaj. Dva su osnovna: dugoročni i kratkoročni. U paketnim sistemima ima više poslova koji su u sistemu nego onih koji mogu da budu izvršeni. dugoročni planer se aktivira samo kada neki posao napušta sistem. Kod jednoprocesorskih mašina najviše jedan proces se u jednom trenutku može izvršavati. Osim redova spremnih procesa. svi ostali će morati da čekaju dok se procesor ne oslobodi i dodeli nekom od njih. On upravlja stepenom multiprogramiranja (brojem procesa u memoriji). Prema tome. Najjednostavniji način je da se unapred odredi maksimalni broj procesa i statički dodeli dovoljno prostora za svaki PCB.predavanja 13 .4. Planeri Operativni sistem ima više planera (schedulers). 3. Ukoliko je taj stepen stabilan. to je povezana lista čiji su elementi PCB-ovi procesa u redu. Dinamička dodela memorije je obično bolja. što se tiče fleksibilnosti i boljeg iskorišćenja memorije. Ako u sistemu postoji više procesa. Dugoročni planer se izvršava znatno ređe.PCB se mora smestiti u monitorsku memoriju. Poslovi koji čekaju kopiraju se na disk. Osnovna razlika ova dva planera je u frekvenciji njihovog izvršenja.2.

• Vreme čekanja. dok za kratke poslove propusna moć može da bude desetak poslova u sekundi. onda on obavlja neki posao. Iskorišćenost CPU-a može da varira od 0% do 100%. Propusna moć je mera koja predstavlja broj poslova koji se mogu završiti u jedinici vremena. a izvodi se sa ciljem da se poboljša mešavina poslova ili da bi se oslobodila memorija u slučaju zagušenja. prebacivanje u korisnički režim rada i skok na odgovarajuću lokaciju u korisničkom programu kako bi se on nastavio. Ako je CPU zauzet. već se svaki novi proces šalje u memoriju kratkoročnom planeru. 3. naročito oni sa virtuelnom memorijom ili sa deljenjem procesorskog vremena. Ti kriterijumi su sledeći: • Iskorišćenost CPU-a. nužno je držati ga stalno uposlenim. Neki sistemi. srednji nivo planiranja. Posle izvesnog vremena procesi se mogu ponovo vratiti u memoriju.3 Algoritmi planiranja Planeri CPU-a odlučuju o tome kojem od spremnih procesa treba dodeliti CPU. Taj srednjoročniplanerje prikazan na slici 3. Kako je CPU veoma skup uređaj. U realnim sistemima ona se obično kreće od 40% do 90%. mogu da imaju još jedan. • Vreme obilaska. koja se naziva vreme odziva. U interaktivnim sistemima vreme obilaska nije baš najbolji kriterijum. maksimizirajući iskorišćenost CPU-a i propusnu moć a minimizirajući vremena obilaska. obično želimo da dobijemo optimalne performanse.U nekim sistemima dugoročni planer može i da ne postoji ili može da bude minimalan. Ova šema naziva se swapping(prebacivanje). Za duge poslove ona može da iznosi jedan posao po satu. 3. Ovo vreme je vreme koje protekne od momenta prijavljivanja posla do njegovog završetka i predstavlja sumu vremena koje posao provede u čekanju da uđe u memoriju.3. • Propusna moć.1 Kriterijumi performansi Različiti algoritmi imaju različite osobine i mogu da favorizuju jednu vrstu procesa u odnosu na druge. sistemi sa deljenjem procesorskog vremena često nemaju dugoročni planer. U najvećem broju slučajeva optimiziraju se srednje vredosti. čekanju u redu spremnih procesa. Kada izaberemo kriterijum na osnovu kojeg vršimo poređenje algoritama. Postoji više različitih kriterijuma planiranja. ali će nekada biti potrebno da se optimiziraju minimalne. Druga mera. Još jedna komponenta je uključena u funkciju planiranja i naziva se dispečer. odnosno maksimalne vrednosti ovih mera. • Vreme odziva. Ovo je ukupno vreme koje proces provede u redu čekanja spremnih procesa. ne računajući vreme potrebno da sa taj izlaz zaista i prikaže na nekom izlaznom uređaju. Dispečer je modul koji u stvari daje upravljenje nad CPU-om procesu koji je izabran od strane kratkoročnog planera. jer proces često na početku proizvede neki izlaz i nastavlja svoje izvršenje izračunavajući nove rezultate dok se korisniku prikazuju prethodni rezultati. Na primer.predavanja 14 . predstavlja vreme koje protekne od prijavljivanja posla dok se ne proizvede prvi izlaz programa.6 Ključna ideja je da je ponekad korisnije ukloniti proces iz memorije kako bi se smanjio stepen multiprogramiranja. Prilikom izbora određenog algoritma za određenu situaciju moraju se imati u vidu osobine algoritama. Ova funkcija obuhvata punjenje registara procesa. vremena tokom kojeg se izvršavao na CPU-u i vremena tokom kojeg je obavljao U/I operacije. Ova komponenta mora da bude što je moguće brža. čekanja i odziva. Postoji više kriterijuma na osnovu kojih se mogu porediti algoritmi planiranja. Operativni sistemi . Stabilnost ovih sistema zavisi ili od fizičkih ograničenja ili od razumnog ponašanja korisnika.

Vreme Posao izvršavanja 1 6 2 3 3 8 4 7 Upotreba SJF algoritma daje sledeću Gantovu kartu. Srednje vreme obilaska je 27. 3. Operativni sistemi . rezultat ovoga vidimo u sledećoj Gantovoj karti. Posao 1 2 3 Vreme izvršavanja 24 3 3 Ako su ovi poslovi pristigli u redosledu navođenja i opslužuju se na osnovu FCFS algoritma.2 FCFS algoritam Najednostavniji algoritam planiranja poslova je FCFS (First-Come-First-Served). Procesor se najpre dodeljuje onom procesu koji ga je prvi zahtevao. Moguć je sledeći scenario. Ova situacija. za drugi 27 a za treći 30. što predstavlja značajno smanjenje. dobićemo sledeću Gantovu kartu. Implementacija ovog algoritma se lako vrši korišćenjem FIFO redova. Ukoliko postoje dva ili više poslova iste dužine. će se brzo izvršiti i vratiti U/I aktivnostima. gde svi procesi čekaju da jedan dugačak proces oslobodi CPU. Kada se proces ubacuje u red spremnih procesa njegov PCB se stavlja na kraj reda. a može značajno da varira u zavisnosti od konkretnog slučaja.3. Srednje vreme obilaska za ovaj algoritam u opštem slučaju nije minimalno moguće. Međutim.3. Kada je procesor slobodan on se dodeljuje onom poslu kod koga je ta dužina najmanja.3 SJF algoritam Različit pristup planiranju poslova prisutan je kod SJF (Shortest-Job-First) algoritma. Ako pretpostavimo da su poslovi pristigli u redosledu 2. Posao orijentisan CPU aktivnostima se vraća u red spremnih procesa i dodeljuje mu se procesor i priča se ponavlja. Razmotrimo sledeći skup poslova prikazan u tabeli. Kada se posao koji je držao CPU izvrši i pređe na U/I aktivnost.predavanja 15 . kao sekundarni kriterijum koristi se FCFS. svi ostali poslovi će završiti njihove U/I aktivnosti i biće u redu spremnih procesa. 3. 1. Sada je CPU besposlen. Dok čekaju u redu. performanse ovog algoritma su veoma slabe. Pretpostavimo da imamo jedan posao orijentisan CPU aktivnostima i više poslova orijentisanih U/I aktivnostima. Posmatrajmo sledeća tri posla prikazana u tabeli. Za to vreme. posmatrajmo performanse FCFS algoritma u dinamičkoj situaciji. Kada se procesor oslobodi on se dodeljuje prvom procesu iz reda. Kod ovog algoritma se svakom poslu pridružuje i podatak o dužini njegovog sledećeg CPU ciklusa.3. Pored ovoga. Rezultat tog efekta je slaba iskorišćenost i CPU-a i U/I uređaja. U/I uređaju su besposleni. ostali poslovi koji imaju kratke periode CPU aktivnosti a duge periode U/I aktivnosti. naziva se efekat konvoja. Sada je srednje vreme obilaska jednako 13. Posao orijentisan CPU aktivnostima dobiće CPU i držaće ga doke se ne izvrši. Vreme obilaska za prvi posao je 24.

+ (1-α)αtn−1 +K+(1-α)j tn−j +K Kako su i α i (1-α) manji od 1. kao i slični faktori. godine na MIT-u. broj otvorenih fajlova. Prema tome.5 Algoritmi sa prekidanjm Do sada opisani algoritmi su algoritmi bez prekidanja. Interno definisani prioriteti koriste neku merljivu veličinu za izračunavanje prioriteta procesa. U dokazu se pokazuje da premeštanje kraćeg posla pre dužeg smanjuje vreme čekanja kraćeg posla u većoj meri nego što povećava vreme čekanja dužeg posla (vidi sliku 3. ne može se primeniti na kratkoročno planiranje CPU-a. Jedan pristup je da se pokuša sa aproksimacijom ovog algoritma. Obično se za ovo predviđanje koristi eksponencijalna sredina prethodnih aktivnosti. Tako je korisnik motivisan da tačno proceni trajanje posla. pronađen posao niskog prioriteta koji je prijavljen na sistem 1967. pa je samo najskorija CPU aktivnost od važnosti. a CPU se dodeljuje poslu sa najvišim prioritetom. memorijski zahtevi.3. Može se desiti da neki proces sa niskim prioritetom. Poslovi sa istim prioritetom se opslužuju po FCFS algoritmu. p =1/τ. Ako je tn trajanje n-te CPU aktivnosti a τn+1 predviđeno trajanje naredne. tokom vikenda). kada je računar IBM 7094 trebao da bude zamenjen. uglavnom političke prirode. ali se druga dva mogu modifikovati da budu algoritmi sa prekidanjem. Dokaz da je SJF algoritma optimalan. Sl. Moguće je da se takvi procesi izvrše tek kada se smanji opterećenost sistema (na primer. τn sadrži davnu prošlost u sebi.Tehnika starenja predviđa da se postepeno povećava prioritet onih poslova koji dugo čekaju u sistemu. kao i odnos srednjeg trajanja U/I aktivnosti i srednjeg trajanja CPU aktivnosti su neke od veličina koje se mogu koristiti za izračunavanje prioriteta. zbog čestog pristizanja poslova višeg prioriteta u sistem. Ovaj algoritam je dokazano optimalan. Prioritet se pridružuje svakom poslu. Prioriteti se mogu definisati interno ili eksterno.4 Algoritam sa prioritetima SJF algoritam je specijalni slučaj opštijeg algoritma sa prioritetima. Da bi razumeli eksponencijalnu sredinu razvićemo prethodnu formulu zamenjujući vrednosti za τn. jer daje minimalno srednje vreme čekanja za neki skup poslova. Na primer. i pored optimalnosti. Najčešće je α= 1/2. Postoje glasine da je 1973.7. Problem kod ovog algoritma je upravo u određivanju dužine sledećeg zahteva za CPU-om. Za vrednost parametra α= 1. važnost naručioca posla. tada je τn*1= τn. Ovaj algoritam se najčešće koristi kod dugoročnog planiranja. n+1 =αtn 3. Parametar α upravlja relativnim težinama nedavne i davne prošlosti u predviđanju.Srednje vreme obilaska koje se ovde dobija je 13. to je svaki sledeći sabirak manje težine od prethodnog. vremenske granice. možemo da predvidimo njenu dužinu. Glavni problem sa ovim algoritmom je pojava umiranjaod gladi. 3. 0≤α≤1 Vrednost t sadrži najskoriju poznatu informaciju. nikada ne dobije priliku da se izvršava. onda ga on zadržava sve dok se ne izvrši do kraja ili dok ne obavi U/I zahtev.3. ili da im se ne dodeli CPU sve do prestanka rada sistema. smanjuje se srednje vreme čekanja. FCFS algoritam je po svojoj prirodi algoritam bez prekidanja. Ako je α= 0. τn*1= tn. Kod dugoročnog planiranja poslova u paketnim sistemima možemo da koristimo granicu vremena rezervisanog za posao. tako da i nedavna i dalja prošlost imaju podjednaku težinu. godine i još uvek se nije izvršio. Kada se kod takvih algoritama jednom dodeli procesor nekom procesu. Eksterni prioriteti postavljaju se na osnovu kriterijuma koji su spoljašnji u odnosu na operativni sistem. Nema načina da se odredi trajanje sledeće CPU aktivnosti.7). Iako ne možemo da znamo trajanje sledeće CPU aktivnosti. kao što su vrsta i iznos plaćene naknade za korišćenje računara. Na žalost. onda je (1) α τn+1 =αtn+(1-α) τn . SJF je u stvari algoritam sa prioritetima gde je prioritet p jednak recipročnoj vrednosti predviđenog trajanja τCPU aktivosti. tj. Drugo rešenje ovog problema je starenje.predavanja 16 . i nedavna prošlost nema efekta. 3. SJF algoritam može biti realizovan i bez prekidanja i Operativni sistemi . jer što je manja granica koju zada to će se njegov posao brže izvršiti.

Poželjno je da je kvantum vremena znatno duži od vremena potrebnog za prebacivanje konteksta. Registri prekinutog procesa se pamte u njegovom PCB-u. Ukoliko je vremenski kvantum veoma mali (na primer 1 mikrosekunda). Hardver izvršava jednu instrukciju za jedan skup registara. Prebacivanje konteksta je sa stanovišta izvršavanja procesa potpuno nekoristan posao. Poslovi ne mogu prelaziti iz reda u red. planer procesa bira naredni proces iz reda spremnih procesa.sa prekidanjem.7 Višenivovski redovi Ova klasa algoritama planiranja kreirana je za situacije kada se poslovi mogu lako klasifikovati u različite grupe. tajmer će. Vreme obilaska takođe zavisi od kvantuma vremena. Performanse ovog algoritma veoma zavise od kvantuma vremena. Ova dva tipa poslova imaju sasvim različite zahteve u pogledu vremena odziva i mogu da imaju različite algoritme planiranja. Kada se ovaj algoritma implementira. Procesor se zatim dodeljuje narednom poslu iz reda spremnih procesa.6 Kružni algoritam Kružni algoritam (round-robin) je algoritam projektovan specijalno za sisteme sa deljenjem procesorskog vremena. Kod ovog algoritma je red spremnih procesa podeljen u više redova. Varijanta SJF algoritma sa prekidanjem naziva se SRTF (Shortest-Remainig-Time-First). Trajanje prebacivanja konteksta zavisi od brzine memorije. Kod višenivovskih redova sa povratnom spregom Operativni sistemi . Ono je kraće ako većina poslova svoju CPU aktivnost završava za jedan kvantum vremena. dok SJF bez prekidanja dozvoljava da se dovrši tekući posao. Novi posao može da ima kraći CPU ciklus nego što je potrebno za dovršetak posla kome je već dodeljen procesor. Dilema nastaje kada novi posao stiže u red spremnih procesa dok se prethodni posao izvršava. ponašanje ovog algoritma teži ponašanju FCFS algoritma. 3. po isteku kvantuma vremena. zatim ide na sledeći. Ako taj kvantum vremena teži beskonačnosti. U varijanti bez prekidanja novi proces ostaje u redu spremnih procesa do završetka tekućeg posla. Svaki red ima sopstveni algoritam planiranja. uobičajena je podela na poslove u prvom planu (interaktivni) i poslove u pozadini (paketni). Iza toga. Definiše se mala jednica vremena (kvantum vremena) koja se kreće između 10 i 100 milisekundi.3. SJF sa prekidanjem će prekinuti posao koji se trenutno izvršava. Moguće je da se desi jedna od dve stvari. postavlja tajmer na vreme od jednog kvantuma i dodeljuje CPU procesu. Sve nas ovo navodi da je bolje imati duži kvantum vremena.3. Prebacivanje procesora sa jednog na drugi proces zahteva pamćenje sadržaja svih registara starog procesa i punjenje registara za novi proces. Poslovi koji pristižu svrstavaju se u odgovarajući red.predavanja 17 . i proces stavlja na kraj reda. 3. Ako je prioritet novog posla viši. gde je neophodno da svaki korisnik dobije deo procresorskog vremena u pravilnim intervalima. Algoritmi bez prekidanja (naročito FCFS) nisu pogodni za sisteme sa deljenjem procesorskog vremena. ali to onda konvergira ka slabom FCFC algoritmu. Proces može da ima CPU ciklus kraći od vremenskog kvantuma. Na taj način posao koji je prvi u svom redu može dobiti procesor na korišćenje isključivo ako je red višeg prioriteta prazan. Planiranje procesa na osnovu prioriteta takođe može biti sa i bez prekidanja. Planer procesa svakom procesu iz reda dodeljuje CPU na korišćenje tokom intervala koji je manji ili jednak kvantumu vremena. broja registara i postojanja specijalnih instrukcija.8 Višenivovski redovi sa povratnom spregom Normalno se kod višenivovskih redova čekanja poslovi dodeljuju redovima po njihovom ulasku u sistem. 3.3. U praksi se najčešće teži da kvantum vremena bude u 80% slučajeva bude duži od trajanja CPU aktivnosti. Planer procesa bira prvi proces iz reda. round-robin se naziva deljenje procesorai teoretski izgleda da svaki od nprocesa u redu ima sopstveni procesor koji je nputa sporiji od stvarnog procesora. red spremnih procesa se realizuje kao FIFO red procesa. Novi proces se dodaje na kraj reda. Kada posao pristiže u red spremnih procesa njegov prioritet se poredi sa prioritetom posla koji se izvršava. Medjutim. sa stanovišta softvera postoje drugi problemi. Na primer. a između samih redova postoji fiksiran prioritet. U tom slučaju on sam oslobađa CPU izdajući U/I zahtev ili terminiranjem. Na kraju svakog kvantuma vremena tajmer generiše prekid. U drugom slučaju. Red spremnih procesa realizovan je kao kružni red. tekući posao će se prekinuti i procesor dodeliti novom poslu. Ovaj zadatak se naziva prebacivanje konteksta. da izazove prekid. Ovakvo rešenje primenjeno je hardverski kod računara CDC 6600 za implementaciju deset perifernih procesora sa jednom ALU i upravljačkom jedinicom i deset skupova registara. a uz to interaktivni poslovi mogu imati eksterno dodeljen viši prioritet od poslova u pozadini.

Ideja je da se izdvoje poslovi sa različitim karakteristikama CPU aktivnosti.8). Ovaj algoritam ostavlja poslove orijentisane U/I aktivnostima i interaktivne poslove u redovima višeg prioriteta (vidi sliku 3.dozvoljeno je kretanje poslova između redova. Ako posao koristi previše CPU vremena premešta se u red sa nižim prioritetom.predavanja 18 . Operativni sistemi .

Sistem prekida je hardverski sistem na CPU. Prelaz iz jednog u drugo stanje kontroliše kernel. Dokazivanje korektnosti asinhronih programa se vrši pomoću kontra primera.ASINHRONI KONKURENTNI PROCESI PROCES Proces je jedna od osnovnih stvari u OS. Obično postoji jedan sistemski stek koji se inicijalizuje po uključenju računara u strujno kolo i koristi ga isključivo sistem. Izvršnom. a ne paralelno što je moguće jedino na multi procesorskim sistemima. Stanje varijabli je drugi važan deo. Proces koji je blokiran prvo obavi I/O. nula. Programi koji koriste SP su nezgodni za testiranje i dokazivanje da su korektni. Na najnižem nivou samo dodeljuje vreme procesima. Kod MP OS više programa se izvršava konkurentno. Kako je vreme prelaska sa jednog na drugi program veoma malo. Izvrši se i vrati se na memorijsku lokaciju odakle je pozvan. hardverski SP koji ne može da se isključi. Najveći problem je u tome što čovek misli sekvencijalno. Procesi se mogu nalaziti u tri stanja. a zatim prelazi u suspendovano stanje. Svi ovi podaci se koriste za informacije o stanju procesa. Tu se čuvaju informacije o rezultatu predhodnih operacija(da li je rezultat negativan. Ovo se vrši jer ukoliko ima previše procesa u memoriji za svaki od tih procesa u memoriji ima malo koda što dovodi do zagušenja sistema jer CPU po obradi instrukcija iz memorije mora da čeka da se nove učitaju sa diska. Posebno je važan registar flag-ova. SP radi slično programu koji treba da se izvrši. Programu koji se brine o svemu ovome omogućavaju rad sistem prekida i stek. Postoji još jedan. ne zna se kada će uslediti zahtev za SP. a njegov sadržaj ne sme biti menjan od strane korisnika. U TS sistemima termin je bio TASK. Postoji više bitnih stvari koje su neophodne za izvršenje procesa. Razlika u radu je u tome što su podprogrami kontrolisani od strane programera. a i stanje steka je neophodno čuvati. Ranih 70-ih svi mikroprocesori imaj ugrađen SP. Stanje brojača naredbi je bitan deo. Za pristup podacima potrebno je čuvati početnu i krajnju memorijsku zonu rezultata. Stek je neophodan za realizaciju sistema prekida. a takođe i stanje registara. SP je osnovni mehanizam CPU-a koji omogućava MP. manje službeni. postoji običan interupt koji se vezuje na neki pobuđivač i koji može da se isključi. isto važi i za obrnut slučaj. Pristup steku se vrši po LIFO sistemu. Proces iz suspendovanog stanja se po pravilu vraća u spremno stanje. ali korak nazad nema smisla.. Za proces je bitno koja je sledeća instrukcija. Nestanak struje). je jedna od njih. Izvršava se deo jednog programa pa drugog pa sledećeg i tako u krug. a onda sam sebe blokira. Suštinska razlika imeđu SP-a i prelaska na podprogram je u načinu programiranja. Glavni je no mascable. a i sam korisnik može da definiše svoj stek. spremnom i blokiranom. Proces prelazi u blokirano stanje kada izda I/O zahtev. Nisu kontrolisani. Na višem nivou se bavi dodeljivanjem memorije.). Teoretski je moguće da proces pređe iz suspendovanog u izvršno stanje ali se to ne radi u praksi..predavanja 19 . Logika pri pisanju paralelnih i asinhronih programa se razlikuje od logike koju čovek koristi pri razmišljanju. Takođe se može koristiti za prenos argumenata u podprogram. Blokirani procesi mogu biti suspendovani. Kada završi I/O prelazi u spremno stanje. stek preko kojeg se obično prenose parametri u podprograme. Postoje neke ne sasvim precizne definicije procesa.. ali se u nekim stvarima razlikuje. Obično svaki CPU ima više SP. Za ispravano korišćenje steka neophodno je čuvanje pointera na stek. Operativni sistemi . kao i za prelazak na podprogram. Postoje razni termini za procese. a one koje su se izvršile više nisu bitne. Kada se procesu dodeli memorijska lokacija ona ne treba da se menja do kraja izvršavanja tog procesa. što je ime za pojedine faze jednog istog posla. CHILD procesi su takođe TRED-ovi. To je glavni hardverski dodatak CPU. CPU ne može da radi bez steka. da li je došlo do prekoračenja. Koristi se za slučajve pada sistema(npr. SP su asinhroni signali.. Danas je popularan termin TRED. Program koji kontroliše rad proces izvršava se na raznim nivoima. Zbog toga je važno sačuvati flag-ove. Tipičan program radi dok ne dođe do I/O zahteva. Pored ovog. Proces je program u izvršenju. Ceo rad do tada je akumuliran negde u memoriji. Programi se izvršavaju malo po malo. U sistemima može postojati još stekova koji se obično zovu pomoćni. Suspendovanje procesa vrši isti deo kernela koji vodi brigu o dodeli memorije procesima. U BATCH sistemima zvali su se JOB. Njegov rad je sličan procesu prelaska na podprogram. Kada ima suviše procesa u memoriji ovaj program suspenduje jedan ili više procesa na određeni vremenski interval dok se sistem ne odguši. gledano spolja programi se izvršavaju paralelno. i tačno se zna kada će biti prelaz na podprogram. Život jednog procesa prolazi kroz te tri faze. koliko procesa može biti u memoriji.

Neka je u glavnom programu deklarisana promenljiva naredu tipa integer koja se postavi na vrednost 1. ASINHRONI PROGRAMI Prilikom pisanja programa na papiru uobičajeno je da se korisnti neki pseudo programski jezik.. a zatim čeka da drugi primi bit. Isključivanje interapta se primenjuje u situacijama kad je u kritičnoj sekciji mali broj instrukcija. Sinhroni način slanja između ova dva računara bi bio u praksi problem ako bi jedan slao veliki niz 0 ili 1. To je zato što CPU svemu pristupa na uniformni način(npr. Pošiljalac Primalac X = Novi. zatim primi i čeka da mu prvi javi da je video da je primljen bit. keš memorija. Ovo je uobičajen način prekida. Drugi prvo čeka da prvi pošalje. Prilikom potpunog prekida na stek se prenose svi podaci.  Uslov konačnog čekanja. flag-ovi i možda još nešto ako je potrebno. while(B == 1). B = 0. Prilikom pisanja asinhronih programa imamo više problema. Operativni sistemi .  Uzajamna isključivost. proces koji nije u kritičnoj sekciji i ne želi da uđe u nju ne treba da ometa druge procese da uđu u nju. Potpuni i brzi. mora da postoji granica koliko jedan proces može da čeka. Rešenje sa isključivanjem interapta se ne primenjuje često. U kritičnoj sekciji u jednom trentuku može da bude samo jedna procedura. Kada drugi primi bit. Ovo je korisno za prekide koji se generišu prilikom učitavanja karaktera sa tastature. sve posmatra kao fajl). kontrola tastature. ne mogu dva procesa u isto vreme da budu u kritičnoj sekciji. Kao što su OS.  Uslov progresa. Službene reči PARBEGIN i PAREND se koriste za pisanje programskih delova koji se izvršavaju asinhrono. Onda drugi javlja da je spreman da prihvati sledeći bit. Ranije se za ovo tražilo čisto softversko rešenje. Opštije rešenje treba da zadovolji nekoliko uslova. Najveći problem ovde je taj što nije dobro definisano šta je kritična sekcija. Problem je jer pri velikim brzinama neće oba sata isto raditi tako da će doći do greške. U tom slučaju programer moda da vodi računa šta se radi u toku prekida i da pazi da se sačuva sadržaj svih registara.predavanja 20 . while(B == 0). Ono može na bilo kojoj platformi da se implementira. Ovo je jedini način za asinhrono slanje podataka između računara pomoću tri žice. Program na pošiljaocu radi tako što pošalje jedan bit i javi drugom da je poslao. sadržaj svih registara. Onda se na steku čuva samo sadržaj registra u koji će se učitati karakter koji stiže sa tastature. B = 1. A kontrolna od pošiljaoca ka primaocu. Problem je napraviti programe za slanje i primanje. X je žica kojom se šalju bitovi. SOFTVERSKA REŠENJA Postoji više ovakvih rešenja. jer više softverskih delova u današnjim računarima zavisi od sistema prekida. prvi čeka da drugi bude spreman da prihvati sledeći bit pa tek onda šalje i tako u krug. Tri žice(jedna za podatke i dve kontrolne) su minimum za asinhronu razmenu podataka.Postoje dva tipa sistema prekida.. B kontrolna obrnuto. Adresa povratka. while(A == 1). A = 0. Novi = X. a jedina veza im je jedna žica. Prvi problem je komunikacija dva računara koji nemaju zajednički sat. A = 1. Nekada je potrebno prekid realizovati brzo. while(A == 0). Onda dva paralelna procesa imaju listing. CPU ovih računara žicu posmatra kao jedan jedno-bitni registar. Ukoliko se po prekidu obavlja neki mali posao za koji se zna tačno šta radi gubljenje vremena je prenošenje na stek svih podataka izuzev adrese povratka. Kasnije se okreće hardverskim rešenjima koja se sastoje iz niza nedeljivih mašnskih instrukcija. Da procedura u kritičnoj sekciji ne bi bila prekinuta mora se onemogućiti prekid.

} } // Kritična sekcija // Kritična sekcija naredu = 2. . zove se alternirajući svič. hoce2 = 0. while(naredu == 1). se pojavljuje Pitersonov algoritam koji radi slično Dekerovom. Ovo rešenje je dobro za problem sinhronizacije. Kod ovog rešenja se javlja problem da nije zadovoljen uslov uzajamne isključivosti. while(naredu == 2). hoce2 = 1. Proces 1 . Jedan proces vidi da je ulaz u kritičnu sekciju slobodan. hoce1 = 1. Ovo rešenje ispunjava samo uslov uzajamne isključivosti. Kod ovog rešenja se javlja problem ukoliko je jedan proces mnogo brži od drugog. hoce2 = 0. . U praksi se obično radi sa više procesa. tipa boolean. while(hoce2) while(hoce1) if(naredu == 2) { if(naredu == 1) { hoce1 = 0. . while(moze == 0). while(hoce2). Proces 1 Proces 2 . // Kritična sekcija // Kritična sekcija moze = 1. 1965. Ovde. istog tipa. hoce2 = 1. . . hoce1 = 0. while(naredu == 1). Zato se uvode dve promenljive hoce1 i hoce2 umesto moze. Ovde dolazi do uzajamnog zaključavanja. moze = 0. hoce1 = 1. Ispunjen je samo prvi uslov. se pojavljuje Dekerov algoritam za dva procesa. while(naredu == 2). . // Kritična sekcija naredu = 2. // Kritična sekcija hoce2 = 0. while(moze == 0). U glavnom programu se deklarišu dve globalne promenljive tipa boolean i jedna tipa integer i njima se dodeli nula. // Kritična sekcija hoce1 = 0. naredu = 1. . . hoce1 = 1. while(hoce1). Tada taj proces može ponovo ući u kritičnu sekciju jer je drugi toliko sporiji da nije stigao da uđe. Paralelni proces ima sledeći listing. Druga ideja je da se uvede promenljiva moze. . Proces 1 Proces 2 . Operativni sistemi . .Proces 1 . ukoliko jedan proces ne želi da uđe u krtičnu sekciju on onda blokira drugi. . Proces 1 Proces 2 . moze = 1. 21 . . // Kritična sekcija naredu = 1.predavanja Proces 2 . . hoce2 = 1. Proces 2 . moze = 0. ali nije stigao da spreči drugi proces da takođe uđe u kritičnu sekciju. 81.

Dok su predhodni algoritmi bili isključivo za dva procesa. Ovde je obezbeđeno da procesi naizmenično ulaze u kritičnu sekciju bez obzira na njihovu brzinu. naredu = 1. hoce2 = 1. TAS operiše sa dve promenljive. else Operativni sistemi . Statistički ovaj algoritam dobro radi. naredu = 2.predavanja 22 . Mana ovog algoritma je što je ovo rešenje samo za dva procesa. while(nemoze) nemoze = TAS(zauzeto). Ukoliko se želi garancija konačnog čekanja algoritam se mora modifikovati. // Kritična sekcija hoce1 = 0. TAS . Promenljive A i B moraju biti boolean tipa. Sintaksa je FAA(A. B) prebacuje B u A i B+A u B. takođe. ceka[i] = 0. while(j != i && ceka[j] == 0) j = (j+1) mod n. Sintaksa je A = TAS(B) prebacuje B u A i 1 u B. Prednost je ta što radi brže i može raditi za n procesa bez ikakve modifikacije. pre promene vrednosti. SWAP . if(i == j) zauzeto = 0. umesto TAS može koristiti SWAP. najavim da hoću. Ovde se. Te instrukcije su.hoce1 = 1. Loša strana rešenja uz korišćenje TAS instrukcije je ta što je to hardversko rešenje. nemoze = 1. Da bi se ušlo u kritičnu sekciju. . Proces 1 . To je uslovna mana jer nemaju svi CPU ugrađenu tu instrukciju.Fetch And Add. Mana je što nema garancije koliko će neki proces da čeka. i promenljiva tipa integer(zauzeto) koja se setuje na nulu. HARDVERSKA REŠENJA Ideja za hardverska rešenja je da se naprave mašinske instrukcije koje su u stanju da rade dve stvari istovremeno bez mogućnosti prekida. dam prednost drugom i čekam dok ovaj hoće i ima prednost. Takođe. && naredu Objašnjenje rada ovog algoritma za razliku od Dekerovog je veoma jednostavno. U glavnom programu se mora deklarisati niz tipa boolean(ceka[n]) koji se setuje na nulu. while(hoce2 // Kritična sekcija hoce2 = 0. SWAP operiše sa dve promenljive. while(hoce2 && naredu == 2). Kod hardverskog rešenja u glavnom programu se deklariše jedna promenljiva tipa boolean(zauzeto) i setuje se na nulu. while(ceka[i] && TAS(zauzeto)). a u svakoj proceduri lokalna promenljiva takođe tipa boolean(nemože). ali teorijski uslov konačnog čekanja nije zadovoljen. FAA . Proces i . // Kritična sekcija zauzeto = 0. B) menja mesta A i B. ovo je čisto softversko rešenje pa je samim tim sporije. . gde je A kod izraza B+A staro A. Sintaksa je SWAP(A. Ovde A i B nemoraju biti boolean tipa.Test And Set. // Kritična sekcija j = i+1.zameni mesta. FAA operiše sa dve promenljive. == 2). ceka[i] = 1.

U glavnom programu se deklariše niz tipa integer(broj[n]) i niz tipa boolean(uzima[n]) i oba se setuju na nulu. Mora se voditi računa da se sadržaj bafera ne prepiše pre nego što drugi proces pročita. Za implementaciju ovog rešenja biće nam potrebno par definicija. A2. broj[i] = max(broj[0]. Ovim se isključuje aktivno čekanje... j<n.predavanja 23 . Ako se semafora implementira kao deo kernela onda se definiše kao slog koji se sastoji iz dva dela. Varijabla S je zaštićena.B) < (C. while(broj[j] != 0 && ((broj[j]. Ovaj i slični problemi se moraju rešiti prilikom izgradnje OS. Semafore rešavaju problem aktivnog čekanja.. ali ne po svaku cenu. for(j=0. Iako ovaj algoritam garantuje konačno čekanje on se ne koristi u praksi. Operacija V povećava za jedan varijablu do jedan. uzima[i] = 0.D) ako A<C ili A=C i B<D. kada jedan proces radi sa njom ni jedan drugi nema pristup. Operacija P smanjuje varijablu za jedan do nule. Tada operacije P i V imaju sledeći oblik. Ako je aktivno čekanje vrlo kratko onda nema smisla ukljanati ga. tako je statistički ispalo. Ovo rešenje je sporije. a kad bude slobodan da uđe u kritičnu sekciju nastavi sa korišćenjem CPU vremena. . što dovodi do slabijeg iskorišćenja CPU. Uopštenje Pitersonovog algoritma za n procesa predstavlja Lamportov algoritam(pekarski algoritam). a o ostalom se brine kernel } V: s++. a ako je jedan ništa ne radi. .. Listing procedure. Prva promenljiva je tipa integer. An) = K takvo da je K  Ai . if(s<0) { // Proces traži da uđe u kritičnu sekciju // Proces se stavlja na listu i čeka. a takođe da proces koji čita ne pročita više puta isti sadržaj. Jedna od definicija semafore je ta da je semafora specijalna varijabla nad kojom mogu da se vrše samo dve operacije P i V. Procedura je neefikasna jer svima nudi da pređu u kritičnu sekciju. što dovodi do trošenja CPU vremena. Generalna ideja je da aktivno čekanje treba uklanjati. uzima[i] = 1. Za ove operacije se koriste još imena down(s) i up(s).. Definišemo da je (A. a druga je lista procesa koji čekaju. } // Kritična sekcija broj[i] = 0. Postoje razni problemi koji se rešavaju ovim algoritmima. i)). max(A1. Proces i . Kao što je problem ograničenog bafera. j) < (broj[i]. a ako je nula ništa ne radi. . i = 1. Jedan proces vrši upis u bafer dok drugi čita. broj[n-1]).. j++) { while(uzima[j]).. P: s--.n. ili wait(s) i signal(s). if(s0) { // Skida se jedan proces sa liste i javlja se kernelu da taj proces propusti } Operativni sistemi . Aktivno čekanje nije uvek zlo. Semafora je struktura koja može da blokira proces do određenog vremena i da ga propusti posle određenog vremena. pored standardnih operacija kreiranja i uništavanja. Zato se dolazi na ideju da kad proces ulazi u mrtvu petlju oslobodi CPU. Svi algoritmi se zasnijvaju na ideji aktivnog čekanja.ceka[j] = 0. SEMAFORE Semafore predstavljaju način da se Dekerov algoritam lepše upakuje.

down(mutex). down(mpis). up(mutex). if(brcit == 1) down(mpis).Jedan od klasičnih problema je problem kružnog bafera. Pazi se da se bafer ne prepuni ili ne čita prazan. Potrebne su još dve brojačke semafore. stavi_element(). Za ovo rešenje je važno da se pazi da pokazivač procesa koji upisuje bude uvek ispred pokazivača procesa koji čita. down(pun). down(prazan).5. 24 . i varijablu koja broji čitače. Imena semafora će biti mutex(uobičajeno ime za semaforu koja obezbeđuje ekskluzivan pristup). Dok može više čitača da pristupa bazi. jedna broji prazna. Proces Proizvođač . Proces Čitač Proces Pisač . // Stavi element kolicina++. Prilikom stavljanja ili uzimanja elementa iz bafera mora se još paziti i na pokazivače i njihovu poziciju. up(mutex). up(mutex). Mpis = 1. up(prazan). down(mutex). jer ako je njena vrednost 5 po obavaljanju inkrementa(dekrementa) ne može se tačno predvideti njena vrednost. pun. brcit--. proizvede(). piše. down(mutex). a druga puna mesta. Dok jedan pisač radi sa bazom ne sme više ni jedan drugi proces da pristupa bazi. Ovde se javlja problem prilikom rada sa promenljivom kolicina. up(pun). uzme_element(). . // Uzme element kolicina--. . Rad sa promenljivom kolicina se mora ograditi u kritičnu sekciju. if(brcit == 0) up(mpis). Proces Proizvođač Proces Konzumer . while(kolicina == n). konzumer. pun = 0. Modifikacija ovog problema je problem čitača i pisača. Operativni sistemi . Modifikacija ovog rešenja se može napisati uz pomoć semafora. down(mutex). parbegin proizvođač. Glavni Program mutex = 1. brcit++. Potrebna je jedna semafora tipa boolean koja obezbeđuje da samo jedan proces može da radi sa baferom. prazan = n. parend. To je niz sa dva pokazivača.6. brcit = 0. Ovo rešenje pored mutex semafore sadrži i mpis koja ograničava pristup čitaču.predavanja . čita. ali ne sme ni jedan pisač. up(mpis). while(kolicina == 0). Proces Konzumer . prazan. Kako se ove operacije sastoje od nekoliko mašinskih instrukcija prekid neke od njih može dovesti do pogrešnog rezultata tako da promenljiva može uzeti vrednosti 4.

Ovde je sinhronizacija između pisača jednostavna. Ovo nisu brojačke semafore. Ovde se koriste deljene varijable. Proces Proizvođač Proces Potrošač region bafer while(imaih<n) { region while(imaih>0) { skladiste[slsl] = novi_pod. c--. imaih : integer end. ne može se javiti mogućnost da bude uvećano samo za jedan. down(s2). Signal budi proces ako neki proces čeka. U toku izvršavanja s1 i s2 ne mogu biti prekinuti(atomsko rešenje). da li je Operativni sistemi . Realizacija brojačke semafore pomoću dve binarne. if(c<0) { if(c0) up(s1). ali se ne garantuje u kojem će se redosledu izvršiti. nruz. Ovde se javlja veliki broj problema koje treba rešiti. Deklaracija se vrši. Problem je taj što čitači imaju potpuni prioritet što može dovesti do predugačkog čekanja čitača. Monitori su strukture koje imaju procedure za inicijalizaciju. wait i signal. region x while (true) s1. novi_uzeti skladiste[nruz]. down(s1).up(mutex). na čije ime. a ako ne signal će biti izgubljen. } } bafer = nruz++ MONITORI Kod rešenja sa monitorima koriste se specijalne varijable koje su uslovne. Ako s1 i s2 povećavaju x za jedan posle izvršenja oba procesa x će sigurno biti uvećano za dva. rad sa signalima i procesima koji čekaju da budu probuđeni. up(s2). up(s1).n-1] of tip. var x : shared tip var bafer : shared record skladiste : array [0. KRITIČNI REGIONI Kritična Sekcija je deo koda kome može imati pristup samo jedan proces. Sintaksa ovih operacija je x : wait ili wait(x). region x while (true) s2. imaih--. else } up(s1). Slanje prouka se koristi kod povezanih sistema sa posebnim CPU koji ne dele istu memoriju. Potrebne su dve semafore s1 i s2 i jedna varijabla c.predavanja 25 . down(c) up(c) down(s1). Nad njima su definisane samo dve operacije. slsl. Pristup deljenim varijablama je moguć samo u delu programa koji je označen sa službenom rečju region. Kritični Region je implementacija pristupa Kritičnoj Sekciji na višem PJ. imaih++. slsl++ mod n. tipa condition. Kome se šalje poruka. c++. Ovo je primer deklarisanja deljenih varijabli gde su slsl i nruz sledeći slobodan i na redu za uzimanje iz primera procedura za proizvođača i potrošača. mod n.. Kod ovakvog rešenja smanjuje se mogućnost greške.

. Ne može se desiti da jedan. . jer ma koliko da je spor on će jednog trenutka doći do toga da pokuša da uzme viljuške pa će proći proces test i time da najavi da he gladan te da vidi levo i desno Operativni sistemi . == gladan && down(mutex). Rešenje problema potrošača i proizvođača uz pomoć monitora. up(mutex). Ovim je obezbeđen paralelizam da mogu dvojica da jedu. i da ne može jedan samo da se smenjuje. a onaj drugi koji je spor neće moći da jede. prestane da jede. Da bi neko jeo treba da ima dve viljuške. test(levi). malo jede). stanje[i] = razmislja. test(i). } } proces entry uzmi if(imaih == 0) wait(pun). IPC (Inter Processor Communication) su standardni problemi ovog tipa. Proces i while(true) { razmislja(). (malo razmišlja. vrativiljuske(i). Potrebno je simulirati rad filozofa.. Jedan od zadataka je. if(imaih == n-1) signal(pun). Ukoliko širi krug kompjutera razmenjuje poruke uvode se i domeni. imaih : integer. mutex i niz stanje(0. Za okruglim stolom sedi pet filozofa i pred svakim je tanjir.predavanja 26 . parbegin filozof(0). stavinovi(). test(desni).. imaih++. end.4) tipa semafora. a između svaka dva je viljuška.dozvoljena različita dužina poruka.4). up(mutex). da li će primaoc da primi poruku. jede(). if(imaih) signal(prazan).. monitor pro_pot pun. prazan : condition. Rešenje se svodi na korišćenje Internet adresa. imaih--. down(s[i]). ali opet brzo uzme viljuške. Proces Test(i) if(stanje[i] stanje[desni] != jede) up(s[i]). filozof(4). proces entry stavi { { if(imaih == n) wait(pun). stanje[i] = gladan. parend. Proces uzmeviljuske(i) Proces vrativiljuske(i) down(mutex). ako je brz. uzmeviljuske(i). uzminovi(). Potrebno je deklarisati niz s(0. stanje[levi] != jede && Ovde se mora uvesti neka vrsta prioriteta jer trojica mogu da izgladne drugu dvojicu.

memorija. Procesu nije bitno da li će dobiti vreme sada ili malo kasnije i da li će dobiti komad memorije na ovom ili onom mestu. a ni čitači ne smeju u to vreme da čitaju jer će da pročitaju pogrešno. Oni se dele na: PREEMPTIVE – koji se mogu prekidati NON-PREEMPTIVE – koji se ne mogu prekidati Ovi prvi su CPU. a taj drugi zahteva neke koje drži neko treći… poslednji zahteva one resurse koje drži onaj prvi. Često se javlja tamo gde ima više procesa zainteresovanih za čitanje i pisanje. Standardnije rešenje je da se prednost da čitaču jer ako prednost da pisaču. sa ograničenjem da što mora biti manji od brojača pisača. memorija. jer ne sme da se prekida pošto rezultati štampanja ne bi imali smisla. a drugi ono što je potrbno prvom. Treba definisati neke resurse koji se zovu REUSABLE. a čekaju. Zato se pribegava kompromisnom rešenju. Praksa pokazuje da čitača može da ima više. Postoje razni stepeni rešenja za otklanjanje blokiranja. a pisač može da bude samo jedan u jedno vreme. To nije najbolje rešenje jer čitanje ne traje dugo i nema smislga prekidati ga. Problem je kada pisač izađe kome da da prednost. Ili ako proširimo na sistem: sistem je blokiran ako sadrži proces koji je blokiran. pisača može da bude mnogo i da čitača dugo drže blokiranog. Postoje razna rešenja kojim redosledom da se zadovoljavaju zahtevi koji pristignu.   Sprečavanje – to su duboke sistemske mere kojima se isključuje mogućnost blokiranja Izbegavanje – to je nešto blaža forma. Jedna varijanta je da se pisačima da apsolutna prednost. Dead Lock Proces je u Dead Lock-u ako čeka na događaj koji se nikada neće desiti. procesor) i softverski (semafore. datoteke. Do blokiranja može doći sa takvim uređajima. No Preemtion – jedan posao se vrši neprekidno Kružno Čekanje – postoji lanac procesa koji čine krug sa uslovima čekanja. Ako su dva nesusedna brza i zgodno se izmenjuju oni mogu da izgladne onog između sebe. da se svi durgi procesi prekidaju kada dođe zahtev za pisanje. Ako se bilo koji od ovih uslova ukloni neće doći do blokiranja. a zahteva podatke iz baze. To se obično dešava kada jedan proces drži ono što je potrebno durgom. Oni ne mogu da monopolizuju sami da stalno jedu jer moraju da nude levom i desnom. Štampa na štampaču. ali sada pošto je najavio čekanje ima prednost pošto drugi spuste viljuške. Takođe brojač čitača ne sme da zaostane za brojačem pisača više od n jer će pisač upisati podatke preko podataka koje čitač još nije pročitao. Izgleda da onaj između njih nikad neće moći da jede.da li su slobodne viljuške. Jedan drži neke resurse. a čeka čeka neke durge koje drži neko durgi. Možemo da uvedemo da oni što čitaju ne mogu da budu prekinuti. Problem je ako mnogo čitača jedan za drugim zahtevaju čitanje. slogovi u bazama). Oni koji stignu čekaju da završe svi koji su ispred njih. Kružni bafer je sličan primeru sa proizvođačem i potrošačem. Ako pisač hoće da upiše u bafer dužine n 10 000 podataka njegov brojač će ići od 1 do 10 000 po modulu n. Problem čitača i pisača. Resursi su hardverski (disk.predavanja . ali oni mogu da rade to da uvek daju levom i kad on zavrđi oni opet da dobiju viljuške. Ako nema viljuški onda će on da najavi čekanje. Njemu je samo važno da dobije određenu količinu vremena i memorije. Rešenje je da se čitači koji su stigli pre pisača ne prekidaju. isto tako će ići i brojač čitača. Postoje četiri neophodna uslova koji dovode do blokiranja:     Mutual Exclusion – u jednom momentu jedan resurs može da drži samo jedan proces Wait and Hold – proces drži resurse sa kojima radi. a yahteva one koji mu trebaju. Nije sve u napred osigurano da ne dođe do blokiranja 27 Operativni sistemi . time sprečavaju pisača da piše. Tipičan primer drugih resursa je štampač.

predavanja 28 . inače se javlja blokiranje pa je moguće jedan od zablokiranih procesa uništiti. Takođe se može zahtevati maksimalni odziv sistema. Najbolji odziv će viti ako resursi nisu uposleni. Važno je i blago padanje sistema. što podrazumeva da sistem postepeno reaguje na preopterećenost. To je politika bez prekidanja – kada jedan proces dobije resurse drži ih sve dok ne Operativni sistemi . Ako se procesu može dodeliti sve što zahteva onda će to i da mu se dodeli. Dispečar niskog nivoa određuje kakvu politiku treba voditi pri dodeljivanju CPU procesima. ali je slaba iskorišćenost resursa Dodeljivanje svih resursa odjednom – svaki proces ima listu resursa koje zahteva. a realni procesi unapred takve stvari ne znaju.  Detekcija i oporavljanje – obuhvata otkrivanje zablokiranosti. Ako ima više procesa da trenutno izvršava njihove zahteve. flagova…). Postepeno padanje podrazumeva sve slabije vreme odziva. Svi procesi u napred moraju da saopšte svoje maksimalne zahteve i onda će na osnovu toga da im se dodeljuju resursi. Kod starijih CPU programer je morao svaku od ovih operacija posebno da obezbedi. Drugi u spurotnom slučaju. ali je više od teoretskog značaja. Nekakav red postoji. Sledeći je maksimalna iskorišćenost sistema ili maksimalni protok. što znači da niko ne čeka predugo. tipa procesa… Dva kriterijuma su uvek suprotstavljena. Otkrivanje Dead Locka Rešenje je dobijeno korišćenjem grafova. Bitno za ovaj algoritam je koncept sigurnoga stanja. Ako se nađe proces koji može biti zadovoljen onda će on jednog trenutka da završi i otpusti ono što je držao tako da graf može da se redukuje. Ako neko nešto drži onda ide strelica od kružića pre njemu. Do najboljeg rešenja se ne može doći maksimalnim zadovoljenjem kriterijuma. Proces koji drži resurse nekih klasa može da dobije samo resurse iz viših klasa. Prva i najjednostavnija politika dodeljivanja CPU je da se CPU dodeljuje procesima kako pristižu. Prvi zahtev se zadovoljava tako što se svi resursi maksimalno iskoriste(preopterete). Ne znači da ako stanje nije sigurno da će doći do blokiranja. ako ne onda će da čeka momenat kad to bude moguće Rad sa klasama resursa – svakoj klasi resursa se dodeljije jedan broj. U memoriji je napunjeno više programa koji trebaju biti izvršeni i sada je pitanje na koji način. Šta ko drži predstavlja se strelicom od kruga ka procesu. Ako se takvim postupkom graf redukuje na nulu onda sistem nije blokiran. Jedan od njih je pravednost. Postoje razni kriterijumi na osnovu kojih on dodeljuje CPU raznim procesima. akumulatora. Upravljanje Procesorom CPU spada u priemtiv resurs (koji mogu da se prekidaju). Nije dobro da kad se preoptereti odmah padne. Prvi uslov se ne uzima u obzir jer se ne može eliminisati. Moguće politike su:      Ne daj nikad nikome ništa – do blokiranja neće doći zato jer niko ništa ne radi ali to je isuviše visoka cena Serijalizacija – mogu da idu jedan za drugim. Neka nam procese predstavljaju kvadratići. ako je to moguće. Da bi se CPU prebacio sa jednog procesa na drugi mora se uraditi context switching(pamćene svih registara. Procedura za otkrivanje blokiranja se sastoji u traženju procesa koji može da bude zadovoljen. On odlučuje kome će dodeliti svaku sledeću mikrosekundu. uništavanje procesa koji su blokirani i eventualno. Ovaj algoritam je teorijski dobar. ali u praksi ima ozbiljna ograničenja. a resurse krugovi. spašavanje nečega od njihovog prethodnog rada Ne preduzimanje ničega – statistički razumno ako se Dead Lock retko pojavljuje i ako se ne radi o mnogo važnim poslovima Postoje razne politike kako se može izbeći blokiranje koje se svode na eliminisanje jednog od tri uslova pretposlednje liste. Dobio je ime jer liči na sistem davanja zajmova. da računar obradi što više poslova za izvesno vreme. jer su neki od njih u izvesnom smislu kontradiktorni. Sigurno stanje je ako postoji način da procesi završe svoj posao. a klase resursa veliki krugovi. već da može doći. Bankervo algoritam – prilično je liberalan. FIFO. a kod novijih postoji jedna instrukcija koja obavi sve to. Dobro rešenje mora imati kompromisni karakter koje zavisi od okruženja sistema. To su maksimizovanje propusne moći i minimizovanje odziva. Ovo se može programski implementirati.

Druga politika. koja je takođe bez prekida. Kao osmobitni se koriste AH. Oni se pojedinačno zovu: Code Segment koji pokazuje gde se nalaze programi Data Segment koji pokazuje na podatke Stack Segment za stek Extra Segment se koristi za šta mi hoćemo Postoje još dva registra i to su: Instruction Pointer tj. Radi se o tome da se prednost da onome čiji je stepen nezadovoljstva najveći. CPU ima i stek pointere SP i BP(Base Pointer). a programer ih samo poziva kao interapte. Proces u nižim slojevima dobijaju ređe vreme. t – vreme koje je proces trebao da provede u sistemu. Moguće su još neke druge razne discipline od kojih se jedna svodi na princip stepena nezadovoljstva. Umesto prosečnog vremena čekanja uvodimo prosečno nezadovoljstvo. pa onda propadne u niži sloj ako nije završio. ECX i EDX. Ipak. ovde su zanemareni neki elementi iz stvarnosti pa zato prethodne politike neće biti tako dobre. a prvi 1. Može se uvesti i druga mera pravednosti.1N sekundi. To su index-registri i zovu se SI(source index) i DI(destination index). SP je sistemski i nesme da se dira. Neka je jedan proces dužine N. 60-ih kada je izmišljen time sharing prva ideja je bila da se svakom od procesa da po mali komad vremena. w – vreme provedeno u sistemu. pošto oni mogu da se koriste i kao 8-bitni. Svim procesima se na početku veruje da su kratki. Mane su neefikasnost i nepravednost. Postoje dva registra koji se nazivaju string-index registri i služe za neke operacije sa stringovima i neke druge stvari. pa sledeći višeg prioriteta gde se dobijaju veći kvantumi… Proces kruži kroz jedan sloj određeno vreme.1N. Matematički se to može izraziti kao (w+t)/t gde je. Proizvođač CPU obezbeđuje tabelu dostupnih funkcija i njihovih efekata. ali u većim kvantumima. onda taj što je radio ide u red. pa se on po tome razlikuje od ostalih registara. Na red dolazi onaj koji ima najkraće preostalo vreme. BX.završi rad. Brojač naredbi Flags u kome se nalaze flegovi Programiranje na mašinskom jeziku sastoji se od pozivanja ugrađenih funkcija i punjenja registra. Stepen nezdovoljstva će da zavisi od toga koliko dugo će da traje neki proces. CX i DX. Ta politika daje prioritet onima koji duže čekaju. U praksi se pokazalo da ona favorizuje kratke procese ne znajući da su kratki. Ta politika se zove round robin. Jedna politika je da red nižeg prioriteta može da dobije CPU samo kada je red iznad prazan. gde se dobijaju mali kvantumi. Tu se postavlja pitanje nakon kog vremena će procesi da propadaju iz jednog u drugi sloj. gde postoji jedan red visokog prioriteta. ali i kraćim procesima. BH.1N. Sledeća četiri registra služe za adresaciju i zovu se segment registri.predavanja 29 . BL… Od CPU 80386 pa na dalje oni su 32-bitni i zovu se EAX. a drugi 0. da bi naglasili da su 16-bitni zovu se AX. Politika favorizovanja kraćih poslovazove se SJF. BP služi za neki pomoćni stek. Ako neki proces radi i pojavi se neki koji će da radi kraće nego što je ovom preostalo. Zanemarno je vreme prekuljučivanja sa jednog procesa na drugi. a taj kraći dobija CPU dok ne završi ili dok se ne pojavi neki treći koji će raditi kraće vreme nego onaj što se trenutno izvršava. je da se prednost da kraćim procesima u cilju da se minimizuje ukupno vreme čekanja. Nad stekovima su definisane operacije push i pop. Sledeća politika je SRTF. EBX. Često korišćena politika u starija vremena je bio sistem višeslojnih prioritetnih redova. C i D.05N sekundi. ako nisu onda propadaju u niži sloj. Koriste se kada treba niz obrnuti pa se jedan koristi za polazni a drugi za rezultujući niz. Arhitektura Procesora Sam CPU sadrži 14 registara (kod PC-a). B. dok je u spurotnom 1. Akumulatori među sobom nisu sasvim ekvivalentni već svaki od njih ima još po neku posebnu namenu. pa će prosečno vreme provedeno u sistemu biti 0. Njima se reguliše pristup memoriji. Operativni sistemi .6N sekundi. U prkasi se najčešće ne zna koliko će neki proces da traje. Teoretski ovo je najoptimalnija politika. Drugi provede u sistemu 0. Ima 4 akumulatora koji 16-bitni i zovu se A. Red procesa se formira kako koji zahtev pristiže i oni se opslužuju tim redom. AL.

Operativni sistemi . CPU pribavlja instrukcije i podatke iz memorije i smešta podatke u memoriju. Program se na kraju preslika u apsolutne adrese i napuni u memoriju radi izvršenja. Svaki od ovih pristupa ima svoje prednosti i mane. a ranije se računar koristio samo u svrhe izračunavanja. paralelnog izvršavanja i analiziranja i jednog i drugog. Stvari se suštinski nisu izmenile od 1945. U većini slučajeva korisnički program prolazi kroz nekoliko koraka pre svog izvršenja. Već 60-ih 32-bitna reč je predstavljala standard u velikim računarima. Sl. U praksi se sada dobija nekakva kombinacija. Na prvi pogled se čini da su 16-bitni računari najpogodniji jer se integer prestavljao i predstavlja sa 2 bajta. Editor veza ili punilac povezuje te relokatibilne adrese sa apsolutnim adresama. Interakcija sa memorijom se odvija kroz niz čitanja ili upisa u lokacije sa određenom adresom. već takt. Centralni položaj memorije u računarskom sistemu. Kasnije dolazi do obrade znakova pa se uvode posebni kodovi. U ovoj glavi ćemo razmotriti različite načine za upravljanje memorijom. Sa idejom da se instrukcije na neki način redukuju. tako da su današnji CISC-ovi daleko od onih u prošlosti. U radnoj se nalaze neki podaci sa kojima se radi. Takođe imaju prednost da mogu da učitaju nekoliko instrukcija unapred. Bajt nije dovoljno velika jedinica pa se više bajtova udružuju u veće memorijske jedinice koje se zovu reči. a najmanja jedinica memorije kojom može da se manipuliše je bit. ali za programera je instrukcija osnovna jedinica. Danas CISC u sebi sadrži neke osobine RISC-a. Posle toga su se pojavili PC koji su u početku bili 8-bitni. Sa 32 bita mogu se predstavljati celi brojevi i brojevi u pokretnom zarezu. Memorija može da se podeli na: radnu i fiksnu. Isntrukcija za računar nije osnovna jedinica.1. Sa ovakvim predstavljanjem brojeva praktične potrebe se u potpunosti pokrivaju. Kompilator obično povezuje te simboličke adrese sa relokatibilnim adresama. U CISC-u postoji veliki set instrukcija. Kao što se može videti sa slike 6. i CPU i U/I sistem komuniciraju sa memorijom. pa da imaju paralelno izvršavanje. ti procesi dele memoriju kao jedan od najvažnijih resursa računara. Kod RISC-a je osnovna ideja bila da se broj instrukcija smanji. a osnovni moto je jedna instrukcija jedan ciklus. razni adresni modovi. Upravljanje memorijom Kod sistema koji mogu da imaju više procesa u memoriji. Memorija je dugačak niz reči ili bajtova koji imaju svoje adrese. jer pomaže kada se mnogo toga učitva odjedanput.Upravljanje memorijom Memorija je neophodan resurs. CISC nije odumro. ali ni RISC nije preovladao. To je zadovljavalo brojače. Razlika između CISC-a i RISC-a RISC je u prevodu skraćenica od redukovani set instrukcija. Adrese se mogu predstavljati na različite načine u toku tih koraka. dobija na značaju ideja o 64-bitnom registru. ali izabran je sistem da jedan bajt je osam bitova. kao što je ASCII za koji je potreban samo jedan bajt. zatim 16-bitni. pa se u RISC-u išlo na to da bude jedna instrukcija jedan takt. U poslednje vreme se pojavljuju 64-bitni računari sa moćnim CPU. da bi danas standard bio 32-bitni računar. Stvar koja se od početka nije menjala je to da je memorija organizovana u bajtove. 6. Tokom izvršenja programa pristupa se njegovim instrukcijama i podacima generisanjem njihovih apsolutnih adresa. Organizacija memorije i komunikacija u njoj ostale su iste više decenija do danas. Kada se program završi njemu dodeljen memorijski prostor se proglasi slobodnim i naredni program može da se napuni i izvrši.predavanja 30 . Svako povezivanje je preslikavanje iz jednog adresnog prostora u drugi. Menjao se kapacitet i brzina memorije. CPU i memorija čine osnonve komponente računara. a CISC od kompletni set instrukcija. Bitovi su mogli i drugačije da budu organizovani. Adrese u izvornom programu su u opštem slučaju simboličke (nazivi promenljivih).1. Algoritmi za upravljanje memorijom variraju od primitivnog pristupa “gole” mašine do strategija straničenja i segmentacije. Memorija je jedan od najbitnijih resursa za rad modernih računarskih sistema. 6.

2. 0 Korisnik 32K Sl. Ovu zaštitu pruža hardver i može se implementirati na nekoliko načina.2). Korisnik ima na raspolaganju golu mašinu i ima potpunu kontrolu nad čitavim memorijskim prostorom (slika 6. Svaka adresa koju generiše korisnički program se poredi sa sadržajem zaštitnog registra. Prema tome. 6. Korisnik ima potpuno upravljanje nad računarom. nema rezidentnog monitora da obrađuje sistemske pozive ili greške.2 Rezidentni monitor Sledeća jednostavna šema je da se memorija podeli na dva dela. na primer.3). 6.predavanja 31 . Zbog svojih ograničenja se ovaj pristup koristi samo kod specijalnih sistema gde korisnici zahtevaju fleksibilnost i i jednostavnost i gde će korisnici želeti da programiraju sopstvene rutine za podrušku. Postoji mogućnost da se rezidentni monitor smesti ili na početak ili na kraj memorije. ali operativni sistem nema upravljanje nad prekidima. moramo da zaštitimo kôd i podatke monitora od slučajnih ili namernih izmena od strane korisničkog programa. Ukoliko je ona manja od sadržaja zaštitnog registra generiše se trap (adresna greška) i operativni sistem preduzima odgovarajuće akcije (obično se terminira korisnički program uz izdavanje odgovarajuće poruke o grešci). Ne postoji potreba za posebnim hardverom niti za sistemskim softverom. jedan za korisnika i jedan za rezidentni monitor operativnog sistema (slika 6. Međutim. ovaj sistem ima i ozbiljne nedostatke. obično se i rezidentni monitor smešta na početak memorije. Zapazimo da jedinica memorije vidi samo niz memorijskih adresa ne znajući kako su one generisane (koji adresni način rada je upotrebljen) i šta predstavljaju (podatke ili instrukcije). Ovaj pristup zaista ima neke prednosti. 6. Operativni sistemi . On obezbeđuje maksimalnu fleksibilnost korisniku i maksimalno je jednostavan uz minimalnu cenu. Gola mašina. najpre pribaviti instrukciju iz memorije. Kako je vektor prekida često na početku memorije. Instrukcija se dekodira i po potrebi pribavljaju operandi iz memorije.1 Gola mašina Do sada najjednostavniji algoritam za upravljanje memorijom je nepostojeći.4. Posle izvršenja instrukcije nad operandima rezultati se smeštaju nazad u memoriju. Opšti pristup je prikazan na slici 6. jer ne pruža nikakve usluge.Tipičan ciklus izvršenja instrukcije će.2. i nema prostora dodeljenog sekvenciranju upravljačkih kartica ili poslova. Glavni faktor koji utiče na odluku o tome je u opštem slučaju lokacija vektora prekida.1 Zaštitni hardver Ako se monitor nalazi u nižoj memorijskoj oblasti a korisnički program koji se izvršava u višoj. 6. već nas interesuje sam niz memorijskih adresa koje generiše program koji se izvršava. možemo da zanemarimo kako program generiše memorijske adrese.

Ovaj kôd će početi od zaštitne adrese i prostiraće se nagore. Takav kôd se ponekad naziva tranzientnimonitorski kôd. a time i zaštitna adresa. Ali. Tada se povezivanje odlaže do momenta punjenja.2. Jedan pristup je da se u hardver ugradi konstantna vrednost zaštitne adrese. Korisnički program se punio u višu memoriju prema graničnoj adresi. ako se vrednost zaštitne adrese promeni potrebno je ponovno prevođenje programa. Opštiji pristup. potrebno je samo ponovno punjenje programa. Postoje dva načina da se modifikuje osnovna šema da bi se omogućila dinamička promena veličine monitora. Alternativa je da kompilator generiše relokatibilni kôd. Ova promena može da utiče na adrese korišćene u korisničkom programu. Ovo rešenje nije fleksibilno pa se često koristi poseban zaštitni registar koji sadrži zaštitnu adresu. vrednost zaštitne adrese mora da bude statička tokom izvršenja programa. kao što je Operativni sistemi . U tom slučaju.5. Međutim.Svaka memorijska referenca koju generiše korisnički program mora da se proveri što usporava pristup memoriji. Ako je vrednost zaštitne adrese poznata u vreme kompilacije može se generisati apsolutni kôd. Operativni sistem koji se izvršava u monitorkom načinu rada ima neograničeni pristup i monitorskoj i korisničkoj memoriji.2 Relokacija Sledeći problem koji treba razmotriti je punjenje korisničkog programa. Iako adresni prostor počinje od adrese 0. Operativni sitem računara PDP-11 koristio je pristup prikazan na slici 6. 6. Neiskorišćeni prostor u sredini omogućavao je širenje bilo monitora bilo korisničkog programa. Načini na koje se implementira zaštitni registar se razlikuju. Povezivanje instrukcija i podataka sa memorijskim adresama može se izvršiti ili u vreme kompilacije ili u vreme punjenja. je da se odloži povezivanje adresa do vremena izvršenja. prva adresa u korisničkom programu nije 0. Ova šema dinamičke realokacije zahteva nešto drugačiju hardversku podršku. kod promene zaštitne adrese. korišćen kod računara CDC 6600. ima slučajeva kada je poželjno da se menja veličina monitora tokom izvršenja programa.predavanja 32 . U oba slučaja. već prva adresa posle vrednosti u zaštitnom registru. Vrednost u zaštitnom registru može se menjati privilegovanim instrukcijama u monitorskom načinu rada.

Operativni sistemi . ako nije. prebacuje proces koji je trenutno u memoriji na disk a učitava željeni proces.6. Glavna komponenta vremena potrebnog za prebacivanje konteksta je vreme prenosa. koja je dovoljno velika da prihvati memorijske slke za sve korisnike.7).prikazano na slici 6. Operativni sistem može da pristupa fizičkoj memoriji direktno u monitorskom režimu rada. Očigledno je da je vreme potrebno za prebacivanje konteksta prilično veliko. Kada planer procesa odluči da izvrši neki proces on poziva dispečera. efikasnost prebacivanja se poboljšava sa poboljšanjem performansi jedinica sekundarnih medijuma. Ipak. 6. Sve informacije koje se prenose od korisničkog programa operativnom sistemu moraju se eksplicitno relocirati od strane operativog sistema pre nego što se upotrebe. Sa jedne strane. Uočimo da korisnik nikada ne vidi stvarne fizičke adrese. Posebna sistemska promenljiva ukazuje na to koji je proces trenutno u memoriji. Korisnik generiše jedino logičke adrese i misli da program radi na lokacijama od 0 do max. Potom se vrši punjenje registara kao i obično i upravljanje prenosi izabranom procesu. Zaštitni registar se sada zove relokacioniili bazniregistar. Koncept logičkog adresnog prostora koji se preslikava u fizički adresni prostor je ključan za pravilno upravljanje memorijom. Red spremnih procesa se sastoji od svih procesa čije su memorijske slike na sekundarnom medijumu i koji su spremni za izvršenje.3 Prebacivanje (swapping) Upravljanje memorijom sa rezidentnim monitorom nije mnogo upotrebljivo obzirom da je po svojoj prirodi jednokorisnička šema. a da je pri tom moguć direktan pristup tim memorijskim slikama. Da bi iskorišćenost CPU-a bila bolja poželjno je da vremena trajanja CPU aktivnosti procesa budu znatno duža od vremena prebacivanja. Ovi sistemi su koristili rezidentni monitor pri čemi je ostatak memorije bio raspoloživ korisniku koji se trenutno izvršavao. Stoga se teži da se prebacuje samo onaj deo memorije koji je zaista potreban (dužina korisničkog programa može biti manja nego što je iznos memorije namenjen korisničkim programima). Korisnički program radi sa logičkimadresama. dok hardver za memorijsko preslikavanje pretvara logičke adrese u fizičke. Ova šema se naziva prebacivanje ili swapping(slika 6. to je bila osnovna šema i u prva dva tajm-šering sistema: CTSS i Q-32. Primetimo da ovde imamo dva različita tipa adresa: logičke (u opsegu od 0 do max) i fizičke (u opsegu od R+0 do R+max ako je R vrednost granične adrese).predavanja 33 . Osim ovoga. ali je moguća izmena granične adrese u svakom trenutku. a ono je direktno proporcionalno količini memorije koja se prebacuje. Kada se prelazilo na sledećeg korisnika tekući sadržaj korisničke memorije se upisivao na sekundarni memorijski medijum (disk ili doboš) a memorija sledećeg korisnika se učitavala. Vrednost u baznom registru se dodaje svakoj adresi koju generiše korisnički proces u momentu kada se pošalje u memoriju. Kod ovog hardvera promena u vrednosti granične adrese zahteva jedino izmenu baznog registra i premeštanje korisničke memorije na korektne lokacije u odnosu na novu vrednost granične adrese. Prebacivanje zahteva brzu jedinicu sekundarne memorije. troši se značajno vreme za kopiranje memorije. Dispečer proverava da li je taj proces u memoriji.

Sekundarna memorija Sl.predavanja 34 . 6. Ako se tako ne postupi. Memorija se deli na izvestan broj oblasti il particija. Prethodni korisnički program (u korisničkoj oblasti) je tada izložen nepravilnoj modifikaciji od strane programa u baferu 2. Kod multiprogramiranja se CPU prebacuje sa jednog na drugi od tih programa. Posmatrajmo sliku 6. moramo da vršimo prebacivanje unutar memorije. Svaki od ova dva pristupa deli memoriju na izvestan broj oblasti ili particija. Kada je neka oblast slobodna bira se program iz reda poslova i puni u slobodnu oblast. Prema tome.4 Višestruke particije Konfiguracija memorije koja je proizišla iz preklopljenog prebacivanja je efektivno ista kao i konfiguracija memorije kod multiprogramiranja. Osnovna razlika između ova dva pristupa je u tome da li su te oblasti statičke ili dinamičke. jer imamo više od jednog programa u memoriji u isto vreme. Moguće su dve osnovne šeme za upravljanje memorijom. možemo da izvršavamo program iz bafera 2 pomeranjem zaštitne adrese. Tako CPU nije besposlen dok traje prebacivanje jednog procesa.8. Prebacivanje dva korisnika na sekundarni memorijski medijum. 0 Monitor Operativni sistemi . Program koji se izvršavao takođe mora da se pomeri u jedan od bafera radi prebacivanja.7. Na taj način stepen multiprogramiranja je ograničen brojem oblasti. Problem koji se tiče upravljanja memorijom je u dodeli memorije tim programima kada oni treba da se izvrše. Primetimo da pošto tekući korisnički program oslobodi CPU. Kada se program završi memorijska oblast postaje raspoloživa za neki drugi program. Svaka oblast može da sadrži jedan program koji se izvršava. Ove šeme su dodela memorije u neprekidnim particijama fiksne dužine(MFT) i dodela memorije u neprekidnim particijama promenljive dužine(MVT). moramo da sledeći korisnički program pomerimo iz bafera 2 u korisničku oblast memorije. Cilj je da se preklopi prebacivanje jednog procesa sa izvršenjem drugog. 6. Efekat prebacivanja u odnosu na vreme prebacivanja konteksta se može dalje poboljšati preklapanjem prebacivanja i izvršenja programa.

Kada se posao završi. Planer poslova vodi računa o memorijskim potrebama svakog posla i raspoloživim memorijskim oblastima kako bi odredio kojim poslovima da dodeli memoriju. Očigledna varijanta ove šeme je da se spreči da memorijske particije budu prazne.4. Ako posao zahteva m memorijskih reči on se može izvršiti u particiji veličine n reči (n ≥m). Vrednost najmanje fizičke adrese i granica opsega logičkih adresa. Vrednosti najmanje i najveće fizičke adrese. 6. Razlika n -m predstavlja internufragmentaciju. Eksterna fragmentacijase javlja kada je neka particija slobodna ali je previše mala za sve poslove koji čekaju. Ta dva registra sadrže gornju i donju granicu adresa koje korisnički program može legalno generistati. Same particije mogu biti međusobno različite po veličini. Kod dodele memorije moguće su različite strategije.9. Dva granična registra koji definišu logički adresni prostor. potrebno je obezbediti zaštitu kôda i podataka iz jedne oblasti od programa iz druge oblasti. Kod jedne od njih se svi poslovi prilikom ulaska u sistem klasifikuju prema memorijskim zahtevima. 6. Ova zaštita se može obaviti korišćenjem dva registra. Ova dilema predstavlja izbor izmeću strategija najboljeg poklapanja (best-fit-only) i najboljeg raspoloživog poklapanja (best-available-fit).predavanja 35 . on oslobađa prethodno dodeljenu memorijsku oblast koja se onda može napuniti drugim poslom iz reda poslova. Ovde se postavlja pitanje da li posao treba da čeka na oslobađanje njemu najpribližnije particije po veličini ako postoji veća raspoloživa particija. Tako se posao koji čeka da se oslobodi njemu odgovarajuća particija preskače ukoliko postoji slobodna particija koja odgovara nekom drugom poslu. Svaka particija ima sopstveni red poslova u kome su poslovi čiji memorijski zahtevi odgovaraju veličini dotične particije. kao na slici 6. Ove zahteve može da specificira sam korisnik ili se mogu određivati automatski. on se puni u odgovarajuću particiju. Legalne korisničke adrese su u opsegu od 0 do granice opsega koje se dinamički relociraju na fizičke adrese u opsegu od bazne adrese do zbira bazne adrese i granice opsega logičkih adresa.1 Particije fiksne dužine (MFT) Poslovi koji pristižu u sistem smeštaju se u red spremnih poslova. ili da se taj posao napuni u tu particiju pri čemu smanjujemo čekanje ali trošimo znatno više memorijskog prostora nego što je potrebno. Kada se poslu dodeli memorijski prostor. Drugi pristup je da se svi poslovi smeštaju u jedan red. Kako sada imamo više korisničkih programa u memoriji to je potrebno da imamo mogućnost da zaštitimo memorijski prostor pre i posle programa koji se izvršava.9. On se tada može nadmetati za dobijanje CPU-a.Korisnik 1 Donja granica Korisnik 2 Gornja granica Korisnik 3 Korisnik 4 128K Sl. pa tako uvek ostaje neiskorišćena. •Bazni i granični registar. Oba tipa fragmentacije se javljaju kod MFT strategije. Planer poslova bira sledeći posao koji će se izvršiti i čeka dok se memorisjka oblast odgovarajuće veličine ne oslobodi. Kao i ranije. i mogu se definisati na dva načina: •Granični registri. Operativni sistemi . Legalne adrese nalaze se unutar tih granica.

5 Straničenje MVT šema pokazuje problem eksterne fragmentacije. čime se omogućuje da se programu dodeljuje fizička memorija gde god je ona raspoloživa. Operativni sistemi . u vreme izvršenja. Najčešći algoritmi za dodelu memorije su prvo poklapanje(first-fit) i najboljepoklapanje(best-fit). umesto proglašavanja malih ostataka memorije za rupe. Virtuelna memorija 6. ova situacija se javlja kada raspoloživa memorija nije kontinualna već je podeljena na više rasejanih blokova. 6. U tom slučaju se. Iskorišćenost memorije je u opštem slučaju bolja kod MVT nego kod MFT. U slučaju da se ona pronađe. Kada naiđe posao kome treba memorija traži se dovoljno velika rupa za taj posao. Cilj je da memorija preuredi tako da se sve slobodne particije smeste zajedno u jedan veliki blok. Hardver potreban kod straničenja. korišćenjem baznog i graničnog registra.4. Kada se posao završi on oslobađa memoriju. Kompakcija je jedan od načina da se prevaziđe ovaj problem. Hardverska podrška straničenju je ilustrovana na slici 6. kod dodele memorije koja ostavlja mali deo neke rupe slobodnim. one dodeljuju tom zahtevu praveći mali iznos fragmentacije. Kako memorija koja se dodeljuje nekom poslu mora da bude kontinualna. Rešenje ovog problema je da se dozvoli dinamička promena veličine memorijskih particija. Na žalost. Na počeku je čitava memorija raspoloživa za korisničke porgrame i posmatra se kao jedan veliki blok raspoložive memorije koji se naziva rupa.10.2 Particije promenljive dužine(MVT) Osnovni problem kod MFT je određivanje najbolje veličine particija kako bi se minimizirale interna i eksterna fragmentacija. Generalno. takav memorijski prostor se ne može iskoristiti. Operativni sistem kreira tabelu koja ukazuje koji delovi memorije su slobodni a koji zauzeti. koja tada postaje rupa. Ako se relokacija vrši statički komapakcija nije moguća. Ona je moguća samo kod dinamičke relokacije. dok je hardver identičan. Međutim. stranična tabela Sl. postoji problem eksterne fragmentacije koji može biti veoma izražen.10. dok se ostatak rupe ostavlja raspoloživim za buduće zahteve. poslu se dodeljuje samo onoliko memorije koliko mu je potrebno. Primetimo da je razlika između MFT i MVT u softveru. straničenjedozvoljava da memorija jednog programa bude nekotinualna. Još jedan problem se javlja kod MVT. Kod jako malih rupa je potrebno više memorije za odgovarajuću stavku u tabeli nego što je sama veličina rupe.6. 7. Ako je ta nova rupa susedna drugoj rupi one se ujedinjuju u jednu veću rupu. Primetimo da kompakcija nije uvek moguća. Jedno rešenje ovog problema je kompakcija. Ovaj pristup se naziva dodela memorije u višestrukim neprekidnim particijama promenljive dužine. Međutim.predavanja 36 . Upravljanje memorijom na osnovu MVT strategije je prilično jednostavno. sa dinamičkim skupom poslova koji treba da se izvrše najverovatnije ne postoji optimalna podela memorije.

definisana je hardverski i obično je neki stepen broja dva. Sledeća strana se puni u sledeći okvir itd. Planer poslova ispituje raspoložive memorijske okvire. onda n straničnih okvira mora da bude slobodno. planer poslova ispituje njegovu veličinu. Stranična tabela sadrži bazne adrese svake stranice u fizičkoj memoriji. Ako je veličina stranice P. Prva stranica posla puni se u jedan od dodeljenih okvira. Kada posao pristigne u sistem.predavanja 37 . U najjednostavnijem slučaju ona se implementira kao skup specijalizovanih registara. Instrukcije koje pune ili modifikuju straničnu tabelu su privilegovane i samo operativni sistem može da ih izvrši. a stranična tabela vrši translaciju korisnikovih stranica u memorijske okvire. Kod straničenja nema eksterne fragmentacije. Međutim. tada nižih n bitova predstavlja ofset a preostali viši bitovi broj strane. Ako je veličina stranice 2n. Fizička memorija je podeljena u blokove fiksirane veličine koji se nazivaju okviri. kao i okvira. Kada se program izvršava njegove stranice se pune u bilo koji raspoloživi okvir. Veličina stranice.Svaka adresa koju generiše CPU deli se na dva dela: broj stranice (p) i stranični ofset (d). Broj stranice se koristi kao indeks u straničnoj tabeli.11. Operativni sistemi . jer obično poslednji okvir dodeljen poslu ne mora da bude pun. Ova bazna adresa se kombinuje sa straničnim ofsetom da bi se definisala fizička memorijska adresa koja se šalje jedinici memorije. Dispečer CPU-a puni te registre baš kao što puni i ostale registre. Logička memorija se takođe podeljena na blokove iste veličine koji se nazivaju stranice. tada logička adresa U daje broj stranice p i ofset d na sledeći način: p = U div P d = U mod P Izbor stepena dvojke za veličinu stranice čini translaciju logičke adrese u broj stranice i ofset veoma jednostavnim. Stranični model memorije je prikazan na slici 6. 6. Stranični model logičke i fizičke memorije.11. a broj okvira se smešta u straničnu tabelu za taj posao. Veličina posla izražena je u stranicama. Ako posao zahteva n stranica. broj okvira 0 11 2 2 3 3 stranična tabela 4 5 Logička memorija 67 fizička memorija Sl. Razmotrimo hardversku implementaciju stranične tabele. postoji izvesna interna fragmentacija. Svaki slobodni okvir može da bude dodeljen.

tom prilikom se i proverava da li se traži upis u stranicu koja je smočitajuća. Problem kod ovog pristupa je vreme potrebno za pristupanje lokacijama korisničke memorije. Ako želimo da pristupimo lokaciji i. Kada iz stranične tabele dobijemo broj okvira koji se kombinuje sa ofsetom strane možemo da pristupimo željenoj lokaciji u memoriji.12. Još jedan bit se obično pridružuje svakoj stavci u straničnoj tabeli. Ovo preslikavanje je realizovano preko segmentne tabele. a vreme pretraživanja asocijativne memorije 50ns i vremen pristupa memoriji 750ns. Ti bitovi se čuvaju u straničnoj tabeli. odgovarajuća strana se traži u asocijativnoj memoriji. Ofset d u logičkoj adresi mora da ima vrednost između 0 i granice. Time se memorija praktično usporava dva puta. Ovo znači da moramo da pristupimo memoriji. Operativni sistem postavlja vrednosti za sve stranice da bi dozvolio ili zabranio pristup pojedinim stranicama. Zaštita memorije kod straničenja vrši se zaštitnim bitovima koji su pridruženi svakoj stranici. Ukoliko je kôd tzv. Prema tome. Inače se generiše trap adresna greška. kompilatori.20*(50+750+750). ne vrši samomodifikaciju. Korisnikov pogled na memoriju nije isti kao stvarna fizička memorija. već kao skup segmenata različite dužine. reentrant tipa.predavanja 38 . Kod mašina kod kojih to nije slučaj se stranična tabela drži u memoriji. Adrese specificiraju kako ime segmenta. Ako je faktor pogotka 80%. Skup asocijativnih registara sačinjava memoriju velike brzine koja ima mogućnost istovremenog pretraživanja sadržaja svih registara. Još jedna prednost straničenja je mogućnost deljenja zajedničkog kôda. Procenat uspešnog pronalaženja željene stavke u asocijativnoj memoriji naziva se faktor pogotka (hit ratio). Logička adresa se sastoji od dva dela: broja segmenta s i ofseta unutar segmenta d. moramo najpre da pristupimo straničnoj tabeli koristeći PTBR i indeks koji odgovara stranici za i. Logički adresni prostor je kolekcija segmenata. 6. Broj segmenta se koristi kao indeks u segmentnoj tabeli. ali je i veoma skupa pa mora biti relativno malog kapaciteta. Segmentacija je šema za upravljanje memorijom koja podržava takav korisnički pogled na memoriju. Zbog toga se mora definisati implementacija preslikavanja dvodimenzionalne korisničke adrese u jednodimenzionalnu fizičku adresu. tako i ofset unutar segmenta. Ovakva memorija jeste veoma brza. koja se obično naziva asocijativna memorija. tj. tada možemo izračunati efektivno vreme pristupa memoriji kao ef = 0. Upotreba segmentne tabele je ilustrovana na slici 6. Opšte je mišljenje da korisnici ne vide memoriju kao linearan niz reči. sistemi baza podataka itd. korisnici specificiraju svaku adresu pomoću dve veličine: imena segmenta i ofseta (kod straničenja su korisnici specificirali samo jednu adresu koja se hardverski delila na broj strane i ofset . Jednim bitom se može definisati da li se dotična stranica može i čitati i modifikovati ili samo čitati. Kako svaka memorijska referenca ide preko stranične tabele radi određivanja broja memorijskog okvira. Radi jednostavnosti. Ukoliko je Operativni sistemi . Izmena stranične tabele zahteva jedino izmenu tog registra čime se smanjuje vreme prebacivanja konteksta. Kada CPU generiše logičku adresu.Upotreba registara za implementaciju stranične tabele je zadovoljavajuća ako je stranična tabela relativno mala. segmenti se referenciraju brojem segmenta a ne imenom segmenta. Prema tome za pristup nekoj memorijskoj lokaciji potrebno je obaviti dva pristupa memoriji. Svaki segment ima ime i dužinu. što je bilo nevidljivo za programera). onda je moguće da više korisnika koristi istu kopiju tog kôda u memoriji. Ovaj bit služi da se izazove trap ukoliko je generisana ilegalna adresa (valid/invalid bit). Standardno rešenje ovog problema je da se koristi specijalna hardverska memorija malog kapaciteta. fizička memorija je još uvek jednodimenzionalni niz reči. U slučaju promašaja moramo da ipak potražimo željenu stavku u delu stranične tabele koja je u memoriji. odgovarajući broj memorijskog okvira je odmah raspoloživ i može se pristupiti željenoj lokaciji u memoriji. Asocijativna memorija sadrži svega nekoliko stavki iz stranične tabele i to one najaktuelnije.6 Segmentacija Kod straničenja je neizbežno da se razdvaja korisnički pogled na memoriju i stvarna fizička memorija. Ako se ona nalazi u njoj. To preslikavanje omogućava razliku između logičke i fizičke memorije. a bazni registar stranične tabele(Page Table Base Register – PTBR) ukazuje na straničnu tabelu.80*(50+750) + 0. već se samo preslikava na nju. Iako sada korisnik ukazuje na objekte u programu pomoću dvodimenzionalne adrese. asembleri. Svaka stavka u segmentnoj tabeli ima baznu adresu segmenta i granicu segmenta. Takvi programi su editori.

kompakcija se može vršiti u svakom trenutku. Još jedna prednost segmentacije je mogućnosti deljenja kôda ili podataka. Deljenje se javlja na nivou segmenata. i segmentna tabela može biti smeštena u asocijativnoj memoriji ili u operativnoj memoriji. U tom slučaju posao može jednostavno da sačeka dok se dovoljno memorije ne oslobodi ili se može izvršiti kompakcija. Bazni registar segmentne tabele(Segment Table Base Register -STBR) ukazuje na segmentnu tabelu. Kada je broj segmenata relativno veliki nije izvodljivo čitavu segmentnu tabelu držati u asocijativnim registrima. Hardver za memorijsko preslikavanje će proveriti zaštitni bit pridružen svakoj stavci segmentne tabele da bi se zaštitili od ilegalnih pristupa memoriji. koristi se i registar dužine segmentne tabele(Segment Table Length Register – STRL). Svaki posao ima svoju segmentnu tabelu pridruženu njegovom PCB-u a koju koristi dispečer da definiše tabelu hardverskih segmenata kada se posao daje CPU-u. Kao i stranična tabela. i može se rešiti korišćenjem best-fit ili first-fit algoritama. Relativno mali broj ovih registara (8 do 16) može smanjiti vreme pristupa memoriji tako da ono ne bude duže više od 10-15% nego kod pristupa memoriji bez preslikavanja. Ova situacija je slična straničenju osim što su segmenti promenljive dužine. Segmenti se dele kada stavke u segmentnim tabelama dva različita posla ukazuju na istu fizičku lokaciju.predavanja 39 . 6. Kako segmenti predstavljaju semantički definisane delove programa. Kao i kod straničenja. a zatim se izračunava fizička adresa željene reči kao suma bazne adrese segmenta i ofseta. dodela memorije predstavlja problem dinamičke dodele memorije. ukoliko se nešto ne preduzme. Za logičku adresu (s. tako da se mogu deliti i programi koji se sastoje od više segmenata. već se ona smešta u memoriju.d) se najpre proverava da li je broj segmenta s legalan (s < STRL). Naročita prednost segmentacije je što je zaštita memorije pridružena segmentima. verovatno je da će se sve stavke segmenta koristiti na isti način. Kao i kod MVT. neki segmenti sadrže instrukcije a neki segmenti sadrže podatke. Planer poslova treba da nađe i dodeli memoriju za sve segmente korisničkog programa. Potom se broj segmenta dodaje sadržaju STBR-a čime se dobija memorijska adresa odgovarajuće stavke u segmentnoj tabeli. Ta se stavka čita iz memorije i proverava ofset da li je u okviru granica segmenta. Operativni sistemi . Moguće je kombinovati ove dve šeme kako bi se poboljšale njihove karakteristike. Segmentna tabela Trap adresna greška Sl. ovo preslikavanje zahteva dva obraćanja memoriji po jednoj logičkoj adresi što usporava rad računarskog sistema dva puta. tako da se segmenti koji sadrže insrukcije mogu definisati kao samočitajući ili samoizvršavajući. I straničenje i segmentacija imaju svoje prednosti i nedostatke.12. Kako je segmentacija po svojoj prirodi algoritam za dinamičku relokaciju memorije. Hardver za podršku segmentaciji. Segmentacija može da izazove eksternu fragmentaciju kada su svi blokovi slobodne memorije isuviše mali za smeštaj segmenta. U modernim računarskim arhitekturama nema instrukcija koje su samomodifikujuće. Obično se koristi skup asocijativnih registara koji sadrže najaktuelnije stavke segmentne tabele. Kako broj segmenata koje koristi program može da varira. Prema tome. Tako se dobijaju šeme segmentirano straničenje i stranična segmentacija.ofset legalan on se sabira sa baznom adresom segmenta čime se dobija adresa željene reči u fizičkoj memoriji.

one. njihove brzine prenosa znakova).8. Tabela drajvera nudi standardan način za povezivanje slojeva za upravljanje fajlovima i za upravljanje ulaznim i izlaznim uređajima. da hardverski mehanizam prekida pozove nekog od obrađivača prekida. Upravljanje ulazno-izlaznim jedinicama Sve ulazne i izlazne uređaje u jednom računaru možemo podeliti na: 1. koji sadrži polja sa adresama pojedinih operacija ovog drajvera. operacija inicijalizacije. Obrađivače prekida poziva mehanizam prekida. specijalni Razlike u: . one. Za ovakve obrade su zaduženi obrađivači prekida drajvera. To se ostvaruje u okviru drajverske operacije inicijalizacije. za upravljačku operaciju kod drajvera diska. operacija inicijalizacije i 2. 6 Obrađivači prekida drajvera (Interupt) Drajveri reaguju i na prekide (stižu od kontrolera). Inicijalizacija kontrolera 2. pristiglih od kontrolera. na primjer. operacije ulaza i izlaza blokova (koje koristi sloj za upravljanje datotekama). polja. moguće je u operativni sistem dodavati (statički i dinamički) nove drajvere (uslov za to je. kao prvi argument u pozivu drajverske operacije navode sadržaj polja pozicije ove Operativni sistemi . miš.. jedan drajver može da opsluži više primeraka uređaja iste klase. Obrada prekida obuhvata ili preuzimanje podatka.načina pristupa (direktan/sekvencijalni) i . čije obavljanje nema efekta. Ako se ove operacije odnose na običani fajl.) Drajver (driver) je softver koji upravlja uređajem. Van drajvera su vidljive samo operacije. radi vezivanja operacija običnih i specijalnih datoteka za operacije drajvera ulaznih i izlaznih uređaja.upravljačka operacija (omogućuje dinamičko podešavanje funkcionalnih karakteristika znakovnih uređaja. Zahvaljujući ovoj tabeli. je da adresa ovog obrađivača dospe u odgovarajući element tabele prekida. Drajverske operacije ulaza/izlaza bloka poziva sistemska operacija čitanja/pisanja sloja za upravljanje fajlovima. Za drajverske operacije ulaza i izlaza blokova obavezni argumenti su redni broj prenošenog bloka i adresa bafera u koji. kao prvi argument u pozivu navode izračunati redni broj bloka. koje omogućuju jednoobrazno korišćenje ulaznih i izlaznih uređaja. operacije ulaza i izlaza znakova i 3. Uslov. Prenos blokova ka uređajima i od njih. ili iz kog se prenosi blok. ne samo dopunjavanje tabele drajvera adresama operacija novog drajvera. 7 DRAJVERI BLOKOVSKIH UREĐAJA 1.upravljanja (statičko/dinamičko). na primer.predavanja 40 .. ili za operaciju ulaza kod drajvera štampača. Tipične operacije drajvera blokovskih uređaja su: 1. blokovske 2. ili pripremu prenosa novih podataka ka kontroleru. Obično. (znači hardver ispod operativnog sistema). operacije ulaza ili izlaza. Ako se odnose na specijalni fajl. To važi. namijenjena za adrese operacija. znakovne 3. Tipične operacije drajvera znakovnih uređaja su: 1. Drajveri uređaja koji nisu ni blokovski ni znakovni se razlikuju od drajvera klasifikovanih uređaja. Klasifikacija uređaja na znakovne i blokovske ne obuhvata sve uređaje (sat. kao što su. sadrže adresu posebne (lažne) operacije. . Za adresu svake od ovih operacija predviđeno je posebno polje u elementu tabele drajvera. nego i dodavanje objektnog oblika novog drajvera objektnom obliku operativnog sistema). recimo. Pri tome. koje dotični drajver ne podržava. Podrazumeva se da redni broj drajvera indeksira element ove tabele.jedinice pristupa (blok/znak). . 2.

. a kada se to i desi. radi obavljanja zahtjevanog prenosa bloka. Uvezivanje svih istvoremeno postojećih zahtjeva za prenosom blokova u listu zahtjeva omogućuje ne samo registrovanje svih zahtjeva. koji posreduju u korišćenju. adresu deskriptora procesa. koji su prispjeli/upućeni sa ovih uređaja (nezavisno od aktivnosti procesa.). i opet se zaustavlja aktivnost procesa pozivaoca. čije aktivnosti se. 2. namijenjeni za smještanje znakova. nego od aktivnosti korisnika). 11 Drajveri blokovskih uređaja . Nastavak omogućuje odgovarajući obrađivač prekida (interrupt handler). procesor se može više puta preključi na razne procese. smjer zahtjevanog prenosa bloka. (na pr. pamteći. izazivajući prekid nakon obavljanja zahtjevanog prenosa bloka. Kod pomenutih uređaja se često uvode posebni sistemski procesi posrednici (spooler). nego i po načinu aktiviranja. 8 DRAJVERI BLOKOVSKIH UREĐAJA Za drajverske operacije ulaza ili izlaza bloka je prirodno da se oslone na mehanizam direktnog memorijskog pristupa (DMA). Drajver blokovskog uređaja mora da poznaje karakteristike uređaja koga opslužuje. Tako. Za razliku od blokovskih uređaja. U suprotnom. Zadatak drajvera je da iskoristi sve mogućnosti kontrolera. U nadležnosti drajvera blokovskog uređaja je i određivanje načina preslikavanja blokova. adresu bafera koji učestvuje u prenosu i 4.. radi pronalaženja izgubljenih ili loših blokova. zaustavljaju zbog zahtjeva za prenosom novih blokova. Drajver može da poveća pouzdanost uređaja. 4. Pomenuti obrađivač prekida prvo izbaci iz liste zahtjeva upravo opsluženi zahtjev. aktivnost znakovnih uređaja zavisi i od aktivnosti korisnika (prispeće znakova sa tastature ne zavisi od aktivnosti procesa. adresu deskritpora procesa. Upravljanje listom zahtjeva u toku drajverskih operacija ulaza ili izlaza bloka je pod onemogućenim prekidima. pri tome. Zato u sastav drajvera znakovnih uređaja obavezno ulaze i baferi. dok blokovske uređaje uvek aktiviraju procesi. čija aktivnost se zaustavlja do obavljanja zahtjevanog prenosa bloka. za znakovne uređaje je tipično da im procesi pristupaju kao specijalnim datotekama i da ih zaključavaju. 3.analiza 1. čija aktivnost se može nastaviti. Njega pozove kontroler. 2. 3. jer je drugi prenos u toku) 2. ako to omogućuje kontroler. (zaustavlja aktivnost procesa pozivaoca ovakve operacije.datoteke (ovo polje je prisutno u elementu tabele otvorenih datoteka procesa pozivaoca pomenute sistemske operacije). koristi ih samo jedan proces. mrežna kartica. da bi obezbijedili međusobnu isključivost u toku njihovog korišćenja (terminal. jedna za drugom. U ovakvim baferima znakovi se čuvaju dok ih procesi ili Operativni sistemi .predavanja 41 . redni broj ovog bloka. pokreće se mehanizam DMA. 9 DRAJVERI BLOKOVSKIH UREĐAJA Svaki zahtjev u ovakvoj listi zahtjeva mora da sadrži: 1. ako nije moguće pokrenuti zahtjevani prenos bloka. 10 Dinamika prenosa blokova 1.. ako reaguje na prolazne greške u radu 12 BLOKOVSKI I ZNAKOVNI UREĐAJI KAO SPECIJALNE DATOTEKE Blokovskim uređajima se rijetko pristupa kao specijalnim datotekama. U toku prenosa jednog bloka. čiji je zadatak najčešće provjera ispravnosti blokova. Pripremanje zahtjeva za prenos bloka i njegovim ubacivanjem u listu zahtjeva. 13 DRAJVERI ZNAKOVNIH UREĐAJA Blokovski i znakovni uređaji se razlikuju ne samo po načinu korišćenja. Uz svaki od sistemskih procesa posrednika postoji i poseban direktorijum. štampač. opsluživanje hard diska) 3. nego i registrovanje redosleda njihovog obavljanja.

niti obrađivač prekida ekrana. prispelih sa tastature. ulazni bafer služi za smještanje znakova. 15 DRAJVERI ZNAKOVNIH UREĐAJA Drajverske operacije čitanja i pisanja znakova spadaju u blokirajuće operacije. on ga preuzima i smješta u ulazni bafer. Svaki pritisak dirke sa tastature izaziva prekid. 2. 14 DRAJVERI ZNAKOVNIH UREĐAJA Na primjer terminal ima dva bafera: . a njegova povratna vrednost je pročitani znak (njegov kod). upravljačku operaciju.uređaji ne preuzmu. za svaki od prozora je potreban poseban ulazni bafer. Sistemsko vrijeme može da se računa u odnosu na neki nepromenljivi trenutak u prošlosti. U slučaju da se želi podržati više prozora (window) na ekranu grafičkog terminala. koje u pravilnim vremenskim intervalima generiše sat (kristalni oscilator sa pravilnom frekvencijom i brojačem. 17 DRAJVERI ZNAKOVNIH UREĐAJA Drajver znakovnih uređaja opslužuju: 1. 16 DRAJVERI ZNAKOVNIH UREĐAJA Upravljanje ulaznim i eho baferom. 20 Drajver sata (timer) Dok je sistemsko vrijeme precizno. a njih ima Operativni sistemi . ili u odnosu na trenutak poslednjeg pokretanja operativnog sistema. Argumenti poziva upravljačke operacije utiču ne samo na funkcionisanje uređaja nego i na funkcionisanje drajvera uređaja.jedan. odnosno piše specijalna datoteka.drugi. 18 Drajver sata (timer) U nadležnosti ovog sloja se nalazi i praćenje proticanja vremena. jer ovakvi terminali posjeduju video memoriju jer se njen sadržaj periodično prikazuje prilikom osvježavanja ekrana. dok ne istekne zadani vremenski interval). Zato je. Sistemsko vrijeme se može predstaviti kao broj prekida sata ili kao broj sekundi i broj prekida sata u tekućoj sekundi. Ove operacije se pozivaju iz sistemskih operacija čitanja i pisanja sloja za upravljanje fajlovima. mora biti pod onemogućenim prekidima. eho bafer služi za smještanje znakova. operaciju inicijalizacije. nju izaziva nemogućnost mjerenja dužine vremenskih intervala. a čije anuliranje izaziva prekid). u okviru drajverskih operacija ulaza i izlaza znaka. Ako su ulazni i eho baferi puni. koji se umanjuje u svakoj oscilaciji. Za grafičke (memorijski preslikane) terminale nije potreban eho bafer. Praćenje proticanja vremena se zasniva na brojanju periodičnih prekida (clock). Za poziv drajverske operacije izlaza kao jedini argument služi pisani znak (njegov kod). a . operaciju ulaza. obrađivač prekida ignoriše prispeli znak. za prikazivanje znaka na ekranu dovoljno smjestiti znak u odgovarajuću lokaciju video memorije. koji su kraći od perioda prekida sata. Poziv drajverske operacije ulaza nema argumenata. Inače. za odlaganje njegove aktivnosti. 3. Ovaj poziv nema povratnu vrijednost. Kada postoji nepreciznost. a njihov zbir predstavlja sistemsko vreme (lokalno vreme u računaru). kod grafičkog terminala. Obrađivač prekida sata broji prekide sata. kada se čita. upućenih ka ekranu. 19 Drajver sata (timer) Ovaj obrađivač prekida predstavlja donji deo drajvera sata. U ulaznom baferu znak čeka da neki proces zatraži njegovo preuzimanje. Gornji deo ovog drajvera predstavljaju sistemske operacije za preuzimanje ili izmjenu sistemskog vremena i za uspavljivanje procesa (odnosno. operaciju izlaza i 4. dotle pripisivanje procesorskog vremena procesima (mjerenje trajanja aktivnosti procesa) ne mora biti precizno.predavanja 42 . koji aktivira obrađivača prekida tastature.

provjera da li je nastupilo vreme buđenja uspavanog procesa (čija aktivnost se nastavlja tek kada istekne zadani vremenski interval). održavanje sistemskog vremena.3MB. Danas se virtuelna memorija uglavnom koristi kao neki dodatak običnoj memoriji koriti se ponekad.u toku aktivnosti procesa. Dva najveća razloga za razmatranje hard diska su: svi programi se nalaze na disku i hard disk dobija još više na značaju ako koristi sistem sa virtuelnom memorijom. radi otkrivanja učestanosti izvršavanja pojedinih delova programa). 4. 9. 23 OSNOVA SLOJA ZA UPRAVLJANJE I/O Sloj za upravljanje I/O kontrolerima se oslanja na sloj za upravljanje procesorom. Bitne promene koje bi mogle biti urađene na nivou principa rada su: Operativni sistemi . Drajv za takav disk bio je dimenzija sadašnje veš mašine u koga se umetao HD oblika valjka. Za operacije sloja za upravljanje I/O kontrolerima (odnosno za drajverske operacije) je zajedničko da se obavljaju pod onemogućenim prekidima što je prihvatljivo. preuzetog na početku i preuzetog na kraju perioda aktivnosti procesora koji je kraći od perioda sata. jer je reč o kratkotrajnim operacijama). Tada su bile dve vrste tvrdih diskova: Jeftiniji – oblika većeg tanjira. ili 5. gde se deo diska koristi kao produženje memorije. Tadašnji HD su imali kapacitet 5MB. Hard disk najviše utiče na performanse sistema i jedino kod njega ima smisla razmatrati neke politike u cilju poboljšanja performansi.5m i kapacitet 5-10MB. pa je pomalo izgubila na značaju kakav je imala pre. praćenje ukupnog korišćenja procesorskog vremena aktivnog procesa. Cene su im bile velike. imali su prečnik 0. ako procesor broji svoje cikluse i njihovu sumu čuva u posebnom registru. 9. Cena takvog HD bila je 2-3 puta veća od cene samog računaraali ubrzanje u odnosu na flopi bilo je fantastično. 2. ali se ipak koristi kao neka vrsta prinude kada nema dovoljno fizičke memorije. a kapacitet mnogo sporijeg flopija je bio 0. ali pošto je to mehanički uređaj tu je sporije dolazilo do unapređenja nego kod memorije i CPU. pa su stranice stalno išle sa diska u memoriju i obrnuto. Kasnije dolazi do unapređenja karakteristika HD. To je bio nepromenljiv medijum koji kada se stavi u računar više se ne vadi. Upravljanje sekundarnim i tercijalnim memorijama Upravljanje resursima kao što su ulazno-izlazne jedinice uglavnom se svodi na upravljanje hard diskom. jer su preključivanja sastavni deo aktivnosti drajvera. čime dozvoljava da viši slojevi operativnog sistema mogu da reaguju na prekide.One se mogu izbjeći. Za operaciju smještanja adresa obrađivača prekida u tabelu prekida nije uputno da bude sistemska operacija. može se ustanoviti koliko ciklusa je potrošeno u ovom periodu i iz toga odrediti trajanje pomenutog preioda aktivnosti procesora. Uzmimo za referentnu tačku 70-e godine. 21 Drajver sata (timer) Procesorsko vreme troši i obrađivač prekida sata. još pre pojave PC. Upravljanje hard diskom HD su se pojavili dosta davno. Sa pojavom AT računara počeli su da se urgađuju HD u PC. U prošlosti kada je u prvom planu bio računar na koji je bilo povezano mnogo korisnika. kada su mini-računari bili popularni. Skuplji – korišćeni u profesionalne svrhe na sistemu koji opslužuje veliki broj korisnika i bio je promenljiv.predavanja 43 . fizička memorije je bila mali deo virtuelne memorije. Danas se virtuelna memorija ne koristi u tolikoj meri. jer se u njegovoj nadležnosti nalaze poslovi: 1. praćenje isticanja kvantuma aktivnog procesa. 22 UPRAVLJANJE TABELOM PREKIDA Sloj za upravljanje I/O omogućuje i smještanje adresa obrađivača prekida u tabelu prekida. Pomoću razlike sadržaja ovog registra. skupljanje statistika o aktivnosti procesa (koje se svodi na registrovanje sadržaja programskog brojača. ali to su bili izuzetno skupi uređaji koji su ugrađivani u velike računare. 3. Kapacitet je bio 40MB i mogao je da se vadi iz drajva i ubacuje u drajv. jer ona pruža mogućnost da se ugrozi funkcionisanje operativnog sistema i naruši njegov mehanizam zaštite. u kritičnim situacijama.

Koliko će sektora biti na jednoj stazi zavisi od tipa diska. Što nemamo knotrolu nad tim šta se puni u tu memoriju u kom stanju. da se umesto mehaničkog principa rada pstavi optički princip rada HD. To zavisi od preciznosti sata računara. ne možemo biti sigurni da smo pročitali baš 1000 nule a ne 999 ili 1001. Svi ti diskovi su se zvali vinčester diskovi. U zavisnosti od te visine moglo je da se pakuje više ili manje ploča. To je mehanička psrava koja na sebi ima metalni produžetak koji deluje kao magnet i ima žičanu navojnicu kroz koju može da se pušta struja ili koja može da očitava indukovanu struju. Ti podaci se čitaju pomoću glave za čitanje. U praktičnom životu postoje neka fizička ograničenja na najmanji deo na koji može da se upiše 0 ili 1. razvija se elektronika glave i ostalih uređaja. Takođe se javljao sledeći problem. Sada je pomeranje glave diskretno. Zbog ovakvih problem uvodi se standard da se staza deli na određeni broj sektora. Ovo je standard koji poštuje svaki proizvođač. Primarna memorija. Osnovnu jedinicu magnetnog diska prestavlja 1 tanjir koji ima u sredini osovinu oko koje se vrti. Kasnije se prešlo na novu tehnologiju gde se povećala gustina zapisa. Čitanje se odvija tako što namagnetisani deo ploče prolazi ispod glave u kojoj se zatim indukuje napon koji daje 0 ili 1. Pisanje ide tako što kroz navojnicu prolazi odgovarajući napon koji namagnetiše magnet i odgovarajući deo na ploči. Radi maksimalnih performansi HD ideja sa spiralom je odbačena. Tu nastaju problemi: glava za čitanje treba da se kontinualno pomera sa okretanje diska. Glava je slična onoj kao kod kasetofona.5KB što je 7000-8000 bitova. gde se upisujeredni broj sektora. U to vreme brzina je bila 3600rpm. HD služi kao sekundarna memorija.Umesto rotirajućeg HD da se ubaci neka vrsta memorije koja bi na drugačiji način pamtila podatke. Full hide 4'' (10cm). informacija za korekciju grešaka.25''. čak i kada je pravljena od feritnih jezgara. Podaci se nalaze na koncentričnim krugovima koji se zovu trake ili staze. 16ms za jednu rotaciju. Zbog toga su postojala dva standarda: full hide i half hide. Kada se pročita zadnja nule. Svaki sektor ima na sebi sector header. Premazan je feritnim materijalom koji stalno može da se namagnetiše. pristup je spor. Ti dodaci mogu biti: korišćenje obe strane ploče HD radi minimizacije troškova. a prihvaćena je ideja sa koncentričnim krugovima. Pa se dobije 160ns vreme čitanja jednog bita. Ta fizička ograničenja zavise od same glave čitanje. Pretpostavimo da imamo HD glavu za čitanje i jednu stazu. Tu vidimo razliku u odnosu na današnje CD. a ne kontinualno. gde nema više staza već postoji jedna spiralna. Treba napraviti i uređaj koji će da prepozna te nule i jedinice i treba napraviti standard gde će se znati gde i šta treba da se upisuje i kojim redom. Matematički računato može se na tu kružnicu upisati beskonačno 0 i 1. nije se smatrala pogodnom za trajno čuvanje podataka zbog malog kapaciteta i visoke cene. Da bi računar prepoznao početak i kraj sektora. ali mimo toga svaki od njih ima svoje dogradnje i dodatke. 512B*17 je približno 8. Vremenom se došlo do sledećeg standarda. Kada se pristupa HD pristupa se jednom celom sektoru. Ako dalje hoćemo da povećamo kapacitet diska onda uzmemo još jednu takvu ploču kojoj dodamo još dve glave za čitanje. U to vreme se pokazalo da na jednoj stazi može da bude 17 sektora. Od tehnologije zavisi koliko bitova može da stane na jedan krug.predavanja 44 . Jednu za drugom 1000 nula npr. U računarskoj tehnici HD treba da zapamti dva nivoa koji će predstavljati 0 i 1. Kada su HD počeli da se ugrađuju standard je bio 5. a debljina nije bila strogo definisana. Podaci se upisuju po stazama. Da bi znali koliko nula je pročitano meri se 1000*160ns. treba znati gde je početak a gde kraj svakog bajta. Kada se 0 i 1 upisuju duž kocentričnog kruga. Da bi se došlo do tačnog podatka računar treba da ima jako precizan časovnik kome ne sme da se menja takt. Tačnost čitanja zavisi od brzine rotacije. za trajno čuvanje podataka. osnovna jedinica diska je onda sektor. Ljudi su primetili da je magnetno čuvanje informacija najbrže. Teško je napraviti elektromotor za Operativni sistemi . Pretpostavimo da imamo dugi niz 0 ili 1. Takvih diskova danas skoro više nema. jer ako treba pristupiti datoteci na kraju spirale treba mnogo čekati. onda između svaka dva sektora treba da postoji prolaz koji se zove međisektorski gap. Najstarija tehnologija se zvala MFM. Tu je potrebna dogradnja samo još jedne glave za čitanje. a half hide 2''. a diskovi postaju sve manji. što je 60 rotacija u sekundi. najsigurnije i najtrajnije. Koliko će staza biti zavisi od od preciznosti stepena motora za pomeranje glave. Kod prvih HD na svkoj ploči je bilo 100-300 staza. Tehnologija zapisa informacija na HD vremenom se menjala. Onda treba da postoji nekakav sat i standard u smislu broja obrtaja diska. Veličina svakog sektora je 512B. gde su podaci u memoriji.

a mora biti jako blizu te površine. takođe je obezbeđeno da kada HD ne radi da glava bude na nekom neopasnom mestu.5'' i debljine 1'' sa velikom gustinom pisanja gde se na spoljnim stazama stavlja veliki broj sektora. Zahtevi će biti opsluživani kojim su redom stigli. Prva povećanja kapaciteta diska nisu se desila zbog promene fizičkih parametara diska. Kod starijih računara ti parametri su se navodili pri uključenju računara. a broj sektora se povećavao. Taj novi zapis se zvao RLL(Run Length Limited) ograničena dužina serije. tako što se više ne prave diskovi sa stepen motorom. Gde se na jednoj posebnoj ploči upisuju podaci o stazama. RLL 26. tako što je neke funkcije prebacivao lokalno na disk. Od tada diskovi imaju neparan broj površina. To je definicija jedne magistrale kojom mogu da se periferni uređaji priključe na računar. Posle RLL javio se ESDI(Enhanced Small Device Interface) unapređen interfejs za male uređaje. neće se odmah oštetiti. EIDE diskovi. a ne stepenasto. Lako se vidi da trake u obliku koncentričnih krugova nisu jednake dužine. Parametri diska su: broj glava(broj površina). Glava HD ne sme da dodiruje površinu diska. U stara vremena bilo je malo poverenje u jednolikost rotacije tako da se po jedan sinhronizacioni impuls upisivao između svake dve binarne cifre. i sa stanovišta OS HD je nekakav linearni prostor. a kasnije se ti parametri navedu jednom i pamte pomoću baterije. OS danas fizičke parametre HD ne zna. On se sastoji od jednog ili dva tanjira širine 3. Ti problemi su kasnije rešeni: može da se napravi tako da glava nikad ne udari u površinu. Ovde je na tri bita informacija išao jedan sinhro-impuls. jer su drugi diskovi bili ograničeni na 32MB. Zbog malo razmaka glave HD su osetljivi na udare. su postojali SCSI diskovi od 2GB. a ESDI 30-32. već se ta tri bita prvo kodiraju pa se onda zapišu. Naročito stariji modeli. Kod novih diskova kao posledica integracije HD i kontrolera imamo različit broj sektora u raznim stazama. njih kontroler automatski pronalazi. ali i razni drugi uređaji kao CDR drajvovi. Čak i najfinije zrno prašine je višestruko veće od razmaka glave i ploče. a glava se ne pomera sve dok ne počne da čita podatke o odgovarajućoj stazi. Kod MFM je bilo 17 sektora u traci. Ipak jako je neefikasna. CMOS memorije. broja traka na jednoj površini i broj sektora na stazi. to su SCSI diskovi. Postoji još jedna vrsta diskova koji su išli paralelno sa IDE diskovima. Unapređenje dolazi i sa druge strane. Kod ovog načina zapisa gubi se mnogo prostora na disku. to je bila jedina mogućnost. razni skeneri… Ako je stavljen SCSI disk onda će se taj uređaj sam prijaviti i on će dalje sve sam da kontroliše. Politike opsluživanja HD Prva koja pada na pemet koja je korisna kao referentna tačka je FIFO ili FCFS(First Came First Served). Najjednostavnije rešenje je da onoliko koliko možemo da zapišemo na najkraćoj stazi zapisujemo i na ostalim stazama. To je IDE standard. Može se priključiti 7 diskova. Jedna služi za pozicioniranje na traku. Što se tiče sektora koji se u toku rada oštete. SCSI diskovi su bili interesantni za velike kapacitete jer je ranije za obične HD bilo ograničenje na 32MB a kasnije na 512MB. Ovde je pomeranje kontinualno. To rastojanje se meri u mikronima. a i ako udari površina se pravi izdržljivijom. Treba samo napisati odgovarajuće podatke za taj disk. Kod SCSI može najviše 7 uređaja da se stavi na 1 kontroler. Kod današnjih doskova koji su se pojavilikrajer 80-ih iskorištena je jedna dobra ideja da se kontroler prebaci na sam disk. Ova politika ima osobinu da je pravedna. i glava može da se pomera napred nazad sve dok se ne podesi na najjči signal. Davao je još veću gustinu zapisa. Zasnovan je na smanjenju broja sinhro-impuls. To znači da one nisu ekvivalentne u pogledu količine zapisanih bitova. Ovaj zpis od tri bita nije išao na običan način. Pre 5 god. Zato su HD hermetički zatvoreni i kada se jednom otvore neupotrebljivi su. gde se korak po korak pomera glava sa staze na stazu. To je sledeća tehnologija. već oni komuniciraju na nivou sektora. već sa servo pločom. Novi zapis je doveo do toga da fizički isti diskovi imaju za 50% veći kapacitet. Danas se obično koriste unapređeni IDE diskovi. To znači da je na svaki bit išao jedan sinhronizacioni impuls pa je ta tehnologija nazvana MFM(Modify Frequency Modulation).koji se garantuje apsolutna jednolikost rotacije. Ako je trebalo praviti server za veliki broj korisnika. iznad dela gde nema podataka. Pri brzini rotatice od 5400rpm glava ne bi smela ni na kakve prepreke kao što su zrnca prašine. Parametri diska: Operativni sistemi . zapisuje da oni ne valjaju i izbacuje ih iz upotrebe. Ova politika nikoga ne favorizuje.predavanja 45 . Time se dobija mogućnost ya gušće zapise i za bolje iskorištenje fizičkih resursa. već se promenio način zapisa informacija. U ovom slučaju kapacitet se ne koristi u potpunosti.

10ms. Opsluživanje u sredini je opet bolje nego na krajevima. Očigledno je da će FIFO da izazove veliko šetanje glave jer zahteve opslužujemo onim redom kojim su došli. Zato postoji parametar koji se zove SEEK TIME. Ovde više nema favorizovanja sredine. Kako to radi rešeno je na nivou HD. Prosečno vreme čekanja kod FIFO može da bude 20ms. dok je taj raspon kod FIFO 15-25ms. tako da kada 1 sektor prolazi ispod glave. uskoro. Ova politika je slična SSF. 10. Često su zahtevi za čitanjem veći od jednog sektora.Brzina rotacije je 5400 rpm. Pretpostavimo da je sistem preopterećen i da zahtevi stalno stižu. što traje neko vreme. Seek time zavisi od mehanike za pomeranje glave i tu su postignuti napretci tako da je tu razvoj došao do maksimuma. (pojavili se 7200rpm HD). a ti zahtevi su slučajni. Pri dobijanju podataka sa diska gubi se vreme na sledeće: seek time. to je lift u jednom pravcu. on trpi odgovarajuću obradu u tom smislu da se signali prerađuju. U starija vremena se dešavalo da elektronika kontrolera i prebacivanje u memoriju nisu dovoljno efikasni. Ako imamo datoteku koja se sastoji od 10 sektora. Do pre nekoliko godina postojao je jedan važan faktor: interliv faktor. To je specijalan način smeštanja podataka na disk. To je ideja koja se primenjuje uglavnom za velike servere gde se više diskova stavlja da rade zajedno. Time se gubi pravednost. Čitanje zavisi od: brzine rotacije diska. Uobičajeno je da se stavlja keš između HD i računara. Postoji algoritam za koji platimo 3% efikasnosti da bi dobili 90% pravednosti. gube se i drugi parametri optimalnosti: prosečno vreme čekanja. Ipak postoji mala nepravednost. pretvaraju u bajtove i šalju u memoriju. kontroler i ta memorija. Kako je HD izuzetno spor efikasnost je od primarne važnosti. Kada dođe sledeći sektor pod glavu podaci iz prethodnog sektora se još nisu obradili. Vreme transfera je takođe važan faktor. pa ako ih ima na jednoj ima ih i na drugoj strani u odnosu na glavu. To su RAID tehnologije. Tako će taj sledeći sektor da pobegne. brzina pomeranja glave od jedne do druge staze najčešće je 1ms do 3ms. gustine zapisa… To čitanje donedavno nije bilo jednostavno. Nema bojazni da će ovo da izazove neefikasnost jer je pretpostavka da zahteva ima mnogo. Zato se radilo nešto što se zove interleaving koje se sastojalo u tome da se sketori jedne datoteke ne upisuju na disk jedan iza drugog. Iz svega proizilazi da je politika SSF optimalna jer se tu nastoji da se glava pomera što manje. Tada se lako pokaže da se kod SSF glava zadržava negde kod sredine HD. a ako se ide na neku udaljenu traku onda to vreme neće biti zbir ovih vremena. Postoji i C-SCAN algoritam. Neki zahtevi su opsluženi za 1ms. To srednje vreme je napravljeno na jako nepravedan način. neki 8. ali je zasnovana na tome da se opslužuje najbliži zahtev s tim d aglava ide samo u jednom smeru. U jednoj kutiji su HD. Zasniva se na tome da se prvo opslužuje onaj zahtev do kojega je pomeranje glava najmanje. a to je SSF(Shorter Seek Frist). tako da je onaj prvi faktor seek timejedini podatak sa kojim ima smisla nešto raditi da bi se ukupno vreme smanjilo. To je jedan bafer koji je ili obična memorija ili dodatna memorije na kontroleru gde se memorišu stvari za koje se ima utisak da bi mogle dodatno da nam trebaju. a krajnje samo jednom. Što se pravednosti tiče mnogo je dobijeno. Danas je interliv 1:1. ali koje mogu imati značaja za brzinu čitanja. Sa malim gubitkom brzine ovaj algoritam eliminiše nepravednost. vreme transfera. Za najstarije diskove fktor preplitanja je išao 1:6. vreme čitanja je konstanta i brzina rotacije je praktično konstanta. Zove se još i lift algoritam jer glava ide slično liftu. Prva ideja je da se tih 10 sektora upišu u jednu traku jedan za drugim. Optimalna je u smislu maksimizacije protoka. Fajl sistem Operativni sistemi . Postoje razne modifikacije ovih algoritama za razne specijalne slučajeve. Postoje tehnologije koje su uvedene iz razloga sigurnosti. Tada zatevi sa krajeva HD skoro nikad neće biti opsluženi. ali kod SSF prosečno vreme je npr. jer kontroleri nisu bili dovoljno brzi. Lako nalazimo politiku optimizacije koja je pre svega efikasna. Taj algortima se zove scan. pa će morati da se čeka sledeća rotacija. jer sada nema neograničenog čekanja na unutrašnjim i spoljnim trakama.predavanja 46 . rotaciono čekanje. neki za 5ms. jer kako se ide sa spoljne strane prema unutra i obrnuto srednje staze će biti pređene dva puta. ali su ovi algoritmi uglavnom principi koji treba da se shvate. a neki 10… Raspon vremena opsluživanja je 1-100ms. i time da se ubrza transfer. već nešto kraće.

s tim što se sada razlikuju znaci end-of-file i end-of-tape. Sada je nastao problem da se odredi koja datoteka je na kojoj traci. sistem je u stanju da najpre automatski izvrši prevođenje izvornog kôda. Zamislimo program koji čita alternativno slogove iz dve datoteke koje su na istoj traci. Ovakav pristup daje maksimalnu fleksibilnost ali minimalnu podršku. Pre svega. Sledeći problem je ako se pojavi novi tip datoteke koji dotle nije bio podržan. Takođe. Da bi se rešio problem držanja relativno malih datoteka na skoro praznoj traci prešlo se na smeštanje jednakog broja malih datoteka na jednu traku. Da bi se pristupilo sektoru. kod modifikacije datoteka. Sektor je najmanja jedinica informacije koja se može pročitati sa diska ili koja se može upisati na disk. Informacije smeštene u datoteci definiše kreator datoteke. ma koliko da ima tih tipova. Datoteke sadrže podatke i programe. izmeniti ga i upisati na isto mesto. kao što su veličina datoteke. ali sličan problem se javlja kada se pojavi veoma velika datoteka za čije smeštanje je potrebno više traka. Mnogi od problema sa magnetnim trakama rešeni su kada se počelo sa upotrebom diskova. elektronski prebacuju na odgovarajuću površinu a onda se sačeka (latancy time -rotaciono kašnjenje) da se rotacijom traženi sektor pozicionira ispod glave. Različiti tipovi informacija mogu biti smešteni u datoteci: izvršni program. objektni program. Drugačiji. Moguće je pročitati blok podataka. diskovi i slično. Svaki od ovih uređaja ima svoje karakteristike i fizičku organizaciju. Operativni sistemi . pri čemu svaki tanjir ima dve površine. Radi pogodnijeg korišćenja računarskog sistema operativni sistem pruža uniformni logički pogled na sekundarnu memoriju apstrakujuću fizičke osobine pojedinog memorijskog uređaja i definišući logičku jedinicu – datoteku (file). Fajl ima određenu definisanu strukturu saglasno njegovoj upotrebi. Prvi fajl sistemi bili su zasnovani na magnetnim trakama. datum i vreme kreiranja itd. U nekim operativnim sistemima softver prepoznaje strukturu datoteka i podržava pravilnu upotrebu datoteka određene strukture. itd. Nije potrebno traženje da se pristupi stazama na istom cilindru. Druga krajnost je da operativni sistem ne nameće i ne podržava bilo kakve datoteke. ali se nalaze na različitim površinama tanjira. Čitanje se odvija na isti način kao i kada smo imali samo jednu datoteku na traci. kao i dodatne informacije. Upisno-čitajuće glave se pozicioniraju na odgovarajuću stazu (seek time). numerički podaci. Cilindar je skup staza koje su na istom rastojanju od ose diska. Datoteke se preslikavaju na fizičke uređaje. Takođe se razlikuje premotavanje na početak fajla i na početak trake. Nedostatak ovog pristupa je povećana veličina operativnog sistema. moramo da specificiramo površinu. Disk je podeljen na staze. 10. Na primer. modifikacija datoteka se može vršiti na licu mesta. Direktorijum sadrži imena i lokacije svake datoteke na traci. ali je nedostatak u neefikasnosti. jer je većina datoteka relativno mala dok je kapacitet traka relativno veliki. Jedna od datoteka mora da se iskopira na posebnu traku ili će jedinica trake da troši mnogo vremena krećući se od jedne do druge datoteke i nazad. Pronalaženje datoteke sada zahteva pronalaženje odgovarajuće trake i pretraživanje direktorijuma. a tek onda izvršenje programa. Jedno od osnovnih pitanja je koliko od te strukture treba da bude poznato operativnom sistemu i podržano od strane operativnog sistema. a svaka staza je dalje podeljena na sektore. Prednost ovog pristupa je u jednostavnosti.Za većinu korisnika je fajl sistem najvidljiviji aspekt operativnog sistema. Diskovi se razlikuju od traka na dva načina. Operativni sistem implementira apstraktne koncepte upravljanja datotekama tako što vrši upravljanje jedinicama sekundarne memorije. Primer takvog operativnog sistema je Unix koji sve datoteke vidi kao nizove bajtova. Veći diskovi imaju više tanjira. Ovde postoje i druge teškoće. Prenos podataka između memorije i diska vrši se u jedinicama koje se sastoje od jednog ili više sektora.1 Koncept datoteke Datoteke se smeštaju na različite fizičke medijume kao što su magnetne trake. jer mora da postoji kôd za podršku različitih tipova datoteka. ako pokušamo da izvršimo program čiji je izvorni kôd izmenjen. Iz tih razloga je svakoj traci pridodat direktorijum. tekst. sve datoteke sa trake se moraju kopirati i na druge trake i ponovo iskopirati na originalnu traku. stazu i sektor. Dateteka je kolekcija logički srodnih podataka koja ima svoje ime kao i neke druge atribute.predavanja 47 . Svaki fajl je implementiran njegovim preslikavanjem na sopstveni kotur trake. Osim toga postoji direktan pristup svakom bloku podataka na disku. Da bi podržali ovu situaciju mnogi sistemi su podržavali datoteke na više volumena.

Razmotrimo šta operativni sistem mora da uradi za svaku od pet osnovnih operacija sa datotekama. po potrebi. razmotrićemo ove operacije detaljnije kao i direktorijume. Da bi smo razumeli kako je fajl sistem podržan. datoteka se čita ili se u nju upisuje. • Brisanje datoteke . Na taj način sukcesivni upisi se mogu koristiti za upis sekvence blokova u datoteku. Primećujemo da je za sve opisane operacije potrebno pretraživanje direktorijuma. • Zaštita . 10.Kao i trake. taj pointer se ažurira. što olakšava pretraživanje. Sledeće informacije mogu se naći u direktorijumu (ne mora da znači da svi sistemi čuvaju sve navedene informacije).Za one sisteme koji podržavaju različite tipove datoteka. Ovo može biti od koristi za zaštitu i nadgledanje upotrebe. • Čitanje datotekeke .predavanja 48 . upisa. • Upis u datoteku . a odgovarajuća stavka treba da sadrži pointer na blok koji trebe sledeći da se pročita.1 Operacije sa datotekama Pretpostavićemo da je fajl sistem zasnovan na diskovima. Datoteka se automatski zatvara kada se program koji ju je otvorio završi. • Pozicioniranje u datoteci – Pozicioniranje datoteke u stvari ne predstavlja pravu U/I aktivnost. I ovde se pretražuje direktorijum. a onda se sav prostor dodeljen datoteci oslobađa.Za brisanje datoteke se u direktorijumu traži specificirana datoteka. većina sistema ima samo jedan koji predstavlja tekuću pozicijudatoteke.Ova informacija se može čuvati za kreiranje. Kada se čitanje bloka obavi. Neki sistemi implicitno otvaraju datoteku kada se vrši prvo obraćanje. Kada datoteka više nije potrebna. premotavanje i brisanje datoteka. poslednju modifikaciju i poslednje korišćenje. Jedan od njih je je Operativni sistemi .2 Podrška datotekama Koncept fajlova je implementiran operativnim sistemom.Trenutna veličina datoteke (u bajtovima. • Ime datoteke . ona se zatvarai odgovarajuća stavka briše iz tabele otvorenih fajlova.2. U sistemima sa velikim brojem datoteka.Pointer na uređaj i lokaciju na tom uređaju gde se datoteka nalazi. upis. rečima ili blokovima) i maksimalna dozvoljena veličina. veličina samog direktorijuma može biti i na hiljade bajtova. • Tekuća pozicija . izvršavanja i dr. Zatim treba napraviti odgovarajuću stavku u direktorijumu. Jasno je da se direktorijum može organizovati na više načina. pa iako je moguće da postoje dva pointera. • Veličina . zajedno sa podacima koji se odnose na njihovu adresu na disku. Većina sistema ipak zahteva da se datoteke eksplicitno otvaraju od strane programera pomoću sitemskog poziva (open). Tako se direktorijum koji se nalazi na uređaju može učitavati u memoriju samo u manjim delovima. I čitanje i upis koriste isti pointer. Korišćenjem tog pointera izračunava se adresa sledećeg bloka i imformacija može da se upiše. • Tip datoteke . a dotična stavka u direktorijumu invalidira. Stavka u direktorijumu treba da sadrži pointer na tekući kraj datoteke.2. Za dato ime datoteke sistem pretražuje direktorijum da bi pronašao lokaciju datoteke. • Brojač korišćenja . već se samo pretražuje direktoijum i u odgovarajućoj stavci se pointer tekuće pozicije resetuje da ukazuje na početak. veličinu i druge potrebne informacije. Ta stavka beleži ime datoteke i njenu lokaciju u fajl sistemu. Operativni sistem kreira malu tabelu sa informacijama o svim otvorenim datotekama. • Lokacija . štedeći prostor u odgovarajućoj stavci u direktorijumu i pojednostavljujući sistem.Za čitanje datotetke sistemski poziv specificira ime datoteke i mesto u memoriji gde sledeći blok datoteke treba da se smesti. • Vreme. datum i identifikacija procesa . • Kreiranje datoteke . 10. U opštem slučaju.Pointer na tekuću poziciju za čitanje ili upis u datoteku. Da bi se izbeglo ovo stalno pretraživanje mnogi sistemi vrše otvaranje datoteke kada ona počne da se stvarno koristi. Najpre se mora naći prostor u fajl sistemu za dotičnu datoteku.Neophodna su dva koraka kod kreiranja datoteke.Ukazuje na broj procesa koji trenutno koriste (imaju otvorenu) dotičnu datoteku.2 Direktorijum uređaja Informacije koje se za svaku datoteku čuvaju u direktorijumu variraju od jednog do drugog operativnog sistema. Pointer upisa mora da se ažurira. Da bi smo zapisali ove informacije za neku datoteku može nam biti potrebno od 16 do 1000 bajtova.Podatak o upravljanju pristupu radi čitanja. Obezbeđeni su sistemski pozivi za kreiranje. čitanje.Da bi se izvršio upis u datoteku mora da se načini sistemski poziv gde se specificira i ime datoteke i informacija koja treba da se upiše u datoteku.Simboličko ime datoteke. 10. i diskovi imaju direktorijum koji ukazuje koje su datoteke na disku.

Tada je bolje imati listu koja sadrži adresu prvog bloka u sekvenci slobodnih blokova i broj blokova u toj sekvenci. jer za prelazak cele liste treba utrošiti dosta vremena.2 Direktni pristup Alternativna metoda pristupa je direktni pristup što je karakteristično za model datoteka upisanih na disk. a ako je blok zauzet. ako je blok slobodan. povezanai indeksna dodela. odgovarajući bit ima vrednost 0. Uz navođenje relativnog broja bloka može se pristupiti proizvoljnom slogu datoteke. dok su ostali slobodni. češći je slučaj da jedan sistem koristi samo jednu od navedenih metoda. Modifikacija ovog pristupa sastoji se u tome da se adrese n slobodnih blokova nalaze u prvom slobodnom bloku (tada imamo n-1 zaista slobodnih blokova). Kako korisnik zna veličinu datoteke koja se kreira? U nekim slučajevima ovo pitanje je jednostavno.linearna lista što zahteva linearno pretraživanje za pronalaženje odgovarajuće stavke. 10.4. 10. Drugi pristup je da se svi slobodni blokovi povežu u listu pri čemu se koristi ukazatelj na početak liste. Jedan drugi pristup koristi činjenicu da više kontinualnih blokova može biti zauzeto ili oslobođeno. Druga struktura podataka koja se može koristiti za smeštanje direktorijuma je heš tabela. U proizvoljnom trenutku neki blokovi su zauzeti. pa postoje sistemi koji podržavaju sve tri metode. Kada se datoteka kreira pretražuje se lista slobodnog prostora da bi se u njoj pronašao željeni iznos slobodnog prostora i dodelio datoteci. 10. najpre se pretražuje indeks i onda koristi ukazatelj da bi se direktno pristupilo odgovarajućem bloku datoteke i traženju željene stavke u njoj. Ova lista sadrži sve blokove na disku koji su slobodni. Ovde se javlja problem fragmentacije koji se može rešavati kompakcijom. Tada stavka u direktorijumu za svaku datoteku sadrži početnu adresu datoteke i broj blokova koji su joj dodeljeni. na primer.4 Metodi dodele prostora na disku Postoje tri osnovne metode za dodelu prostora na disku. Postoje i drugi problemi vezani za kontinualnu dodelu. Ovaj problem se može smatrati specijalnim slučajem opšteg problema dinamičke dodele memorije. poslednja adresa u bloku je adresa narednog bloka koji sadrži adrese slobodnih blokova. Uprkos imenu. 10. Svaki blok predstavljen je jednim bitom. Međutim. tj.predavanja 49 .4. Ovde prostor na disku posmatramo kao veliko polje blokova.3.3. Osnovni problem je odrediti koliko prostora da se dodeli datoteci.2 Metod kontinualne dodele Kod ovog metoda se zahteva da svaka datoteka zauzima skup kontinualnih adresa na disku. Neki sistemi podržavaju samo jedan metod pristupa. 10. prostor na disku koji je ona zauzimala se dodaje listi slobodnog prostora.1 Sekvencijalni pristup Kod sekvencijalnog pristupa čitanje jednog bloka podataka automatski uvećava vrednost pointera. nisu dodeljeni ni jednoj datoteci. Svaka od ovih metoda ima svoje prednosti i nedostatke. 10. Kada se datoteka briše. vrednost odgovarajućeg bita je 1.1 Upravljanje slobodnim prostorom na disku Za praćenje slobodnog prostora na disku sistem kreira listu slobodnog prostora. pri čemu. dok kod mnogih postoji mogućnost izbora više metoda za pristup datotekama. Međutim. kada se kopira postojeća Operativni sistemi . Najveći problem sa heš tabelama jeste njihova generalno fiksirana veličina i zavisnost heš funkcije od veličine heš tabele. odnosno vršiti upis uzastopnih blokova podataka.3. čitav iznos prostora treba dodeliti datoteci. Slobodni segment naziva se rupaili šupljina. javlja se problem kada treba pronaći prostor za novu datoteku. Odgovarajući program je jednostavan ali troši previše vremena. Ova šema nije naročito efikasna. 10. moguće je vršiti čitanje podataka samo u redosledu u kome su upisani. Dakle. ova lista se implementira kao bit mapa ili bitvektor.3 Indeksni pristup Ovaj metod koristi indeks za svaku datoteku koji koristi ukazatelje na svaki od blokova datoteke. Ovakav pristup zasnovan je na modelu datoteka koje su upisivane na magnetne trake koje su po svojoj prirodi sekvencijalni uređaji.3 Metodi pristupa datotekama Postoji više načina da se pristupi informacijama zapamćenim u datotekama. Ovde se datoteka vidi kao numerisana sekvenca slogova fiksne dužine. a slično se dešava i kod upisa. Tako prostor na disku možemo smatrati kolekcijom zauzetih i slobodnih segmenata gde je svaki segment kontinualan skup blokova. Kada se datoteka kreira. Da bi se pronašla stavka u datoteci. To su kontinualna.

Svaka datoteka ima sopstveni indeksni blok koji predstavlja polje adresa blokova na disku. Sekvenca slogova fiksne dužine – imamo fiksni broj bajtova udruženih u slog koji se ređaju jedan za drugim. dok se za veće datoteke ulančava više indeksnih blokova ili se koristi indeksiranje u dva nivoa. 10.4. To znači da nije potrebno vršiti kompakciju diska.4 Metod indeksne dodele Ovaj metod rešava problem povezane dodele u smislu direktnog pristupa. može se ispostaviti da nije efikasano da sav prostor dodelimo datoteci. Stablo (indeksna sekvenca)– ovde su čvorovi slogovi datoteke. i-čvorovi u skupu atributa fajla treba da čuvaju i taj podatak. Meki link (simbolički link): pri kreiranju mekog linka. Čak i kada unapred znamo količinu potrebnog prostora za neku datoteku koju kreiramo. 2. Pod Unixom linkove delimo na tvrde i meke (simboličke). i eventualno zauzmemo još jedan blok za sadržaj fajla – a sadržaj je jedino putanja do fajla na koji link pokazuje. ali je. jer prostor na oba kraja datoteke može biti zauzet od strane drugih datoteka. 10. Direktorijum sadrži adresu indeksnog bloka. jer u slučaju oštećenja ukazatelja nastaju neželjene posledice. Indeksna dodela podržava direktni pristup a pri tom nema eksterne fragmentacije. a datoteka može da narasta dokle god ima slobodnih blokova na disku. tu procenu teško izvršiti. Ako u nekom folderu izdamo komandu za brisanje fajla.datoteka. Druga mogućnost je da se potraži veća šupljina u koju možemo da smestimo datoteku.4. Brojač linkova originala se ne menja. Ovo se. tokom dugog vremenskog perioda (tokom meseci ili čak godina) u tom slučaju u dobroj meri nepotrebno zauzimaju prostor. pravi se novi fajl tipa link – (pravimo i-čvor za novi fajl. 3. Stablo se sortira po određenom ključu i predstavlja vrlo efikasno rešenje kod velikih mainframe računara. Znači. Ovde nemamo eksternu fragmentaciju. Datoteke koje narastaju sporo.predavanja 50 . tako da za male datoteke indeksni blok nije potreban (Unix). Još jedna alternativa je da u adresaru čuvamo prvih nekoliko ukazatelja indeksnog bloka. uskoro ćemo doći u situaciju da ona ne može više da se proširuje. pri kreiranju datoteke nije potrebno deklarisati veličinu datoteke.5 Strukture podataka za pamćenje datoteka Operativni sistem koristi tri vrste struktura podataka kod implementiranja datoteka: 1. Nijedan operativni sistem opšte namene ne koristi ovu strukturu.6 Linkovi Link predstavlja sredstvo pomoću kojeg možemo iz više direktorijuma pristupiti istom fajlu (isti fajl možemo “videti” ispod više direktorijuma). zatim ubacimo novi slog u direktorijum sa adresom novog link-fajla). Osnovni problem kod ovog načina dodele je što je ovaj metod efikasan samo kod sekvencijalnog pristupa datoteci. Ako imamo više linkova. Direktorijum sadrži ukazatelj na prvi i poslednji blok datoteke. OS ne vodi Operativni sistemi . briše se slog iz direktorijuma i oslobađaju se blokovi zauzeti od strane fajla. Tvrdi link: pri kreiranju tvrdog linka. OS najpre pogleda broj tvrdih linkova – ako je 1. Ako dodelimo malo prostora datoteci. sve ovo zahteva dodatni utrošak vremena i memorije za svaku datoteku. Jedno rešenje ovog problema je korišćenje dvostruko povezanih lista ili pamćenje imena datoteke i relativnog broja bloka u svakom bloku. pravi se samo novi slog u direktorijumu sa imenom fajla za koji pravimo link i stavimo adresu i-čvora originalne datoteke. Dve mogućnosti stoje na raspolaganju u takvom slučaju. Ipak postoji problem utroška prostora zbog ukazatelja u indeksnom bloku koji je veći nego kod povezane dodele. 10. Prva je da se korisnički program terminira uz odgovarajuću poruku. Uz to se troši i prostor za ukazatelje. Sekvenca bitova – ne vodi se računa o tome šta je u datoteci već je samo potreban podatak gde počinje sekvenca za određenu datoteku i koliko je ona dugačka. Takođe. Ovaj problem je povezan sa veličinom ideksnog bloka pa se teži da on bude relativno mali. oslobađajući prethodno zauzeti prostor. uz utrošak vremena. već se ona strogo koristi kod data base orijentisanim operativnim sistemima. pri čemu se ti blokovi mogu nalaziti bilo gde na disku. Takođe je smanjena pouzdanost. u opštem slučaju. više imena pokazuju na isti ičvor.3 Metod povezane dodele Kod ove metode svaka datoteka predstavlja povezanu listu blokova na disku. briše se samo slog iz direktorijuma a brojač linkova se smanji za jedan. Ako izdamo komandu za brisanje originalnog fajla. UNIX i Windows koriste ovu strukturu. Ovde su svi ukazatelji zajedno smešteni u indeksni blok. Svaki slog ima svoj ključ na fiksnoj poziciji u slogu. Da bismo vodili računa o broju linkova. 10. može ponavljati sve dok postoji slobodan prostor.

veličina i tip datoteka na tom uređaju. koncentrišući se na logičke osobine (ime. Dvonivovski direktorijumi mogu se smatrati dvonivovskim stablima. folder. Najjednostavnija struktura direktorijuma je jednonivovski direktorijum. Stablo direktorijuma ima svoj koren direktorijum. Različite strukture direktorijuma datoteka su do sada predlagane i korišćene. Tako korisnik treba da posmatra samo logičke direktorijume i strukturu datoteka. Ako kao polaznu referencu Operativni sistemi . Međutim. brojeva cilindra. ovde postoji problem kada broj datoteka naraste ili se poveća broj korisnika. Njegova osnovna uloga je da omogući preslikavanje simboličkog imena datoteke u stvarnu fizičku adresu na sekundarnoj memorijskoj jedinici. da potraži original u hijerarhiji direktorijuma i konačno. vlasnik. pa da izčita putanju. U stvari. na kraju da otvori originalnu datoteku za rad. briše fajl (ako nema više tvrdih linkova). Takva implementacija bila bi veoma prosta i za posledicu bi imala i mnoge nedostatke od kojih se dva izdvajaju i onemogučavaju primenu ovakvog adresara. Takav adresar poznat je kao flat ili jednonivovski adresar. katalog. Struktura direktorijuma obezbeđuje mehanizme za organizovanje mnoštva fajlova u fajl sistemu. Možemo imati još neke probleme pri korišćenju linkova: npr. koncentrišući se na fizičke osobine svake datoteke (lokacija. Kako sekundarni memorijski prostor i broj korisnika rastu. Korisnički direktorijumi predstavljaju logičku. Kopiramo /usr/pera zajedno sa svim poddirektorijumima. konflikta kod davanja imena datotekama. fascikla ili sadržaj volumena) predstavlja jednu tablicu koja sadrži imena svih datoteka koje su smeštene na sekundarnoj jedinici. a ne fizičku organizaciju. postaje veoma teško organizovati i pratiti sve te datoteke. tip. to bi moglo da zadovolji jednokorisničke sisteme sa ograničenim sekundarnim memorijskim prostorom. Mogli bismo malo poboljšati performanse ako putanju stavimo direktno u i-čvor linka. To su pre svega ogromna veličina tablice kao i sistemski problem kod višekorisničkog rada tj. brojeva glava kao i adrese odgovarajučih sektora. Kao prirodno uopštenje ovog pristupa nastala je hijerarhijska struktura direktorijuma poznata kao stablo ili aciklični graf. čak i na Internetu. Najveći nedostatak jednonivovskog direktorijuma je u konfuziji koja nastaje kada imamo više korisnika. Datoteke predstavljaju pojedinačne stavke u adresaru gde svaka stavka čuva relevantne informacije o svakoj datoteci kao što su ime.TXT. Direktorijum datoteke može jednostavno da ukazuje na odgovarajuću stavku u direktorijumu uređaja da bi se pročitale fizičke osobine datoteke ili da sadrži kopiju te informacije. što je lako podržati i razumeti. Ovde razlikujemo dve vrste imena puta i to apsolutni (potpuni) i relativni (delimični) put. zatim blok sa sadržajem link-fajla. Stvarna. dužina.računa o simboličkim linkovima. Ako sada pokušamo pristupiti originalu preko mekog linka.predavanja 51 . lokacija. mnogi sistemi imaju dve odvojene strukture direktorijuma: direktorijum uređaja i direktorijume datoteka. pristupni kod itd. Standardno rešenje je da se za svakog korisnika kreira odvojeni direktorijum. to nema nikakvog uticaja na original. Direktorijum uređaja je smešten na svakom fizičkom uređaju i opisuje sve datoteke na tom uređaju.). Ako izbrišemo simbolički link. potpuno ignorišući probleme fizičke dodele prostora datotekama. način dodele itd. 11 čas 10. Apsolutni put predstavlja put od korena stabla. Problem mekih linkova: sporost – da bi OS došao do sadržaja original. Treba dodatna pažnja da ne pravimo dve kopije od PERA. Korisnicima se sada omogućava da kreiraju sopstvene poddirektorijume i na taj način organizuju svoje datoteke. Rešenje ovog problema je da se uvede struktura direktorijuma u fajl sistem. imamo fajl PERA. Ona može da se proteže i na više jedinica diskova. Svaka datoteka u sistemu ima jedinstveno ime puta.5 Sistemi direktorijuma Adresar (direktorijum.). jer svaka datoteka treba da ima jedinstveno ime. Naš glavni interes će biti struktura direktorijuma datoteka. preko svih poddirektorijuma. Najlakše bi bilo da fajl sistem sadrži samo jedan adresar koji bi pamtio sve potrebne podatke za sve datoteke. Sve datoteke se nalaze na istom direktorijumu. mora najpre naći i-čvor linkfajla. Prednost mekih linkova: meki link – pošto sadrži putanju originala a ne adresu i-čvora – može pokazati na bilo koji fajl bilo gde na mreži. fizička adresa na kojoj se stvarno nalazi ova datoteka sastoji se više parametara kao što su oznaka volumena/diskova. OS neće naći putanju. Direktorijumi datoteka predstavljaju logičku organizaciju datoteka na svim uređajima. do specificirane datoteke. pa će javiti da fajl ne postoji.TXT u direktorijumu /usr/pera i tvrdi link u folderu /usr/pera/doc. Međutim. Mi datoteku imenijemo nekim opisnim imenom određene dužine i pamtimo je po tom imenu koje je samo deo te logičke adrese.

BFD SFD ID BFD ID atributi Ime fajla pointer -----. Navešćemo neke tipične informacije koje se nalaze u gotovo svakom adresaru: ime. veličinu. • Brisanje datoteka .. U BSD tabeli se čuvaju gotovo svi karakteristični podaci koje smo ranije naveli tip. ukazatelje na prvi blok na sekundarnoj jedinici gde se datoteka čuva i atribute datoteke – veličina. onih sa kojima se radi. pamćenje adresara u radnoj memoriji je znatno efikasnije. Ovde je tablica adresara fiksne veličine (ograničen je broj ulaza kao i veličina stavki) za razliku od predhodne realizacije gde zasebne strukture ne moraju biti fiksne veličine. vrši se njeno uklanjanje iz direktorijuma. Isto tako prilikom brisanja datoteke uklanja se odgovarajuća stavka iz adresara. Sa gledišta brzine. Zatvaranjem datoteke uklanja se o odgovarajući FCB te datoteke iz radne memorije.BFD Kod DOS i Windows-a imamo jednu jedinstvenu tabelu sa imenom datoteke i odgovarajučih atributa.Kada datoteka nije više potrebna. Za svaki adresar se formiraju posebne tablice u kojima svaka datoteka zauzima jednu stavku. Tako imamo rezervnu kopiju u slučaju otkaza sistema. datum kreiranja i td. Različiti Operativni sistemi . Navešćemo kako se to radi kod LINUX i UNIX-a: Ime fajla pointer -----.Potrebno je da budemo u stanju da pretražujemo direktorijum da bi pronašli stavku za određeni fajl.Potrebno je da budemo u stanju da izlistamo fajlove koji su u direktorijumu i sadržaj stavki direktorijuma za svaku datoteku u toj listi. Da bi se smanjila učestalost pristupa tablicama (koje su na sekundarnoj memoriji) očitani podaci se smeštaju u radnu memoriju i čine File Control Block te datoteke. datum zadnjeg korišćenja. Zato se adresari pamte u sekundarnoj memoriji a pri montiranju određenog volumena kopiraju se (ceo ili delimično) u radnoj memoriji. Drugim rečima u radnoj memoriji se nalaze samo podaci otvorenih datoteka tj. Hijerarhijski organizovan adresar ima određene prednosti nad ostalim rešenjima a to su: o Olakšava dodelu unikatnih imena datotekama o Olakšava korišćenje i zaštitu datoteka u višekorisnićkom režimu rada o Olakšava rad sa adresarima Već smo ranije napomenuli da svaka staka u adresaru sadrži relevantne podatke o svakoj datoteci. adresu prvog sloga. prava pristupa.. tip i verzija datoteke. treba da budemo u stanju da pronalazimo sve datoteke koje odgovaraju nekom šablonu. • Listanje direktorijuma . Adresar možemo pamtiti u radnoj RAM memoriji ili u sekundarnoj memoriji (hard disk). Operativni sistem tada u tabeli SFD pronalazi jedinstveni identifikacij(ID) i na osnovu nje pristupa ostalim podacima za tu datoteku. takvo navođenje puta nazivamo relativno.ne koristimo koren direktorijuma već bilo koji adresar. Kada se kreira nova datoteka automatski se u odgovarajući adresar dodaje nova stavka sa odgovarajućim informacijama o novoj datoteci. On to radi tako što vodi dve vrste tablica: tablicu simboličkih imena (Symbolic File Directory) i osnovni adresar fajlova (Basic File Directory). Postoje više vrsta implementacije ovih tabela u zavisnosti od operativnog sistema. Koji su to podaci zavisi od vrste operativnog sistema kao i njegove realizacije. logičkih naziva datoteka u njihove stvarne fizičke adrese. • Kreiranje datoteke-Treba da postoji mogućnost kreiranja i dodavanja novih datoteka direktorijumu. možemo da oslobodimo njen prostor na disku.. Osnovni problem se sastoji u preslikavanju imena tj. Ime fajla pointer -----. ili ako se datoteka više ne koristi. Ali ta metoda ima nedostatke u vidu zauzimanja znatnog dela memorije kao i gubljenje trenutnog adresara pri nestanku napajanja. Kada korisnik izda zahtev za pristup nekoj datoteci on navodi njeno simboločko ime.predavanja 52 .BFD ID atributi .. datum kreiranja. datum zadnjeg pamćenja i td. Osnovne operacije koje se izvršavaju nad direktorijumom su: • Pretraživanje .BFD SFD ID ID atributi Ime fajla pointer -----. Operativni sistem sada mora da vodi računa o promenama u adresaru i da ga adekvatno pamti na sekundarnoj memoriji kako ne bi došlo do gubljenja podataka. Prva tabela pamti simbolička imena datoteka i pointer/ukazatelj ID koji predstavlja jedinstvenu internu identifikaciju te datoteke preko koje se pristupa informacijama u drugoj tabeli. Ovo se često vrši kopiranjem svih datoteka na magnetnu traku. vlasnik. Pošto fajlovi imaju simbolička imena a slična imena mogu da ukazuju na srodne datoteke.Radi povećane pouzdanosti sistema dobro je povremeno pamtiti sadržaj strukture fajl sistema. • Pamćenje datoteka (bekap) .

posebne rutine konvertuju dugacka imena u kratka tako što uzimaju prvih 6 slova iz dugog imena i dodaju znak ~ i broj po kome se razlikuju ovi kratki nazivi od onih koji imaju ista prva 6 slova. bloka opis korisnika fajla fajla opisa blokova bloka bloka 16.. Zbog različitog broja stavki koje se koriste za pamčenje datoteka prilikom brisanja istih javljaju se različite šupljine u tabelama. Neki primeri realizacije adresara kod različitih operativnih sistema: 1. drugi 1 itd.. Prilikom traženja neke datoteke prvo se obraćamo keš memoriji. Kada na tim mestima upišemo novo formirane datoteke može se desiti da one zauzmu manji broj stavki tako da ostanu prazni prostori u tablicama. Treba samo voditi računa o tome koji su ulazi slobodni. ulazi sa fiksnom dužinom – ovde se lako brišu i dodaju novi ulazi pošto su svi iste veličine. znači možemo imati najviše do 256 korisnika. Prvo se pamti dužina ulaza za datoteku.. Pogledamo u slogu adresu prvog bloka. UNIX Najjednostavnije rešenje:čuvamo samo adresu i-čvora i ime fajla. 3. 2. dobija još jedan opis. ulazi sa promenljivom dužinom – Veličina stavki je ovde fiksna i iznosi 4 byte ali je broj stavki po jednoj datoteci različit i zavisi od podataka koji se pamte... Prvi opis ima redni broj 0. Fajlovima se dodeljuju slogovi sledeće strukture: broj 8 3 1 10 2 2 2 4 bajtova adresa velič ina ime ekstenzija vreme datum prvog fajla u opis atributi rezervisano fajla (tip) fajla kreiranja kreiranja bloka bajtovima Jednokorisnički. Razlika između ovih slogova je jedino u rednom broju i u listi zauzetih blokova. U tabeli se pamti pointer na ime datoteke i atributi a u posebnom fajlu se nalaze imena datoteka koje se nadovezuju jedna na drugo. U praksi se koriste dva rešenja i to: 1. već samo blokovsku velič inu. Kod oba rešenja adresari se pretržuju linearno (sekvencijalno). Karakteristika CP/M sistema je da ne zna tačnu veličinu fajlova (bajt-po-bajt). Sve to pravi velike probleme kod pamćenja imena datoteka jer se javljaju imena promenljive dužine. Operativni sistemi . Kod UNIX-a su imena datoteka case osetljiva tj. 2. Atributi fajla se nalaze unutar ičvora. zna tačnu veličinu fajlova (u bajtovima). MS-DOS Podržava hijerarhijsku realizaciju direktorijuma. ima samo jedan direktorijum. pa ako tu ne pronađemo tražene podatke tek se onda pretražuje sekundarna memorija. pravi se razlika između velikih i malih slova što kod Windowsa i MS-DOS-a nije slučaj. Drugi način je korišćenje keš memorije i standardnih tehnika keširanja. Svi fajlovi svih korisnika su tamo. Posle toga redni broj opisa – ako fajlu nije dovoljno 16 blokova. Da bi ubrzali pretraživanje takvih tablica koristimo se hash tablicama sa odgovarajučim funkcijama koje nam omogućavaju brzo pretraživanje i pronalaženje traženih podataka. CP/M CP/M je višekorisnički OS. Zatim sledi ime i tip fajla. Svi podaci vezani za datoteke se pamte u keš memoriji. Naime. Ako imamo velike adresare sa velikim brojem datoteka to može da bude dosta sporo.operativni sistemi imaju različita pravila kod davanja logičkih imena: kod MS DOS-a je 8+3 (8 karaktera za ime a 3 za ekstenziju). zatim atributi te datoteke i na kraju ime datoteke. zauzima puno operativne memorije kod njenog aktiviranja. Svaki korisnik ima svoj jedinstveni idenkifikacioni broj koji se čuva u prvom bajtu.predavanja 53 . Defragmentacija ovde nije jednostavna jer drugi programi imaju pointere na datoteke koji se nalaze u tablicama pa je potrebno i njih ažurirati prilikom defragmentacije.. Osnovni nedostatak ovog rešenja je pojava eksterne fragmentacije u tablicama gde se pamte adresari. a adrese ostalih tražimo u FAT-u. Drugi problem je da se zbog velike dužine ulaza datoteke. Svakom fajlu se dodeljuje jedan ili veći broj slogova sa sledećim poljima: broj 1 8 3 1 2 1 bajtova ekstenzija redni broj adresa adresa adresa kod ime ( tip ) broj rezervisano zauzetih prvog drugog . kod Windows-a nema nekog ograničenja za dužinu (obično se stavlja da je to 256 karaktera) ali svaki fajl ima dva imena dugo i kratko(8+3).

Na taj način ti blokovi su izbačeni iz skupa slobodnih (neiskorišćenih) blokova. Rešenje: ako blok pripada n fajlu. MSDOS npr. greška može biti vrlo ozbiljna. Nedostatak: trošimo jako mnogo mesta za sigurnosne kopije i jako mnogo vremena za backup. Zatim gledamo listu slobodnih blokova (ili bitnu mapu) i isto tako povećamo drugi brojač . Odemo do tog i-čvora i u navedenim blokovima (sadržaj fajla-direktorijuma ast) tražimo slog sa imenom fajla mbox da bismo dobili adresu i-čvora. ime fajla). Rešenje: popravimo listu slobodnih blokova – izbacimo duplikate . može doći do problema. Na taj način. zauzmemo jos n-1 blokova. Softversko – korisnik ili OS pravi poseban fajl koji sadrži sve loše blokove na disku. Ako je reč o blokovima koji sadrže i-č vorove ili opise direktorijuma. ni slobodan – greška!. Imamo dve vrste provere konzistentnosti: 1. u slučaju bitne mape to se ne može desiti). neoštećenom (i nekorišćenom) bloku. našli smo blok koji je izgubljen: nije iskorišćen a ne može biti ni u budućnosti jer nije ni evidentiran kao slobodan. Ako izmenimo sadržaj fajla. prekopiramo sadržaj u te blokove i Operativni sistemi . rade sa njima u memoriji i pišu ih natrag na disk kasnije. na drugom disku imamo sve podatke.ako je vrednost jednog brojača 1 a drugog 0.ako je vrednost oba brojača 0. Koristimo dva diska – A i B. Npr. Sigurnosne kopije (backup) Pored eliminisanja loših blokova. Na kraju dobijamo rezultat: . U tim blokovima tražimo slog sa imenom fajla ast i uzmemo adresu i-čvora. Konzistentnost (file system consistency) Mnogi sistemi pročitaju sadržaj nekih blokova. ovaj bit se resetuje. Za svaki blok stavimo po dva brojača: prvi pokazuje koliko puta se dati blok javlja u listi zauzetih blokova. Oba diska delimo na dva dela: deo za podatke i deo za sigurnosne kopije. Rešenje: proglasimo ga slobodnim . Odemo do tog i-čvora – sadrži atribute za usr i adrese blokova gde je sadržaj tog fajla-direktorijuma. Pouzdanost i performanse fajl sistema Pouzdanost fajl sistema Loši blokovi Mediji za čuvanje podataka mogu imati loše blokove – fizički oštećene delove medijuma. Kada dođe vreme za backup.Primer: kako OS nalazi putanju /usr/ast/mbox ? Objašnjenje ćemo dati pomoću UNIXove realizacije: krenemo od korenskog direktorijuma (i-čvor korenskog direktorijuma je na fiksiranom mestu – bloku). Nećemo prekopirati sve podatke. kontroler će naš zahtev preusmeriti ka drugom. Ako padne sistem pre nego što uspemo vratiti promenjene blokove.predavanja 54 . scandisk pod DOS-om ili Windowsima. onda je sve u redu – blok je ili zauzet ili slobodan .ako je vrednost prvog brojač a 0 a drugog veći od 1 – to znači. potrebno je obezbediti neke pomoćne programe za ispravljanje nastalih grešaka. radi povećanja pouzdanosti sistema. poželjno je u određenim vremenskim intervalima napraviti sigurnosne kopije važnih fajlova. Da bismo izbegli takve situacije.ako je vrednost prvog brojača veći od 1 a vrednost drugog nula – blok pripada više od jednog fajla. a drugi u listi slobodnih blokova. 2. Neke tehnike: 1. To može uraditi i sam korisnik ili OS. samo fajlove koji su izmenjeni od poslednjeg backup-a. Za izbegavanje loših blokova imamo dva rešenja: Hardversko–kontroler diska vodi računa o lošim blokovima. otvorimo fajl direktorijuma – sadrži slogove oblika (adresa i-čvora. Potražimo slog sa imenom fajla usr i uzmemo adresu i-čvora. ako želimo pristupiti oštećenom bloku (radi pisanja). da je blok evidentiran više puta kao slobodan (može biti samo u slučaju da koristimo povezanu listu. znači da blok nije ni zauzet. ima podršku za ovaj način arhiviranja: svaki fajl ima atribut bit sa imenom archive– kada izvšimo backup. prekopiramo podatke diska A u deo diska B za sigurnosne kopije. ako se pokvari bilo koji disk. bit se setuje. Konzistentnost blokova: pravimo tabelu za blokove. a podatke diska B u deo za sigurnosne kopije diska A. Tada idemo redom po i-čvorovima i gledamo koje blokove koriste fajlovi – pri tome povećavamo prvi brojač odgovarajućih blokova.

U ovu grupu spadaju blokovi i-čvorova.. Napiše 10 stranica. i podatke čitamo iz keša. Ode struja na trenutak.DIB. i sami korisnički programi mogu imati svoje interne bafere za skladištenje podataka što dodatno komplicira stvari. Posle neko iskoristi taj blok i sad imamo link koji pokazuje na ko zna šta. pojavom loših (neispravnih) Operativni sistemi . Time se popravlja pouzdanost. treba ga što pre prebaciti na disk. Uzmimo na primer LRU algoritam. SIB. Konzistentnost fajlova: Idemo po folderima od korenskog direktorijuma i za svaki i-čvor dodeljujemo po jedan brojač .DIB. povećamo brojač . 2. stavimo što bliže što možemo (da smanjimo vreme pozicioniranja). ali se. Ako je blok. Rešenje: brojač tvrdih linkova preuzima vrednost drugog brojača .. Spašavanje fajlova U nadležnosti sloja za upravljanje fajlovima nalazi se i podrška spašavanju (saving) fajlova. direktorijumi) Ako je blok bitan za konzistenciju fajl sistema. može se desiti da imamo link na neiskorišćen blok. Rezultat može biti: . Druga tehnika je da blokove kojima ćemo verovatno pristupati istovremeno. pa su mnogi sistemi dizajnirani tako da se smanji broj pristupa disku. ako dođe do pada sistema. potrebno je izabrati neki blok koji ć e biti izbač en iz keša. Neka rešenja: UNIX: imamo proces koji se zove sync. Ako se javlja zahtev za pristup nekom bloku. Posle. učitamo sa diska u keš. Da li je blok od esencijalne važnosti za konzistentnost fajl sistema? (i-čvorovi. 3. SIB. popunjen blok. odu tih 10 stranica sa strujom. postoji dobra šansa da ostane u kešu – dajemo prednost bitnijim blokovima. Briga o korisnicima. Do oštećenja datoteka dolazi na razne načine. odnosno stvorenih) datoteka. pa guramo bitne blokove ka početku liste da ih što pre prebacimo na disk. ali nepouzdano rešenje DOS: svaki izmenjen blok odmah se prebacuje na disk. ili samo u međuvremenu izmijenjenih. najčešće se koristi bafer ili keš (buffer. Ako treba uč itati neki blok sa diska u keš. ali se kvari efikasnost – praktično ubrzanje imamo samo kada čitamo sadržaj bloka koji je u kešu. Da li će blok uskoro ponovo biti potreban ? Blokove delimo u grupe: i-čvororovi. Korisnik piše izveštaj u text editoru. Parcijalno popunjene blokove stavimo na kraj liste jer ćemo verovatno još upisivati podatke u njih. čiji cilj je da se redovno prave kopije postojećih (svih. Pored keša. gubimo samo rad posledjnih 30 sekundi. najpre proverimo da li je u kešu. Rešenje: izbacimo iz liste slobodnih blokova. parcijalno popunjen blok.vrednost brojača je veći od broja tvrdih linkova – greška!! Ako izbrišemo fajl. uzmemo podatke iz keša. Keširanje nije jedini način za poboljšanje performanse fajl sistema. za svaki slučaj javimo i korisniku šta smo uradili. čak i ako periodično kaže editoru da prebaci dokument na disk.TIB. ako jeste.ako je vrednost oba brojača veći od 0 – to znači da je blok evidentiran i kao zauzet i kao slobodan. Na kraju idemo redom po i-čvorovima i upoređujemo tako dobijen brojač sa brojačem tvrdih linkova unutar i-čvora. Njegov zadatak je da svakih 30 sekundi protrči kroz keš i prebaci sve izmenjene blokove na disk. lupa po tastaturi i baca monitor preko prozora. Svaki put kad naiđemo na isti fajl. Vodimo računa o tome da očuvamo konzistentnost fajl sistema. čuvaju u memoriji. Fajl sistem je konzistentan. radi bržeg pristupa. deo direktorijuma. Time ćemo smanjiti mogućnost grešaka ako dođe do pada sistema. cache).direktorijumi. To je efikasno. Za izbor možemo koristiti sve algoritme koje smo koristili kod stranič enja (paging). moramo njegov sadržaj vratiti na disk. Na taj način. Ako nije.vrednost brojača odgovara broju tvrdih linkova nutar i-čvora – nema grešaka . Na osnovu ovakvih kopija moguće je rekonstruisati sadržaj oštećenih datoteka.broj tvrdih linkova je veći od vrednosti brojača – greška!! Čak i ako svi korisnici izbrišu sve tvrde linkove na fajl. popunjeni blokovi idu na početak liste da bi se što pre izbacili na disk. nemamo UPS.predavanja 55 . .TIB.ažuriramo i-čvorove. koji se izbacuje izmenjen. a korisnik je besan. Pri izboru bloka za izbacivanje treba uzeti u obzir i sledeće stvari: 1. blok neće biti prebačen u skup slobodnih blokova. Keš se sastoji od skupa blokova koji logički pripadaju disku. 2. Rešenje: brojač tvrdih linkova uzima vrednost drugog brojača. na primjer. Za ostvarenje tog cilja. Performanse fajl sistema Pristup disku je mnogo sporiji od pristupa memoriji.

On sadrži ime fajla. za svako polje pojedinačno. dajući tako maksimalnu veličinu particije od 12 2 x 512 bajtova. Sistem bit takođe skriva fajl i onemogućuje brisanje komandom del koja može biti i slučajno pritisnuta. vrijeme i datum kreiranja. maksimalna veličina particije diska bila je 2 MB a veličina FAT tabele u memoriji bila je 4096 upisa od 2 bajta svaki. Prva verzija MSDOS-a koristila je FAT-12 sa blokovima od 512 bajtova. sakriven ili je sistemski fajl. Ulogovani korisnik ima pristup svim fajlovima.12. Prateći lanac. Upis u direktorijum takođe sadrži datum i vrijeme kada je fajl kreiran ili zadnji put izmjenjen. Format upisa u direktorijum kod MS-DOS-a prikazan je na slici 2. Operativni sistemi . sa 16-bitnim disk pointerima. a oni opet svoje poddirektorijume i tako u nedogled. uveden je FAT-32 fajl sistem sa njegovim 28bitnim adresama.blokova. potreban za arhiviranje. Za sve FAT-ove. atribute. Prva verzija DOS-a bila je ograničena na rad sa samo jednim direktorijumom. zavisno od toga koliko bita sadrži adresa na disku. Read-only fajlovi se ne mogu mijenjati. Microsoft je kasnije dodao veličine blokova od 1KB. početni blok i tačnu veličinu fajla. Kada se otkriju. Ne postoji ograničenje u broju direktorijuma ili fajlova koji mogu biti kreirani. oni koriste upise fiksne dužine od 32 bajta. Hidden bit skriva fajl tako da ne bude vidljiv u listingu direktorijuma. Ovo znači da je root direktorijum (koji je i dalje imao fiksnu maksimalnu veličinu) mogao sadržati poddirektorijume. fajl sistem se pojavljuje u tri verzije: FAT-12. 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. Ovjde ne postoji koncept više različitih korisnika. a veličina diska 8 GB sa maksimum 4 particije po disku. Nakon toga došlo je do predstavljanja FAT-16. Maksimalna veličina particije za različite veličine blokova i za sva tri tipa FAT-a je prikazana na slici 2. svi blokovi se mogu pronaći. funkcionalnost fajl sistema se umnogome proširila. MS-DOS prati blokove fajla preko tabele za alokaciju fajlova koja se nalazi u glavnoj memoriji. 16 KB i 32 KB.predavanja 56 . Polje za atribute je novo i sadrži bitove koji pokazuju da li je fajl read-only. formira datoteka loših blokova. Za MS-DOS. Najveće particije na disku sada su bile 2 GB. Ime fajla kraće od 8+3 karaktera je poravnato u lijevu stanu sa prazninama u nastavku. sa setom dozvoljenih veličina blokova različitih za svaku varijantu. loši blokovi se izbacuju iz upotrebe. Jedan način da se to postigne je da se. Upis u direktorijum sadrži broj prvog bloka fajla. Od verzije MS-DOS 2. MS-DOS fajl sistem MS-DOS radi samo na Intelovim platformama i ne podržava multiprogramiranje. 2 KB i 4 KB. Tabela za FAT-16 sada je stalno zauzimala 128 KB glavne memorije. blok diska može biti setovan na multipl od 512 bajtova. na primjer.0. Arhiv bit nema neke sistemske funkcije. tako da različite aplikacije ne dolaze u konflikt.11. Sa ovim parametrima. a verzija MS-DOS-a je bila prilagođena da podrži FAT-32. Iako direktorijumi kod MS-DOS-a imaju promjenljivu veličinu. Počev od druge verzije Windowsa 95. Ovaj broj se koristi kao indeks kod 64K upisa FAT (File Allocation Table) u glavnu memoriju. Najveće unapređenje je bilo uvođenje hijerarhijskog fajl sistema po kome su direktorijumi mogli biti ugnježdavani u dubinu. U ovim sistemima particija je ograničena na 2 TB (2048 GB). Dozvoljene su i veličine blokova od 8 KB. Onda su mogle da postoje i particije od 16 MB. Tada je MS-DOS mogao da podrži 4 particije po disku što znači da je FAT-12 mogao da radi sa diskovima do 64 MB. FAT-16 i FAT-32. PRIMERI FAJL SISTEMA U ovom poglavlju razmotrićemo neke od postojećih fajl sistema.

Mnogi fajlovi su kraći od 32 KB. za particiju diska od 2 GB. Polje NT je tu najviše zbog kompatibilnosti sa Windowsom NT kada je u pitanju pravilno prikazivanje imena fajlova. on pretražuje FAT tragajući za tim kodom. koje smješta datum (ali ne i vrijeme) poslednjeg pristupa fajlu. MS-DOS koristi FAT da bi pratio i slobodne blokove diska. Kako su duga imena predstavljena tako da Operativni sistemi . Promjene se sastoje od dodavanja pet novih polja na mjestu gdje su bile 10 neiskorišćenih bajtova. Na ovaj način ni bitmape ni slobodne liste nisu potrebne. Prvo. 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.FAT-32 fajl sistem ima dvije prednosti u odnosu na FAT-16 gledajući podršku velikim diskovima. Kod FAT-16 mogu da postoje maksimalno 4 particije. FAT-32 može koristiti blok od 4 KB za particiju od 2 GB. Ono daje dodatne bitove tako da je novo ″Creation time″ polje precizno do 10 msec. FAT-16 mora da koristi blokove od 32 KB. pa je potrebno polje od dodatnih 16 bita za smještanje najgornjih 16 bita broja početnog bloka. ne može pokriti cijelu particiju. Druga prednost je ta da za datu veličinu particije diska. pa je prednost manje veličine bloka očigledna. Ovo je u stvari značilo da je struktura direktorijuma Windowsa 98 morala biti kompatibilna sa MS-DOS strukturom direktorijuma. Zapis u direktorijum kod Windowsa 98 imao je oblik prikazan na slici 2. označava se posebnim kodom.13. prelazak na FAT-32 fajl sistem znači da su brojevi blokova sada 32-bitni. disk od 8 GB može da bude jedna particija. Svaki blok koji se trenutno ne koristi. Na primjer. kod FAT-32. Polje ″Sec″ rešava problem nemogućnosti smještanja dnevnog vremena u 16-bitno polje.predavanja 57 . imena fajlova duža od 8+3 karaktera su postala dozvoljena. 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. 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. Kod Windowsa 98 i duga imena i FAT-32 su se koristili u istoj formi kao i kod druge verzije Windowsa 95. Windows 98 fajl sistem Počev od druge verzije Windowsa 95. može da se koristi manja veličina bloka. Sad dolazimo na srce fajl sistema Windowsa 98. Najzad. Uveden je FAT-32. jer inače sa samo 64 K dostupnih adresa diska.x. Kada je MS-DOS-u potreban novi blok. Još jedno novo polje je ″Last access″. Efikasnost iskorišćenja prostora na disku je velika jer je izgubljenog prostora jako malo.

Postavlja se pitanje kako Windows 98 zna da li upis u direktorijum sadrži MS-DOS ime fajla ili (dio) dugačko ime fajla. S obzirom da se samo 6 bita koristi u sekvenci.14. teoretski maksimum za dugačka imena fajlova je 63x13=819 karaktera. Odgovor leži u polju ″Attributes″. i 8+3 ime za kompatibilnost sa MS-DOS-om. Proces otkrivanja ovih greški se ovdje radi tako što prije upisa podataka na disk. on pokušava da podatke smjesti na disk i odmah poslije toga upoređuje te podatke sa podacima u memoriji. Treće. Specijalni karakteri se pretvaraju u ″_″ znak. podržava FAT32 (File Alocation Table) i FAT16 particionisane diskove. Zadnji dio dugačkog imena je označen dodavanjem broja 64 sekvenci. računar je restartovan i podešen da radi u MSDOS-u ili Windowsu 3. Prvo. Implementacija FAT-32 fajl sistema konceptualno je slična implementaciji FAT-16 fajl sistema. zaštitu i veću toleranciju (i korekciju) greški. što predstavlja još jednu od nemogućih kombinacija atributa. Ako takvo ime već postoji onda se dodaje ~2 i tako redom. Polje Cheksum omogućava Windowsu 98 da detektuje ovakvu situaciju verifikujući da MS-DOS ime fajla koje prati dugačko ime. Cluster Remapping što znači da onemogućava ponovno korišćenje tih losih klustera. kod multimedijalnih zapisa. Dalje. velikih baza podataka i slicno.0 i Windows 2000. S druge strane. Korišćenje NTFS tehnologije znači veću sigurnost. zaista njemu i pripada. Ovaj fajl 64 sistem koristi 64 bit-ne adrese i teoretski radi sa particijama do 2 bajta. Da bi se izbjeglo da sva budu u memoriji odjednom. stari program pod MS-DOS-om briše MS-DOS ime fajla. Djelovi imena su sekvencirani koristeći prvi bajt zapisa. Windows 98 kreira fajl dugačkog imena. Osnovna ideja je da se uzmu prvih šest karaktera imena fajla. Optimalno riješenje je napraviti particije određene namjene tako da svaka od njih ne Operativni sistemi . Windows 98 stvara MSDOS ime za njega pomoću određenog algoritma. U stvari taj broj je iz istorijskih razloga ograničen na 260. Drugo. neki program stvara novi fajl koji ponovo zauzima maloprije oslobođeni zapis. tj. Rešenje je bilo da se svakom fajlu dodijele dva imena: (potencijalno) dugo ime fajla. NTFS i drugi fajl sistemi Windowsa 2000 podržava: NTFS (New Technology File System). Tolerancija greške se odnosi na činjenicu da NTFS fajl sistem automatski otklanja greške ne prikazujući pri tome poruke o greškama. Kada govorimo o zaštiti. Ovjde sada ukoliko se koristi milion blokova. NTFS je novija vrsta fajl sistema koju koriste Windows NT 4.budu kompatibilna sa MS-DOS-om. Fajlu se može pristupiti preko oba imena. 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. Ako ovi podaci u ovom trenutku nijesu identični. On lokalizuje loše klustere i vrši tzv. Format svakog dugačkog imena je dat na slici 2. tabela će konceptualno imati milion upisa. Windows 98 održava prozor u tabeli i čuva samo pojedine djelove u memoriji odjednom. a praznine se brišu. Kada se prave particije. FAT16 je MS-DOS fajl sistem i omogućava korišćenje disk particija do 2 GB. FAT32 bolje organizuje disk prostor i particije mogu biti veličine do 2 TB. 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. Za upis dugačkog imena ovo polje ima vrijednost 0x0F. Kada dođe do kreiranja fajla čije ime nije 8+3 karaktera. ali ne briše njegovo dugačko ime jer ni ne zna za njega. Stari MS-DOS programi će ovo samo ignorisati kao nevažeće.predavanja 58 . potrebne su veće paritcije. da se ona predstave velikim slovima i da im se doda ~1 formirajući tako bazno ime fajla. Windows 2000 pravi kopiju podataka koje će privremeno držati u memoriji. Svaki zapis dugačkog imena fajla sadrži i polje Checksum da bi se izbjegao sledeći problem. ^etvrto. 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. ovdje mislimo na EFS sistem enkripcje fajlova.

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

Prvo fajl sistem locira root direktorijum.16. Svaki upis u direktorijum kod UNIX-a V7 fajl sistema je jako jednostavan zato jer on koristi šemu i-čvorova. Prvih 10 adresa na disku je smješteno u sami i-čvor. Ukoliko ni ovo nije dovoljno. i-čvor se ponovo vraća natrag a blokovi diska se stavljaju na slobodnu listu. može se koristiti i triple indirektni blok. jedna od adresa u i-čvoru je adresa bloka diska koja se zove single indirektni blok. vlasnika. Operativni sistemi . Kadgod je novi link usmjeren na i-čvor. Ukoliko ovo još uvijek nije dovoljno. tako da za male fajlove. brojač se smanjuje. 17. Upis u direktorijum sadrži samo dva polja: ime fajla (14 bajtova) i broj i-čvorova za taj fajl (2 bajta). kao što je prikazano na slici 2. sadrži adresu bloka koji opet sadrži listu single indirektnih blokova. Pratićemo jedan primjer kod UNIX-a. zvana double indirektni blok. Potpuna ilustracija data je na slici 2. Pogledajmo kako se vrži traženje puta /usr/ast/mbox. Praćenje blokova diska se vrši na osnovu generalizacije. Svaki od ovih single indirektnih blokova ukazuje na nekoliko stotina blokova podataka. Kod UNIX-a i-čvorovi sadrže neke atribute. 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). sve potrebne informacije se nalaze u i-čvoru koji se zahvata i prebaca sa diska u glavnu memoriju kada se fajl otvori.UNIX V7 fajl sistem Fajl sistem V7 kod UNIX-a je u formi ″drveta″ počev od root direktorijuma sa dodacima u obliku linkova. još jedna adresa u i-čvoru. Atributi sadrže veličinu fajla. Ovaj blok sadrži dodatne adrese diska. Za velike fajlove. brojač u i-čvoru se povećava. Polazeći od tog ičvora. mada je algoritam uglavnom isti kod svih hijerarhijskih sistema direktorijuma. kako bi se rukovalo sa veoma velikim fajlovima. Ovi parametri ograničavaju broj fajlova po fajl sistemu na 64K. ali recimo da je u našem slučaju u pitanju blok 1. Kada dođe na nulu. lociramo root direktorijum koji može biti bilo gdje na disku.predavanja 60 . Njegov i-čvor je lociran uvijek na fiksnom mjestu na disku. vremena kreiranja. grupu. informacije o zaštiti i broj upisa u direktorijum koji pokazuju na i-čvor. Kada se link otkloni. poslednjeg pristupa i poslednje izmjene.

Ako želimo pristupiti nekoj datoteci. 3. svaki korisnik bi mogao imati sopstveni direktorijum.Zatim čita root direktorijum i traži prvu komponentu puta. Hijerarhijska struktura direktorijuma u obliku stabla: svaki direktorijum pored fajlova može sadržati i više poddirektorijuma. Apsolutna putanja (absolute path): krećemo od korenskog direktorijuma i redom navodimo imena svih direktorijuma na putu do našeg fajla. Unutar istog direktorijuma ne možemo imati dva (ili više) fajla sa istom imenom. Kada je pronašao upis za ast. Programi\Zabava) Operacije sa direktorijumima Operativni sistemi .exe relativna putanja: . Npr. 2. Lociranje i-čvora na osnovu njegovog broja je pravolinijsko. gde se fajl nalazi na disku itd. Iz ovog i-čvora. s obzirom da svaki ima fiksnu lokaciju na disku. Relativna putanja (relative path): krećemo od tekućeg direktorijuma (current directory) i navodimo put do direktorijuma u kojem se nalazi traženi fajl. ako imamo mnogo korisnika javljaju se teškoće oko imenovanja fajlova. (tačka – reprezentuje tekući folder) i . sistem locira direktorijum /usr i traži sledeću komponentu. I-čvor za ovaj fajl se onda učitava u memoriju i drži tamo sve dok se fajl ne zatvori.. (dve tačke – predstavlja nadređeni (roditelj) direktorijum). Primer: apsolutna putanja: Programi\Posao\kalk. 2. Mnogi sistemi dodaju svakom folderu (direktorijumu) dva specijalna fajla: . sve programe i sve fajlove stavljamo u taj direktorijum – nepraktično rešenje iz više razloga: teško ćemo odvojiti fajlove različitih programa..exe (ako je tekući direktorijum npr.predavanja 61 . u root direktorijumu da bi našao broj i-čvora fajla /usr. onda on ima i-čvor za direktorijum /usr/ast. Iz ovog čvora pronalazi sam direktorijum i traži mbox.\Posao\kalk. morać emo zadati i putanju (path) do te datoteke. Jedan direktorijum: imamo samo jedan direktorijum. Imamo dve moguć nosti: 1. Ovaj proces je predstavljen na slici 2. Svakom fajlu odgovara po jedan slog koji sadrži ime fajla i još neke dodatne informacije (atributi. Zato je potrebno nać i neku tehniku za jedinstvenu identifikaciju fajlova.18. Imena relativnih puteva se traže na isti način samo se pretraga počinje u trenutnom radnom direktorijumu a ne u root-u. Ako koristimo hijerarhisjku strukturu. Direktorijume do dubine 2: imamo glavni direktorijum (korenski direktorijum -root directory) i nekoliko poddirektorujuma. usr. ali nismo rešili problem onih korisnika koji žele grupisati svoje fajlove u logičke celine. u njemu. ast. Direktorijumi (directories) Direktorijumi su specijalni fajlovi koji sadrže spisak fajlova unutar tog direktorijuma. u različ itim direktorijumima možemo imati istoimene fajlove.). Time smo izbegli problem konflikta imena fajlova različitih korisnika.Na osnovu dozvoljenog broja direktorijuma možemo razlikovati sledeće fajl sisteme: 1.

č esto je potrebno da istim podacima istovremeno pristupi više procesa Zbog ovih nedostataka.predavanja 62 . Upravo OS ima zadatak da obavi tu apstrakciju.mali kapacitet . Možemo koristiti mala i velika slova. Fajl sistem sa korisničke tačke gledišta Fajlovi (files) Fajlovi predstavljaju apstrakciju: pružaju moguć nost da se podaci č uvaju na disku i da se proč itaju sa diska a da pri tome korisnik ne treba da zna detalje implementacije: kako su i gde su podaci sač uvani ili kako zapravo diskovi rade. Ne pravi se razlika između malih i velikih slova. Pravi se razlika između velikih i malih slova. postoji potreba da se neki podaci č uvaju odvojeno od adresnog prostora u eksternoj memoriji u obliku fajlova. Struktura fajlova (file structure) Najpoznatije strukture su: 1. Kada pristupamo linku. Imenovanje (file naming) Pravila imenovanja fajlova razlikuje se od sistema do sistema. umesto toga u jedan ćemo staviti sam fajl a u ostale samo pokazivač na taj fajl. Nedostaci č uvanja podataka u internoj memoriji: .pod UNIXOM: ako želimo da jedan te isti fajl bude u više direktorijuma. Neki prave razliku između malih i velikih slova (UNIX) a neki ne (DOS). Č esto se pod pojmom fajl sistem podrazumeva struktura direktorijuma i fajlova.brisanje praznog dirktorijuma OPENDIR . nač inu imenovanja.txt. Možemo koristiti i brojeve i neke specijalne znakove. o zaštiti i o implementaciji č itavog fajl sistema.rač unar se blokira ili nestane struja – podaci se gube . Neki sistemi dozvoljavaju i korišć enje specijalnih znakova i brojeva. nema potrebe da ceo fajl prekopiramo u svaki direktorijum. za neke je potrebno neko drugo rešenje.već i kapacitet . Fajl je niz bajtova. podaci se gube . do 3 karaktera) fajla koji su razdvojeni tač kom: readme. OS ne vodi rač una o tome šta se nalazi u fajlovima. Za neke procese to je dovoljno.otvaranje fajla-direktorijuma za čitanje CLOSEDIR . brojeve i neke specijalne znakove. sve što vidi su bajtovi. nač inu korišć enja.Slično kao i kod fajlova. pristupićemo fajlu na koji link pokazuje. Pod DOS-om imena fajlova se sastoje od dva dela: ime fajla (8 karaktera) i tipa (ekstenzije. UNIX dozvoljava imena dužine do 255 karaktera. Taj pokazivač se zove link (veza). Ime može biti sastavljeno od proizvoljnog broja delova odvojenih tač kom. konstante). svaki OS ima svoj skup sistemskih poziva za rad sa folderima.kada proces završi sa radom. Korisnič ki programi su oni koji treba da dodeljuju znač enje fajlovima (tj.briše link na fajl FAJL SISTEM Svakom programu je potrebna moguć nost da sač uva neke informacije – neke podatke procesi mogu č uvati unutar svog adresnog prostora (promenljive.kreiranje novog (praznog) direktorijuma DELETE . Uglavnom svi sistemi koriste niz znakova za imenovanje fajlova. Neke moguće operacije: CREATE . Vodi rač una o strukturi.moguć nost istovremenog pristupa više procesa Deo operativnog sistema koji je zadužen za rad sa fajlovima zove se fajl sistem (file system). da znaju kako Operativni sistemi .zatvaranje fajla-direktorijuma READDIR -čitanje sadržaja fajla-direktorijuma RENAME .podaci moraju biti sač uvani i nakon što proces završi sa radom. i nakon što se rač unar isključ i . Kriterijumi za dugoroč no č uvanje podataka: . odnosno da sakrije detalje realizacije i da pruži interfejs na višem nivou. UNLINK .reimenovanje direktorijuma LINK .

atr ) . Windows.kreator . a binarni fajlovi bilo šta drugo. kao što su vreme nastanka fajla. sa razlikom da se novi podaci dodaju na kraj fajla SEEK ( fd. operacija vrać a jedinstveni deskriptor fajla (file descriptor – fd) CLOSE ( fd ) . Operacije sa fajlovima (file operations) Svaki OS ima svoj skup sistemskih poziva za rad sa fajlovima.otvaranje (pripremanje) fajla za rad.vreme poslednjeg pristupa . itd.zatvaranje fajla koji je prethodno otvoren READ ( fd ) -cita jedan bajt ili više bajtova iz prethodno otvorenog fajla od trenutne pozicije fajl-pokazivaca (file pointer) WRITE ( fd.vreme poslednje modifikacije .vreme kreiranja . pod DOS-om imamo specijalan fajl koji sadrži ime diska Način pristupa fajlovima (file access) -sekvencijalni pristup: bajtovima (podacima) u fajlu možemo pristupiti samo redom.system (sistemski fajl – deo OS-a) . pišemo u odgovarajuć i fajl). Fajl je niz slogova iste veličine.isto kao WRITE. Neki moguć i atributi: . Fajl u obliku B-stabla. moramo izč itati prethodnih n-1 bajtova. 3.vra a atribute fajla SETATTRIBUTES ( ime.novoime ) . Najč ešć e operacije su: CREATE ( ime ) .predavanja 63 . Npr. praznog fajla DELETE ( ime ) .brisanje fajla OPEN ( ime ) . -specijalni fajlovi: zavise od OS-a.šta) . -direktorijumi: sistemski fajlovi koji sadrže informacije o strukturi fajl sistema uređ ajni fajlovi: pod Unixom uređajima pridružujemo fajlove (ako želimo štampati.piše jedan ili više bajtova u prethodno otvoren fajl od trenutne pozicije pokazivača. 2. -direktan pristup: možemo skoč iti na bilo koji bajt unutar fajla i izč itati (ili upisati) taj bajt – pomeramo “glavu za č itanje” na odgovarajuć e mesto i uradimo ono što želimo.vlasnik . Pored ovih informacija svi operativni sistemi č uvaju još neke dodatne podatke o fajlovima. Koristi se za brzo pretraživanje fajla po zadatom ključ u. Koristi se na primer kod trake.prava pristupa . Ova realizacija je napuštena.maximalna dozvoljena velič ina. ASCII fajlovi sadrže tekst.menja ime fajla Realizacija fajl sistema Imamo dva pristupa čuvanju fajlova na disku : Operativni sistemi .šta ) . Atributi fajlova (file attributes) Svaki fajl ima svoje ime i sadržaj.read-only (samo za č itanje) . Ako je pokazivač na kraju fajla.velič ina fajla . Tipovi fajlova (file types) Mnogi operativni sistemi razlikuju više tipova fajlova: -regularni fajlovi: obič ni. korisnikovi fajlovi (obič ni nizovi bajtova): mogu biti ASCII ili binarni fajlovi (ovu razliku pravimo mi a ne OS). tj.pos ) .hidden (sakriven fajl) . UNIX.kreiranje novog.pomera pokaziva fajla na zadatu poziciju GETATTRIBUTES ( ime ) .postavlja (menja) atribute fajla RENAME ( ime. APPEND ( fd. velič ina fajla itd.treba gledati na taj niz bajtova). da bismo proč itali n-ti bajt. Te dodatne podatke zovemo atributima fajla. Ovu realizaciju koriste DOS. podaci se dodaju na kraj.

16-bitne (dvobajtne) adrese. - povezanu listu čuvamo u posebnim (praznim) blokovima. Prednost velikih blokova je brzina a nedostatak je loša iskorišć enost prostora diska. Tada ć emo zauzeti 3 bloka za taj fajl. Neka su blokovi velič ine 1KB. To znač i da ć emo videti od 32MB (sa blokovima od 512B) do 512MB. Neiskorišćeni blokovi Neka su blokovi velič ine 1KB i neka je adresiranje 16-bitna.predavanja 64 . Standardne velič ine blokova su od 512B do 8KB. da bismo uč itali fajl moramo više puta pozicionirati glavu diska. listu praznih blokova smestimo u posebne blokove. U poslednjem bloku č uvamo samo 1KB korisne informacije. Prednost: ne gubimo dodatan prostor za evidenciju slobodnih blokova (blokovi su ionako prazni. velič ina fajla je 9KB. Prednost malih blokova je bolje iskorišć avanje prostora a nedostatak je sporost – pošto koristimo veliki broj malih blokova.na poč etku svakog bloka č uvamo adresu sledeć eg praznog bloka. Umesto toga da u svakom praznom bloku č uvamo adresu sledeć eg. Nedostatak: sporost – obilazak liste zahteva neprestano pozicioniranje diska. jer ć emo tamo nać i adresu drugog itd.Svaki blok sadrži niz adresa praznih blokova. Imamo dva standardna nač ina za evidenciju slobodnih blokova: 1. . pa 512*2=1024).fajlovi se razbijaju u blokove fiksne velič ine. Prednost: već a brzina obilaska. Ako je adresiranje blokova 16-bitna. Tada imamo ukupno 20*1024=20480 blokova. koji ne moraju biti kontinualno smešteni na disk Posmatrajmo realizaciju sa blokovima: fajlovi se č uvaju u blokovima fiksne velič ine. Npr. a ostalih 3KB je izgubljeno – jer je ceo blok zauzet od strane našeg fajla. Ova strategija je napuštena. pa nam treba 40 blokova za administraciju. odnosno 12KB.- fajl od n bajtova se č uva kao kontinualan niz bajtova – nedostatak: ako se velič ina fajla poveć ava. Operativni sistemi . Unutar jednog bloka možemo č uvati 511 adresa praznih blokova (+ adresa sledeć eg bloka = 512 adresa. jedan blok je velič ine 4KB. Broj blokova korišć enih za evidenciju se menja sa menjanjem popunjenosti diska. Pomoću POVEZANE LISTE: dva pristupa: . a na kraju svakog bloka imamo adresu sledeć eg bloka sa adresama praznih blokova. pa ništa ne gubimo ako stavimo pokazivač na sledeć i blok). Treba samo zapamtiti adresu prvog bloka. neka imamo 16-bitno adresiranje i disk od 20MB. najverovatnije ć emo morati ceo fajl premestiti na neko drugo mesto. možemo razlikovati 2^16 = 65536 različ itih blokova.

2. Pomoću BITNE MAPE: svakom bloku diska dodeljujemo po jedan bit. Ako je blok zauzet, stavimo 0, ako je prazan stavimo 1 (ili obrnuto). Ako je kapacitet diska n blokova, treba nam n bitova za bitnu mapu diska. Bitnu mapu č uvamo u tač no određenim blokovima diska. Ako je k-ti blok zauzet, onda je vrednost k-tog bita bitne mape 0, a ako je prazan, onda je 1. Ako je velič ina blokova 1KB a kapacitet diska 20MB, velič ina bitne mape je 20*1024=20480 bitova, odnosno 2560bajtova=2.5KB, tj zauzima 3 bloka diska. Ako imamo dovoljno memorije da uč itamo celu bit-mapu, pretraživanje je brže od pretraživanja povezane liste. Ako nemamo dovoljno memorije (npr. možemo uč itati samo jedan blok) – tada je bolje rešenje povezana lista: jedan blok sadrži adresu 511 slobodnog bloka.

Implementacija fajlova (zauzeti blokovi)
1. Kontinualni blokovi
Najednostavniji nač in je da za svaki fajl zauzmemo onoliko kontinualnih blokova koliko treba. Prednost je laka implementacija: da bismo locirali neki fajl, treba samo zapamtiti prvi blok i velič inu fajla. Druga prednost je brzina pristupa podacima (i sekvencijalno i direktno). Nedostatak je što u već ini sluč ajeva ne znamo unapred maksimalnu velič inu naših fajlova. Ako fajl izraste iz predviđenog broja blokova, moramo pretražiti disk da bismo našli potreban broj kontinualno raspoređenih slobodnih blokova. Ako nađemo, treba prebaciti ceo fajl na novo mesto, ako ne nađemo, možemo pokušati sa grupisanjem slobodnih blokova na jedno mesto (premeštanjem zauzetih blokova). Vrlo neefekasna realizacija. Javlja se problem eksterne fragmentacije.

2. Povezana lista
Blokove zauzetih od strane nekog fajla stavimo u povezanu listu. Treba samo zapamtiti adresu prvog bloka. U svakom bloku č uvamo adresu sledeć eg bloka, kao kod evidencije slobodnih blokova pomoć u povezane liste na osnovu prvog nač ina. Prednosti: ako fajl raste, samo zauzmemo bilo koji neiskorišć en blok i ažuriramo povezanu listu – ne javlja se problem eksterne fragmentacije. Nedostaci: - ne podržava direktan pristup fajlu – ako nam treba neka informacija koja se nalazi u zadnjem bloku, da bismo došli do zadnjeg bloka moramo proć i kroz celu listu (moramo posetiti svaki blok da bismo dobili adresu sledeć eg bloka). - velič ina korisne informacije u blokovima više nije stepen od 2 (zato što nam treba mesto za adresu sledeć eg bloka)

3. FAT (File Allocation Table)
FAT je tabela koja ima onoliko elemenata koliko imamo blokova na disku. Ako se u k-tom bloku nalazi neki fajl, tada k-ti elemenat FAT-a sadrži adresu sledeć eg bloka koji taj fajl zauzima ili nulu koja označ ava da je to poslednji blok fajla. Korišć enjem FAT-a izbegavamo nedostatke povezane liste: ceo blok možemo iskoristiti za č uvanje korisnih informacija (nije potrebno oduzeti deo za adresu sledeć eg bloka), i bolje je podržan direktan pristup sadržaju fajla – direktan pristup ni ovde nije u potpunosti podržan jer ako trebamo pristup 10-tom bloku fajla, moramo pomoć u FAT-a nać i adresu tog bloka, ali je pretraživanje mnogo brže: informacije su na jednom mestu, ne treba obilaziti svaki blok da bismo došli do adrese sledeć eg bloka. Operativni sistemi - predavanja 65

FAT se koristi npr. kod operativnih sistema DOS,Win9x. Primer: neka PERA.TXT zauzima blokove 7,2,4,1 a DJURA.DOC blokove 8,5. Tada dobijamo sledeću tabelu alokacije:

4. i-č vorovi (i-nodes)
Svakom fajlu dodeljujemo jednu malu tabelu koja se zove i-čvor (i-node) ili index-čvor (indexnode) i koja sadrži atribute fajla i adrese zauzetih blokova:

Operativni sistemi - predavanja

66

Znač i: i-č vor sadrži atribute fajla i adrese prvih nekoliko blokova zauzetih od strane datoteke. Ako su ti blokovi dovoljni, onda je i-č vor spreman. Ako nisu, koristi se i polje SIB=Single Indirect Block koji pokazuje na blok koji sadrži adrese dodatnih blokova. Neka su blokovi velič ine 1KB, neka se koristi 32-bitno adresiranje, onda svaki blok može da sadrži 256 adresa. Tako pomoć u SIB-a dolazimo do dodatnih 256 blokova. Ako ni to nije dovoljno, koristimo i polje DIB=Double Indirect Block koji pokazuje na blok koji sadrži dodatne adrese SIB-ova. Ako ni to nije dovoljno, onda koristimo i polje TIB=Tripple Indirect Block, koji pokazuje na blok sa dodatnim adresama DIB-ova. Tako dolazimo do sledeć e tablice: ŠTA KORISTIMO MAKSIMALAN BROJ BLOKOVA samo i-č vor 10 i-č vor + SIB 10+256 i-č vor + SIB + DIB 10+256+256*256 i-č vor + SIB + DIB + TIB 10+256+256^2+256^3 OSNOVA SLOJA ZA UPRAVLJANJE FAJLOVIMA Sloj za upravljanje fajlovima se oslanja na operacije drajvera iz sloja za upravljanje kontrolerima. On može da koristi i operacije sloja za upravljanje radnom memorijom, radi zauzimanja bafera, namjenjenih za smještanje kopija blokova, ili kopija deskriptora, na primjer. 13.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 mestima svojih primena, na primer, 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 mesta njihove primene, pa mogu efikasno obavljati ovakve poslove. S druge strane, neophodno je omogućiti saradnju između prostorno udaljenih korisnika, odnosno obezbediti usaglašeni rad prostorno udaljenih djelova istog industrijskog postrojenja. Za to je potrebno obezbediti razmenu podataka između računara, posvećenih pomenutim korisnicima, odnosno posvećenih pomenutim delovima industrijskog postrojenja. Radi toga, ovakvi, prostorno udaljeni računari se povezuju komunikacionim linijama, koje omogućuju prenos (razmenu) podataka, organizovanih u poruke. Na ovaj način nastaje DOS- distribuirani računarski sitem (Distributed Computer System). DOS korisnici vide kao jedno-procesorski sistem bez obzira sto u stvari on radi sa više procesora. Imamo više računara povezanih u mrežu, ali samo jedan OS, koji upravlja svim resursima u mreži. U pravom distribuiranom sistemu korisnik ne treba da vodi računa o tome, gde su njegovi fajlovi smešteni ili gde se izvršava njegov program, to je posao OS-a. DOS se dakle ponaša kao jedinstvena celina. Korisnik nije svestan toga da je u mreži sa drugim računarima, njemu to izgleda kao da je jedan računar. Svaki od računara koji su povezani u distribuirani računarski sistem treba da sadrži osnovne resurse i to: procesor, radnu memoriju i mrežni kontroler. Prisustvo masovne memorije i raznih ulaznih i izlaznih uređaja u sastavu ovakvih računara zavisi od mesta njihove primene 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 13. Modul za upravljanje procesima Modul za razmenu poruka Modul za upravljanje radnom memorijom Modul za upravljanje resursima (kontrolerima) Modul za upravljanje procesorom Modul za upravlanje komunikacijom i sinhronizacijom Slika 13. 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. Operativni sistemi - predavanja 67

nalazi u ulozi klijenta (kome se pruža usluga). da bi pristupio izvršnoj datoteci (lociranoj na nekom drugom računaru). jer je klijent njegov jedini pozivalac. 5. Sloj za razmjenu poruka se oslanja na sloj za upravljanje radnom memorijom. zajedno sa serverovim potprogramima. slanje klijentu ove poruke odgovora. koji odgovara serveru. Ova biblioteka sadrži po jedan klijentov potprogram za svaku od postojećih udaljenih operacija. Između poziva ova dva serverova potprograma se nalazi lokalni poziv operacije. koji opisuje aktivnost servera na pružanju zahtevane usluge. čija pojava Operativni sistemi . prilikom prevođenja programa. koji se obavljaju. Simetrično klijentovom potprogramu postoje dva serverova potprograma (server stub). koji poziva udaljenu operaciju. koji se izvršava u okviru aktivnosti drugog. Te razlike su posledica koraka. pronalaženje procesa servera. a proces. Njih poziva jedino server. aktivnih na istom računaru).predavanja 68 . 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. da mu pošalje sadržaj odgovarajuće izvršne datoteke. na primjer. POZIV UDALJENE OPERACIJE Poziv udaljene operacije liči na poziv (lokalne) operacije. kao uslugu. pakovanje (marshalling) argumenata (navedenih u pozivu klijentovog potprograma) u poruku zahteva. čijim obavljanjem se pruža tražena usluga. aktivnom na računaru sa masovnom memorijom. radi dobijanja zahtjevane usluge. koji obavlja udaljenu operaciju. Uobičajeni način traženja i dobijanja usluge se sastoji od pozivanja operacije. namjenjenih za privremeno smještanje poruka. On sadrži sistemske operacije. koji pruža zahtevanu uslugu. on ima oblik poziva potprograma. Klijentov potprogram se generiše. Drugi od njih obuhvata: 1. Sloj za razmjenu poruka se oslanja i na sloj za upravljanje kontrolerima. U ove korake spadaju: 1. udaljenog procesa (koji je aktivan na udaljenom računaru). kada pozivana operacija ne odgovara potprogramu. U slučaju. raspakivanje prispele poruke odgovora i 6. obraća drugom procesu. 2. stvori novi proces. nego odgovara potprogramu. PROBLEMI POZIVA UDALJENE OPERACIJE Uprkos nastojanju da što više liči na poziv lokalne operacije.Sloj za upravljanje procesima se oslanja na sloj za razmenu poruka. koji uzrokuju da se u toku poziva udaljene operacije mogu da pojave problemi. Na kraju. koja odgovara zahtevanoj usluzi. jer od njega krije. pakovanje rezultata usluge (koju je pruzio server) u poruku odgovora i 2. detalje saradnje klijenta i servera. klijentov potprogram pripada biblioteci udaljenih operacija. reč je o pozivu udaljene operacije (Remote Procedure Call -RPC). Sloj za razmjenu poruka nije samo na raspolaganju sloju za upravljanje procesima. isporuka rezultata pružanja zahtevane usluge pozivaocu klijentovog potprograma. zahtjevajući od njega. koji je bez masovne memorije. se nalazi u ulozi servera (koji pruža uslugu). Ovakav potprogram se naziva klijentov potprogram (client stub). sakrivenih u pozivu udaljene operacije. Na primjer. Pri tome. on se. u kome se navode oznaka (ime) operacije i njeni argumenti. u kome se nalazi drajver mrežnog kontrolera (posredstvom koga se fizički razmjenjuju poruke). a oni kriju više koraka. sloj za razmjenu poruka se oslanja i na sloj za upravljanje procesorom. koji se lokalno izvršava u okviru aktivnosti procesa pozivaoca. koji se obavljaju. kada jedan proces želi da na svom računaru. Oslanjanje na poziv udaljene operacije olakšava posao programeru. slanje serveru ove poruke zahteva. radi dinamičkog zauzimanja i oslobađanja bafera. poziv udaljene operacije se značajno razlikuje od svog uzora. U klijentovom potprogramu je sakriven niz koraka. odnosno saradnju između procesa. da bi se. Prvi od njih obuhvata: 1. aktivnih na raznim računarima (ali i između procesa. Znači. Pri tome se proces. posredstvom sloja za upravljanje procesima. 4. prijem poruke zahteva i 2. radi pružanja zahtevane usluge. raspakivanje argumenata iz ove poruke. koje omogućuju razmjenu poruka. programski tekst. Tipičan oblik saradnje procesa je da jedan proces traži uslugu od drugog procesa. odnosno. prijem od servera poruke odgovora sa rezultatom pružanja zahtevane usluge. na prethodno opisani način. 3.

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

od upravljačkog dijela poruke i 2. klijent može da pošalje povjereniku poruku. U slučaju simetrične kriptografije. jer je aktivan na usluživanju prethodno primljenog zahtjeva od jednog klijenta. ili poslati poruku potvrde. adresu izvorišnog procesa (od koga poruka kreće. poruka zahtjeva se odbacuje (uz. kao i prilagođavanje brzine slanja paketa brzini kojom oni mogu biti primani (flow control). javlja se problem kako dostaviti interni ključ kriptovanja samo pomenutom klijentu i serveru. koji je poznat samo povjereniku i serveru. u koga svi procesi imaju poverenje i koji se. nakon kojih je. a pristigla je poruka zahtjeva od drugog klijenta. šalju upravljačke poruke. sastavljanje paketa (pristiglih preko komunikacionih linija) u poruke. pa je svaki od njih u poziciji da preuzima tuđe poruke i da šalje poruke u tuđe ime. one potvrđuju prijem poruka. a on. tako da je razumljiv samo za servera). Takođe. Poverenik tada odredi interni ključ kriptovanja i pošalje poruku serveru. kome se poruka isporučuje. a na osnovu rednog broja procesa se određuje proces. naziva poverenik. eventualno. kome proces pripada (a po kome se razlikuju svi računari). se sastoji: 1. zaduženi za registrovanje uspješnog slanja i uspješnog prijema paketa). obrate serveru imena). mrežni kontroler utvrđuje da li prihvata ili propušta poruku. slanje odgovarajuće upravljačke poruke drugom klijentu). opis poruke (njenu vrstu. koristiti imena za označavanje i računara i procesa. može da pronađe ključ za dekriptovanje njenog sadržaja). ova poruka se smješta u slobodan bafer. Korespondenciju između imena i rednih brojeva uspostavlja već pomenuti server imena (ove podatke o sebi ostavljaju svi serveri. 2. Pored slanja i prijema poruka. Sistemske operacije sloja za razmjenu poruka se brinu o baferima. U tome može da pomogne poseban server. Ove tri sistemske operacije su zadužene za prenos poruka. povjerenik šalje poruku i klijentu. U nadležnosti ovih operacija je i rastavljanje poruka u pakete (koji se prenose preko komunikacionih linija). na početku svoje aktivnosti. a da interni ključ kriptovanja treba da znaju samo klijent i server. Ove tri sistemske operacije koriste usluge i sloja za upravljanje preključivanjem i prekidima. Operativni sistemi . Pri tome se podrazumijeva da poverenik posjeduje unapred dogovoren poseban ključ kriptovanja za komunikaciju sa svakim procesom. a sprečavanje slanja poruka u tuđe ime se zasniva na nedvosmislenoj međusobnoj identifikaciji procesa (authentication). Sprečavanje preuzimanja tuđih poruka se zasniva na kriptovanju (encryption) poruka. kao i jedinstven redni broj procesa (po kome se razlikuju procesi. umjesto ovih rednih brojeva.isporuke odgovora ili do isticanja zadanog vremenskog intervala. kojima se provjerava i potvrđuje aktivnost servera (čime se omogućuje otkrivanje njegovog otkaza) i slično. ako server nije pozvao sistemsku operaciju prijema zahtjeva. potrebno ili retransmitovati poruku. zato.predavanja 70 . a kome se. koji razmjenjuju poruke. koji pripadaju istom računaru). od sadržaja poruke. tako da je razumljiv samo za povjerenika. oba moraju da znaju i algoritam kriptovanja i svoj interni ključ kriptovanja. Svaka od poruka. Na osnovu rednog broja računara. radi fizičkog prenosa i prijema paketa (u donjem delu ovog drajvera se nalaze obrađivači prekida. čiji prijem nije potvrđen. Pomenute tri sistemske operacije pozivaju (neblokirajuće) operacije gornjeg dela drajvera mrežnog kontrolera. Zahvaljujući tome. retransmituju poruke. koje se razmjenjuju između procesa. jer su komunikacione linije pristupačne svim korisnicima. na osnovu adrese izvorišnog procesa iz upravljačkog dela ove poruke. eventualno. kasnije upućuje odgovor) i 3. U toku programiranja. adresu odredišnog procesa (kome se poruka upućuje). koji je poznat samo klijentupovjereniku. Upravljački deo poruke obuhvata: 1. Na primjer. zgodnije je. na primjer. PROBLEMI RAZMENE PORUKA Slaba tačka razmjene poruka je sigurnost. čiji prijem nije potvrđen. Adresa (odredišnog ili izvorišnog) procesa sadrži jedinstven redni broj računara. njen redni broj i slično). namijenjenim za (privremeno) smještanje poruka. koja sadrži ime klijenta i ime servera sa kojim klijent želi da ostvari sigurnu komunikaciju (sadržaj ove poruke je kriptovan ključem. kada se. koja sadrži interni ključ kriptovanja i ime servera (sadržaj ove poruke je kriptovan ključem. Ako ne postoji slobodan bafer. koja sadrži interni ključ kriptovanja i ime klijenta (sadržaj ove poruke je kriptovan ključem. da bi klijent i server mogli da razmjenjuju poruke sa šifrovanim sadržajima. Pod pretpostavkom da je algoritam poznat svim procesima. potvrda prijema paketa i retransmisija paketa. radi reagovanja na isticanje zadanih vremenskih intervala. da bi bila sačuvana i kasnije isporučena serveru.

kojima pripadaju pomenuti deskriptori. za servera stroga sekvencijalnost njegove aktivnosti znači manju propusnost i sporije pružanje usluga. tako da je razumljiv samo za klijenta). Njegov zadatak je da objedini sve računare distribuiranog računarskog sistema. middleware). radi pronalaženja servera direktorijuma. To je najlakše ilustrovati na primjeru servera datoteka. sa uniformnim načinom označavanja datoteka i sa jedinstvenom hijerarhijskom organizacijom datoteka (koju na isti način vidi svaki korisnik). nego jedinstven sistem. FUNKCIJE DISTRIBUIRANOG OPERATIVNOG SISTEMA Mikrokerneli stvaraju osnovu za obrazovanje distribuiranog operativnog sistema (distributed operating system. Primalac poruke kriptuje (retransformise) digitalni potpis primjenom algoritma kriptovanja i javnog ključa (pretpostavka je da su algoritmi kriptovanja i dekriptovanja komutativni). Ako se sigurna razmjena poruka zasniva na asimetričnoj kriptografiji. pri čemu korisnik nije svjestan mesta na kome se usluge pružaju. Za komunikaciju sa poverenikom ovi procesi koriste javni ključ povjerenika. radi usluživanja jednog klijenta. Asimetrična kriptografija omogućuje i digitalno potpisivanje poruka. Sigurnu komunikaciju klijenta i servera mogu ometati drugi procesi zlonamernim retransmisijama starih poruka. tako da korisnik distribuiranog operativnog sistema ne vidi pojedine računare. a broj ovih niti zavisi od broja postavljanih zahtjeva i menja se u vremenu.koji znaju samo povjerenik i klijent. ili izmjenom sadržaja poruka. čak i ako bi se njihovi zahtjevi odnosili na blokove datoteka. Digitalni potpis (digital signature) se šalje uz poruku. da bi dobili javni ključ svog komunikacionog partnera. Ovakva sekvencijalnost nije prisutna kod tradicionalnih operativnih sistema. U distribuiranom skupu datoteka pristup datoteci podrazumijeva konsultovanje servera imena. drugi proces može nastaviti aktivnost u istom sloju. oni se obraćaju povjereniku. Strogo sekvencijalna aktivnost ovoga servera bi izazvala zaustavljanje njegove aktivnosti. dok pristupaju globalnim (statičkim) promenljivim servera. Ugrađivanjem u sadržaj poruke njenog rednog broja. pa i ispraviti izmjene sadržaja poruka. Dok je za klijenta prihvatljivo da njegova aktivnost bude strogo sekvencijalna. jer nakon zaustavljanja aktivnosti jednog procesa u sloju za upravljanje datotekama. U međuvremenu ne bi bilo usluživanja drugih klijenata. dok se ne stigne do servera datoteka sa traženom datotekom. kao što je čitanje ili pisanje datoteke. Ako se rezultat kriptovanja digitalnog potpisa poklapa sa referentnim delom poruke. Pri tome. tada je uloga poverenika da čuva javne ključeve i tako osigura međusobnu identifikaciju procesa. a za komunikaciju sa njima povjerenik koristi njihove javne ključeve. a serveri datoteka podržavaju pristup sadržaju (običnih) datoteka. RAZLIKA KLIJENATA I SERVERA Različita uloga. Znači. Serveri direktorijuma podržavaju hijerarhijsku organizaciju datoteka. Zato je za servere potrebno obezbijediti više niti. svaka od niti (u okviru istog servera) opslužuje različitog klijenta. Na ovaj način. od koga kreće pretraživanje direktorijuma.predavanja 71 . mogu se otkriti. a ugrađivanjem u sadržaj poruke kodova za otkrivanje i oporavak od izmjena sadržaja. koji pruža mnoštvo usluga. zaduženog za pružanje usluga. je prirodna posledica njihove namjene. Distribuirani operativni sistem obrazuje (nudi) jedinstven skup datoteka. tada je poruka nedvosmisleno stigla od pošiljaoca. Sve ove usluge se dobijaju na uniforman način. On sadrži referentni deo poruke. 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). U direktorijumima (kojima rukuju serveri direktorijuma) uz imena datoteka (odnosno uz imena direktorijuma) ne stoje samo redni brojevi deskriptora datoteka. Postojanje više niti zahtjeva njihovu sinhronizaciju. mogu se otkriti retransmisije starih poruka. Ovakav distribuirani skup datoteka se oslanja na više servera direktorijuma i na više servera datoteka. nego i redni brojevi servera datoteka (odnosno servera direktorijuma). radi neopozivog pripisivanja poruke njenom pošiljaocu. kada je potrebno ostvariti sigurnu komunikaciju između dva procesa. dok kontroler ne prenese blok sa sadržajem datoteke između masovne i radne memorije. koji je dekriptovan (transformisan) primjenom algoritma dekriptovanja i privatnog ključa. ako kopiju često korišćenih Operativni sistemi . Pretraživanje direktorijuma može zahtjevati kontaktiranje različitih servera direktorijuma. koju klijent i server imaju u toku međusobne komunikacije (saradnje). Iz toga proizlaze i razlike u njihovoj internoj organizaciji. prisutne u baferima radne memorije. Serveri direktorijuma i datoteka mogu da ubrzaju pružanje usluga.

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

Operativni sistemi . a moćniji od jednog velikog i skupog računara. distribuirani operativni sistem omogućuje i deljenje skupih resursa ovakvog multiračunarskog sistema između više korisnika.. nego u slučaju centralizovnog (jednoprocesorskog) računara. tako sto dozvoljavaju klijentu da u svoj skup datoteka uključi skup datoteka mrežnog servera datoteka (koji je zadužen samo za upravljanje sopstvenim skupom datoteka). nego nastaju dogradnjom postojećih (različitih) operativnih sistema. koji je jeftiniji. aktivnih na raznim procesorima. proces klijent (koji u ime korisnika obavlja ovo prebacivanje) kontaktira dva servera (koji reprezentuju dve banke). Sigurnost i zaštita su usko vezani za fajl sistem (o operativnoj memoriji smo ranije pričali). Zato. pri čemu razni klijenti imaju različit pogled na ukupan skup datoteka mrežnog operativnog sistema. Primjer niza operacija. nudi i veću pouzdanost (jer kvar pojedinačnog računara nije fatalan za ceo sistem). i veću sigurnost (jer korisnici mogu da čuvaju poverljive podatke na svom računaru. 5. uz to. za atomske transakcije je neophodno da budu međusobno isključive (ako pristupaju istim podacima). čak. Dakle. Ovakav multiračunarski sistem. pa o tome vode računa u toku svog rada.) -hardverska i softverska greška -ljudske greške Jedan od načina na koji se branimo od gubitka važnih podataka je pravljenje rezervnih kopija (backupa) koje se potom čuvaju na sigurnom mestu. odnosno za otkrivanje i za oporavak od pojave mrtve petlje su još neefikasniji i sa jos manjim praktičnim značajem. u uslovima distribuiranog računarskog sistema. da bi obavio transfer iznosa sa jednog na drugi račun. Sigurnost se odnosi na opšti. preostaje da se spreči njena pojava (sprečavanjem ispunjenja uslova. koje objedinjuje mrežni operativni sistem. Pri tome. Aktivnost (saradnja) procesa. Pored integrisanja pojedinačnih računara u multiračunarski sistem. Kada sigurnost fajl sistema može biti ugrožena? -viša sila (udar groma. Znači. Mrežni operativni sistemi objedinjuju skupove datoteka raznih računara. pa. jer direktorijume servera mogu da uključuju u proizvoljno mjesto lokalne hijerarhijske organizacije datoteka. za koje je neophodno da obrazuju atomsku transakciju. Zato se u praksi sreću mrežni operativni sistemi. kao i mogućnost proširenja (jer je moguće naknadno dodavanje računara u sistem). Slabe tačke distribuiranog operativnog sistema su nesigurnost komunikacionih linija i teško ostvarenje njegove ukupne funkcionalnosti. 14. otvara mogućnost pojave mrtve petlje. da drugi klijenti mogu videti oba računa samo u stanju ili pre. s ciljem objedinjavanja njihovih skupova datoteka u jedinstven skup datoteka.5 MREŽNI OPERATIVNI SISTEMI Mrežni operativni sistemi se ne zasnivaju na mikrokernelima. algoritmi za izbegavanje pojave mrtve petlje. Ovo uključivanje se ostvaruje na nivou direktorijuma. neophodnih za pojavu mrtve petlje). filozofski pojam. ili posle transakcije. jednom napravljena izmjena ne može izgubiti). potrebno je onemogućiti pristup nekim fajlovima.SIGURNOST I ZAŠTITA Sigurnost Postoji potreba da operativni sistem onemogući neautorizovani pristup podacima svakog korisnika.predavanja 73 . Pokušaj pristupa datoteci iz nekog od uključenih direktorijuma automatski dovodi do komunikacije klijenta i odgovarajućeg servera. zemljotres. ali i da njihovi rezultati budu trajni (da se. koji se u pojedinim osobinama samo približavaju distribuiranim operativnim sistemima. kada nije prihvatljiv pristup ignorisanja problema mrtve petlje. Ovakva komunikacija zahtjeva usaglašenost svih računara (koje objedinjuje mrežni operativni sistem) u pogledu formata i značenja poruka. Transfer se mora obaviti tako.. željenu raspoloživost i predvidivost odziva. Na taj način je moguće od više jeftinih i malih računara napraviti multiračunarski sistem. požar. Pri tome. Pri tome su korisnici svjesni prisustva i uloge pojedinih računara. je prebacivanje nekog iznosa sa računa jedne banke na račun druge banke. To je neophodna (a često i jedina) dodirna tačka računara.transakcije (atomic transaction). Distribuirani operativni sistem je zamišljen tako da integrise mnoštvo računara u moćan multiračunarski sistem. u uslovima distribuiranog računarskog sistema. koga fizički štite i čije korišćenje mogu da kontrolišu). dok zaštitu predstavljaju usvojeni principi sigurnosti koji se realizuju na nekom operativnom sistemu. obuhvaćenih mrežnim operativnim sistemom. a nudi i prilagodljivost zahtjevima korisnika.

a ako ne operativni sistem će javiti da je lozinka pogrešna.> Ovaj fajl je svima dostupan za čitanje. Operativni sistem ih nekad ne obriše posle swap-ovanja pa se tu mogu kriti vredni podaci.) Nekoliko poznatih grešaka u ranijim operativnim sistemima UNIX u fajlu /etc/passwords čuva spisak svih korisnika sistema u obliku <korisnič ko_ime kriptovana_lozinka identifikacoini_broj grupa ime prezime .Treba da gleda deo diska sa izbačenim stranicama iz memorije. koji osim što rade ono čemu su namenjeni rade i nešto “krišom”se nazivaju trojanski konji.. ono što se upisuje može ličiti na sadržaj passwords pa se korisnik na taj način dopiše. Lica koja žele pristupiti zabranjenim fajlovima mogu biti: -laici. Postoji mogućnost da će se operativni sistem zbuniti pa se iz takvih situacija može nešto korisno zaključiti. -oni koji žele da izvuku materijalnu korist iz toga (prevarom. Šta treba da radi osoba koja provaljuje ? . Tako se možda može zaobići proveravanje lozinke. Brisanjem ovog fajla ni jedan korisnik se više ne može prijaviti na sistem. Kada bi korisnik pokrenuo takav editor ne bi bio svestan da dok on kuca. Lozinka se pri kopiranju proveravala u dva navrata i to prvi put se proveravalo smemo li uopšte kopirati sa trake u zadati fajl a drugi put kada kopiranje zaista i počne (ali tada se nije proveravalo i ime fajla).pristup svakom fajlu se kontrolisao lozinkom i to interaktivno . Operativni sistemi . Ako korisnik predhodno napravi u svom direktorijumu fajl core kao link na fajl /etc/passwords neki sadržaj će biti direktno upisan u njega. a na ovaj način samo 30 x 6 = 180. Operativni sistem OS/360 je omogućavao da se u toku računanja u pozadini nešto čita. Postoji komanda UNIX-a lpr koja se koristi za štampanje fajlova. Takođe u UNIX-u. Ako je setuid setovan tada proces koji ga je pokrenuo ima sva prava. On pokušava sa nekom lozinkom koja se napravi tako da prvo slovo leži u jednoj stranici memorije a ostatak u drugoj.Modifikacija strukture podataka koja se koristi za pozivanje servisa operativnog sistema može zbuniti operativni sistem pa se opet može nešto korisno saznati. Jedini uslov je bio da se to uradi paketno a ne interaktivno.. Postoji bit koji kontroliše prava i on se zove setuid.Treba da poziva nepostojeće sistemske pozive ili postojeće ali sa pogrešnim parametrima. . ako se pogodi prvo slovo procedura će odreagovati na Page Fault i obavestiti korisnika.. Kada se pogodi prvo slovo onda se lozinka tako “šteluje”da prva dva slova budu u jednoj stranici a ostatak u drugoj i postupak se ponavlja. .Digital DEC10 je takođe imao neke mane: . -oni za koje zaobilaženje mehanizama zaštite predstavlja intelektualni izazov. Ovo je potrebno da bi došlo do Page Faulta nakon što se obradi prvo slovo lozinke. bilo je moguće kopirati preko nekog fajla bez obzira da li se imala njegova lozinka ili ne. program mu paketno krade podatke. ucenom. imao je sve privilegije. odnosno kartice i snimiti ih bilo gde.Pri procesu prijavljivanja nekako ga nasilno prekinuti.. čim bi naišao na slovo koje ne odgovara. Korisnik (nasilnik) iz svog procesa pokrene proces koji ima setuid postavljen na 1 (na primer mkdir) i zatim ga nasilno prekine. Pod UNIX-om postoji standardni fajl core koji operativni sistem kreira i popunjava kada dođe do greške pri izvršavanju programa.. Ako se između ove dve provere promeni ime fajla.za svaki Page Fault se mogla “zakačiti” proizvoljna procedura . privredni. proces koji je pokrenuo neki program ima ista prava kao i njegov vlasnik. Memorija se popuni (nebitnim stvarima) tako da se u njoj nađe samo prva stranica. Ova komanda između ostalih ima i opciju brisanja fajla pa se njom može obrisati i fajl passwords.predavanja 74 . Bilo je moguće učitati podatke sa trake.. javio bi grešku Neka neki program želi da pristupi zaštićenom faju.. koji nisu zlobni ali ako im se pruži prilika da “zavire”u tuđu poštu to će i uraditi. TENEX . Tako. Za lozinku od 6 od 30 mogućih znakova grubom silom bi trebalo izvršiti 306 provera.) -špijuni (vojni.Pored ovih slučajnih postoje i namerni napadi na sigurnost fajl sistema. . Na Page Fault se “zakači”procedura koja obaveštava o svakom Page Fault-u.lozinka se proveravala slovo po slovo.. MULTICS je imao loše zaštićene mehanizme za paketne obrade. Ljudi su tada pravili svoje editore koje su snimali u direktorijum odakle žele ukrasti fajl. Ovakvi programi. Ovo je moguće zato što je u trenutku prekida proces imao postavljen setuid na 1 tj. Uz malo muke.

UNIX tada proverava u fajlu etc/passwords da li postoji odgovarajuć e ime i da li lozinka odgovara. krv.prava). Pri prvom prijavljivanju se korisniku postavljaju lična pitanja. Na primer: Operativni sistemi . Pokrene takav program i napusti računar. brojevi automobilskih tablica. Na primer. . uniforman. Domen je skup parova (objekat. Uobič ajeni nač in provere identiteta je putem lozinke.Jednokratne lozinke. Korisnik tada unosi ime.Mehanizam zaštite treba da bude psiholiški prihvatljiv. Domeni se predstavljaju matricama.Mehanizam zaštite treba da bude jednostavan. onda se naknadno eksplicitno povećaju.Podrazumevajući način pristupa svakom objektu -fajlu je “ bez pristupa” tj niko ne sme da mu pristupi. ..rwx). .Dizajn zaštite treba da bude javan. Provera identiteta Ni jedan korisnik se ne bi smeo lažno predstaviti.Korisniku se pri prvom prijavljivanju dodeli algoritam. Kako izabrati lozinku i da li je ona dovoljna? Teoretski je moguć e napraviti 957 lozinki dužine sedam karaktera što je i više nego dovoljno. Lozinka je jednostrano šifrirana što znači da ne postoji način da se nakon kriptovanja vrati u prvobitno stanje. Na primer (objekat.. Treba dobro realizovati principe (pa se hvaliti).Može da napravi program koji simulira prijavljivanje. Kada su tako napravljene lozinke upoređene sa pravim više od 85% je bilo pogođeno. Zato se uvode dodatne provere.Pri odabiranju lozinke se mogu postavljati uslovi tako da lozinka na kraju mora ispasti nelogič na.Šarmirati sekretaricu ? Principi za ostvarivanje sigurnosti . . imena njihovih žena. jedan mora biti cifra. da je opasno .Lična pitanja. korisnici su skloni standardnim.. . Takođe. na primer x . Ako je provera identiteta jako bitna onda se koristi i fizička provera (koja nije baš jako popularna od strane korisnika). od početka zamišljen. predvidivim lozinkama.. Pri kasnijim prijavljivanjima od korisnika se zahteva ime. Ali korisnici prave kraće lozinke i ne koriste sve moguće karaktere. pročita koja mu treba.Raditi sve što uputstva kažu da nije dozvoljeno. na primer vlasnik ima sve privilegije a ostali nikakve. Upotrebljavana su imena i prezimena korisnika.. dece. Zaštita Domen2 Domen3 Svakom objektu se dodele tri slova koja označavaju prava pristupa. otisci prstiju.. Ako su potrebne veće.. . Može se proveravati zenica. Lozinka se dodatno šifrira 12-bitnim brojem koji je jedinstven za svakog korisnika? .. . Oni koji dele domene sa vremena na vreme mogu menjati domen. Tokom nekog istraživanja pokušale su se provaliti lozinke koje ljudi koriste.. lozinku i rešenje. iskoristi je pa dobije drugu. jedan mora biti veliko slovo.. datumi rođenja i slično.Generatori slučajnih brojeva. . Korisnik ne sme koristiti resurse ako nije ovlašć en. .Kada se proces počne izvršavati dodeli mu se domen i tada on može da pristupa samo objektima iz tog domena i to kako su prioriteti zadani.predavanja 75 . . korisnik u lozinci mora da iskoristi šest znakova od kojih jedan mora biti specijalan. Sledeći korisnik seda za računar i unosi svoju lozinku koju program negde zapamti pa zatim pozove pravi program za prijavljivanje. U praksi nikad nije baš tako ali je nešto logično. . Korisnik ima knjižicu sa lozinkama. lozinka i da mu se neki broj. Pri prijavljivanju na UNIX sistem potrebno je uneti login (korisnič ko ime pod kojim smo poznati operativnom sistemu) i password (lozinka).Uvek se traže tekuća prava pristupa. pa se ponekad proverava identitet korisnika pomoću njih.Svaki proces treba da započne rad sa što manje privilegija.

Nevolja kod kriptografije je u tome što se nikad ne može dokazati da je algoritam dobar. Sledeći korak je da se šifra čuva u fajlu enkriptovana. Lokalne mreže su otvorene čitanju.(Pera. Fajl2 . Taj deo između dva računara je najosetljiviji.Fajlu Fajl0 može da pristupa Pera iz bilo koje grupe i da radi sve. a poslednja tri na sve ostale korisnike. Tu postoji čitav niz mera koje mogu da se preduzimaju. 111 101 100 znači da: -vlasnik može da čita i piše u fajl i da ga izvršava fajl ( rw x v l a s n i k) -grupa kojoj vlasnik pripada može da čita i izvršava fajl ( rw x grupa) -svi ostali mogu samo da čitaju fajl.Fajlu Fajl3 Pera iz bilo koje grupe ne može da pristupi ni na koji način dok svi korisnici iz grupe studenti mogu da rade sve. što znači da se šalje preko zajedničkog kabla. w bit označava pravo pisanja. ( rw x o s t a l i) Zaštita operativnih sistema Zaštita OS ima više nivoa. Postoji pitanje o efikasnom korišćenju resursa. )(*.nastavnici. više namena i više načina. po kolonama.Fajlu Fajl1 može da pristupa Djoka iz grupe system i da radi sve.studenti. Dobar sistem ima javni algoritam gde se kaže tačno šta se radi sa podacima. ali je praksa pokazala da jedna datoteka ne može dovoljno dobro da se zaštiti. druga tri na grupu kojoj vlasnik pripada.Mika iz grupe osoblje(da čita) i Aca iz grupe nastavnici(da čita i izvršava). Ako se matrica pamti po kolonama onda se naziva Access Control List (ACL).*. jer princip lokalne mreže je broad cast. a brzo i efikasno. pa dok ona ne dođe do računara. Apsolutna zaštita ne postoji. i svako može da sluša.Fajl 1 Dom 1 Dom 2 Dom 3 Fajl 2 R RW Fajl 4 Fajl 4 Fajl 5 Stampac Fajl 6 Ploter D1 D2 Enter D3 R RW RX W W R W Poslednje tri kolone služe za prelazak iz jednog domena u drugi. U UNIX-u su svakom fajlu pridruženi 9 bitova kojima se određuju prioriteti. Prva tri se odnose na vlasnika. Fajl1 . Kako su ovakve matrice prilič no retko popunjene. Tipičan primer je mreža gde se na jednom kraju nalazi računar na kome se ukucava šifra.osoblje. r bit označava pravo čitanja. Od početka je osnovna ideja bila da postoji neka datoteka u kojoj se nalazi spisak svih korisnika i njihovih šifri.predavanja 76 . Treba paziti ko može pristupati računarima.r)(Aca. čuvanju fajlova. To je menjanje izvornog zapisa tako da postane nerazumljiv onome ko ne zna kako da ga dešifruje. zenica oka.*. Potrebno je da se taj korisnik identifikuje.rwx) . a x bit označava pravo izvršavanja fajla. Mnogo vrednih informacija je koncentrisano u datoteci u kojoj su šifre. Ako je računar spojen na mrežu onda tu govora o sigurnosti ne može da bude.system. Takođe su mogući načini koji čoveka određuju jedinstveno. obič no se predstavljaju drugač ije i to po vrstama ili kolonama pri čemu se pamte samo korisni podaci. Ako se radi o lokalnoj mreži onda tu nema nikakve sigurnosti. Na primer. Fajl3 . … Ideja sa password-om deluje jednostavno i razumno s tim što se u praksi javljaju mnogi problemi. Većina od tih mera se zasniva na oblasti koja se zove kriptografija. već postoje kontra primeri koji mogu pokazati da algoritam ne valja.rwx) . Tu datoteku treba zaštititi. Kao što su otisci prstiju.rx) . Ta enkripcija se onda radi sa algoritmom koji pripada klasi jednosmernih algoritama. Kada korisnik dođe da radi on mora prvo da prođe program login. a na drugom računar sa fajlom u kome je šifra i algoritam za kriptovanje. Na primer.(Pera. a ako se pamti po vrstama C-lista. Kada je već pristupio šta može da radi.(Pera. To se radi na različitim mestima: pri pristupu sistemu.Fajlu Fajl2 mogu da pristupaju Pera iz bilo koje grupe(da čita i piše). Danas se to rešava upotrebom password-a. Biće slab od onog momenta kada korisnik unese šifru. Kada se napravi gore navedeni sistem on će i dalje biti slab. jer treba da je stalno pri ruci programu login.rwx) . Potrebno je samo malo softvera. Domen je korisnik+grupa: Fajl0 .*. Prva stvar koju treba utvrditi je ko može da pristupa računaru.(Djoka. a težina je u tome da je algoritam dobro osmišljen tako da stvarno nema inverznog algoritma.rw)(Mika. Operativni sistemi .

Ona je zgodna zbog toga što se istom metodom šifrirani tekst vraća u originalno stanje. ako je ključ dužine jednog bajta to postaje lako za svaki jezik postoji verovatnoća njegovog pojavljivanja u tekstu.15 Load ah. Time problem nije u potpunosti rešen. Ona su zgodna zato što su prisutna na svakom računaru. Statistički napad. Stvar nije u algoritmu već je cela stvar u ključu. jer postoje razne metode napada na sistem. Savršeno šifriranje postiže se metodom koja se zove one time pass. Što se tiče OS. kojima ne bi trebao da ima pristup (štampanje . To je tamo zaštićeno i stvar je mnogo teža. Kada je korisnik već prišao računaru onda treba da se ograniči čemu on može da pristupa. crve(razmnožavaju se. Virusi su nalaženi i na originalnim fabričkim disketama. Tako se on širi. Ako su uzme ključ dužine 2 bajta onda za slova umesto 30 biće 900 kombinacija.predavanja 77 . Uzme se tekst koji hoće da se šifrira i onda se taj tekst na neki način kombinuje sa nekim drugim podacima koji se zovu ključ. 30 To je suština koja treba da stoji a okolo mogu biti ukrasi koji se mogu menjati. On je zgodan jer se uvek učitava i prisutan je na svakom sistemu. Napadi grubom silom. Zato programi nisu nikada do kraja istestirani. a ona se teže proveravaju. ali ipak najsigurnije rešenje je da se preformatira disk i očisti particiona tabela. dugačak kao sam tekst i nikad Operativni sistemi . Ovim načinom širenja se menja veličina fajlova. Zato ključ treba da bude dovoljno dugačak da bi se ovakvi napadi otklonili. DOS je bio najosetljiviji na viruse jer nema nikakve zaštite. a ne samo na piratskim programima. a koji se ne zasnivaju na hardverskoj tehnologiji. Kod unix-a i Windows NT-a toga nema jer korisnik nema direktan pristup boot sektoru. To su programi koji su zlonamerno ubačeni u sistem. trojanske konje Ovo nije precizna klasifikacija. Program može abnormalno da se prekine i onda može da ono što imam u memoriji izbaci na disk. Nepraktičan je. ali ne i nemoguća. Mesta koja su zgodna su izvršni programi. niz određenog broja bitova. Jedna od osnovnih nevolja je što korisnik mora da pristupa nekim resursima. particionoj tabeli ni bilo čemu drugome. Programi koji pronalaze viruse ponudiće da očiste viruse. ali mana je to što provera uvek počinje od njega. a ne prave drugu štetu). ali virus može da obriše deo programa pa da se tamo postavi. Virus se napuni u memoriju i tamo sedi i kad god se neki drugi program startuje on se prikači za njega. Postoji jedan zapanjujuće jednostavan sistem koji je teoretski dokazano savršen. Postoje i drugačiji napadi koji su dosta češći. Kasnije su virusi počeli da se čuvaju na boljim mestima kao što je boot sector i praticiona tabela. ali da je algoritam jednsmeran. ali on ima neke druge mane. Onaj koji može da formatira disk je primer takvog. Kasnije su počeli da se pojavljuju samomodifikujući virusi. Takođe može da pretražuje po disku i da kad god naiđe na program sa ekstenzijom exe da se prikači na njega. ali taj suštinski kod može da se modifikuje. Jedna stvar koja se javila na računarima pre 10-ak godina su programi koji prave štete. već na softveru i psihologiji. Ljudi koji prave viruse uzimaće suštinski deo. Podrazumevamo da su algoritam i šifrirani tekst poznati protivniku. Problem je u dokazivanju da taj algoritam nema inverz. Ti programi mogu da se klasifikuju na: Viruse. tu se radi o ljudima koji ulažu veliki napor da nađu rupu. Ovaj ključ se samo jednom koristi i njegova dužina je dužina teksta.Rešenje je da pasvordi putuju kriptovani. Svaka kriptografija se danas zasniva na sledećoj ideji. i tome mogu da se nalaze kritike i onda ima različitih nivoa kako se to brani. a time sam program prestaje da bude funkcionalan čime može da se otkrije virus. Boot sector se sastoji iz prvih 512 bajtova pa je zgodno da se tamo prikači.com. To kombinovanje može da se vrši na razne načine ali je praksa pokazala da je XOR operacija najbolja. Suštinski kod je: Load al. a isto tako praticiona tabela se sastoji od 512 bajtova od kojih je 30 zauzeto. Algoritam za kriptovanje mora da bude na oba kraja. komunikacije…). Neki kažu da viruse prave oni koji prave programe za otklanjanje virusa. i delovi OS koji se stalno učitavaju kao command. a kada se zaraženi program prebaci na drugi računar on počne tamo da se širi. on se šifrira ključem pa se onda uzme naredni deo teksta… Ključ mora da bude dovoljno dugačak. Uzme se deo teksta.

Jedan je na osnovu radiaktivnog raspada. Druga mana je to što nije sigurno koliko je ovaj sistem siguran (za sada nema dokazanih slučajeva da ga je neko provalio). Za kriptografiju ovi brojevi nisu slučajni. Time je spremljena komunikacija od onoga ko uzme javni ključ do onoga ko ima svoj tajni ključ. Garantuje da na nivou pojedinca niko neće moći da ga dešifruje. Te metode se mogu klasifikovati u dve kategorije. Prednost ovih algoritama je da su brzi. Onda se postavlja pitanje distribucije ključa. pa je onda pitanje algoritma koji treba dobro da se napravi. pa čak ni za pisane poruke jer je i tamo jako komplikovan. Mora na neki način da se reši pitanje ko je stvari autor poruke. Danas ovakvi ključevi mogu da se koriste ali ih je teško praktično izgenerisati. Problematičan je onaj deo da ključ treba da bude slučajan. Potreban je nekakav ključ koji treba da je kratak jer mora da se saopšti drugoj strani. za drugi prolaz uzmu se neka druga 42 bita i slično kao prethodno… Ovo ima smisla da se radi jer čini sistem otpornim na statističke napade. Ključ može biti deo teksta iz knjige od 50. u zavisnosti od sigurnosti i tehnologije treba da imaju od 100 do 200 cifara. ali se uočava naredni problem: kada A dobije poruku od osobe B. Ona se postiže negde iz prirode. B kriptuje javnim ključem od A poruku + potpis koji je kriptovan sa tajnim ključem od B. Tako dugačak ključ može da se napravi ali to nije jednostavno. Napravi se proizvod n = p * q i tu je onda ideja da n teško može da se rastavi na polazne faktore. U današnjim uslovima sa velikim diskovima ovaj način ne zvuči loše jer na disku može stati jedan veliki ključ dužine veće od dužine svakog teksta koji želi da se šifrira. Najpoznatiji algoritam sa sistemom javnog ključa je RSA. Ovo se svodi na to da jedan ključ može javno da se objavi. Metodi šifriranja javnog ključa Njihova osnovna osobina je da imaju dva ključa. Kod DES se kripcija radi na sledeći način: Cela poruka se podeli na grupe od 64 bita. deo poruke dekriptuje svojim tajnim ključem (korisni deo poruke) a javnim ključem B potpis koji je sastavni deo poruke. Obično se desna strana kmbinuje sa ključem. a ona su tipično takva da se podeli grupa od 64 bita na levu i desnu stranu. DES nikada nije bio popularan jer je većina stručnjaka rekla da je ključ od 56 bita prekratak. (p-1)*(q-1)) = Operativni sistemi . Na osnovu tog kratkog ključa treba dobiti kvalitetnu enkripciju.predavanja 78 . pa se uvek rekurzivno čuva prethodna i sledeća iteracija. A kada primi poruku. pa se sa njima nešto uradi i dobije se ključ za prvi prolaz.se ne ponavlja. Osnovna ideja je zasnovana na velikim prostim brojevima i na tome da se oni teško mogu faktorizovati. Zato se mi ograničavamo na pseudo slučajne brojeve gde se krije prava opasnost. Takvi uređaji postoje ali su spori. Tipično je da se dužina ključa meri u bitovima. (d. Ako je poslata poruka šifrirana javnim ključem. jer A je svoj javni ključ objavio tako da može bilo ko da mu ima pristup. Analize pokazuju da postoji ne baš čista inverzija iz čega izlazi da se sa jednim dobrim računarom može izvršiti dešifrovanje za 2-3 sata) čime dolazi u pitanje sigurnost tog sistema. pa to onda nije zgodan i široko dostupan način za generisanje slučajnih brojeva. strane. Postoje uređaji koji se zovu generatori slučajnih brojeva. Tu se rade razna mešanja. Pravu slučajnost je teško potići. Dužina DES ključa je 56 bita. ako se nađe način da se doturi ključ. Ne koristi se isti ključ za enkripciju i dekripciju. a na nivou države da će sigurno moći da ga dešifruju. To se jednostavno rešava tako što na poruku osoba B nadoveže svoj potpis. Klasična enkripcija je enkripcija pomoću jednog ključa. jer je kriptografija naučna oblast u kojoj ne postoji dobronamernost. Te grupe se jedna po jedna kombinuje sa ključem. onda je nađen način da se doturi i poruka. napravljeni su na osnovu nekog algoritma. Ovih standardizovanih algoritama ima dosta u svetu i svi rade na sličan način. već se koriste neki drugi metodi. Ni sa jednim od tih sistema ne možemo biti sigurni. do 100. osoba A nije sigurna da li je to osoba B poslala. Iako izgleda kao idealan i ovaj način ima svoje mane. Ako ima više mesta sa kojima se komunicira onda taj ključ mora svuda da se pošalje i da se pazi da negde ne procuri. a oni mogu da se zasnivaju na raznim principima. Ovim je rešena distribucija ključa. RSA izgleda ovako: Uzmu se dva velika prosta broja p i q. Izabere se broj d koji je relativno prost u odnosu na (p-1) * (q-1) tj. ne koristi se real time. Sa ovakvim metodom nastaje problem sa distribucijom ključa. Glavna mana je što je jako spor. Mešanje se vrši tako da od 56 bita ključa uzmu se 42 i to na propisan način pa se oni na neki način ispermutuju. Najpoznatiji algoritam ove vrste je DES. ona može da se dešifruje samo tajnim ključem. Često se koristi samo za prenošenje ključa. a drugi je tajni i čuva se za sebe.

PGP je ovakav sistem koji se koristi za slanje elektronske pošte preko interneta. onda se parovi (e.predavanja 79 . Primer. Izabere se e takav da je (e*d) mod (p-1)(q-1) = 1.1. Operativni sistemi .n) proglase javnim ključem a (d. Tada se blok p iz {1…n} diže na stepen e ili d u zavisnosti od toga da li se vrši enkripcija ili dekripcija. Ceo tekst se podeli na blokove tako da svaki blok može da se kodira brojem od 1 do n. Ovde se javlja problem verodostojnosti javnog ključa. a dekripcija: pd mod n.n) tajnim ključem. može da se pokaže da su ove operacije inverzne. Da li je objavljeni javni ključ stvarno taj javni ključ? Drugi problem je koji uvek važi kod kriptografije: da li taj sitem stvarno ne može da se probije. Enkripcija se sastoji u tome da pe mod n. Radi slično kao RSA ali se algoritam za enkripciju menja.

Sign up to vote on this title
UsefulNot useful