os pitanja i odgovori.docx

51
1. Definicija, funkcija I generacije operativnog sistema. 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. Računarski sistem možemo podeliti na:Hardver, Operativni sistem, Aplikativni softver i Korisnike. OS upravlja odredjenim hardverskim resursima i vrsi koordinaciju upotrebe hardvera,između različitih aplikacija korisnika. Funkcije ОS: OS predstavlja skup sistemskih programa koji posreduje između korisnika i računarskog hardvera a clij mu je da: *Izvršava korisničke programe i olakša rešavanmje korisničkih problema *Približi korišćenje računarskog sistema i učini ga podesnijim za korisnika *Omoguči što efikasnije iskorišćenje računarskog hardvera Upravljanje resursima računarskog sistema Pod resursima podrazumevamo programe, podaci, procesor, memorija, I/O kontroleri i sve ostalo što se koristi da bi se dobila neka informacija ili izvršila neka radnja. Osnovni cilj svakog OS je da svi ovi rasursi budu optimalno upotrebljeni. 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. Primer upis datoteke na HD računara. Automatsko funkcionisanje računarskog sistema OS mora da omogući funkcionisanje računarskog sistema bez dodatne intervencije korisnika. Osnovni razlog za to je sporost korisnika, 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. Primer: punjenje memorije sa podacima ili programima. Mogućnost planiranja i raspoređivanja poslova (scheduling)

Upload: tamara-petrovic

Post on 18-Jan-2016

179 views

Category:

Documents


5 download

TRANSCRIPT

Page 1: OS pitanja i odgovori.docx

1. Definicija, funkcija I generacije operativnog sistema.

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. Računarski sistem možemo podeliti na:Hardver, Operativni sistem, Aplikativni softver i Korisnike.

OS upravlja odredjenim hardverskim resursima i vrsi koordinaciju upotrebe hardvera,između različitih aplikacija korisnika.

Funkcije ОS: OS predstavlja skup sistemskih programa koji posreduje između korisnika i računarskog hardvera a clij mu je da:*Izvršava korisničke programe i olakša rešavanmje korisničkih problema*Približi korišćenje računarskog sistema i učini ga podesnijim za korisnika*Omoguči što efikasnije iskorišćenje računarskog hardvera

Upravljanje resursima računarskog sistemaPod resursima podrazumevamo programe, podaci, procesor, memorija, I/O kontroleri i sve ostalo što se koristi da bi se dobila neka informacija ili izvršila neka radnja. Osnovni cilj svakog OS je da svi ovi rasursi budu optimalno upotrebljeni.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. Primer upis datoteke na HD računara.

Automatsko funkcionisanje računarskog sistemaOS mora da omogući funkcionisanje računarskog sistema bez dodatne intervencije korisnika. Osnovni razlog za to je sporost korisnika, 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. Primer: punjenje memorije sa podacima ili programima.Mogućnost planiranja i raspoređivanja poslova (scheduling)Radi preciznije dodele procesa i procesora uvode se kontrolne naredbe koje treba da upravljaju celokupnim radom računarskog sistema (job control language).MultiprogramiranjeTehnika koja nam omogučuje da na jednom računaru pokrenemo više programa od jednom tj. njihovo istovremeno izvršavanje.Eliminisanje zavisnosti U/I operacijaIzvršavanje U/I operacija je znatno sporije od procesora pa je potrebno da OS te operacije izoluje tj. odvoji od procesora kako bi on mogao da za to vreme radi neke druge stvari. U tu svrhu koristimo dve hardverske strukture i to: kanal i tehniku prekida.

Generacije OS:

U prvoj generaciji računara, opsluživanje računarskog Sistema je bilo potpuno prepušteno operateru, koji je morao da pripremi sve što je potrebno da se zadatak obrade

Page 2: OS pitanja i odgovori.docx

može obaviti. Čovek je, dakle, imao punu kontrolu nad računarskim sistemom. Može se reći da je iskorišćenje računarskog sistema, tj. njegovih najvaænijih resursa – centralnog procesora i centralne memorije – bilo slabo. Najveći deo vremena trošio se na poslove operatera i ulazno-izlazne operacije, a mnogo manji deo na rad centralnog procesora.

U drugoj generaciji (1955–1965) činili su tranzistori, pa su računaripostali manji, pouzdaniji i jeftiniji. Računari su bili smešteni odvojeno, u posebnim sobama, koje su se delile u tri funkcionalne celine: ulazna soba, centralni računar i izlazna soba.Prvo su se pisali programi na bušenim karticama sto je oduyimalo mnogo vremena, a zatim se prešlo

na grupnu obradu uz pomoć magnetnih traka. U drugoj generaciji računarskih sistema

povećava se brzina rada centralnog procesora, kapaciteti centralne memorije i eksternih memorija, pojavljuju se nove i brže ulazno-izlazne jedinice.

U trećoj generaciji računari se prave od integrisanih kola. Napravljene su dve klase racunara:Jednu bržu verziju I jednu slabiju. Kasnije da bi se rešio problem uvođenjem serije IBM System/360 koji pretstavlja seriju kompatibilnih računara različitih snaga.Ovi računari radili su pod OS/360 koji je bio prepun grešaka.U ovoj generaciji razvija se I softversko inženjerstvo, a sa njim I uvode nove funkcije: multiprogramiranjevišestruke ulazno izlazne operacijepodela računarskog vremena.Kod treće generacije računara posebno treba istaći pojavu dva operativna sistema –MULTICS i UNIX. U trećoj generaciji računarskih sistema, zbog pojave multiprogramiranja i porastabrzina, veličine memorije i broja ulaznih i izlaznih jedinica, još više kontrolno-upravljačkih funkcija prebacuje se sa čoveka na računar. Dakle, čovek definitivno gubi mogućnost kontrole interne situacije u računarskom sistemu i upravljanja njome i sve što je moguće prebacuje se na računarski sistem, tj. na pojedine sistemske program. Skup svih tih programa nayiva se operativni system.

U četvrtoj generaciji računara (1980–1990), prvi put se pojavàuju personalni računari. Razvoj personalnih računara započinje pojavom LSI čipova, to jest čipova visokog stepena integracije.Paralelno s razvijaçćm korisničkog softvera, razvija se i korisnički interfejs programa, to jest korisničko okruženje. Na taj način se osobama koje računarski sistem isame programe ne poznaju detaljno, omogućava da te programe uspešno koriste.Pored klasičnih operativnih sistema javljaju se i dve nove vrste, a to su mrežni operativni sistemi i distribuirani operativni sistemi. Mrežne os karakterišu računari povezani u mrežu, a distribuirani pored funkcija mrežnih os dozvoljavaju I deljenje procesa.

Page 3: OS pitanja i odgovori.docx

2. Pojam procesa, delovi i predstavljanje procesa.

Proces je program koji se izvršava tj. program postaje proces u trenutku kada počne da se izvršava. Svaki program mora imati kod i podatke, 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. Proces je osnovni element koji se koristi kod gradnje OS. Gledano sa strane OS proces je najmanji entitet koji se može planirati i koji ima svoj kod i podatke. U kodu se mogu ravnopravno naći mašinske naredbe i sistemski pozivi. Proces ima neka svoja obeležja tj. atribute i to su: prioritet, pravila pristupa (ko može pristupiti procesu), identifikacija ( podrazumeva adresu programa koji se izvršava a predstavlja proces). Sve procese u OS možemo podeliti na sinhrone i asinhrone.

Proces je program koji se izvršava. Uspešnost planiranja poslova zasniva se na osobini procesa da njihovo izvršenje predstavlja ciklus CPU aktivnosti i U/I aktivnosti. Proces neprestano prelazi iz jednog u drugo stanje. Postoji veliki broj veoma kratkih CPU aktivnosti i mali broj veoma dugih.

Tokom svog izvršenja program menja stanje. Stanje procesa definisano je trenutnom aktivnošću. Izvršenje procesa je alternativna sekvenca CPU i U/I aktivnosti, koja počinje i završava se CPU aktivnošću. Svaki od procesa može biti u jednom od sledećih stanja: novi, aktivan, čeka ili zaustavljen (slika 3.2).

Kako više procesa može da deli CPU, to aktivni proces može da čeka da mu se dodeli CPU ili da se na njemu izvršava. Stanje kada proces čeka da mu se dodeli CPU naziva se spreman, a kada mu se dodeli CPU onda je on u stanju izvršavanja.

Page 4: OS pitanja i odgovori.docx

Svaki proces je u operativnom sistemu predstavljen njegovim upravljačkim blokom procesa (ponekad se zove i upravljački blok zadatka ili posla). PCB je sadrži:

•Stanje procesa.

•Sadržaj programskog brojača.

•Sadržaj registara CPU-a.

• Informacije o upravljanju memorijom (bazni i granični registri memorijske oblasti ili stranična tabela).

• Informacije o nalozima (iznos CPU vremena i stvarnog vremena, vremenska ograniženja, broj naloga, broj procesa, itd.).

• Informacije o stanju U/I (U/I zahtevi, U/I uređaji dodeljeni procesu, lista otvorenih datoteka, i dr.)

• Informacije o planiranju CPU-a (prioritet procesa, pointeri na redove procesa i dr.)

PCB se mora smestiti u monitorsku memoriju. Ovom memorijom se može upravljati na nekoliko načina. Najjednostavniji način je da se unapred odredi maksimalni broj procesa i statički dodeli dovoljno prostora za svaki PCB. Dinamička dodela memorije je obično bolja, što se tiče fleksibilnosti i boljeg iskorišćenja memorije, ali zahteva složenije algoritme noseći i opasnosti od mogućih grešaka od pogrešnog dodeljivanja memorije.

3. Kriterijumi dodele procesora

Kod multiprogramiranja svaki proces ostaje u stanju izvršenja dok mu ne istekne vremenski kvantum ili dok ne dođe u situaciju da mora da čeka neki događaj. U višeprocesorskoj arhitekturi, veći broj procesa može se izvršavati istovremeno, tj paralelno (po jedan na svakom procesoru). Osnova tehnike multiprogramiranja je naizmenična dodela procesora većem broju aktivnih procesa. U više procesnim operativnim sistemima , planer poslova niskog nivoa (dispečer), na osnovu nekog algoritma bira proces iz reda čekanja na proce sor i dodeljuje mu procesor na korišćenje

Iskoriscenje procesoraPo ovom kriterijumu procesor treba da bude stalno zauzet, tj. da radi bez prestanka. Iskorišćenje varira od 0-100%. Na realnim sistemima iskorišćenje ide do 40% na umereno opterećenim sistemima, do 90% na veoma opterećenim sistemima.Propusna moć sistemaDefiniše se kao broj procesa izvršen u jedinici vremena. Jedan dugački proces moze trajati ceo sat a u jednoj sekundi može se odigrati i 10 kratkih transakcionih procesa. U svakom slučaju propusna moć zavisi od vrste procesa i brojnih hardverskih i sistemskih osobina.Vreme potrebno za kompletiranje procesa

Page 5: OS pitanja i odgovori.docx

Ukupna kolićina vremena za koje se izvrši pojedinačni proces. Ovo vreme se računa od trenutka nastanka do završetka procesa, a uključuje i vreme potrebno da proces udje u red čekanja, vreme provedeno u redu čekanja, vreme korišćenja procesora i izvršenja U/I operacija.Vreme čekanjaUkupno vreme koje proces provede u redu čekanja na procesor. Proces do kraja svog izvršavanja moze biti više puta u redu čekanja, na ovo vreme utiču algoritmi za rasporedjivanje.Vreme odzivaVreme za koje se nakon slanja zahteva pojave prvi rezultati izvršenja procesa. Ovo vreme je veoma bitno u interaktivnim sistemima-proces koji otpočne rad, treba relativno brzo da prikaze početne rezultate na ekranu, zatim da ponovo izvrši neka izračunavanja ili ulazno-izlaznu operaciju, a onda opet prikaže rezultate i tako redom.

4. Uloga sistema za upravljanje memorijom

Razni operativni sistemi koriste različite metode upravljanja radnom memorijom. Ove metode mogu biti krajnje jednostavne, ali i veoma složene, svaka ima svo je prednosti i mane. Izbor metode za upravljanje memorijom u velikoj meri zavisi i od hardverske podrške, tj od procesorske arhitekture. Na nivou sloja upravljanja memorijom treba postići sledeće ciljeve

1-Alokacija memorije tj dodela memorije procesima.2-Razdvajanje fizičkog i logičkog adresnog prostora programa i vezivanja adresa.3-Logička organizacija što znači razdvajanje neizmenljivih segmenata (modula i procedura) od segmenata s promenljivim sadržajem tj podacima . Razdvanjanjem segmenata program se postiže:

1. nezavisan rad na segmentima koji čine program 2. zaštita segmenata sa malim premašenjem, u vidu listi za kontrolu pristupa

segmentima (u višeprocesnom okruženju, procesi ne smeju menjati vrednost memorijskih lokacija koje pripadaju drugim procesima bez dozvole)

3. deljenje segmenata između većeg broj a procesa (u slučaju da proces ima dozvolu da izmeni vrednost memorijskih lokacija koje koristi drugi proces, operativni sistem mora da obezbedi kontrolisan pristup deljenom memorijskom području4-Relokacija koja obuhvata sažimanje tj. defragmentaciju radne memorije(vezivanje odredjenog broja diskontinualnih memorijskih blokova u jedan kontinualan nefragmentisan prostor) i swap(suspendovanje procesa njegovim smeštanjem na disk)5-Podrška za dinamičko punjenje memorije programom i dinamičko vezivanje.U radnu memoriju se, pored korisničkih procesa, smešta i rezidentni deo operativnog sistema Mamorija se deli na najmanje dve particije od kojih je jedna (najčešće niži deo) namenjena rezidentnom delu operativnog sistema (kernel space) a druga particija (viši delovi) –

Page 6: OS pitanja i odgovori.docx

korisničkim procesima (user space). Obično se u najnižem delu memorije nalazi tabela prekidnih rutina.Tehnike za dodelu memorije procesima grubo se mogu podeliti na dve vrste: * Kontinualna alokacija – i logički i fizički adrsni prostor procesa sastoje se od kontinualnih niza memorijskih reči, pri čemu memorijske particije koje se dodeljuju prcesima po veličini mogu biti jednake ili razčličite . * Diskontinualna alokacija – je fizički adresni prostor procesa nije realizovan kao kontinualan niz memorijskih adresa; diskontinualna alokacija obuhvata metode straničenja , segmentacije i straničenja sa segmentacijom . * Vezivanje adresa Po pravilu, program se nalazi na disku kao binarna izvršna datoteka. Program sa diska se mora mora učitati u memoriju, unutar adresnog prostora novostvorenog procesa. Zavisno od metode upravljanja memorijom koja se koristi, proces se u toku izvršavanja može više puta pomerati na relaciji disk - memorija. Kolekcija procesa na disku, koja čeka povratak u mem oriju i nastavak izvršenja, naziva se ulazni red.

Povezivanje instrukacija i podataka sa memorijskim adresama obavlja se u sledećim fazama:

*Vreme prevođenja Kako nije poznato gde će proces koji će izvršavati generisani kod biti smešten u memoriji, prevodilac generiše relativne, a ne apslolutne adrese. Program se kasnije može smestiti bilo gde u memoriji.

*Vreme učitavanja u memoriju (load time) U fazi učitavanja povezivač (linker) i punilac (loader) na bazi relokatibilnog koda generišu apsloutne adrese i pune memoriju programom. Povezivač može povezati korisnički program sa drugim relokatibilnim modulim (object modules).

* Vreme izvršavanja (execution time) Za vreme izvršavanja, proces se može pomerati s jednog segmenta n a drugi (uključujući i disk, ukoliko se koristi i virtuelna memorija)

Adresa koju generiše procesorska instrukcija je logička, a adresa same memorijske jedinice je fizička. Logičke i fizičke adrese su potpuno iste u fazi prevođenja i u fazi učitavanja programa, ali se razlikuju u fazi izvršavanja (logičke adrese se u fazi izvršavanja nazivaju i virtuelnim adresama). Skup svih logičkih adresa koje generiše program naziva se logički ili virtuelni adresni prostor, a skup svih fizičkih adresa koje njimaa odgovaraju naziva se fizički adresni prostor.

5. Pojam SWAP(razmena)Prilikom izvršavanja, proces se mora nalaziti u radnoj memoriji . Postoje situacije kada se proces može privremeno prebaciti iz memorije na disk, kako bi se oslobodila memorija. Oslobođenja memorija puni se drugim procesom. Razmena (swap) koristi se u prioritetnim šemama za raspoređivanje procesa gde se procesi visokog prioriteta čuvaju u memoriji, dok se svi procesi niskog prioriteta upisuju na disk i čekaju da se oslobodi memorija. Ova varijanta razmenjivanja naziva se roll out, roll in . Proces koji se razmenjuje mora biti potpuno oslobođen aktivnosti – ne sme da radi, niti da čeka kraj neke ulazno - izlazne operacije (stanja WAIT i READY).Te hnika razmene zahteva postojanje 3 komponente:

Prostor na disku (swap space) na koji će se smeštati uspavani procesi Mehanizam swap - out koji prebacuje proces iz memorije na disk

Page 7: OS pitanja i odgovori.docx

Mehanizam swap - in koji vraća uspavani proces sa diska u memoriju Najveći deo vremena u ciklusima razmene otpada na prenos podataka između memorije i diska. Trajanje jedne razmene zavisi od količine podataka za prenos, karakteristike diskova i pratećeg hardvera. Kako je to vreme ogromno u odnosu na vreme izvršavanja memorijskih ciklusa, ne preporučuje se često korišćenje tehnike razmenjivanja. Retko se razmenjuju celi procesi – uglavnom se razmenjuju manji delovi memorije (npr stranice). Tehnika razmenjivanja je tesno povezana s tehinkom virtuelne memorije.

6. Uloga ulazno-izlaznog sloja(funkcije i ciljevi)

Sloj za upravljanje I/O kontrolerima se oslanja na sloj za upravljanje procesorom, jer su preključivanja sastavni deo aktivnosti drajvera. Za operacije sloja za upravljanje I/O kontrolerima (odnosno za drajverske operacije) je zajedničko da se obavljaju pod onemogućenim prekidima jer je reč o kratkotrajnim operacijama.Sve ulazne i izlazne uređaje u jednom računaru možemo podeliti na:

blokovske rade sa blokovima,znakovne rade sa znakovima,specijalni (mrezni uređaji)

Klasifikacija uređaja na znakovne i blokovske ne obuhvata sve uređaje (sat, miš, ...)

Uloga ulazno-izlaznog sloja je da upravlja, kontroliše i koordinira rad ulazno-izlaznih uredjaja i operacija.Funkcije:-Upravlja ulazno-izlaznim uredjajima i operacijama koje ti uredjaji izvršavaju i kontroliše ih.-Obezbedjuje što jednostavniji interfejs prema korisniku i ostatku sistema.Ciljevi:-Nezavisnost uredjajaPostoje dva aspekta nezavisnosti uredjaja: Različiti modeli uredjaja istog tipa moraju se sa aspekta programa jednako posmatrati. Program za rad sa datotekom se ne sme opteretiti činjenicom koji se model uredjaja koristi (program pristupa uredjaju bez obzira na to koji je uredjaj u upotrebi). Drugi cilj je nezavisnost programa od konkretne vrste uredjaja.Posledica: programi ne rade sa realnim, konkretnim uredjajima, već sve ulazno izlazne operacije obavljaju pomoću virtualnih uređaja.

-Nezavisnost znakovog kodaUlazno-izlazni podsistem mora preuzeti brigu o prepoznavanju konkretnog znakovnog koda kako to ne bi radio svaki korisnik i predstavljanju podataka korisniku u standardnom obliku. Posledica nezavisnosti znakovnog koda jeste postojanje unutrašnjeg znakovnog koda, tj. Uniformne predstave svih znakova u samom uređaju, i mehanizama za prevođenje znakovnog koda koji su obično realizovani u obliku translacione tabele ili manjeg programa.-EfikasnostSvaki uređaj je znatno sporiji od radne memorije i samog procesora, što znači da su ulazno izlazne operacije usko grlo računarskog sistema i da je poželjno obaviti ih što efikasnije.Posledica: U/I podsistem mora obezbediti konkurentnost u radu sa uređajima.

Page 8: OS pitanja i odgovori.docx

-Uniformni interfejs ka aplikaciji i korisnikuPoželjno je omogućiti uniformno rukovanje uređajima da bi se korisnicima pojednostavio rad. Zbog raznovrsnosti uređaja, ovaj cilj je teško postići. Moguća rešenja ovog problema, koristi se na Unix i Linux sistemima.

7. Pojam i logička struktura datoteke i direktorijuma.Pojam datoteke.Za korisnika, datoteka predstavlja kolekciju povezanih informacija, tj logičku celinu sa značenjem; za operativni sistem, to je objekat koji se čuva na sekundarnoj memoriji. Datoteku – osim sadržaja i imena opisuju i atributi, koji se čuvaju na kontrolnom bloku datoteke. Kontrolni blok datoteke je najčešće direktorijumska struktura, ali se može implementirati kao zasebna tabela.Logička struktura datoteke.Datoteka nema svoju logičku strukturu i predstavljena je kao kolekcija reči, bajtova. U jednostavnije logičke strukture spadaju strukture zapisa, pri čemu jedan zapis u datoteci može biti fiksne ili promenljive dužine. Primer zapisa je red u tekstualnoj datoteci. Složenije strukture predstavljaju formatirani dokumenti. Datoteka sa logičkom strukturom može se simulirati umetanjem kontrolnih znakova u datoteke bez logičke strukture; npr, umetanjem kontrolnih znakova line feed i carriage return u tekst, dobijamo jednostavni tekstualni dokument.Pojam direktorijumaNa jedan disk može se smestiti veliki broj datoteka, tako da se one radi preglednosti i kontrole pristupa grupišu u posebne strukture koje se nazivaju direktorijumi. Direktorijum sadrži kontrolne blokove svih datoteka koje su u njemu logički smeštene. Svi direktorijumi sa svojim datotekama obrazuju sistem datoteka. Direktorijumi se u okviru sistema datoteka moraju implementirati tako da obezbede efikasno pronalaženje postojećih datoteka i prostora za nove, što se postiže tehnikama kao što su hesh i B+ stabla.Logička struktura direktorijumaU sistemu datoteka, struktura direktorijuma može se implementirati na jednom nivou, na dva nivoa ili na više nivoa-stablo direktorijuma.Najprostija struktura je sa jednim nivoom – u sistemu datoteka postoji samo jedan direktorijum u kome se nalaze sve datoteke i nedostaci ovakvog načina organizacije jesu nepreglednost i problem imenovanja datoteka koje pripadaju različitim korisnicima jer sve datoteke moraju da imaju različita imena. To se rešava uvođenjem strukture direktorijuma sa dva nivoa. Na prvom nivou je glavni direktorijum a na drugom nivou poseban direktorijum za svakog korisnika. Ovakva struktura omogućava različitim korisnicima da prave datoteke sa istim imenima pod uslovom da su smeštene u različite direktorijume. Svaka datoteka ima svoju putanju pa je pretraivanje brže.Najsloženija struktura je stablo direktorijuma i najkvalitetnija, gde je najviši nivo početni ili direktorijumski koren (root). U svakom direktorijumu mogu se napraviti datoteke i poddirektorijumi, koji predstavljaju grane tog stabla.

8. Osnove sistema datoteka i njegova uloga.Potreba za deljenjem programa i podataka implicira potrebuza trajnim skladištenjem

podataka, sa mogućnošću brzog pristupa. To omogućavaju memorijski uređaji velikog kapaciteta (sekundarne memorije), koji su većinom magnetni. Sistem datoteka radi sa

Page 9: OS pitanja i odgovori.docx

nestrukturiranim celinama i te celine ne interpretira. Za većinu korisnika, sistem datoteka je nevidljiv aspekt operativnog sistema koji obezbeđuje mehanizam za čuvanje i pristup datotekama i programima koji pripadaju operativnom sistemu ili korinicima. Sistem datoteka se sastoji od dva dela: kolekcije datoteka i kolekcije direktorijuma, tj. Kataloga koji

obezbeđuju informacije o datotekama. Prvi nivo pripreme diska za funkciju čuvanja

podataka je formatiranje diska (low-level formatting), drugi nivo je particionisanje diska u logičke volumene, dok je treći nivo formiranje sistema datoteka (high-level formatting). Da bi disk ili particija diska mogli da se koriste za čuvanje podataka, neophodno je formiranje sistema datoteka koji predstavlja skup sistemskih modula i podataka koje operativni sistem koristi za upravljanje datotekama. FAT je jednostavan sistem datoteka zasnovan na principu mape datoteka (realizovane u vidu FAT tabele sa 16 - bitnim adresiranjem). Naime, FAT je ograničen na 16535 klastera, što će reći da se veličinom klastera praktično određuje i maksimalna veličina sistema datoteka. Korisnik je mogao dobiti sistem datoteka najvećeg kapaciteta samo ako koristi klastere veličine 64 KB, što unosi značajne gubitke kroz internu fragmentaciju. Svaka datoteka u sistemu dato teka FAT ima svoje ime, datum i vreme i osnovne atribute. Ime datoteke se može zadati isključivo korišćenjem 7 - bitnog ili 8 - bitnog ASCII ili ANSI strandarda.Atributi za opis datoteka H-skrivena, A-aktivna, R-samo za citanje, S- sistemskaFAT32 S porastom kapaciteta diskova, Microsoft je ponudio FAT32 kao proširenje sistema datoteka FAT. Osnovna promena u odnosu na stari FAT predstavlja 32 - bitno adresiranje, čime je omogućeno formiranje većih sistema datoteka s klasterima prihvatljive veličine.NTFS Maksimalna veličina NTFS volumena kreć e se od 2 do 16 TB pod operativnim sistemom Windows 2003 Server ,Maksimalna veličina datoteke određena je veličinom volumena NTFS sistemi datoteka ne mogu se formirati na disketama,

Page 10: OS pitanja i odgovori.docx

9. Pojam distribuiranih sistema

Distribuirani operativni sistemi upravljaju međusobno povezanim računarima, koji su prostorno udaljeni. 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.

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. Ovakav operativni sistem se naziva i mikrokernel (microkernel), jer ima smanjenu funkcionalnost u odnosu na “običan” operativni system,I ima hijerarhijsku strukturu.

Distribuirani sistemi (engl. distributed systems) predstavljaju kolekciju procesora, tj. računara, koji ne dele zajedničku memoriju i sistemski časovnik. Umesto toga, svaki procesor, tj. računar, ima sopstvenu lokalnu memoriju, a međusobna komunikacija se ostvaruje putem mreže realizovane kao LAN ili WAN . Osim podataka, datoteka i štampača, distribuiraju se i procesi. A četiri glavne prednosti distribuiranih sistema jesu deljenje resursa, ubrzavanje izrašunavanja, pouzdanost i komunikacija. Neophodno je naglasiti da distribuirane sisteme karakterišu tri vrste migracija: migracija podataka, migracija izračunavanja i migracija procesa. Distribuirani sistemi zahtevaju mrežnu infrastrukturu i mogu biti realizovani ili kao klijent/server arhitektura arhitektura ili kao ravnopravni računarski sistemi koji dele resurse na mreži (engl. peer-to-peer systems). U klijent/ser-ver arhitekturi, postoje računari koji predstavljaju servere i računari koji koriste njihove usluge – klijenti (engl. clients). Postoje dve vrste servera: serveri za izračunavanje (engl. computing servers), kojima klijenti šalju zahteve na obradu, i serveri datoteka (engl. file servers), koji služe za smeštanje datoteka. Treba svakako istaći i treću vrstu servera, a to su serveri za štampu (engl. print servers) koji omogućavaju da klijenti obave štampanje.Osnovna namena distribuiranih sistema je da obezbedi efikasno i bezbedno deljenje resursa.

10. Zaštita i sigurnost operativnih sistema.

Postoji potreba da operativni sistem onemogući neautorizovani pristup podacima svakog korisnika. Sigurnost i zaštita su usko vezani za fajl sistem (o operativnoj memoriji smo ranije pričali). Dakle, potrebno je onemogućiti pristup nekim fajlovima. Sigurnost se odnosi na opšti, filozofski pojam, dok zaštitu predstavljaju usvojeni principi sigurnosti koji se realizuju na nekom operativnom sistemu. Kada sigurnost fajl sistema može biti ugrožena? -viša sila (udar groma, požar, zemljotres...) -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. Pored ovih slučajnih postoje i namerni napadi na sigurnost fajl sistema. Lica koja žele pristupiti zabranjenim fajlovima mogu biti: -posmatrači, koji nisu zlobni ali ako im se pruži prilika da “zavire”u tuđu poštu to će i uraditi. -oni za koje zaobilaženje mehanizama zaštite predstavlja intelektualni izazov.

Page 11: OS pitanja i odgovori.docx

oni koji žele da izvuku materijalnu korist iz toga (prevarom, ucenom,...) -špijuni (vojni, privredni,...) Šta treba da radi osoba koja provaljuje ? - Treba da gleda deo diska sa izbačenim stranicama iz memorije. Operativni sistem ih nekad ne obriše posle swap-ovanja pa se tu mogu kriti vredni podaci.

- Treba da poziva nepostojeće sistemske pozive ili postojeće ali sa pogrešnim parametrima. Postoji mogućnost da će se operativni sistem zbuniti pa se iz takvih situacija može nešto korisno zaključiti.

- Pri procesu prijavljivanja nekako ga nasilno prekinuti. Tako se možda može zaobići proveravanje lozinke. - 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. - Može da napravi program koji simulira prijavljivanje. Pokrene takav program i napusti računar. Sledeći korisnik seda za računar i unosi svoju lozinku koju program negde zapamti pa zatim pozove pravi program za prijavljivanje. - Raditi sve što uputstva kažu da nije dozvoljeno, da je opasno ... - Šarmirati sekretaricu ? Principi za ostvarivanje sigurnosti - Dizajn zaštite treba da bude javan. Treba dobro realizovati principe (pa se hvaliti). - Podrazumevajući način pristupa svakom objektu -fajlu je “ bez pristupa” tj niko ne sme da mu pristupi. U praksi nikad nije baš tako ali je nešto logično, na primer vlasnik ima sve privilegije a ostali nikakve. - Uvek se traže tekuća prava pristupa.. - Svaki proces treba da započne rad sa što manje privilegija. Ako su potrebne veće,onda se naknadno eksplicitno povećaju. - Mehanizam zaštite treba da bude jednostavan, uniforman, od početka zamišljen. - Mehanizam zaštite treba da bude psiholiški prihvatljiv.

11. Karakteristike i vrste operativnih sistema.1. KonkuretnostPredstavlja postojanje više simultanih, paralelnih aktivnosti koje se istovremeno izvršavaju. Javljaju se mnogi problemi koje tu treba razrešavati kao:uzajamno ne mešanje, korišćenje zajedničkih resursa, sinhronizacija aktivnosti koje zavise jedne od druge, prelazak sa jedne na drugu aktivnost i td. 2. Deoba resursaU većini slučajeva konkurentne aktivnosti koriste zajedničke resurse ili informacije pa samim tim oni moraju da budu deljivi (shared). Postoji više razloga da se oni dele a na prvom mestu to je ekonomičnost korišćenja tj. znatno se smanjuje cena jednog računarskog sistema.3. Postojanje dugotrajne memorijeDa bi smo mogli da opslužimo viče korisnika tj. 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. To se rešava putem uređaja sa velikim kapacitetom tj. sekundarnom memorijom. Mnogi problemi se tu javljaju koje OS treba da razreši kao: obezbeđenje jednostavnog pristupa podacima, brzina upisivanja i očitavanja podataka, sigurnost podataka i zaštita od grešaka i td.

Page 12: OS pitanja i odgovori.docx

4. NedeterminizamOS mora da se ponaša deterministički tj. kada izvršava isti program sa istim podacima on mora uvek da da isti rezultat bez obzira kada se vremenski taj program odvija. 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, zahtevi za dodelu nekih resursa, greške u toku izvršavanja programa).Prema broju korisnika: Jednokorisnički(single user) i višekorisnički (multuser)Prema broju simultanih aktivnosti: jednoprocesni (single tasking) i višeprocesne(multitasking)Prema nameni i načinu obrade poslova: sistemi sa grupnom obradom (bach), interaktivni(time sharing) i kombinovani.Prema funkcionalnim osobinama računarskog sistema: OS za velike računarske sisteme, OS za sisteme sa deljenjem vremena, OS za stone računare, OS za višeprocesorske sisteme, mrežne OS, distribuirane OS, udružene sisteme, OS za upravljanje u realnom vremenu, ručni OS (handheld system), ugnježdeni OS (embedded).

12. Dijagram stanja procesa.Proces se može naći u nekoliko stanja(pet ili sedam, zavisno od konačnog automata koji je korišćen za opisivanje stanja) a sledeća tri su najznačajnija: Stanje izvršavanja (RUN, RUNNING) Procesor izvršava instrukcije ovog procesa.Stanje čekanja na procesor (READY, RUNNABLE) Proces je dobio sve potrebne procese osim procesora, spreman je za rad I čeka da mu se dodeli procesor.Stanje čekanja na resurse (WAIT, UNRUNNABLE) Proces čeka na neki događaj (npr. Da se završi štampanje) jer su za dalje izvršavanje procesa potrebni resursi koji trenutno nisu na raspolaganju. Takođe process može ući u stanje WAIT ukoliko čeka neke ulazno izlazne operacije ili rezultat nekog drugog procesa.Radi jednostavnosti izlaganja, opisujemo konačni automat sa pet stanja. Dva dodatna pomoćna stanja vezana su za nastanak procesa, tj. trenutak formiranja procesa (START) I prestanak Ili kraj procesa (STOP). Proces u stanju STOP oslobađa sve procese koje je zauzeo.

Stanje procesa definisano je trenutnom aktivnošću. Izvršenje procesa je alternativna sekvenca CPU i U/I aktivnosti, koja počinje i završava se CPU aktivnošću. Svaki od procesa može biti u jednom od sledećih stanja: novi, aktivan, čeka ili zaustavljen (slika 3.2).

Kako više procesa može da deli CPU, to aktivni proces može da čeka da mu se dodeli CPU ili da se na njemu izvršava. Stanje kada proces čeka da mu se dodeli CPU naziva se spreman, a kada mu se dodeli CPU onda je on u stanju izvršavanja.

Page 13: OS pitanja i odgovori.docx

Svaki proces je u operativnom sistemu predstavljen njegovim upravljačkim blokom procesa (ponekad se zove i upravljački blok zadatka ili posla). PCB je sadrži:

•Stanje procesa.

•Sadržaj programskog brojača.

•Sadržaj registara CPU-a.

• Informacije o upravljanju memorijom (bazni i granični registri memorijske oblasti ili stranična tabela).

• Informacije o nalozima (iznos CPU vremena i stvarnog vremena, vremenska ograniženja, broj naloga, broj procesa, itd.).

• Informacije o stanju U/I (U/I zahtevi, U/I uređaji dodeljeni procesu, lista otvorenih datoteka, i dr.)

• Informacije o planiranju CPU-a (prioritet procesa, pointeri na redove procesa i dr.)

PCB se mora smestiti u monitorsku memoriju. Ovom memorijom se može upravljati na nekoliko načina. Najjednostavniji način je da se unapred odredi maksimalni broj procesa i statički dodeli dovoljno prostora za svaki PCB. Dinamička dodela memorije je obično bolja, što se tiče fleksibilnosti i boljeg iskorišćenja memorije, ali zahteva složenije algoritme noseći i opasnosti od mogućih grešaka od pogrešnog dodeljivanja memorije.

13. Algoritmi za dodelu procesora.First Come First ServedPrvi došao, prvi se izvršio. Najprostiji algoritam za raspoređivanje procesora-procesi dobijaju procesor onim redom kojim su pristizali u red čekanja. Red čekanja funkcioniše po standardnom FIFO principu: kontrolni blok procesa koji je ušo u red čekanja na procesor, stavlja se na kraj liste, a procesor se uvek dodeljuje onom procesu koji je na početku liste.SJF (Sortest Job First)Prvo najkraći posao. Suština algoritma SJF jeste u sledećem: za sve procese u redu čekanja procenjuje se vreme potrebno za izvršavanje, a procesor se dodeljuje onom procesu kome treba najmanje vremena za izvršenje, tj. procesu koji bi najkraće trajao. Na one procese iz reda koji imaju ista procenjena vremena izvršavanja, primenjuje se algoritam FCFS. Osnovni nedostatak SJF je to što sistem ne može znati koliko će odgovarajući procesi trajati, tj. ne može tačno proceniti trajanje celog procesa.

Page 14: OS pitanja i odgovori.docx

Raspoređivanje na osnovu prioriteta procesa.U prioritetno orijentisanim algoritmima, svakom procesu se dodeljuje prioritet, posle čega algoritam bira proces s najvećim prioritetom. Prioritet je, po pravilu celobrojna vrednost, a najčešće se koristi konvencija po kojoj manji broj znači veći prioritet I obrnuto (vrednost 0 predstavlja maksimalan prioritet). Ako su procesi jednakog prioriteta, odluka se donosi po principu FCFS.Prioriteti mogu biti:Interno definisani, na osnovu resursa koje process zahteva I odnosa procesora I ulazno izlaznih aktivnosti prisutnih procesu;Eksterno dodeljeni (programmer može favorizovati određene procese po nekim eksternim kriterijumima)Glavni problem prioritetno orijentisanih algoritama je blokiranje niskoprioritetnih procesa.Round Robin (RR)Algoritam Round Robin namenski je projektovan za interaktivne sisteme. RR se može posmatrati kao algoritam FCFS sa pretraživanjem, to jest sa pravilnim vremenskim prebacivanjem između procesa. RR funkcioniše na sledeći način: najpre se definiše kratak vremenski interval (kvantum), reda veličine od 10 do 100ms I kružni red čekanja na procesor. Svaki prispeli process ubacuje se na kraj liste. Od Sistema se očekuje da po isteku vremenskg kvantuma generiše prekidni signal, nakon čega se procesu oduzima kontrola nad procesorom I predaje sledećem procesu iz kružne liste. U okviru jednog vremenskog kvantuma moguće su sledeće situacije:Proces je završio aktivnsti pre isteka vremenskog kvantumaProces nije završio aktivnosti, ali mora da prekine izvršenje kada mu istekne vremenski kvantum I kontrola se predaje sledećem procesu.Proces se blokirao zbog čekanja na ulazno-izlazne operacije. Blokirani process oslobađa procesor, a algoritam RR predaje kontrolu sledećem procesu iz liste.

14. Kontinualna dodela memorije.Ukoliko se koristi kontinualno dodeljivanje memorije, i logički i fizički adresni prostor procesa se sastoje od kontinualnog niza memorijskih adresa. Prosto rečeno, svaki proces dobija jedan kontinualni deo memorije. Metode kontinualnog dodeljivanja memorije suMultiprogramiranje sa fiksnim praticijama.Multiprogramiranje sa praticijama promenljive veličine.Kod ovog metoda se zahteva da svaka datoteka zauzima skup kontinualnih adresa na disku. Tada stavka u direktorijumu za svaku datoteku sadrži početnu adresu datoteke i broj blokova koji su joj dodeljeni. Međutim, javlja se problem kada treba pronaći prostor za novu datoteku. Ovaj problem se može smatrati specijalnim slučajem opšteg problema dinamičke dodele memorije. Ovde prostor na disku posmatramo kao veliko polje blokova. U proizvoljnom trenutku neki blokovi su zauzeti, dok su ostali slobodni. Tako prostor na disku možemo smatrati kolekcijom zauzetih i slobodnih segmenata gde je svaki segment kontinualan skup blokova. Slobodni segment naziva se rupa ili šupljina.

KONTINUA LNO DODELJIVANJE MEMORIJE Ukoliko se koristi kontinualno dodeljivanje memorije, i logički i fizički adresni prostor procesa se sastoje od kontinualnog niza memorijskih adresa. Prosto rečeno, svaki proces dobija jedan kontinualni deo me morije.

Page 15: OS pitanja i odgovori.docx

Metode konti nualnog dodeljivanja memorije su: Multiprogramiranje sa fiksnim praticijama Multiprogramiranje sa particijama promenljive veličine Multiprogramiranje sa fiksnim particijama memorije jeste podela cele fizičke memorije na više delova fiksne veličine, pri čemu se u jednom delu može nači samo jedan proces. U ovakvoj organizacij i, stepen multiprogramiranja je jednak broju memorijskih particija. Cela memorija se izdeli na više delova . Svi procesi se stavljaju u red čekanja ( input queue ) koji može biti jedinstven za ceo sistem ili poseban za svaku particiju. Višestruki redovi čekanja običmo se formiraju za opsege veličina Q=1 KB, Q=2 KB, Q=4 KB. Ukoliko za proces koji je došao na red nema dovoljno memorije, uzima se sledeći manji proces iz liste. Kada postoji v iše redova čekanja, veći broj malih procesa može čekati u redu za male particije, dok su velike particij e neiskorišćene. U tom slučaju ima dovoljno memorije ,ali se ne koristi. Bolji je jedinstveni red čekanja, jer ako nema mesta u memoriji u redu čekanja za particiju koja odgovara veličini procesa, procesu se dodelju je veća particija. Dva procesa ne mogu biti smeštena u jednoj particiji. Multiprogramiranje sa fiksnim particijama korišćeno je u sistemima s grupnom obradom ( batch ). Ova metoda je nepogodna za interaktivne sisteme zbog postojanja većeg broja procesa promenljive veličine (obično malih) koji se pojavljuju po slučajnom rasporedu. Zbog toga se ova met oda više ne koristi.

15. Tehnika preklapanja – OVERLAYDa bi se omogućilo izvršenje procesa koji je veći od same fizičke memorije, koristi se tehnika preklapanja (overlay). Preklapanje omogućava da se u memoriji čuvaju samo oni delovi programa koji su potrebni u tom trenutku. Kada drugi delovi programa budu potrebni, oni će se učitati u memoriju umesto delova koji više nisu potrebni.Da bi se omogućilo izvršenje procesa koji je veći od same fizičke memorije, koristi se tehnika preklapanja (eng!. overlay). Preklapanje omogu ćava da se u memoriji čuvaju samo oni delovi programa koji su potrebni u tom trenutku. Kada drugi delovi programa budu potrebni, oni će se učitati u memoriju umesto delova koji više nisu potrebni. Tehnika preklapanja usporava rad samog programa, jer se delo vi programa u čitavaju u memoriju u više iteracija, ali se njome postiže ono što drugačije ne bi bilo moguće. Tehnika preklapanja može biti korisna na sistemima sa ograničenim resursima

16. Pojam virtuelne memorije I kako se ona koristi.Virtuelna memorija je tehnika koja dozvoljava izvršavanje procesa čiji delovi mogu biti smešteni na sekundarnim memorijama, to jest diskovima. VM formira apstrakciju u vidu logičke memorije, koju čine radna I sekundarna memorija I razdvaja korisničku logičku memoriju od fizičke. VM omogućava smeštanje osetno većeg broja procesa u memoriju, čime se povećaju iskorišćenje I propusna moć procesora a bez povećanja vremena odziva I vremena izvršenja. VM se najčešće realizuje tehnikom učitavanja stranica prema potrebi, a mogu se upotrebljavati I tehnika učitavanja segmenata prema potrebi koja je dosta složenija kao I kombinovana tehnika.

MVT šema pokazuje problem eksterne fragmentacije. Generalno, ova situacija se javlja kada raspoloživa memorija nije kontinualna već je podeljena na više rasejanih blokova. Kako memorija koja se dodeljuje nekom poslu mora da bude kontinualna, takav memorijski prostor se ne može iskoristiti. Kompakcija je jedan od načina da se prevaziđe ovaj problem. Međutim,

Page 16: OS pitanja i odgovori.docx

straničenjedozvoljava da memorija jednog programa bude nekotinualna, čime se omogućuje da se programu dodeljuje fizička memorija gde god je ona raspoloživa.

stranična tabela

Sl. 6.10. Hardver potreban kod straničenja.

Svaka adresa koju generiše CPU deli se na dva dela: broj stranice (p) i stranični ofset (d). Broj stranice se koristi kao indeks u straničnoj tabeli. Stranična tabela sadrži bazne adrese svake stranice u fizičkoj memoriji. Ova bazna adresa se kombinuje sa straničnim ofsetom da bi se definisala fizička memorijska adresa koja se šalje jedinici memorije.

Stranični model memorije je prikazan na slici 6.11. Fizička memorija je podeljena u blokove fiksirane veličine koji se nazivaju okviri. Logička memorija se takođe podeljena na blokove iste veličine koji se nazivaju stranice. Kada se program izvršava njegove stranice se pune u bilo koji raspoloživi okvir, a stranična tabela vrši translaciju korisnikovih stranica u memorijske okvire.

broj okvira

0 11 2 2

Page 17: OS pitanja i odgovori.docx

Logička memorija

fizička memorija

17. Metode pristupa datotekama.Sekvencijalni pristupKod sekvencijalnog pristupa čitanje jednog bloka podataka automatski uvećava vrednost pointera, a slično se dešava i kod upisa. Dakle, moguće je vršiti čitanje podataka samo u redosledu u kome su upisani, odnosno vršiti upis uzastopnih blokova podataka. Ovakav pristup zasnovan je na modelu datoteka koje su upisivane na magnetne trake koje su po svojoj prirodi sekvencijalni uređaji.Direktan pristupAlternativna metoda pristupa je direktni pristup što je karakteristično za model datoteka upisanih na disk. Ovde se datoteka vidi kao numerisana sekvenca slogova fiksne dužine. Uz navođenje relativnog broja bloka može se pristupiti proizvoljnom slogu datoteke.Indeksni pristupOvaj metod koristi indeks za svaku datoteku koji koristi ukazatelje na svaki od blokova datoteke. Da bi se pronašla stavka u datoteci, najpre se pretražuje indeks i onda koristi sa u njoj.

Postoji više načina da se pristupi informacijama zapamćenim u datotekama. Neki sistemi podržavaju samo jedan metod pristupa, dok kod mnogih postoji mogućnost izbora više metoda za pristup datotekama.

Sekvencijalni pristup

Kod sekvencijalnog pristupa čitanje jednog bloka podataka automatski uvećava vrednost pointera, a slično se dešava i kod upisa. Dakle, moguće je vršiti čitanje podataka samo u redosledu u kome su upisani, odnosno vršiti upis uzastopnih blokova podataka. Ovakav pristup zasnovan je na modelu datoteka koje su upisivane na magnetne trake koje su po svojoj prirodi sekvencijalni uređaji.

Page 18: OS pitanja i odgovori.docx

Direktni pristup

Alternativna metoda pristupa je direktni pristup što je karakteristično za model datoteka upisanih na disk. Ovde se datoteka vidi kao numerisana sekvenca slogova fiksne dužine. Uz navođenje relativnog broja bloka može se pristupiti proizvoljnom slogu datoteke.

Indeksni pristup

Ovaj metod koristi indeks za svaku datoteku koji koristi ukazatelje na svaki od blokova datoteke. Da bi se pronašla stavka u datoteci, 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.

Metodi dodele prostora na disku

Postoje tri osnovne metode za dodelu prostora na disku. To su kontinualna, povezanai indeksna dodela. Svaka od ovih metoda ima svoje prednosti i nedostatke, pa postoje sistemi koji podržavaju sve tri metode. Međutim, češći je slučaj da jedan sistem koristi samo jednu od navedenih metoda.

Upravljanje slobodnim prostorom na disku

Za praćenje slobodnog prostora na disku sistem kreira listu slobodnog prostora. Ova lista sadrži sve blokove na disku koji su slobodni, tj. nisu dodeljeni ni jednoj datoteci. Kada se datoteka kreira pretražuje se lista slobodnog prostora da bi se u njoj pronašao željeni iznos slobodnog prostora i dodelio datoteci. Kada se datoteka briše, prostor na disku koji je ona zauzimala se dodaje listi slobodnog prostora. Uprkos imenu, ova lista se implementira kao bit mapa ili bitvektor. Svaki blok predstavljen je jednim bitom, pri čemu, ako je blok slobodan, odgovarajući bit ima vrednost 0, a ako je blok zauzet, vrednost odgovarajućeg bita je 1.

Drugi pristup je da se svi slobodni blokovi povežu u listu pri čemu se koristi ukazatelj na početak liste. Ova šema nije naročito efikasna, jer za prelazak cele liste treba utrošiti dosta vremena. 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); poslednja adresa u bloku je adresa narednog bloka koji sadrži adrese slobodnih blokova.

Jedan drugi pristup koristi činjenicu da više kontinualnih blokova može biti zauzeto ili oslobođeno. Tada je bolje imati listu koja sadrži adresu prvog bloka u sekvenci slobodnih blokova i broj blokova u toj sekvenci.

Metod kontinualne dodele

Kod ovog metoda se zahteva da svaka datoteka zauzima skup kontinualnih adresa na disku. Tada stavka u direktorijumu za svaku datoteku sadrži početnu adresu datoteke i broj blokova koji su joj dodeljeni. Međutim, javlja se problem kada treba pronaći prostor za novu datoteku. Ovaj problem se može smatrati specijalnim slučajem opšteg problema dinamičke dodele memorije. Ovde prostor na disku posmatramo kao veliko polje blokova. U proizvoljnom trenutku neki blokovi su zauzeti, dok su ostali slobodni. Tako prostor na disku možemo smatrati kolekcijom zauzetih i slobodnih segmenata gde je svaki segment kontinualan skup blokova. Slobodni segment naziva se rupaili šupljina. Ovde se javlja problem fragmentacije koji se može rešavati kompakcijom. Postoje i drugi problemi vezani za kontinualnu dodelu. Osnovni problem je odrediti koliko prostora da se dodeli datoteci. Kada se

Page 19: OS pitanja i odgovori.docx

datoteka kreira, čitav iznos prostora treba dodeliti datoteci. Kako korisnik zna veličinu datoteke koja se kreira? U nekim slučajevima ovo pitanje je jednostavno, na primer, kada se kopira postojeća datoteka, ali je, u opštem slučaju, tu procenu teško izvršiti. Ako dodelimo malo prostora datoteci, uskoro ćemo doći u situaciju da ona ne može više da se proširuje, jer prostor na oba kraja datoteke može biti zauzet od strane drugih datoteka. Dve mogućnosti stoje na raspolaganju u takvom slučaju. Prva je da se korisnički program terminira uz odgovarajuću poruku. Druga mogućnost je da se potraži veća šupljina u koju možemo da smestimo datoteku, oslobađajući prethodno zauzeti prostor. Ovo se, uz utrošak vremena, može ponavljati sve dok postoji slobodan prostor. Čak i kada unapred znamo količinu potrebnog prostora za neku datoteku koju kreiramo, može se ispostaviti da nije efikasano da sav prostor dodelimo datoteci. Datoteke koje narastaju sporo, tokom dugog vremenskog perioda (tokom meseci ili čak godina) u tom slučaju u dobroj meri nepotrebno zauzimaju prostor.

Metod povezane dodele

Kod ove metode svaka datoteka predstavlja povezanu listu blokova na disku, pri čemu se ti blokovi mogu nalaziti bilo gde na disku. Direktorijum sadrži ukazatelj na prvi i poslednji blok datoteke. Ovde nemamo eksternu fragmentaciju. Takođe, pri kreiranju datoteke nije potrebno deklarisati veličinu datoteke, a datoteka može da narasta dokle god ima slobodnih blokova na disku. To znači da nije potrebno vršiti kompakciju diska. Osnovni problem kod ovog načina dodele je što je ovaj metod efikasan samo kod sekvencijalnog pristupa datoteci. Uz to se troši i prostor za ukazatelje. Takođe je smanjena pouzdanost, jer u slučaju oštećenja ukazatelja nastaju neželjene posledice. Jedno rešenje ovog problema je korišćenje dvostruko povezanih lista ili pamćenje imena datoteke i relativnog broja bloka u svakom bloku; sve ovo zahteva dodatni utrošak vremena i memorije za svaku datoteku.

Metod indeksne dodele

Ovaj metod rešava problem povezane dodele u smislu direktnog pristupa. Ovde su svi ukazatelji zajedno smešteni u indeksni blok. Svaka datoteka ima sopstveni indeksni blok koji predstavlja polje adresa blokova na disku. Direktorijum sadrži adresu indeksnog bloka. Indeksna dodela podržava direktni pristup a pri tom nema eksterne fragmentacije. Ipak postoji problem utroška prostora zbog ukazatelja u indeksnom bloku koji je veći nego kod povezane dodele. Ovaj problem je povezan sa veličinom ideksnog bloka pa se teži da on bude relativno mali, dok se za veće datoteke ulančava više indeksnih blokova ili se koristi indeksiranje u dva nivoa.

Još jedna alternativa je da u adresaru čuvamo prvih nekoliko ukazatelja indeksnog bloka, tako da za male datoteke indeksni blok nije potreban (Unix).

18. Strukture podataka kod realizacije sistema datoteka.Da bi se realizovao sistem datoteka, potrebne su brojne strukture podataka na disku:

Page 20: OS pitanja i odgovori.docx

BCB (Boot Control Block) Sadrži informacije koje su potrebne za odpočinjanje procesa podizanja jednog operativnog Sistema. BCB je obično prvi blok sistema datoteka.Kontrolni blok particije sadrži informacije o sistemu datoteka, kao što su veličina bloka, ukupan broj blokova, broj slobodnih blokova sa pokazivačem na listu slobodnih blokova, listu slobodnih kontrolnih blokova datoteka I pokazivač na tu listu.Kontrolne strukture za dodeljivanje datoteka. Ovim strukturama se određuje konkretan sadržaj datoteke, to jest logički blokovi u kojima je smešten sadržaj. U ove strukture spadaju tabele indeksnih čvorova, Unix, FAT tabela, MFT(NTFS).Direktorijumske strukture koje sadrže kontrolne brojeve datoteka.Kontrolni blokovi datoteka. Kontrolni blok sadrži atribute datoteka I opis prostornog rasporeda datoteka, to jest pokazivače na blokove dodeljene datoteci. Na Unix sistemima kontrolni blok se sastoji iz 2 dela: FCB strukture u direktorijumu koja sadrži ime datoteke, I indeksnog čvora u kome se nalaze svi atributi I prostorni raspored datoteke na disku. U sistemu NTFS svaka datoteka čuva svoj kontrolni blok u MFT tabeli.U radnoj memoriji se definišu strukture koje ubrzavaju rad Sistema datoteka. U memorijske strukture podataka spadaju: Tabela otvorenih datoteka na sistemskom nivou, koja sadrži blokove za svaku otvorenu datoteku.Tabela otvorenih datoteka po procesu, koja sadrži pokazivač na glavnu tabelu I druge informacije, kao što je tekući pokazivač na datoteku.

19. Autetntifikacija korisnika.Jedan od glavnih problema sigurnosti operativnih Sistema jeste autentičnost korisnika-operativni sistem na neki način mora da zna da li se radi o pravom, ovlašćenom korisniku ili ne. Zbog toga, svaki korisnik pre korišćenja Sistema mora da se identifikuje. Autentifikacija se može obaviti na tri načina:Specijalnim hardverom, kao što je ključ ili ID kartica;Navođenjem poverljivih informacija, kao što je lozinka;Biološkim atributima korisnika, kao što sun a primer otisak prsta, snimak mrežnjače oka I potpis.Dodatno, korisnici se preko Internet mreže mogu autentifikovati pomoću sertifikata.Identifikacija korisnika pomoću poverljivih informacija najčešće je korišćen način autentifikacije (korisnik se identifikuje imenom ID a zatim unosi odgovarajuću lozinku). Lozinke su ranjivo mesto I preporučuje se da one budu kompleksne I da se često menjaju.

20. Karakteristike embedded operativnih Sistema.

Page 21: OS pitanja i odgovori.docx

Embedded kompjuterski sistemi obrazuju najširu moguću upotrebu kompjuterskih sistema; on uključuje sve kompjutere koji su drugačiji od onih koji su izričito kompjuteri opšte namene. Primeri embedded sistema idu od malih muzičkih plejera do kontrolnih sistema u realnom vremenu poput onih u svemirskim brodovima. Oni su osobeni po obezbeđivanju funkcije, ili funkcija, koje nisu same po sebi kompjuterske. Većina komercijalnih embedded sistema su dizajnirani tako da izvrše odabrane funkcije po najnižoj ceni. Embedded sistemi se nalaze u mašinama od kojeih se očekuje dugogodišnji rad bez grešaka. Stoga je obično softver i Firmware razvijen i testiran pažljivije nego softver za lične kompijutere.

22. 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. Uloga operativnog sitema je da definiše sve te veze i omogući da se na najefikasnij način softverskim alatima upravlja hardverskim komonentama. Uglavnom svi operativni sistemi imaju strukturu kao na slici br.1

1. Interpretacija komandnog jezika 2. Planiranje i evidencija3. Upravljanje podacima4. Upravljanje U/I uređajima5. Upravljanje memorijom6. Jezgro ( kernel )

1. Jezgro operativnog sistema je najbliže hardveru. Ono upravlja sistemom prekida računara i vrši obradu prekida, planira procese (upravlja procesorom ili procesorima ako ih ima više), vrši obradu procesa (manipulaciju nad procesima), njihovu sinhronizaciju i medjusobnu komunikaciju. Jezgro vodi računa o procesoru kao resursu operativnog sistema. 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). Ovde operativni sistem radi u zaštićenom ražimu rada ( kernel mode) gde je hardverski onemogućena izmena koda koji se izvršava. Sabv ostali softver radi korisnićkom ( user mode) gde je moguće manjati programski kod.

2. Upravljanje memorijom odnosi se na upravljanje glavnom (operativnom) memorijom. Zadaci koje OS na ovom nivou treba da izveši su: realizacija strategije dodele memorije, dodela memorije, realizacija strategije oslobađanja memorije i osloba\anje memorije. Svaki računarski sitem ima samo jednu memoriju i ona se posmatra kao jedna celina iako se sastoji iz nekoliko delova. Operativni sistem maora da ima u vidu da se memorija sastoji od fizički različitih komonenti koje su izrađene različitim tehnologijama, zatim da se u memoriji nalaze i programi i različiti podaci kao i sam operativni sistem. 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.

3. Upravljanje U/I uređajima odnosi se na obezbeđivanje nezavisnosti uređaja i efikasnosti njihovog rada, realizaciju strategije dodeljivanja i oslobađanja uređaja kao i samu njihovu dodelu.

4. Upravljanje podacima Ova komonenta treba da omogući korisniku što lakše korišćenje i manipulaciju podacima koji se nalaze u memoriji. 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. Uloga ovog dela je da vodi računa i o sekundarnoj memoriji kao i njenoj defragmentaciji tj. Upravljanje prostorom na disku.

Page 22: OS pitanja i odgovori.docx

5. 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. Dakle, vrši se izbor posla, realizuje strategija dodele resursa i određuje prioritet njihovog izvršavanja.Pod evidencijom se podrazumeva evidentiranje korišćenja resursa. Ova komonenta je vrlo bitna kod složenijih sistema gde imamo višekorisnićki rad (multiuser mode).6. Interpretacija komandnog jezika – može biti totalno van operativnog sistema ali je funkcijski

tu. Zavisno od vrste računarskog sistema korisniku može biti na rspolaganju određeni komandni jezik. On podrazumeva interaktivni rad a ako te interakcije nema onda se koristi neki jezik za obradu polova – jezik za upravljanje poslovima

21. Linkeri I loaderPrevodioci (engl. compilers) omoguñavaju àudima da programe piãu na jeziku koji razume åovek, i da ih zatim prevedu na maãinski jezik, tj. na jezik koji razume maãina. Povezivaåi (engl. linkers) i punioci (engl. loaders) omoguñavaju sprezaçe viãe maãin-skih programa u jednu programsku celinu. Ta celina se moæe upotrebiti viãe puta i uvek se smeãta na razne lokacije u memoriji.

linker ćija je osnovna uloga da formira program koji će biti spreman da se izvršava nakon njegovog punjena u operativnu memoriju. Takav program se naziva izvršna jedinica ( bound unit ). Punilac ili loader tu izvršnu verziju programa prebacuje u operativnu memoriju i inicira njegovo izvršavanje. Linker i loader se često mogu naći implementirani kao jedinstvena softverska komponenta.

- linkeri ili povezivači objednjuju nezavisne komonente-module u jednu programsku celinu.

- loaderi ili punioci unose program u operativnu memoriju i pokreću njegovo izvršavanje.

-

22. Problrm sinhronizacije procesa

Kontekst procesa Kontekst procesa podrazumeva skup podataka neophodnih za nastavljanje procesa pošto ponovo dobije CPU. To znači da se kontekst procesa pamti u trenutku kad proces gubi CPU. Kontekst procesa obuhvata sem konteksta programa (skupa podataka koji se pamti pri prekidu programa) još i niz drugih podataka neophodnih za multiprogramski, tj. multiprocesni rad (tu spadaju razni registri ili pointeri na stek gde se to pamti). Takođe, sadrži i podatke poput toga gde je u memoriji, gde na disku...

Jedan isti program može se pojaviti u više procesa (npr. editor poput EDT na VAX/VMSu ili ed na UNIXu). Pored toga, jedan program se može razbiti na više procesa (više delova i za svaki se formira proces). Takvi procesi, tj. programi su međusobno zavisni i moraju jedan drugog sačekivati, ali čak i u slučaju kad su procesi međusobno nezavisni (jer pripadaju različitim korisnicima) moraju se sačekivati pri pristupu resursima sistema (zajedničkim strukturama podataka, I/O uređajima...). Iz prethodnog sledi da je neophodna sinhronizacija procesa.

Page 23: OS pitanja i odgovori.docx

“Laki” i “teški” procesiPostoje dva glavna tipa procesa u svetu multitaskinga - threads ili “laki” procesi i “teški” procesi. Ova dva tipa procesa razlikuju se uglavnom po načinu kako upravljaju memorijom.

U više verzija OS UNIX najmanja jedinica izvršavanja je task ili process. Mehanizam raspodele poslova OS omogućava predaju upravljanja između taskova. Multitasking se izvršava između dva ili više procesa. Ako neka aplikacija treba da izvrši više funkcija simultano, deli se u više procesa (npr. korišćenjem UNIX fork sistemskog poziva). Svaki proces obezbeđuje resurse potrebne za izvršavanje programa - ima virtualni adresni prostor, izvršni kôd, podatke, module za rukovanje objektima - hendlere, environment promenljive, bazni prioritet, minimalnu i maksimalnu veličinu radnog prostora.

Nasuprot tome, u operativnim sistemima Windows osnovna jedinica izvršavanja je thread - nit ili tok izvršavanja. Task ili proces sastoji se od jednog ili više thread-ova (jedan je main). Svaki od njih ima različit stek i status mašine, ali svi thread-ovi istog procesa dele kôd i podatke u memoriji, pa prelazak sa jednog na drugi thread oduzima manje sistemskog vremena nego prelazak sa jednog “teškog” procesa na drugi.

Kontekst “lakog” procesa uključuje skup procesorskih registara, kernel stek, thread environment blok i user stek u adresnom prostoru matičnog procesa.

Stanja procesaOsnovna stanja procesa pokazana su na sl. 1.

Slika 1 - Osnovna stanja procesa

U stanju RUN se nalazi uvek samo jedan proces (onaj koji se trenutno izvršava - kome je dispečer dodelio CPU). U stanjima READY i WAIT se može nalaziti više procesa. Iz stanja RUN u READY proces prelazi po isteku kvanta vremena (tj. po prekidu od časovnika). Iz stanja RUN u WAIT proces prelazi ako zatraži neki resurs koji je u tom trenutku zauzet (koji ne može da dobije) ili ako mora da sačeka da mu neki drugi proces završi posao.

Page 24: OS pitanja i odgovori.docx

U složenijim OS se pojavljuju još dva stanja. Suspendovanje procesa podrazumeva prebacivanje iz operativne memorije na eksternu. U OM ostaje samo PCB procesa. Prelazi iz jednog stanja u drugo su predstavljeni na sl. 2.

Slika 2 - Stanja procesa

Detaljnije o (svim) stanjima procesa. Procesi u stanjima READY, WAIT, SW-READY i SW-WAIT se povezuju u liste ili stavljaju u tablice jer ih ima više. Prelazak iz stanja RUN u READY, WAIT ili SW-READY znači gubitak CPU. Najjednostavniji slučaj u kome proces gubi CPU je kada istekne kvant vremena (u tom slučaju neki tajmer generiše prekid). Po tom prekidu jedna procedura (program) jezgra OS prebacuje proces iz stanja RUN u READY, po pravilu mu pri tom i snižava prioritet. Proces se stavlja u listu na mesto koje mu po prioritetu pripada. Prelazak procesa iz RUN u WAIT opet znači gubitak CPU, ali iz drugačijeg razloga. Proces traži neki resurs koji u tom trenutku ne može da dobije (npr. nekakvu zaštićenu strukturu podataka ili traži I/O operaciju, a mora da čeka na njen završetak...). Treba napomenuti da ne mora uvek kad traži I/O, proces da gubi CPU, tj. može nastaviti izvršavanje paralelno sa realizacijom I/O operacije. Međutim, ako proces ne dobije obaveštenje da je I/O operacija završena u nekom vremenskom intervalu moraće se blokirati da bi sačekao to obaveštenje. Proces može izgubiti CPU, tj. preći iz RUN u READY i u slučaju dolaska procesa višeg prioriteta u red spremnih procesa. Tom događaju prethodi prekid čija je obrada rezultirala dolaskom procesa (prioriteta višeg od tekućeg) u red spremnih (npr. iz reda blokiranih procesa vraća se neki proces koji je čekao na događaj, pa prekid znači da se taj događaj desio). U zavisnosti od značaja procesa koji je prispeo u red spremnih, koriste se dva rešenja: 1) vraćanje tekućeg procesa u red spremnih i predaja upravljanja dispečeru kako bi se dala šansa prispelom procesu da odmah dobije CPU i 2) ukoliko je tekući proces većeg prioriteta polazi se od činjenice da on nije kriv za nastali prekid i treba mu omogućiti da nastavi rad do isteka kvanta vremena. Oduzimanje procesora procesu podrazumeva da se kontekst procesa prebaci u njegov PCB. Dodeljivanje CPU procesu podrazumeva prepisivanje konteksta procesa iz PCB u odgovarajuće registre. Sama predaja upravljanja procesu ostvaruje se u trenutku kada se iz PCB prenosi sadržaj brojača naredbi koji je zapamćen kada je proces izgubio CPU, odnosno kada se taj sadržaj upiše u PC (IP na i80x86). To se realizuje posebnom naredbom ili naredbom skoka s indirektnim adresiranjem (JMP[a} gde je a adresa u PCB na kojoj se nalazi sadržaj PC). Proces gubi CPU i prelaskom iz RUN u SW-READY. U tom slučaju proces vrši suspenziju (sam sebe suspenduje, odnosno traži da bude prebačen na eksternu memoriju). Proces gubi CPU u još dva jednostavna slučaja: kad se dogodi neka greška zbog koje ne može da nastavi rad ili kad završi sa radom. Iz stanja READY u RUN proces prelazi kada mu dispečer dodeli CPU. Dispečer je uvek deo jezgra, tj. ne predstavlja poseban proces. Postoje različiti algoritmi izbora kom procesu će se dodeliti CPU (opisani su u delu algoritmi planiranja).

Page 25: OS pitanja i odgovori.docx

Swapping (izbacivanje procesa iz OM i vraćanje) Iz READY u SW-READY proces prelazi kada neki modul OS zadužen za to odluči da taj proces prebaci na eksternu memoriju da bi time rešio neke probleme opterećenja sistema. Iz WAIT u READY proces prelazi kada se desi neki događaj na koji je čekao. Zavisno od događaja, proces se vraća u red spremnih sa istim ili povećanim prioritetom. Prioritet se, po pravilu, povećava procesima koji su čekali na završetak I/O operacije. S jedne strane, snižavanje prioriteta procesima kojima istekne kvant vremena i, s druge strane, povećanje prioriteta procesima koji su čekali na I/O operacije ima za cilj da pusti u paralelni rad što više I/O uređaja pošto se time povećava stepen multiprogramiranja. Iz WAIT u SW-WAIT proces prelazi kada neki modul OS odluči da ga treba prebaciti na eksternu memoriju. To je pasivan proces i drugi (iz OS) manipulišu njime. Iz SW-WAIT u SW-READY proces se prebacuje kad se desio događaj koji je čekao, ali mu i dalje kôd ostaje na eksternoj memoriji (u OM je samo PCB). Prelazi SW-READY u READY i SW-WAIT u WAIT nastaju kad modul OS odgovoran za to odluči da vrati proces u OM.

Problem sinhronizacije procesa

Sinhronizacija procesa u toku obavljanja ove operacije je neophodna, da bi se sprečilo da dva ili više procesa istovremeno zaključe da je ista datoteka otključana i da, nezavisno jedan od drugog, istovremeno zaključaju pomenutu datoteku. Pomenuta sinhronizacija obezbeđuje da uvek najviše jedan proces zaključa datoteku, jer samo on pronalazi otključanu datoteku, dok svi preostali istovremeno aktivni procesi pronalaze zaključanu datoteku. Ako je za nastavak aktivnosti ovih preostalih procesa neophodno da pristupe datoteci, tada se njihova aktivnost zaustavlja do otključavanja datoteke. Zbog ovakvih procesa potrebna je operacija otključavanja datoteke. Njeno izvršavanje omogućuje nastavak aktivnosti samo jednog od procesa, čija aktivnost je zaustavljena do otključavanja datoteke. Ako takav proces postoji, datoteka se i ne otključava, nego se samo prepušta novom procesu. Inače, datoteka se otključava. I operacija otključavanja datoteka zahteva sinhronizaciju procesa. Prethodno opisana sinhronizacija procesa predstavlja primer uslovne sinhronizacije, jer je aktivnost jednog procesa zaustavljena dok se ne ispuni uslov (da datoteka bude otključana), što se obezbeđuje u toku aktivnosti drugog procesa. U slučaju zaključavanja datoteke, uslovna sinhronizacija nije uvek obavezna, jer je moguće da proces nastavi svoju aktivnost i nakon neuspešnog pokušaja zaključavanja datoteke. Jasno, tada se podrazumeva da on neće pristupati pomenutoj datoteci. Prema tome, operacija zaključavanja datoteke je blokirajuća, kada, radi uslovne sinhronizacije, u toku njenog obavljanja dolazi do zaustavljanja aktivnosti procesa, dok se ne stvore uslovi za međusobno isključive pristupe zaključanoj datoteci. Ova operacija je neblokirajuća, kada njena povratna vrednost ukazuje na neuspešan pokušaj zaključavanja datoteke i na nemogućnost pristupa datoteci, koju je zaključao nekidrugiproces. Sinhronizaciju procesa moraju da obezbede ne samo operacije zaključavanjai otključavanja datoteke, nego i sve druge operacije za rukovanje deskriptorima.

23. Uzajamno iskljucivanje sa radnim cekanjem

Page 26: OS pitanja i odgovori.docx

24. Diskontinualna dodela memmorije

Najpopularnije serije procesora Intel (80x86 i Pentium) i Motorola (68000) imaju ugrađenu podršku i za segmentaciju i za straničenje, tako da omogućavaju primenu kombinovanih metoda diskontinualne alokacije pa se procesi mogu deliti na fizički diskontinualne logičke celine. Pri tome, straničenje poništava eksternu fragmentaciju segmenata. Procesor Intel 80386 koristi segmentacije sa straničenjem. Logička adresa se sastoji od identifikatora segmenta ( selector ) i pomeraja u okviru segmenta ( offest ). Iz t abele segmenata čita se adresa logičke stranice u katalogu stranica. Straničenje je realizovano u dva nivoa: spoljna tabela se zove katalog stranica ( page directory ) unutrašnja – tabela stranica

25. FIFO algoritam

Prva koja pada na pemet koja je korisna kao referentna tačka je FIFO ili FCFS(First Came First Served). Ova politika ima osobinu da je pravedna. Zahtevi će biti opsluživani kojim su redom stigli. Ova politika nikoga ne favorizuje. Ipak jako je neefikasna. Parametri diska:sBrzina rotacije je 5400 rpm; brzina pomeranja glave od jedne do druge staze najčešće je 1ms do 3ms, a ako se ide na neku udaljenu traku onda to vreme neće biti zbir ovih vremena, već nešto kraće. Zato postoji parametar koji se zove SEEK TIME.

sOčigledno je da će FIFO da izazove veliko šetanje glave jer zahteve opslužujemo onim redom kojim su došli, a ti zahtevi su slučajni.

sKako je HD izuzetno spor efikasnost je od primarne važnosti. Lako nalazimo politiku optimizacije koja je pre svega efikasna, a to je SSF(Shorter Seek Frist). Zasniva se na tome da se prvo opslužuje onaj zahtev do kojega je pomeranje glava najmanje. Pri dobijanju podataka sa diska gubi se vreme na sledeće: seek time; rotaciono čekanje; vreme transfera. Seek time zavisi od mehanike za pomeranje glave i tu su postignuti napretci tako da je tu razvoj došao do maksimuma.

sVreme transfera je takođe važan faktor. Često su zahtevi za čitanjem veći od jednog sektora. Čitanje zavisi od: brzine rotacije diska, gustine zapisa… To čitanje donedavno nije bilo jednostavno, jer kontroleri nisu bili dovoljno brzi. Do pre nekoliko godina postojao je jedan važan faktor: interliv faktor. To je specijalan način smeštanja podataka na disk. Ako imamo datoteku koja se sastoji od 10 sektora. Prva ideja je da se tih 10 sektora upišu u jednu traku jedan za drugim. U starija vremena se dešavalo da elektronika kontrolera i prebacivanje u memoriju nisu dovoljno efikasni, tako da kada 1 sektor prolazi ispod glave, on trpi odgovarajuću obradu u tom smislu da se signali prerađuju, pretvaraju u bajtove i šalju u memoriju, što traje neko vreme. Kada dođe sledeći sektor pod glavu podaci iz prethodnog sektora se još nisu obradili. Tako će taj sledeći sektor da pobegne, pa će morati da se čeka sledeća rotacija. 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. Za najstarije diskove fktor preplitanja je išao 1:6. Danas je interliv 1:1, vreme čitanja je konstanta i brzina rotacije je praktično konstanta, tako da je onaj prvi faktor seek timejedini podatak sa kojim ima smisla nešto raditi da bi se ukupno vreme smanjilo. (pojavili se 7200rpm

Page 27: OS pitanja i odgovori.docx

HD). Postoje tehnologije koje su uvedene iz razloga sigurnosti, ali koje mogu imati značaja za brzinu čitanja. To su RAID

s tehnologije. To je ideja koja se primenjuje uglavnom za velike servere gde se više diskova stavlja da rade zajedno.

sIz svega proizilazi da je politika SSF optimalna jer se tu nastoji da se glava pomera što manje. Optimalna je u smislu maksimizacije protoka. Time se gubi pravednost, gube se i drugi parametri optimalnosti: prosečno vreme čekanja. Prosečno vreme čekanja kod FIFO može da bude 20ms, ali kod SSF prosečno vreme je npr. 10ms. To srednje vreme je napravljeno na jako nepravedan način. Neki zahtevi su opsluženi za 1ms, neki za 5ms, neki 8, a neki 10… Raspon vremena opsluživanja je 1-100ms, dok je taj raspon kod FIFO 15-25ms.

sPretpostavimo da je sistem preopterećen i da zahtevi stalno stižu. Tada se lako pokaže da se kod SSF glava zadržava negde kod sredine HD. Tada zatevi sa krajeva HD skoro nikad neće biti opsluženi. Postoji algoritam za koji platimo 3% efikasnosti da bi dobili 90% pravednosti. Taj algortima se zove scan. Ova politika je slična SSF, ali je zasnovana na tome da se opslužuje najbliži zahtev s tim d aglava ide samo u jednom smeru. Zove se još i lift algoritam jer glava ide slično liftu. Nema bojazni da će ovo da izazove neefikasnost jer je pretpostavka da zahteva ima mnogo, pa ako ih ima na jednoj ima ih i na drugoj strani u odnosu na glavu. Što se pravednosti tiče mnogo je dobijeno, jer sada nema neograničenog čekanja na unutrašnjim i spoljnim trakama.

sIpak postoji mala nepravednost, jer kako se ide sa spoljne strane prema unutra i obrnuto srednje staze će biti pređene dva puta, a krajnje samo jednom. Opsluživanje u sredini je opet bolje nego na krajevima.

sPostoji i C-SCAN algoritam, to je lift u jednom pravcu. Ovde više nema favorizovanja sredine. Sa malim gubitkom brzine ovaj algoritam eliminiše nepravednost.

sPostoje razne modifikacije ovih algoritama za razne specijalne slučajeve, ali su ovi algoritmi uglavnom principi koji treba da se shvate.

sUobičajeno je da se stavlja keš između HD i računara. 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, uskoro, i time da se ubrza transfer. Kako to radi rešeno je na nivou HD. U jednoj kutiji su HD, kontroler i ta memorija.

FCFS algoritam

Najednostavniji algoritam planiranja poslova je FCFS (First-Come-First-Served). Procesor se najpre dodeljuje onom procesu koji ga je prvi zahtevao. Implementacija ovog algoritma se lako vrši korišćenjem FIFO redova. Kada se proces ubacuje u red spremnih procesa njegov PCB se stavlja na kraj reda. Kada se procesor oslobodi on se dodeljuje prvom procesu iz reda. Međutim, performanse ovog algoritma su veoma slabe. Posmatrajmo sledeća tri posla prikazana u tabeli.

Page 28: OS pitanja i odgovori.docx

PosaoVreme izvršavanja

1 24

2 3

3 3

Ako su ovi poslovi pristigli u redosledu navođenja i opslužuju se na osnovu FCFS algoritma, rezultat ovoga vidimo u sledećoj Gantovoj karti.

Vreme obilaska za prvi posao je 24, za drugi 27 a za treći 30. Srednje vreme obilaska je 27. Ako pretpostavimo da su poslovi pristigli u redosledu 2, 3, 1, dobićemo sledeću Gantovu kartu.

Sada je srednje vreme obilaska jednako 13, što predstavlja značajno smanjenje. Srednje vreme obilaska za ovaj algoritam u opštem slučaju nije minimalno moguće, a može značajno da varira u zavisnosti od konkretnog slučaja.

Pored ovoga, posmatrajmo performanse FCFS algoritma u dinamičkoj situaciji. Pretpostavimo da imamo jedan posao orijentisan CPU aktivnostima i više poslova orijentisanih U/I aktivnostima. Moguć je sledeći scenario. Posao orijentisan CPU aktivnostima dobiće CPU i držaće ga doke se ne izvrši. Za to vreme, svi ostali poslovi će završiti njihove U/I aktivnosti i biće u redu spremnih procesa. Dok čekaju u redu, U/I uređaju su besposleni. Kada se posao koji je držao CPU izvrši i pređe na U/I aktivnost, ostali poslovi koji imaju kratke periode CPU aktivnosti a duge periode U/I aktivnosti, će se brzo izvršiti i vratiti U/I aktivnostima. Sada je CPU besposlen. Posao orijentisan CPU aktivnostima se vraća u red spremnih procesa i dodeljuje mu se procesor i priča se ponavlja. Ova situacija, gde svi procesi čekaju da jedan dugačak proces oslobodi CPU, naziva se efekat konvoja. Rezultat tog efekta je slaba iskorišćenost i CPU-a i U/I uređaja.

26. Klasifikacija ulazno izlaznih uredjaja

http://www.mginformatika.com/Download/Ulazno%20izlazni%20podsistem.pdf

Sve ulazne i izlazne uređaje u jednom računaru možemo podeliti na:

1. blokovske

Page 29: OS pitanja i odgovori.docx

2. znakovne 3. specijalni

Razlike u:

- jedinice pristupa (blok/znak),

- načina pristupa (direktan/sekvencijalni) i

- upravljanja (statičko/dinamičko).

Klasifikacija uređaja na znakovne i blokovske ne obuhvata sve uređaje (sat, miš, ...)

Drajver (driver) je softver koji upravlja uređajem. Obično, jedan drajver može da opsluži više primeraka uređaja iste klase. Drajveri uređaja koji nisu ni blokovski ni znakovni se razlikuju od drajvera klasifikovanih uređaja. Van drajvera su vidljive samo operacije, kao što su, na primjer, operacije ulaza ili izlaza, koje omogućuju jednoobrazno korišćenje ulaznih i izlaznih uređaja. Tipične operacije drajvera blokovskih uređaja su:

1. operacija inicijalizacije i

2. operacije ulaza i izlaza blokova (koje koristi sloj za upravljanje datotekama).

Tipične operacije drajvera znakovnih uređaja su:

1. operacija inicijalizacije,

2. operacije ulaza i izlaza znakova i

3.upravljačka operacija (omogućuje dinamičko podešavanje funkcionalnih karakteristika znakovnih uređaja, recimo, njihove brzine prenosa znakova).

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

27. Raid struktura

Trakasti(stripe) setje prikazan na slici broj 7. Ova šema se zove još i RAID nivoa O. FtDisk uzima veličinu trake od 64 KB. Prvih 64 KB logičkih volumena se nalaye na prvoj fizičkoj particiji, sljedećih 64 KB na drugoj itd. Ovakav raspored doprinosi poboljšanju I/O propusnog opsega zbog toga što se podaci prenose paralelno. Trakasti set sa parnošćuje prikazan na slici 8. – ova šemase zove još i RAID nivoa 5. Ako trakasti set ima 8 diskova, za svakih sedam «traka» podataka nasedam odvojenih diskova dolazi po jedna traka parnosti na osmom disku. Ako je bilo koja od ovih osam traka uništena ili oštećena može rekonstruisati podatke

Page 30: OS pitanja i odgovori.docx

izračunavanjem funkcije EX – ILI od preostalih sedam. Ukoliko se sve trake parnosti nalaze na jednom disku na njemu bise izvršavalo sedam puta više I/O operacija nego na ostalim diskovima. Da bi seizbjeglo ovo «usko grlo» trake parnosti se raspoređuju na sve diskove na način prikazan na slici. Da bi senapravio trakasti set sa parnošću potrebne su minimum 3 particije iste veličine raspoređene na tri posebna diska. Ogledanje diskova. Set ogledala. RAID i duplex setovi Ogledanje diskova ili RAIDnivoa 1 je predstavljeno na slici 9. Sastoji se od dvije particije iste veličine na dva diska takvih da im je sadržaj podataka identičan. Kada aplikacija zapisuje podatke u set ogledala, FtDisk ih zapisuje na obje particije. Ako jedna particija zakaže FtDisk ima njenu kopiju na ogledalu. Ova šema poboljšava i performanse zato što se zahtjevi za čitanje dijele između dva ogledala. Da bi se zaštitili od otkaza kontrolera diska oba diska se priključuju na posebne kontrolere (dupleks set).

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

Page 31: OS pitanja i odgovori.docx

ima njenu kopiju na ogledalu. Ova šema poboljšava i performanse zato što se zahtjevi za čitanje dijele između dva ogledala. Da bi se zaštitili od otkaza kontrolera diska oba diska se priključuju na posebne kontrolere (dupleks set).

28. Kontinualna dodela blokava kod fajl Sistema

◦ Svaka datoteka zauzima kontinualni prostor na disku. Operativni sistem pamti adresu prvog bloka i dužinu datoteke. Dobra strana ovog algoritma je

jednostavnost i brzina. Loša strana je ograničen prostor. Svaka datoteka

sadrži proizvoljan broj blokova koji su razbacani po disku.

◦ Operativni sistem prepoznaje blokove koji pripadaju jednoj datoteci uz pomoć ulančanog opovezivanja blokova.

◦ OS pamti adresu prvog i poslednjeg bloka u datoteci.

◦ Ostali blokovi se povezuju tako što svaki blok na kraju sadrži pokazivač na sledeći blok u nizu.

◦ Dobra strana ovog algoritma je proširivost datoteke, a loša je sporo pretraživanje sadržaja i mogućnost lakog oštećenja (gubitkom jednog bloka prekida se lanac i drugi deo datoteke je izgubljen).

◦ Svaka datoteka sadrži proizvoljan broj blokova koji su razbacani po disku.

◦ Za svaku datoteku postoji sistemska baza podataka koja čuva informacije o blokovima koji pripadaju jednoj datoteci.

Metod kontinualne dodele

Kod ovog metoda se zahteva da svaka datoteka zauzima skup kontinualnih adresa na disku. Tada stavka u direktorijumu za svaku datoteku sadrži početnu adresu datoteke i broj blokova koji su joj dodeljeni. Međutim, javlja se problem kada treba pronaći prostor za novu datoteku. Ovaj problem se može smatrati specijalnim slučajem opšteg problema dinamičke dodele memorije. Ovde prostor na disku posmatramo kao veliko polje blokova. U proizvoljnom trenutku neki blokovi su zauzeti, dok su ostali slobodni. Tako prostor na disku možemo smatrati kolekcijom zauzetih i slobodnih segmenata gde je svaki segment kontinualan skup blokova. Slobodni segment naziva se rupaili šupljina. Ovde se javlja problem fragmentacije koji se može rešavati kompakcijom. Postoje i drugi problemi vezani za kontinualnu dodelu. Osnovni problem je odrediti koliko prostora da se dodeli datoteci. Kada se datoteka kreira, čitav iznos prostora treba dodeliti datoteci. Kako korisnik zna veličinu datoteke koja

Page 32: OS pitanja i odgovori.docx

se kreira? U nekim slučajevima ovo pitanje je jednostavno, na primer, kada se kopira postojeća datoteka, ali je, u opštem slučaju, tu procenu teško izvršiti. Ako dodelimo malo prostora datoteci, uskoro ćemo doći u situaciju da ona ne može više da se proširuje, jer prostor na oba kraja datoteke može biti zauzet od strane drugih datoteka. Dve mogućnosti stoje na raspolaganju u takvom slučaju. Prva je da se korisnički program terminira uz odgovarajuću poruku. Druga mogućnost je da se potraži veća šupljina u koju možemo da smestimo datoteku, oslobađajući prethodno zauzeti prostor. Ovo se, uz utrošak vremena, može ponavljati sve dok postoji slobodan prostor. Čak i kada unapred znamo količinu potrebnog prostora za neku datoteku koju kreiramo, može se ispostaviti da nije efikasano da sav prostor dodelimo datoteci. Datoteke koje narastaju sporo, tokom dugog vremenskog perioda (tokom meseci ili čak godina) u tom slučaju u dobroj meri nepotrebno zauzimaju prostor.

29. Napadi na system

Zaštita OS ima više nivoa, više namena i više načina. Treba paziti ko može pristupati računarima. Kada je već pristupio šta može da radi. Postoji pitanje o efikasnom korišćenju resursa. Tu postoji čitav niz mera koje mogu da se preduzimaju. Većina od tih mera se zasniva na oblasti koja se zove kriptografija. To je menjanje izvornog zapisa tako da postane nerazumljiv onome ko ne zna kako da ga dešifruje. To se radi na različitim mestima: pri pristupu sistemu, čuvanju fajlova. Apsolutna zaštita ne postoji. Ako je računar spojen na mrežu onda tu govora o sigurnosti ne može da bude.Prva stvar koju treba utvrditi je ko može da pristupa računaru. Potrebno je da se taj korisnik identifikuje. Danas se to rešava upotrebom password-a. Takođe su mogući načini koji čoveka određuju jedinstveno, a brzo i efikasno. Kao što su otisci prstiju, zenica oka, … Ideja sa password-om deluje jednostavno i razumno s tim što se u praksi javljaju mnogi problemi. Od početka je osnovna ideja bila da postoji neka datoteka u kojoj se nalazi spisak svih korisnika i njihovih šifri. Kada korisnik dođe da radi on mora prvo da prođe program login. Mnogo vrednih informacija je koncentrisano u datoteci u kojoj su šifre. Tu datoteku treba zaštititi, ali je praksa pokazala da jedna datoteka ne može dovoljno dobro da se zaštiti, jer treba da je stalno pri ruci programu login.Sledeći korak je da se šifra čuva u fajlu enkriptovana. Ta enkripcija se onda radi sa algoritmom koji pripada klasi jednosmernih algoritama. Dobar sistem ima javni algoritam gde se kaže tačno šta se radi sa podacima, a težina je u tome da je algoritam dobro osmišljen tako da stvarno nema inverznog algoritma. Nevolja kod kriptografije je u tome što se nikad ne može dokazati da je algoritam dobar, već postoje kontra primeri koji mogu pokazati da algoritam ne valja.Kada se napravi gore navedeni sistem on će i dalje biti slab. Biće slab od onog momenta kada korisnik unese šifru, pa dok ona ne dođe do računara. Tipičan primer je mreža gde se na jednom kraju nalazi računar na kome se ukucava šifra, a na drugom računar sa fajlom u kome je šifra i algoritam za kriptovanje. Taj deo između dva računara je najosetljiviji. Ako se radi o lokalnoj mreži onda tu nema nikakve sigurnosti. Lokalne mreže su otvorene čitanju.

Page 33: OS pitanja i odgovori.docx

Potrebno je samo malo softvera, jer princip lokalne mreže je broad cast, što znači da se šalje preko zajedničkog kabla, i svako može da sluša.Rešenje je da pasvordi putuju kriptovani. Algoritam za kriptovanje mora da bude na oba kraja. Time problem nije u potpunosti rešen, i tome mogu da se nalaze kritike i onda ima različitih nivoa kako se to brani.Postoje i drugačiji napadi koji su dosta češći, a koji se ne zasnivaju na hardverskoj tehnologiji, već na softveru i psihologiji. Kada je korisnik već prišao računaru onda treba da se ograniči čemu on može da pristupa. Jedna od osnovnih nevolja je što korisnik mora da pristupa nekim resursima, kojima ne bi trebao da ima pristup (štampanje , komunikacije…). Zato programi nisu nikada do kraja istestirani, tu se radi o ljudima koji ulažu veliki napor da nađu rupu. Program može abnormalno da se prekine i onda može da ono što imam u memoriji izbaci na disk.Jedna stvar koja se javila na računarima pre 10-ak godina su programi koji prave štete. Ti programi mogu da se klasifikuju na:Viruse; crve(razmnožavaju se, a ne prave drugu štetu); trojanske konjeOvo nije precizna klasifikacija.To su programi koji su zlonamerno ubačeni u sistem. Virus se napuni u memoriju i tamo sedi i kad god se neki drugi program startuje on se prikači za njega. 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. Tako se on širi, a kada se zaraženi program prebaci na drugi računar on počne tamo da se širi. Mesta koja su zgodna su izvršni programi, i delovi OS koji se stalno učitavaju kao command.com. On je zgodan jer se uvek učitava i prisutan je na svakom sistemu, ali mana je to što provera uvek počinje od njega. Ovim načinom širenja se menja veličina fajlova, ali virus može da obriše deo programa pa da se tamo postavi, a time sam program prestaje da bude funkcionalan čime može da se otkrije virus.Kasnije su virusi počeli da se čuvaju na boljim mestima kao što je boot sector i praticiona tabela. Ona su zgodna zato što su prisutna na svakom računaru, a ona se teže proveravaju. Boot sector se sastoji iz prvih 512 bajtova pa je zgodno da se tamo prikači, a isto tako praticiona tabela se sastoji od 512 bajtova od kojih je 30 zauzeto.Kasnije su počeli da se pojavljuju samomodifikujući virusi. Onaj koji može da formatira disk je primer takvog. Suštinski kod je:Load al,15Load ah, 30To je suština koja treba da stoji a okolo mogu biti ukrasi koji se mogu menjati. Ljudi koji prave viruse uzimaće suštinski deo, ali taj suštinski kod može da se modifikuje.Neki kažu da viruse prave oni koji prave programe za otklanjanje virusa. Programi koji pronalaze viruse ponudiće da očiste viruse, ali ipak najsigurnije rešenje je da se preformatira disk i očisti particiona tabela. Virusi su nalaženi i na originalnim fabričkim disketama, a ne samo na piratskim programima.Što se tiče OS, DOS je bio najosetljiviji na viruse jer nema nikakve zaštite. Kod unix-a i Windows NT-a toga nema jer korisnik nema direktan pristup boot sektoru, particionoj tabeli ni bilo čemu drugome. To je tamo zaštićeno i stvar je mnogo teža, ali ne i nemoguća. Svaka kriptografija se danas zasniva na sledećoj ideji. 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č, niz određenog broja bitova. To kombinovanje može da se vrši na razne načine ali je praksa

Page 34: OS pitanja i odgovori.docx

pokazala da je XOR operacija najbolja. Ona je zgodna zbog toga što se istom metodom šifrirani tekst vraća u originalno stanje. Stvar nije u algoritmu već je cela stvar u ključu. Uzme se deo teksta, on se šifrira ključem pa se onda uzme naredni deo teksta… Ključ mora da bude dovoljno dugačak, jer postoje razne metode napada na sistem.Statistički napad, ako je ključ dužine jednog bajta to postaje lako za svaki jezik postoji verovatnoća njegovog pojavljivanja u tekstu. Ako su uzme ključ dužine 2 bajta onda za slova umesto 30 biće 900 kombinacija. Zato ključ treba da bude dovoljno dugačak da bi se ovakvi napadi otklonili.Napadi grubom silom. Podrazumevamo da su algoritam i šifrirani tekst poznati protivniku, ali da je algoritam jednsmeran. Problem je u dokazivanju da taj algoritam nema inverz. Postoji jedan zapanjujuće jednostavan sistem koji je teoretski dokazano savršen, ali on ima neke druge mane. Savršeno šifriranje postiže se metodom koja se zove one time pass. Ovaj ključ se samo jednom koristi i njegova dužina je dužina teksta. Nepraktičan je, dugačak kao sam tekst i nikad se ne ponavlja. Onda se postavlja pitanje distribucije ključa, ako se nađe način da se doturi ključ, onda je nađen način da se doturi i poruka. 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.Problematičan je onaj deo da ključ treba da bude slučajan. Pravu slučajnost je teško potići. Ona se postiže negde iz prirode. Postoje uređaji koji se zovu generatori slučajnih brojeva, a oni mogu da se zasnivaju na raznim principima. Jedan je na osnovu radiaktivnog raspada. Takvi uređaji postoje ali su spori, pa to onda nije zgodan i široko dostupan način za generisanje slučajnih brojeva. Zato se mi ograničavamo na pseudo slučajne brojeve gde se krije prava opasnost. Za kriptografiju ovi brojevi nisu slučajni, napravljeni su na osnovu nekog algoritma.Ključ može biti deo teksta iz knjige od 50. do 100. strane. Tako dugačak ključ može da se napravi ali to nije jednostavno. Danas ovakvi ključevi mogu da se koriste ali ih je teško praktično izgenerisati, već se koriste neki drugi metodi. Te metode se mogu klasifikovati u dve kategorije. Ni sa jednim od tih sistema ne možemo biti sigurni, jer je kriptografija naučna oblast u kojoj ne postoji dobronamernost.Klasična enkripcija je enkripcija pomoću jednog ključa. Sa ovakvim metodom nastaje problem sa distribucijom ključa. 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. Prednost ovih algoritama je da su brzi. Najpoznatiji algoritam ove vrste je DES. Garantuje da na nivou pojedinca niko neće moći da ga dešifruje, a na nivou države da će sigurno moći da ga dešifruju.Ovih standardizovanih algoritama ima dosta u svetu i svi rade na sličan način. Potreban je nekakav ključ koji treba da je kratak jer mora da se saopšti drugoj strani. Na osnovu tog kratkog ključa treba dobiti kvalitetnu enkripciju, pa je onda pitanje algoritma koji treba dobro da se napravi. Tipično je da se dužina ključa meri u bitovima. Dužina DES ključa je 56 bita. Kod DES se kripcija radi na sledeći način:Cela poruka se podeli na grupe od 64 bita. Te grupe se jedna po jedna kombinuje sa ključem. Tu se rade razna mešanja, a ona su tipično takva da se podeli grupa od 64 bita na levu i desnu stranu, pa se uvek rekurzivno čuva prethodna i sledeća iteracija. Obično se desna strana kmbinuje sa ključem. 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, pa se sa njima nešto uradi i dobije se

Page 35: OS pitanja i odgovori.docx

ključ za prvi prolaz; 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.