P. 1
Operativni sistemi - predavanja

Operativni sistemi - predavanja

|Views: 1,092|Likes:
Published by Pavle Stepanic

More info:

Published by: Pavle Stepanic on Oct 15, 2010
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

02/05/2013

pdf

text

original

Sections

  • 1.1. Definicija i zadaci operativnog sistema
  • 1.2 Začeci operativnih sistema
  • 1.3.1 Rad off-line
  • 1.3.2 Baferovanje
  • 1.3.3 Spooling
  • 1.3.4 Multiprogramiranje
  • 1.3.5 Deljenje procesorskog vremena (Time Sharing)
  • 1.3.6 Sistemi za rad u realnom vremenu (RealTime Systems)
  • 2.Slojevita realizacija
  • 3.1 Koncept multiprogramiranja
  • 3.2.1 Osnovni koncepti
  • 3.2.2 Redovi procesa
  • 3.3.2 FCFS algoritam
  • 3.3.3 SJF algoritam
  • 3.3.4 Algoritam sa prioritetima
  • 3.3.5 Algoritmi sa prekidanjm
  • 3.3.6 Kružni algoritam
  • 3.3.7 Višenivovski redovi
  • 3.3.8 Višenivovski redovi sa povratnom spregom
  • 6.1 Gola mašina
  • 6.2.1 Zaštitni hardver
  • 6.2.2 Relokacija
  • 6.3 Prebacivanje (swapping)
  • 6.4.1 Particije fiksne dužine (MFT)
  • 6.4.2 Particije promenljive dužine(MVT)
  • 6.5 Straničenje
  • 6.6 Segmentacija
  • 8. Upravljanje ulazno-izlaznim jedinicama
  • 9. Upravljanje sekundarnim i tercijalnim memorijama
  • 10. Fajl sistem
  • 11 čas
  • 14.SIGURNOST I ZAŠTITA Sigurnost

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

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

Operativni sistemi sa multiprogramiranjem su prilično složeni. I/O kontroleri i sve ostalo što se koristi da bi se dobila neka informacija ili izvršila neka radnja.ili kasnije će prvi posao završiti svoje čekanje i dobiće ponovo CPU kako bi se nastavio. 1. Primer upis datoteke na HD računara. 3. 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. unapred definisanog vremenskog intervala. 1. procesor. Osnovni razlog za to je sporost korisnika.5). zaštite i dr. Obrada kod ovakvih sistema mora biti završena u okviru unapred zadanog vremenskog perioda.6 Sistemi za rad u realnom vremenu (RealTime Systems) Još jedan oblik operativnih sistema jesu sistemi za rad u realnom vremenu. Primer: punjenje memorije sa podacima ili programima. Takođe moramo da imamo i mogućnost kratkoročnog planiranja poslova (cpu scheduling). Sada nije problem što korisnicima treba relativno puno vremena da izvrše unos sa tastature ili pročitaju sa ekrana monitora rezultate rada programa. Automatsko funkcionisanje računarskog sistema OS mora da omogući funkcionisanje računarskog sistema bez dodatne intervencije korisnika. upravljanja zastojima. Mogućnost planiranja i raspoređivanja poslova (scheduling) Operativni sistemi .3. Računar analizira te podatke i po potrebi podešava upravljanje kako bi promenio ulaz u senzore. Da bi mogli da imamo nekoliko poslova spremnih za izvršavanje. oni moraju da se istovremeno nalaze u memoriji (slika 1. podaci.3.predavanja 5 . Dokle god postoji neki posao koji treba izvršavati CPU nije besposlen. Osnovni cilj svakog OS je da svi ovi rasursi budu optimalno upotrebljeni.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. To povlači da moraju da postoje sredstva za upravljanje memorijom. jer se upravljanje procesorom prenosi na druge poslove tokom svakog vremenskog intervala. Ovakav operativni sistem koristi planiranje CPU-a i multiprogramiranje dozvoljavajući svakom korisniku da koristi procesor tokom malog. 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. Ovakvi sistemi se često koriste kao kontroleri u specijalnim aplikacijama. 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. Različiti senzori snabdevaju računar podacima. planiranja U/I uređaja. 4. 2. Upravljanje resursima računarskog sistema Pod resursima podrazumevamo programe. upravljanja konkurencijom. memorija.

Deoba resursa U većini slučajeva konkurentne aktivnosti koriste zajedničke resurse ili informacije pa samim tim oni moraju da budu deljivi (shared). 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. odvoji od procesora kako bi on mogao da za to vreme radi neke druge stvari. ručni OS (handheld system). sinhronizacija aktivnosti koje zavise jedne od druge. Jednostavnost održavanja 4. korišćenje zajedničkih resursa. greške u toku izvršavanja programa). To se rešava putem uređaja sa velikim kapacitetom tj. distribuirane OS. udružene sisteme. 3. interaktivni(time sharing) i kombinovani. brzina upisivanja i očitavanja podataka. Karakteristike Operativnih sistema 1. Visok nivo efikasnosti 2. kada izvršava isti program sa istim podacima on mora uvek da da isti rezultat bez obzira kada se vremenski taj program odvija. Mnogi problemi se tu javljaju koje OS treba da razreši kao: obezbeđenje jednostavnog pristupa podacima. njihovo istovremeno izvršavanje. Nedeterminizam OS mora da se ponaša deterministički tj. sekundarnom memorijom. 2. Eliminisanje zavisnosti U/I operacija Izvršavanje U/I operacija je znatno sporije od procesora pa je potrebno da OS te operacije izoluje tj. Poželjne osobine Operativnog sistema 1. Postoji više razloga da se oni dele a na prvom mestu to je ekonomičnost korišćenja tj. 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. mrežne OS. ugnježdeni OS (embedded). 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. Uloga operativnog sitema je Operativni sistemi . paralelnih aktivnosti koje se istovremeno izvršavaju. prelazak sa jedne na drugu aktivnost i td. OS za stone računare. zahtevi za dodelu nekih resursa. 4. 6. Visok nivo pouzdanosti 3. sigurnost podataka i zaštita od grešaka i td.Radi preciznije dodele procesa i procesora uvode se kontrolne naredbe koje treba da upravljaju celokupnim radom računarskog sistema (job control language). 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.predavanja 6 . 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. znatno se smanjuje cena jednog računarskog sistema. o Prema funkcionalnim osobinama računarskog sistema: OS za velike računarske sisteme. Postojanje dugotrajne memorije Da bi smo mogli da opslužimo viče korisnika tj. 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). OS za upravljanje u realnom vremenu. DMA je sposoban da vrši prenos podataka između perifernih uređaja a da pri tom ne angažuje procesor za to. OS za višeprocesorske sisteme. Javljaju se mnogi problemi koje tu treba razrešavati kao:uzajamno ne mešanje. Konkuretnost Predstavlja postojanje više simultanih. Multiprogramiranje Tehnika koja nam omogučuje da na jednom računaru pokrenemo više programa od jednom tj. 5. OS za sisteme sa deljenjem vremena.

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

predavanja 8 . pošto su sve one međusobno izolovane i ne mogu direktno deliti resurse. 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.prvi sloj upravlja memorijom. 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. virtuelne mašine mogu instalirati različiti operativni sistemi koji izvršavaju različite programe. Virtuelne mašine Ovde je potrebni istači još jednu softversku strukturu koja je vezana za razvoj OS i koju je lansirao IBM.Arhitektura mikrojezgra Mikrojezgro (microkernel) predstavlja veoma savremen koncept u relizaciji savremenih OS. OS stvara iluziju o višestrukim procesima koji se izvršavaju na svom virtuelnom procesoru i svojoj virtuelnoj memoriji. Struktura virtuelnih mašina definisana je na sledeći način: na najnižem nivou nalazi se hardver. Sada se na te kopije tj. Operativni sistemi . drugi sloj upravlja komunikacijom između različitih procesa i komandnog interpretera. 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. 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. Radi se o virtuelnoj mašini koja ima velike prednosti pri realizaciji novih OS. 3. 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. 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. Tu se nalaze korisnički moduli koji mogu međusobno da komuniciraju ali samo preko sistema poruka (message passing). spremno da odgovori na sve zahteve jednog računarskog sistema. Sve ostale funkcije jezgra smeštaju se u korisnički prostor. 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.

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

Jednoprocesorski sistem (uniprocesor) je računarski sistem koji ima samo jedan centralni procesor. Multiprogramski sistemi se karakterišu time da više aktivnih programa mogu istovremeno konkurisati za resurse sistema.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.Višekorisnički (multiaccess ili multiuser) operativni sistemi su sistemi koji dopuštaju simultani pristup računaru sa dva ili više terminala. 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. Operativni sistemi . 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.predavanja 10 . 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. Programi i podaci se unapred pripremaju na spoljnim medijumima i organizuju u vidu paketa koristeći naredbe JCL (Job Control Language).

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ako posao zahteva m memorijskih reči on se može izvršiti u particiji veličine n reči (n ≥m).predavanja 35 . Ta dva registra sadrže gornju i donju granicu adresa koje korisnički program može legalno generistati. Tako se posao koji čeka da se oslobodi njemu odgovarajuća particija preskače ukoliko postoji slobodna particija koja odgovara nekom drugom poslu. Kao i ranije. 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. i mogu se definisati na dva načina: •Granični registri. Ova zaštita se može obaviti korišćenjem dva registra. Same particije mogu biti međusobno različite po veličini. Planer poslova vodi računa o memorijskim potrebama svakog posla i raspoloživim memorijskim oblastima kako bi odredio kojim poslovima da dodeli memoriju. kao na slici 6. Oba tipa fragmentacije se javljaju kod MFT strategije. Vrednosti najmanje i najveće fizičke adrese. on oslobađa prethodno dodeljenu memorijsku oblast koja se onda može napuniti drugim poslom iz reda poslova.1 Particije fiksne dužine (MFT) Poslovi koji pristižu u sistem smeštaju se u red spremnih poslova. Kod dodele memorije moguće su različite strategije. Ove zahteve može da specificira sam korisnik ili se mogu određivati automatski.9.9. •Bazni i granični registar. 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. 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. On se tada može nadmetati za dobijanje CPU-a. Kada se poslu dodeli memorijski prostor. Dva granična registra koji definišu logički adresni prostor. 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. Razlika n -m predstavlja internufragmentaciju. Očigledna varijanta ove šeme je da se spreči da memorijske particije budu prazne.Korisnik 1 Donja granica Korisnik 2 Gornja granica Korisnik 3 Korisnik 4 128K Sl.4. 6. Kada se posao završi. 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. pa tako uvek ostaje neiskorišćena. Operativni sistemi . Svaka particija ima sopstveni red poslova u kome su poslovi čiji memorijski zahtevi odgovaraju veličini dotične particije. 6. on se puni u odgovarajuću particiju. Ova dilema predstavlja izbor izmeću strategija najboljeg poklapanja (best-fit-only) i najboljeg raspoloživog poklapanja (best-available-fit). Eksterna fragmentacijase javlja kada je neka particija slobodna ali je previše mala za sve poslove koji čekaju. Legalne adrese nalaze se unutar tih granica. Planer poslova bira sledeći posao koji će se izvršiti i čeka dok se memorisjka oblast odgovarajuće veličine ne oslobodi. Drugi pristup je da se svi poslovi smeštaju u jedan red. Vrednost najmanje fizičke adrese i granica opsega logičkih adresa.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Sve to pravi velike probleme kod pamćenja imena datoteka jer se javljaju imena promenljive dužine. drugi 1 itd. 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. 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. već samo blokovsku velič inu. 3. Drugi problem je da se zbog velike dužine ulaza datoteke. pravi se razlika između velikih i malih slova što kod Windowsa i MS-DOS-a nije slučaj. Osnovni nedostatak ovog rešenja je pojava eksterne fragmentacije u tablicama gde se pamte adresari. Naime. bloka opis korisnika fajla fajla opisa blokova bloka bloka 16.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). Svi fajlovi svih korisnika su tamo. Kod UNIX-a su imena datoteka case osetljiva tj... Posle toga redni broj opisa – ako fajlu nije dovoljno 16 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..predavanja 53 . 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. Pogledamo u slogu adresu prvog bloka. 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. MS-DOS Podržava hijerarhijsku realizaciju direktorijuma. Karakteristika CP/M sistema je da ne zna tačnu veličinu fajlova (bajt-po-bajt). Prvi opis ima redni broj 0. Zatim sledi ime i tip fajla. CP/M CP/M je višekorisnički OS. U praksi se koriste dva rešenja i to: 1. Kod oba rešenja adresari se pretržuju linearno (sekvencijalno).. 2. Zbog različitog broja stavki koje se koriste za pamčenje datoteka prilikom brisanja istih javljaju se različite šupljine u tabelama. Atributi fajla se nalaze unutar ičvora. zauzima puno operativne memorije kod njenog aktiviranja. Svaki korisnik ima svoj jedinstveni idenkifikacioni broj koji se čuva u prvom bajtu. Ako imamo velike adresare sa velikim brojem datoteka to može da bude dosta sporo. 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 . ima samo jedan direktorijum. zatim atributi te datoteke i na kraju ime datoteke. Svi podaci vezani za datoteke se pamte u keš memoriji.. pa ako tu ne pronađemo tražene podatke tek se onda pretražuje sekundarna memorija. Operativni sistemi . Treba samo voditi računa o tome koji su ulazi slobodni. UNIX Najjednostavnije rešenje:čuvamo samo adresu i-čvora i ime fajla. dobija još jedan opis. Prvo se pamti dužina ulaza za datoteku. a adrese ostalih tražimo u FAT-u. 2. znači možemo imati najviše do 256 korisnika. 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. 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.. Prilikom traženja neke datoteke prvo se obraćamo keš memoriji. Razlika između ovih slogova je jedino u rednom broju i u listi zauzetih blokova. 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). Drugi način je korišćenje keš memorije i standardnih tehnika keširanja. zna tačnu veličinu fajlova (u bajtovima). ulazi sa fiksnom dužinom – ovde se lako brišu i dodaju novi ulazi pošto su svi iste veličine. Neki primeri realizacije adresara kod različitih operativnih sistema: 1.

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

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

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

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

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

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

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

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

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

piše jedan ili više bajtova u prethodno otvoren fajl od trenutne pozicije pokazivača.kreiranje novog.šta ) . APPEND ( fd.kreator . Koristi se na primer kod trake.system (sistemski fajl – deo OS-a) . Fajl u obliku B-stabla. tj. UNIX.vreme poslednjeg pristupa . 2.isto kao WRITE. Pored ovih informacija svi operativni sistemi č uvaju još neke dodatne podatke o fajlovima. kao što su vreme nastanka fajla.šta) .pos ) . -direktorijumi: sistemski fajlovi koji sadrže informacije o strukturi fajl sistema uređ ajni fajlovi: pod Unixom uređajima pridružujemo fajlove (ako želimo štampati.novoime ) .maximalna dozvoljena velič ina. -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. 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. moramo izč itati prethodnih n-1 bajtova. 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). Npr. operacija vrać a jedinstveni deskriptor fajla (file descriptor – fd) CLOSE ( fd ) . Ova realizacija je napuštena. pišemo u odgovarajuć i fajl). Te dodatne podatke zovemo atributima fajla.otvaranje (pripremanje) fajla za rad. Koristi se za brzo pretraživanje fajla po zadatom ključ u. Ovu realizaciju koriste DOS.vreme kreiranja .menja ime fajla Realizacija fajl sistema Imamo dva pristupa čuvanju fajlova na disku : Operativni sistemi .atr ) .velič ina fajla . 3.brisanje fajla OPEN ( ime ) .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.prava pristupa . Operacije sa fajlovima (file operations) Svaki OS ima svoj skup sistemskih poziva za rad sa fajlovima. ASCII fajlovi sadrže tekst. Neki moguć i atributi: . Najč ešć e operacije su: CREATE ( ime ) . da bismo proč itali n-ti bajt. Fajl je niz slogova iste veličine.vlasnik . podaci se dodaju na kraj.predavanja 63 .vreme poslednje modifikacije .postavlja (menja) atribute fajla RENAME ( ime.vra a atribute fajla SETATTRIBUTES ( ime. -specijalni fajlovi: zavise od OS-a. Ako je pokazivač na kraju fajla. sa razlikom da se novi podaci dodaju na kraj fajla SEEK ( fd.read-only (samo za č itanje) .hidden (sakriven fajl) . a binarni fajlovi bilo šta drugo.treba gledati na taj niz bajtova). velič ina fajla itd.pomera pokaziva fajla na zadatu poziciju GETATTRIBUTES ( ime ) . itd. Atributi fajlova (file attributes) Svaki fajl ima svoje ime i sadržaj. Windows. praznog fajla DELETE ( ime ) .

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

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

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

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

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

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

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

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

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

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

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

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

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

može da se pokaže da su ove operacije inverzne. Ceo tekst se podeli na blokove tako da svaki blok može da se kodira brojem od 1 do n. Izabere se e takav da je (e*d) mod (p-1)(q-1) = 1. Operativni sistemi . Enkripcija se sastoji u tome da pe mod n. PGP je ovakav sistem koji se koristi za slanje elektronske pošte preko interneta. a dekripcija: pd mod n. Radi slično kao RSA ali se algoritam za enkripciju menja.n) proglase javnim ključem a (d.n) tajnim ključem. Primer. onda se parovi (e.1.predavanja 79 . 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. 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. Ovde se javlja problem verodostojnosti javnog ključa.

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->