skripta_os i pitanja
TRANSCRIPT
-
8/16/2019 Skripta_os i Pitanja
1/74
1. Sinkronizirati proizvodaca i potrošaca korištenjem brojackog semafora.Proizvođač: dok je(1){
proizvesti poruku P;
Ispitati_Osem(2);
MS[UL]=P;
UL=(UL+1)%N;Postavi_Osem(1);
}
Potrošač: dok je(1){
Ispitati_Osem(1);
R=MS[IZ];
IZ=(IZ+1)%N;
Postavi_Osem(2);
Potrošiti poruku R;
}
Objašnjene varijabli: MS=međuspremnik UL, IZ=kazaljke za kretanje po međuspremniku P, R=poruka
N=veličina međuspremnika 2. Sinkronizirati više proizvođaća i više potrošaca uz pomoć binarnih i brojackihsemafora.Proizvođač: Dok je (1){
Proizvesti poruku P;
Ispitati_Osem(S);
Ispitati_Bsem(P);
Dobaviti pretinac sa stoga SKLADISTE;
Postaviti P u pretinac i uvrstiti ga u Red_Poruka[i];
Postaviti_Bsem[P];
Postaviti_Osem(i);
}
Potrošač:
Dok je (1){
Ispitati_Osem(i);
Ispitati_Bsem(K);
Preuzeti poruku R iz prvog spremnika u Red_Poruka[i];
Vratiti ispažnjeni pretinac na stog SKLADISTE;
Postaviti_Bsem[K];
Postaviti_Osem(S);
Potrošiti poruku R;
}
3. Sinkronizirati rad dviju dretvi tako da se one obavljaju naizmjenicno.Dretva Di:
dok je (1){
Ispitati_Osem (i);
nešto raiti;Postaviti_Osem(j);
}
Dretva Dj:
dok je (1){
Ispitati_Osem (j);
nešto raiti;Postaviti_Osem(i);
}
Jedan OSEM je inicijalno postavljen na 0, a drugi na 1;
-
8/16/2019 Skripta_os i Pitanja
2/74
Dretva u kojoj je OSEM postavljen u 1 ce prva poceti izvođenje.4. Što je potpuni zastoj?Potpuni zastoj je stanje sustava u kojem su sve dretve blokirane u nekom redu uvjeta.
5. Navesti nužne uvjete za nastajanje potpunog zastoja.a)srestva se koriste međusobno isključivo b) dretvi sama otpusta sredstvo nakon koristenja c) dok
traži oatna srestva retva rži oijeljena d)barem 2 dretve koriste barem 2 sredstva6. Što je monitor? Monitor je jezgrin mehanizam za sinkronizaciju.
7. Navesti jezgrine strukture podataka koje se koriste za ostvarenje monitora.
- monitorski semafor i redovi uvijeta
8. Navesti jezgrine funkcije za ostvarenje monitora.
a) udi_u_monitor b) izadi_iz_monitora c) uvrstiti_u_red_uvjeta d) osloboditi_iz_reda_uvjeta
9. Kada se može dogoditi da se dvije dretve nadu u monitoru? Jena retva je upravo eblokirana iz rea uvjeta, a ruga koja je tu retvu eblokirala, a još nije
završila izvođenje i izašla iz monitora.10. U pseudokodu napisati jezgrine funkcije za ostvarenje monitora: Uci_u_monitor,
Izaci_iz_monitora, Uvrstiti_u_red_uvjeta i Osloboditi_iz_reda_uvjeta. Uci_u_monitor(M){
Pohraniti kontekst u opisnik Aktivna_D;
Ako je (Monitor[M].v==1) {
Monitor[M].v=0;
Obnoviti kontekst iz opisnika Aktivna_D;
Omoguciti prekidanje;
Vratiti se iz prekinog načina raa;} Inače {
Premjestiti opisnik iz reda Aktivna_D u red Monitor[M];
Aktivirati prvu dretvu iz reda Pripravne_D;
}}
Izaci_iz_monitora(M){
Pohraniti kontekst u opisnik Aktivna_D;
Premjestiti opisnik iz reda Aktivna_D u red Pripravne_D;
Ako je ((Monitor[M].v==0) && (red Monitor[M] neprazan)) {
Premjesti prvi opisnik iz reda Monitor[M] u red Pripravne_D;
} InačeMonitor[M].v=1;
Aktivirati prvu dretvu iz reda Pripravne_D;
}
Uvrstiti_u_red_uvjeta(M,K){
Pohraniti kontekst u opisnik Aktivna_D;
Premjestiti opisnik iz reda Aktivna_D u Red_uvjeta[M,K];
Ako je ((Monitor[M].v==0) && (red Monitor[M] neprazan)) {
Premjesti prvi opisnik iz reda Monitor[M] u red Pripravne_D;
} InačeMonitor[M].v=1;
Aktivirati prvu dretvu iz reda Pripravne_D;
}
Osloboditi_iz_reda_uvjeta(M,K){
-
8/16/2019 Skripta_os i Pitanja
3/74
Pohraniti kontekst u opisnik Aktivna_D;
Premjestiti opisnik iz reda Aktivna_D u red Pripravne_D;
Ako je (Red_uvjeta[M,K] neprazan) {
Premjesti prvi opisnik iz reda Red_uvjeta[M,K] u red Pripravne_D;
}
Ako je ((Monitor[M].v==0) && (red Monitor[M] neprazan)) {Premjesti prvi opisnik iz reda Monitor[M] u red Pripravne_D;
}
InačeMonitor[M].v=1;
Aktivirati prvu dretvu iz reda Pripravne_D;
}
11. Kojim jezgrinim mehanizmom moraju biti zašticene korisnicke monitorske funkcije? Monitorskim semaforima
12. U cemu se razlikuje monitorski semafor od binarnog semafora?Binarni semafor koristi samo vije funkcije, a monitorski četiri
1. Gdje se generiraju adrese unutar procesora?Programsko brojilo adrese instrukcija
Registar kazaljke stoga stogovne adrese
Saržaj aresnih ijelova instrukcija adrese podataka2. Kako je podijeljen procesni adresni prostor?Dretveni prostori + zajenički prostor 3. Opisati organizaciju smještaja sadržaja na magnetskom disku (cilindri, staze, sektori).Disk se sastoji o više ploča na istoj osovini. Kružnice na ploči prestavljaju staze, a staze supodjeljene na jednake kruzne lukove – sektore. Staze jenakih polumjera svih iskova čine cilinar. 4. Čime je odredena jedinstvena adresa svakog sektora na disku?a) Renim brojem ploče b)Renim brojem staze na ploči c)Rednim brojem sektora na stazi
5. Koliko iznosi ukupno trajanje prijenosa podataka tvrdi disk- radni spremnik ?-Trajanje postavljanje glave +Trajanje trazenja staze + rotacijsko kašnjenje =TR/2 TR + trajanjeprijenosa poataka + trajanje čitanja ijela ili cijele staze + trajanje premještanja glave sa staze nastazu=Tr/2+ trajanje prijenosa podataka
6. Od cega se sastoji trajanje traženja staze ( seek time)?-a)Ubrzavanje b) Gibanje konstantnom brzinom c)Usporavanje d)Fino pozicioniranje
7. Koliko iznosi prosjecno vrijeme traženja u odnosu na vrijeme koje je potrebno zaprijelaz preko svih staza?Za vrijeme trazenja se uzima trečina vremena potrebnoh za prijelaz svih staza 8. Zbog čega nastaje rotacijsko kašnjenje i koliko ono iznosi?Rotacijsko kašnjenje (Tr) nastaje zbog toga što se nakon postavljanja glave na oabranu stazu mora
prije početka prijenosa pričekati a se ispo glave za čitanje pojavi traženi sektor.Iznosi između nula i jednog okretaja. Zato se za rotacijsko kašnjenje uzima prosječna vrijenost,odnosno pola trajanja jednog okretaja (Tr=Tr/2).
9. Čime je odredena brzina prijenosa podataka s diska u spremnik diskovne upravljackejedinke?Brzinom kojom ispo glave promiču bajtovi sektora i brojem poataka koje trebamo prenjeti.10. Neka je trajanje traženja staze Ts nekog diska s 2000 staza opisano sa sljedece triformule, gdje je D udaljenost izmedu trenutnog položaja glave i tražene staze:-Ts = 1.5 x D ms za D 4,-Ts = 4.0 + 0.5 x D1/2 ms za 4 400.
Koliko iznosi prosjecno vrijeme traženja staze?=10.0+0.01∗2000/3=16.66
-
8/16/2019 Skripta_os i Pitanja
4/74
11. Navesti sadržaj procesnog informacijskog bloka.Tablice sektora u kojima je program procesa pohranjen na isku i poaci o smještaju programa uradnom spremniku.
12. Opisati postupke statickog i dinamickog dodjeljivanja spremnika.Statičko ojeljivanje: Particije su stalne veličine program ka je ojeljen jenoj particiji uvijek je u
toj particiji, i ka je izbačen iz ranog spremnika može se vratiti samo u tu particiju. Dolazi oproblema fragmentacije i toga što aresni prostor programa nije mogao biti veci od najvece particijefizičkog spremnika.Dinamičko dodjeljivanje: Programi se upisuju jedan iza drugog. Dodan je sklop s kojim se početnaaresa pribraja svakoj aresi koju proces proizvee. Programi se priređuju tako a svaki ima svojaresni prostor. Važno je a se prije izvođenja u bazni registar pohrani aktualna početna aresa. 13. Navesti vrste fragmentacije prilikom statickog dodjeljivanja spremnika.Statičko: unutarnja fragmentacija(program manji od particije), specifična fragmentacija za statičkododijeljivanje
Dinamičko: vanjska fragmentacija (rupa razlicita od programa)14. Problem fragmentacije prilikom dinamickog dodjeljivanja spremnika se ne možeizbjeci, ali se može ublažiti. Kako?Rupe se oržavaju što večima kako bi se u njih mogo smjestiti novi program.a)stavljanjem programa u najmanju mogucu rupu u koju taj program može stati i b)spajanjem rupa15. Unatoč tome što se problem fragmentacije prilikom dinamickog dodjeljivanjaspremnika može ublažiti, fragmentacija može postati prevelika. Što treba tada učiniti?Privremeno obustaviti izvođenje retvi i „presložiti“ programe u kompaktni prostor.16. Navesti i dokazati Knuthovo 50% pravilo.Knuthovo pravilo: u stacionarnom stanju ide u spremniku biti broj rupa jednak polovici broja punih
blokova.
Knuthovo 50%-tno pravilo objasnjava kako ce broj rupa u memoriji u stacionarnom stanju biti upola
manji od blokova u memoriji.
N=m/2 broj rupa u sustavu=50% punih blokova u sustavu
17. Kako treba podijeliti program (koji u cijelosti ne stane u radni spremnik) uprekloponom nacinu uporabe radnog spremnika?Na jean osnovni io koji se uvijek nalazi u ranom spremniku i na ijelove koji se naizmjeničnosmještaju u preostali io korisničkog ijela fizičkog spremnika. 18. Kako je podijeljen logicki, a kako fizicki adresni prostor u sustavu sa stranicenjem?Logički aresni prostor se zamišljeno ijeli na jenako velike ijelove koje zovemo stranicama, afizički na ijelove koje zovemo okviri.Fizički je manji, onaj stvarni prostor, a logički je ono što programvidi.
19. O cemu ovisi velicina fizickog i logickog adresnog prostora?Logički aresni prostor ovisi o arhitekturi, a fizički o RAM-u.20. Mogu li stranice logickog adresnog prostora biti smještene u okvire fizickog
spremnika proizvoljnim redoslijedom?Mogu. Time se izbjegava problem fragmentacije.
21. Cemu služi tablica prevodenja? Od kojih se elemenata sastoji?Služi za prevođenje logičkog u fizički aresni prostor. Sastoji se o direktorija stranica i tablicastranica. Tablica prevođenja ima vije razine aresa organizirane po stranicama veličine 4 KB. U prvojrazini je jedna stranica s 1024 kazaljki od po 32 bita (direktorij stranica). Kazaljke direktorija pokazuju
na stranice u kojima je opet smješteno po 1024 riječi o po 32 bita (tablica stranica) 22. U cemu se razlikuju prekidi izazvani zbog promašaja stranice kod stranicenja nazahtjev od ostalih vrsta prekida?Nakon prekia mora se ponoviti instrukcija u kojoj je ošlo o prekida, ne nastavlja se od sljedeæe
instrukcije.
-
8/16/2019 Skripta_os i Pitanja
5/74
23. Opisati sklopovsku potporu za ostvarenje stranicenja u Intel x86 arhitekturi. Štosadrži i cemu služi TLB (Translation Lookaside Buffer)? Opisati tablicu prevodenja. Gdjese ona nalazi?Intel nema registra povijesti. Stranice se razvrstavaju u dva razreda: one u koje se u prethodnoj
perioi pisalo i one u koje se nije pisalo. Postoji jean bit pristupa(A) i bit nečistoe(D). Prvo sepokuša izbaciti stranica kojoj je A=0. Inače se izbacuje čista stranica.TLB je 32 bitni priručni međuspremnik za prevođenje aresa koji nam služi za cjelokupno spremanjefizičke arese i ijela logičke ares, tj. omogucuje nam a ne moramo uzastopno ohvaati fizičkuaresu ako ju trebamo češe.Koliko puta je potrebno pristupiti radnom spremniku ako se stranica ne nalazi u TLBmeduspremniku? 3a koliko ako se nalazi u TLB medusprenmiku? 1
24. Koju informaciju nosi bit cistoce? Gdje se on nalazi?Označava a li se saržaj stranice mijenjao o njenog prebacivanja u rani spremnik. Ako se mijenjaoko izbacivanja iz ranog spremnika se mora prepisivati na isk, a ako nije ona se samo obriše izradnog spremnika.
25. Čemu služi posmačni registar povijesti?Za izvedbu LRU strategije. Pri punjenju stranice u neki odvir inicijaliziraju se na 0 njezin bit pristupa i
posmačni registar. Kaa se pristupi stranici bit pristupa stranice se postavlja u 1. Preki o sataperiodno posmakne sve bitove pristupa u posmačne registre i zatim bit pristipa izbriše. Saržajregistra može se pročitati kao binarni broj. Manji broj pokazuje a se stranicu nije uže vrijemekoristilo. Kada se pojavi potreba za izbacivanjem stranice izbacuje se ona s najmanjim brojem.
26. Opisati sljedece strategije za izbacivanje stranica: FIFO, LRU, OPT te satni algoritam.- FIFO (first-in first-out) – izbacuje se stranica koja je najdulje u radnom spremniku- LRU (least recently used) – izbacuje se stranica koja se najdulje u proslosti nije upotrebljavala
OPT (Optimalna strategija) – izbacuje se stranica koja se najulje u buučnosti nee upotrebljavati- Satni algoritam – Stranice se svrstavaju u listu po redu prispjeda. Lista se obilazi kružno posebnomkazaljkom (kaa ođe o kraja kazaljka se vraa na početak liste). Kaa se pojavi potreba za praznim
okvirom izbacit e se stranica na koju pokazuje kazaljka ako je njezina zastavica A u 0, inače e sepreskočiti i pritom promjeniti vrijenost A u 0. Kazaljka se pomiče za jeno mjesto ok ne naiđe nastranicu s A=0.
27. Opisati strategiju izbacivanja stranica u Intel x86 arhitekturi kada se u obzir uzimajudvije zastavice za oznacavanje stanja stranice.Zastavice koje se koriste su bit pristupa (A) i bit nečistoe (D). Prije se izbacuju stranice u kojima senije pristupalo i koje su čiste. 28. U kojim stanjima se mogu nalaziti pojedini okviri tijekom rada?a) Aktivno stajne – okvir je dodjeljen jednom od procesa i njegov se redni bro j u tablici prevođenjatog procesa b)Slobodno stanje – okvir se nalazi u povezanoj listi oslobođenih okvira c)Slobodnostanje s obrisanim saržajem – okvir je spreman za dodjeljivanje
1. Navesti sadržaj opisnika datoteke.
a)Naziv datoteke b) vrsta c)Lozinka d)vlasnik e)Prava pristupa f) Vrijeme stvaranja g)Vrijeme
zadnje uporabe
2. Gdje su pohranjenia) opis smještaja datoteke - u opisniku datotekeb) opisnik datoteke - na disku u nekom volume-u
c) datotecna tablica - u opisniku datoteke
3. Navesti sadržaj datotecne tablice.a) broj sektora po disku b)broj slobodnih sektora c) informacije o slobodnim sektorima d) tablica
opisnika pohranjenih datoteka
4. Na koji nacin se može prikazati slobodan prostor na disku.a) bitovni prikaz b) lista slobodnih sektora c) lista nakupina sektora
-
8/16/2019 Skripta_os i Pitanja
6/74
5. Opisati bitovni prikaz slobodnog prostora na disku.U nizu bitova svakom sektoru onosno nakupini sektora pripaa jean bit čija je vrijenost jenaka 1kada je sektor odnosno nakupina zauzeta, inace 0.
6. Opisati prikaz slobodnog prostora u obliku liste slobodnih blokova.Svaki element liste sadrzi tri lokacije. Prvo je kazaljka na sljedeci slobodan element, drugo adresa
prvog slobodnog sektora, a trece broj slobodnih sektora.7. Opisati nacin smještaja datoteka u UNIX datotecnim podsustavima (i-node).Opisnik datoteke u UNIXu zove se i-node. Uz pretpostavku da je sektor velik 1KB u jedan sektor se
može smjestiti 256 kazaljki. U opisniku se nalazi 13 kazaljki i to: a) 10 neposrednih kazaljkib) 1 jednostruko indirektna kazaljka c)1 dvostruko indirektna kazaljka d)1 trostuko indirektna
kazaljka
- Prvih eset sektora ohvaa se neposrenim kazaljkama čime se može ohvatiti sve sektoredatoteka manjih od 10KB , 11 kazaljka pokazuje na sektor u kojem se nalazi sljeečih 256 kazaljki (256+ 10)KB , 12 kazaljka pokazuje na sektor u kojem su kazaljke na 256 sektora svaki s 256 kazaljki
(256*256+256+10)KB , 13 kazaljka pokazuje na trostuko stablo kazaljki
(256*256*256+256*256+256+10)KB = 16GB
8. Opisati nacin smještaja datoteka u NTFS datotecnom podsustavu. Što je MFT? Kako sepohranjuju „male“ datoteke?MFT je glavna tablica datoteka Male datoteke mogu se smjestiti unutar MFT.
NFTS se referira na isk uporabom logičkog broja skupine sektora. Datoteka se dijeli na virtualneskupine.Za smještaj atoteka pronalazi se što više uzastopnih skupina sektora i oijeljuje atoteci,ako takvih nema, oijeljuju se i pojeinačne skupine.
***DODATAK****1. Navesti elemente datotečnog podsustava. Sastoji se od : Datoteke, direktoriji (tablice), funkcije za rukovanje datotekama.
2. Navesti barem pet osnovnih naredbi operacijskog sustava za rad s datotekama.Stvori direktorij, Unisti dir, Premjesti se , Kopiraj dir, Premjesti , Obrisi
3. Opisati način evidencije binarnim prikazom o slobodnom prostoru na disku.1011011000111
1-zauzet sektor (neispravan) 0-slobodan sektor
4. Navesti tipične datotečne operacije. Stvoriti, Obrisati, Premjestiti , Kopirati , Otvoriti, Zatvoriti , Citati, Pisati
5.Opisati strategije posluživanja zahtjeva za pristup stazama tvrdog diska. Fcfs, Sstf, Scan, C-scan
6.Napisati program u C-u ili u pseudokodu koji pokreće dva procesa. POTROŠAČ:
dok je (1) {
čekati na poruku;
prihvatiti poruku;potrošiti poruku; }
PROIZVOĐAČ: dok je (1) {
priozvesti poruku;
poslati poruku;
}
7.Napisati program u C-u ili u pseudokodu koji pokreće dvije dretve.
PROIZVOĐAČ:
dok je (1) {priozvesti poruku P;
-
8/16/2019 Skripta_os i Pitanja
7/74
MS[UL]=P;
UL=UL+1;
}
POTROŠAČ:
dok je (1) {pričekati a bue ispunjen uvjet UL>IZ; R=MS[IZ];
IZ=IZ+1;
potrošiti poruku R; }
9. Na koji način dretve istog procesa najlakše komuniciraju?
Preko zajednièkog prostora, tj.globalnih varijabli.
10. Koji su mehanizmi za komunikaciju izmeðu dretvi razlièitih procesa?Semafori,dijeljena memorija,red poruka,cjevovod,datoteke.
11. Komunikacija izmeðu dretvi može se obaviti preko meðuspremnika ogranièeneduljine. Koliko semafora je potrebno za komunikaciju izmeðu više dretvi proizvoðaèa iviše dretvi potrošaèa?Potrebna su 4(2 OS,2 BSEM).
12. Kojim jezgrinim mehanizmom moraju biti zaštiæene korisnièke monitorske funkcije?Monitorskim semaforom(koji je zapravo BSEM).
1.Navesti najjednostavniji način međusobnog isključivanja više dretvi najednoprocesorskom računalu?Prekidima. Kada dretva želi uci u K.O. ona zabrani prekide, i na izlasku iz K.O. ih ponovno omogudi.
2.Osnovni skup registara procesora: Aresni međuregistar, Poatkovni međuregistar,Instrukcijski registar, Programsko brojilo (PC), Registar kazaljke stoga (SP), Registar stanja (SR),
Registri opce namjene (R). 3.Strukture podataka Dekkerovog algoritma: varijable ZASTAVICA[I], ZASTAVICA [J] i PRAVO.
4.Lamportov algoritam sluzi za medjusobno iskljucivanje za n dretvi.
5.Koji je najveci zajednicki nedostatak algoritmima medusobnog iskljucivanja (Dekkerov,Petersonov, Lamportov te algoritmima ostvarenim uz pomoc sklopovske potpore).Dretve koje žele ui u K.O. izvoe rano čekanje. Time beskorisno troše vrijeme svojih procesora isabirničke cikluse. 6.Za sinkronizaciju Jednog proizvodaca i vise potrosaca koji razmjenjuju poruku prekoogranicenog meduspremnika potrebno je 1 binarnih i 2 opcih semafora7.Navesti nedjeljive instrukcije procesora koje služe kao sklopovska potpora
medusobnom iskljucivanju.tas, swap, fetch and add.
8.Sadržaj opisnika dretve: a) Kazaljka ili više njih za premještanje iz liste u listu b) Identifikacijski broj procesa kojoj dretvapripada c) ID dretve d) Stanje dretve e) Prioritet f) početna aresa retvenog aresnog prostora,g) veličina dretvenog adresnog prostora h) adresa prve instrukcije dretve i) zadano kašnjenje j) prostor za smještanje konteksta. 9.Koje su vrste prekida? a) sklopovski prekid od ulazno-izlazne naprave b) programski prekidi koje izazivaju dretve c)
perioični sklopovski prekii o sata. 10.Vanjska fragmentacija:Tijekom rada se može dogoditi da svi procesi čiji su programi smješteni u istu particiju bivaju
blokirani pa ta particija radnog spremnika osta je prazna. Pritom može postojati više procesa čiji
-
8/16/2019 Skripta_os i Pitanja
8/74
programi čekaju na dodjelu radnog spremnika, ali oni ne mogu biti napunjeni u radni spremnik jer nisu
pripremljeni za tu particiju.
11.Što se zbiva kad jezgrina funkcija zavrsi ?zbiva se kada jezgrina funkcija završi, svodi se na aktiviranje jedne od dretvi (aktivira prvu dretvu izreda pripravnih dretvi), a događa se sljdeće: premjestiti prvi opisnik iz reda pripradne_D u redaktivna_D, obnoviti kontekst opisnika aktivna_D, omogućiti prekidanje.
12.Navesti sadržaj opisnika dretve:Kazaljka ili više njih za premještanje iz liste (reda) u listu(red), Identifikacijski broj procesa kojojdretva pripada (PID), Identifikacijski broj dretve (ID), Stanje dretve (pasivna, aktivna, blokirana, pripravna), Prioritet (mjesto gdje je zapisan prioritet), početna adresa dretvenog adresnog prostora,veličina dretvenog adresnog prostora, adresa prve instrukcije dretve, zadano kašnjenje, prostor zasmještanje konteksta (u kojem se nalazi programsko brojilo).
13.Sto je opci semafor ?To je brojač koji se smanjuje za jean kaa se zahtijeva semafor, a povedava se za jean kaa seoslobađa i ima beskonačan broj stanja 14.Što je satni mehanizam? Inačica LRU 15. Opisati kružno raspoređivanje dretvi ?
Svaka dretva svoj rad obavlja oređeni io vremena. Ka jenoj istekne vrijeme ona ruga obavljasvoje i tako stalno ok retve ne završe sa poslom. 16.U čemu se razlikuju prekidi izazvani promašajem kod straničenja od ostalih vrstaprekida?Svi ostali prekidi se ispituju nakon instrukcije, a ovaj za vrijeme instrukcije, te se u ovom instrukcija
mora ponoviti.
17.Na koji način se uzima u obzir prioritet kod kružnog raspoređivanja? Najveda retva obije više vremena za ra.
- Koliko je semafora potrebo za sinkronizaciju 'prebrojimo strijelice' a 0 je pocetna vrijesnost
- Procesni inforamcijski blok se nalaze informacije o gospodarenju spremnickim prostorom
- Za izbjegavnje potpunog zastoja otklanja se zadnji uvjet (dok traži dodatna sredstva dretva drži
dodijeljena)
-
8/16/2019 Skripta_os i Pitanja
9/74
1
OPERACIJSKI SUSTAVI PITANJA ZA VJEŽBU – 1. CIKLUS
(by kate)
1. Uvod
1. Što je Operacijski sustav?Skup programa koji omoguavaju izvođenje osnovnih operacija na računalu – potpora raznovrsnim primjenskimrogramima.
2. Navesti osnovne dijelove operacijskog sustava.
Upravljanje atotečnim sustavom
upravljanje spremnikom (memorijom)
upravljanje U/I uređajima
API (Application programming interface)
GUI (Graphical user interface)
procesi i retve (komunikacija, sinkronizacija i raspoređivač poslova), mrežni i sigurnosni posustav.
3. Program čiji je izvorni kod u datoteci lab5.c, kompajlira se sa: __________gcc lab5.c_________, a
pokrece sa ___./a.out________ .
4. Ako program iznenada završi s porukom “Segmentation Fault” što treba razmatrati priispravljanju greške?Pogreska kod inicijalizacije polja, pointera ili varijabli (neinicijailzacija ili adresirano izvan adresnog prostora).
5. Što je to sučelje? Što je to API (tko ga nudi, tko koristi)?Sučelje je utvrđeni način komunikacije (čvrsto ogovoreni način uspostavljanja veze između vije inače nerazvojnecjeline; npr. Komunikacija između korisnika i operacijskog sustava). API ( Application Programming Interface) sufunkcije pripremljene unutar operacijskog sustava koje su ohvatljive sučelju prema primjenskim programima.Koriste ga programeri primjenskih programa.
2. Model jednostavnog računala
6. Čime su odreĎena svojstva i ponašanje procesora?Skupom registara (služe za pohranjivanje svih saržaja koji ulaze i izlaze iz procesora i u njemu se transformiraju) iskupom instrukcija (oređen izvebom ALU i upravljačke jedinice procesora).
7. Navesti osnovni skup registara procesora.
Aresni međuregistar
Poatkovni međuregistar
Instrukcijski registar
Programsko brojilo (PC)
Registar kazaljke stoga (SP)
Registar stanja (SR)
Registri opde namjene (R)
8. Što je t o sabirnički ciklus?
Perio u kojem se obavlja jeno čitanje ili pisanje u rani spremnik.
-
8/16/2019 Skripta_os i Pitanja
10/74
2
9. U pseudokodu napisati što procesor trajno radi? ponavljati {
ohvatiti iz spremnika instrukciju na koju pokazuje programsko brojilo;
dekodirati instrukciju, oreiti operaciju koju treba izvesti;
povečaj saržaj programskog brojila tako a pokazuje na sljeeu instrukciju;
oreiti oakle olaze operani i kua se pohranjuje rezultat;
operane ovesti na aritmetičko-logičku jeinicu, izvesti zaanu operaciju;
pohraniti rezultat u oreište;
} ok je (procesor uključen);
10. Što je kontekst dretve?Saržaj trenutne retve pohranjen u registrima procesora; svi registri osim programskog brojila.
11. Što se zbiva pri izvoĎenju instrukcije za poziv potprograma?Ponavljati {
Iz spremnika dohvatiti instrukciju na koju pokazuje programsko brojilo;
Dekodirati instrukciju, odrediti operaciju koja se treba izvest;
Povečati programsko broji lo, da pokazuje na sljededu instrukciju;
Ako je (dekodirana instrukcija poziv potprograma) {
Pohraniti saržaj programskog brojila na stog;Smanjiti saržaj registra SP, tako a pokazuje na sljeee prazno mjesto;
Iz adresnog dijela instrukcije odredit i aresu početka potprograma;
Staviti adresu u programsko brojilo;
} Inače
Obaviti instrukciju na način oređen ekoiranim operacijskim koom;
} Dok je (procesor uključen);
12. Definirati osnovno pojmove: program, proces, dretva.
Program – statični niz instrukcija, pohranjen na papiru, isketi, memoriji it.Dretva – niz instrukcija koje se izvode i kontroliraju proces.
Proces – program u izvođenju; skup računalnih resursa koji omoguuju izvođenje programa; okolina u kojoj seprogram izvoi; sve što je potrebno za izvođenje programa; sastoji se o:
barem jedne dretve
zajeničkog aresnog prostora
adresnog prostora rezerviranog za svaku pojedinu dretvu
stog, kazaljke stoga, opisnici datoteka, opisnici cjevovoda, redovi poruka, semafori, uvjetne varijable,
zaključavanja.
13. Kako je moguć višeprogramski rad na jednoprocesorskom računalu?Tako a se svaka retva izvoi naizmjence pa obijemo privi istovremenosti. Ključna je pravilna izmjena konteksta
dretve.
3. Obavljanje UI operacija, prekidni rad
14. Skicirati način spajanja UI naprave na sabirnicu. (03-04)
-
8/16/2019 Skripta_os i Pitanja
11/74
3
15. Što je radno čekanje?Režim raa procesora u kojem procesor čeka na oređeni ogađaj u programu (npr. pojava zastavice) i troši vrijemeok se taj ogađaj ne dogodi.
16. Skicirati signale dvožičnog rukovanja.
Poatak se upisuje kaa je zastavica u niskoj razini, nakon upisivanja se ona poiže i taa se aktivira čitanje PR kojepo svom završetku spušta zastavicu i omogučuje novo čitanje. S obzirom a se signali na va voiča ("žice")
naizmjence poižu i spuštaju taj je protokol nazvan vožičnim rukovanjem (engl. Twowire hanshaking).
17. Što se zbiva kada se dogodi prekid?Pojava prekinog signala prebacuje procesor u tzv. sustavski (jezgreni) način raa
1.
zabranjuje prekidanje
2. prebacuje adresiranje u sustavski adresni prostor
3.
aktivira sustavsku kazaljku stoga
4.
pohranjuje programsko brojilo na sustavski stog
5. u programsko brojilo stavlja adresu potprograma za obradu prekida
U prekidnom potprogramu:
1.
pohraniti kontekst2.
posluživanje prekia3. obnavlja kontekst
4.
omogudi prekidanje
5. vrati se iz prekinog načina raa (vračanje programskog brojila sa stoga, prebacivanje aresiranja u korisničkiaresni prostor, aktiviranje korisničkog registra kazaljke stoga)
18. Kako treba nadopuniti ponašanje procesora da on omogučuje prekidni rad bez sklopa zaprihvat prekida?
Pojavio se prekidni signal, zabranjeno je prekidanje, i programsko brojilo nalazi se na sustavskom stogu;
{
Pohrani kontekst;Ustanovi uzrok prekida, odnosno odredi indeks prekida i;
Ako je (1 < < ) {Postavi oznaku čekanja K_Z[i]=1 ;
Poništi zastavicu u registru stanja prekia i;
Dok je ( ( _[ ] ! = 0)⋀( > _)){Oabrati najved i j;
K_Z[j] = 0;
Pohraniti kontekst sa sustavskog stoga i T_P u KON[j];
T_P = j;
Omogud i prekidanje;
Prij eđi u korisnički način raa;Pozovi potprogram za obradu prekida j;
-
8/16/2019 Skripta_os i Pitanja
12/74
4
Zabrani prekidanje;
Prij eđi u sustavski način raa;
Vrati saržaj iz KON*j+ na sustavski stog i u varijablu T_P;
}
}
Obnovi kontekst sa sustavskog stoga;
Omogud i prekidanje;
Vrati se iz prekinog načina raa;
}
19. Pojasniti instrukcije „pohraniti kontekst“ i „vratiti se iz prekidnog načina“?Pohraniti kontekst – stavlja na sustavski stog saržaje svih registara osim programskog brojilaVratiti se iz prekidnog nacina – vrača programsko brojilo sa stoga, prebacuje aresiranje u korisnički aresni prostor,aktivira korisnicki registar kazaljke stoga
20. Što treba načiniti na početku svakog podprograma za obradu prekida?Pohraniti kontekst
21. Zašto se programsko brojilo tretira zasebno prilikom pohrane konteksta?
Procesor se prebacuje na rutinu za obrau prekia tako a promijeni PC na aresu te rutine. Što znači a ta rutina nemože pohraniti PC (jer je ve "uništen") ve to mora učiniti procesor. Također, vraanje PCa pokrede prekinutudretvu!
22. Što se zbiva kada obrada nekog prekida završi?Obnavlja se kontekst sa s sustavskog stoga;
omogučuje se prekian je (odgodjeno do upisa nove vrijednosti u PC);
prebacuje se aresiranje u korisnički prostor;
vrača se iz prekinog načina raa;
23. Koje strukture podataka treba sadržavati operacijski sustav koji omogućuje prihvatprekida razlicitih prioriteta?
Varijablu T_P (tekudi prioritet) – broj tekudeg prioriteta dretve koja se upravo izvodiPolje KON[n] (polje za kontekst) – pohranjuje se kontekst dretve i T_PPolje K_Z[n] (kontrolna zastavica) – polje u kojem su zapisani prekii koji čekaju na obrau (1-stigao prekid, 0-nije)
24. Opisati sklop za prihvat prekida (3-52).
Sastoji se od sklopa za prepoznavanje prioriteta, tablice adresa i dva registra: K_Z i T_P. Iz njega izlazi signal PREKID, a
ulazi signal PRIHVAT U K_Z se upisuje jeinica kaa pripani pristupni sklop zatraži preki. U T_P se zapisuje prioritetdretve koju procesor upravo izvoi, jeinicom u ogovarajuem bitu registra. Saržaj ta va registra ovoe se nasklop za prepoznavanje prioriteta. Taj sklop propusta prekid prema procesoru samo onda kada je prioritet zahtjeva
vei o onog zabilježenog u registru T_P. Istoobno s propuštanjem prekinog signala prema procesoru mora seobrisati bit u registru K_Z. Tablica aresa sarži arese (ili pomaknua za oređene arese) na kojima počinjeprekini program koji je propušten prema procesoru. Saržaj tablice se po utjecajem signala PRIHVAT prenosi nasabirnicu oakle ga procesor može ohvatiti i neposreno oblikovati aresu na koju treba skočiti.
25. Kako treba nodopuniti ponašanje procesora da on omogucuje prekidni rad sa sklopom zaprihvat prekida?
Ako je (prekidni signal postavljen){
Zabraniti prekidanje;
Prebaciti adresiranje u sustavski adresni prostor i aktivirati sustavsku kazaljku stoga;
Postaviti signal PRIHVAT;
Pohraniti programsko brojilo i sve ostale registre na sustavski stog;
-
8/16/2019 Skripta_os i Pitanja
13/74
5
Sa sabirnice preuzeti sadrzaj i iz njega odrediti adresu prekidnog podprograma;
Staviti tu adresu u programsko brojilo;
}
26. Navesti koje sve radnje mogu generirati prekide unutar procesora.
Pokusaj djeljenja s nulom, adresiranje nepostojece lokacije u adresnom prostoru, dekodiranje nepostojece
instrukcije i sl.
27. U kojem slučaju će se dogoditi „poziv jezgre“, odnosno „ulazak u jezgru“ i što se tada poziva?Događaju se ka se ogoi preki. Pozivaju se neke vrste potprograma koje se izvoe u jezgrenom (sustavskom)nacinu rada (jezgrine funkcije).
28. Navesti osnovne registre prisrupnog sklopa za neposredni pristup spremniku (DMA).Adresni registar (AR) - sprema se početna aresa bloka koji se želi prenesti Brojač (BR) - sprema se broj znakova kojise prenose Registar stanja (RS) - daje procesoru zahtjev za prekid podatkovni registar (PR) - spremaju se podaci koji
se prenose
29. U pseudokodu napisati programski odsjecak koji obavlja sklop za neposredni pristup
spremniku.Dok je (BR>0) {
Zatraziti sabirnicu;
Cekati na dodjelu sabirnice;
Postaviti na adresni dio sabirnice sadrzaj registra AR;
Prenjeti na tu aresu saržaj poatkovnog registra PR (ili obrnuto);
AR++ ;
BR-- ;
}
Postaviti signal PREKID;
30. Opisati cvrsto povezani višeprocesorski sustav. (slika 03-83) Sustav se sastoji od N procesora od kojih svaki ima svoj lokalni spremnik u ko ji samo on može pristupiti. Osim toga,
svaki procesor može pristupiti o jenog zajenidkog djeljenog spremnika preko zajeničke sabirnice. U jenom
sabirničkom ciklusu o spremnika može pristupiti samo jedan od procesora. Da bi odredili koji procesor može
pristupiti spremniku imamo posebni sklopovski dodjeljivad sabirnice. Procesor I koji žeil pristup do djeljenog
spremnika postavlja signal trazenja sabirnice T[I] dod jeljivacu sabirnice. Dojeljivad na početku svog spremničkog
ciklusa olučuje kojem de procesoru dodjeliti sabirnicu. U jenom spremničkom ciklusu ojeljivad de samo jednom
procesoru dodjeliti sabirnicu, odnosno dodjeliti mu D[I]. Ako neki procesor postavi svoj zahtjev za dodjelu sabirnice
on de u svom izvođenju zastati dok mu se sabirnica ne dodjeli. Dodjeljivac sabirnice ojeljuje sabirnicu ciklički.
4. MeĎusobno isključivanje u višedretvenim sustavima
31. Što je zajedničko procesu roditelju i procesu djetetu? Koje računalne resurse dijele dretveistog procesa?
Roditejlu i djetetu nista nije zajeničko. Proces dijete je kopija procesa roditelj, s toga ono ima iste instrukcije ipodatke, ali svaki proces ima svoj adresni prostor i ne mogu jedno drugom adresirat varijable. Dretve istog procesa
ijele sve računalne resurse.
32. Kako je podijeljen spremnicki prostor procesa, a kako dretveni spremnicki podprostor?
Procesni prostor: više dretvenih prostora i zajenički prostor (koji mogu dohvadati sve dretve procesa – globalne
varijable).
-
8/16/2019 Skripta_os i Pitanja
14/74
6
Dretveni prostor: dio za instrukcije dretve, dio za stog dretve i dio za lokalne podatke dretve
33. Navesti uvjet nezavisnosti dretvi.
( ∩ ) ∪ ∩ ∪ ∩ = 0
34. Navesti uvjete koje mora zadovoljavati algoritam medusobnog iskljucivanja dretvi.
Dretve se ovijaju međusobno isključivo (vije retve ne smiju obavljati K.O.)
Algoritam mora funkcionirati i ona kaa su brzine izvođenja retvi različite
Ako neka retva zastane u N.K.O. to ne smije spriječiti rugu retvu a uđe u K.O.
Izbor koja retva e ui u K.O. mora se zbiti u konačnom vremenu.
35. Za zadani algoritam medusobnog isključivanja ustanoviti je li ispravan. Obrazložitiodgovor.
Dretva I{
dok je (1){
dok je (ZASTAVICA[J] != 0);
ZASTAVICA[I] = 1;
kriticni odsjecak;
ZASTAVICA[I] = 0;
nekriticni odsjecak;
}
}
Nije ispravan. Dretva je u K.O. kada joj je zastavica postavljena u 1. Kada dretva Di krece u svoj K.O. retva Dj de istobiti u K.O. jer de Di udi u petlju tek kada je zastavica od Dj=1 sto znaci da Dj u K.O. S druge strane, ako Dj nije u K.O.Ditakođer nece uci u njega.
36. Čemu služi Dekkerov, a čemu Lamportov algoritam? Koje strukture podataka koriste?Dekkerov algoritam – algoritam medjusobnog iskljucivanja za dvije dretve
Strukture podataka: varijable ZASTAVICA[I], ZASTAVICA [J] i PRAVO
Lamportov algoritem – algoritam medjusobnog iskljucivanja za n dretviStrukture podataka: polje zastavica (koje govori koja dretva pokušava ući) ULAZ[I], polje brojeva dretvi
BROJ[J] ivarijabla zadnjeg broja ZADNJI_BROJ.
37. Navesti Dekkerov/Lamportov algoritam. (04-51) i (04-63)
38. Usporediti Petersonov i Dekkerov algoritam.
Kod Petersona se za razliku od Dekkera pravo dodjeljuje na početku, jenostavnije je rano čekanje, ako je nekaretva brža prije ulazi u kritični osječak.
39. Navesti najjednostavniji način meĎusobnog isključivanja više dretvi najednoprocesorskom računalu?
Prekiima. Kaa retva želi uci u K.O. ona zabrani prekide, i na izlasku iz K.O. ih ponovno omogudi.
40. Navesti nedjeljive instrukcije procesora koje služe kao sklopovska potpora medusobnomiskljucivanju.TAS (ispitati i postaviti) - u prvom ciklusu obave saržaj aresirane lokacije i smjeste ga u jedan od registaraprocesora, a u drugom ciklusu pohranjuju u tu lokaciju vrijednost 1
swap (zamjeni)- u prvom ciklusu obave saržaj aresirane lokacije i smjeste ga u jean o registara procesora, a udrugom ciklusu pohranjuju u tu lokaciju vrijednost koja je prije toga bila pohranjena u tom ili drugom registru
fetch-and-add - u prvom ciklusu obave saržaj aresirane lokacije i smjeste ga u jean o registar procesora, a u
rugom ciklusu pohranjuju na tu lokaciju taj saržaj uvean za jean
-
8/16/2019 Skripta_os i Pitanja
15/74
7
41. U pseudokodu riješiti problem medusobnog iskljucivanja više dretvi uz pomoc nedjeljiveinstrukcije TAS/SWAP/FATCH_AND_ADD. Koja je prednost tih rješenja u odnosu na Lamportovalgoritam medusobnog iskljucivanja?dok je (1) {
TAS ZASTAVICA;
dok je (ZASTAVICA !=0) {
TAS ZASTAVICA;
}
kritični osječak;
ZASTAVICA = 0;
nekritični oječak;
}
Rješenja sa nejeljivim instrukcijama su jenostavnija, krača i zahtjevaju manje varijabli, pa se zbog toga brže izvoe izauzimaju manje memorije.
42. Koji je najveci zajednicki nedostatak algoritmima medusobnog iskljucivanja (Dekkerov,
Petersonov, Lamportov te algoritmima ostvarenim uz pomoc sklopovske potpore).
Dretve koje žele ui u K.O. izvoe rano čekanje. Time beskorisno troše vrijeme svojih procesora i sabirničke cikluse.
5. Jezgra operacijskog sustava
43. Što predstavlja pojam „ulazak u jezgru“ i kada se zbiva?Pojam predstavlja poziv jezgrine funkcije i zbiva se prekidom.
44. Na što se svodi „izlazak iz jezgre“?Na aktiviranje jedne od retvi, pri čemu procesor mora biti vračen u korisnički način raa.
45. Navesti izvore prekida u jednostavnom modelu jezgre.
ulazno-izlazne naprave (sklopovski prekid)
sat
dretve (programski prekid)
46. Od cega se sastoji jezgra operacijskog sustava?
Strukture podataka jezgre
Jezgrenih funkcija
47. Navesti sadržaj opisnika dretve. Kazaljka ili više njih za premještanje iz liste (rea) u listu(re)
Identifikacijski broj procesa kojoj dretva pripada (PID)
Identifikacijski broj dretve (ID)
Stanje dretve (pasivna, aktivna, blokirana, pripravna)
Prioritet (mjesto gdje je zapisan prioritet)
početna aresa retvenog aresnog prostora
veličina retvenog aresnog prostora
adresa prve instrukcije dretve
zaano kašnjenje
prostor za smještanje konteksta (u kojem se nalazi programsko brojilo)
48. Navesti strukture podataka jezgre.
Liste:
1.
Pasivne_D – kada se dretva nalazi na samo jednoj listi (postojece_D), onda je u pasivnom stanju2. Aktivna_D – retve koje se izvoe; broj članova u toj listi jenak je broju procesora.
-
8/16/2019 Skripta_os i Pitanja
16/74
8
3.
Pripravne_D – ako se ne izvoe, a spremne su. Prema načinu formiranja re može biti – po reu prispjeda
ili prioritetni
4. Red BSEM[i] – dretve koje cekaju na binarnom semaforu
5. Red OSEM[j] – retve koje cekaju na opčem semaforu
6. Re ogođen1_D – zaano kašnjenje retve
7.
Red UI[k] – ima ih koliko ima U/I naprava
Opisnici dretvi
49. Koja su blokirana stanja dretvi?
Čekanje na binarnom seamforu
Čekanje na opdem semaforu
Čekanje na istek zaanog intervala kašnjenja (ogođene retve)
Čekanje na završetak U/I operacije.
50. Skicirati graf mogucih stanja dretvi.(05-35)
51. Što obavlja instrukcija „aktivirati prvu dretvu iz reda Pripravne_D“?
Premjestiti prvi opisnik iz reda Pripravne_D u red Aktivne_D;Obnoviti kontekst iz opisnika Aktivna_D;
Omogučiti prekianje;
Vratiti se iz prekinog načina;
52. Što obavlja instrukcija „vratiti se iz prekidnog nacina“?Vrača u procesor saržaj programskog brojila i prevoi procesor iz sustavskog u korisnički način raa.
53. Cemu služe jegrini mehanizmi binarni i opci semafor?Za međusobno iskljucivanje, onosno sinkronizaciju retvi.
54. Koje strukture podataka koriste BSEM, OS i OSEM?
Varijablu sa stanjem semafora i kazaljku na listu dretvi koje cekaju na semafor.
BSEM koristi varijablu Bsem[I].v i kazaljku. OS koristi varijablu OS.v i kazaljku. OSEM koristi varijablu Osem[J].v i
kazaljku.
55. U pseudokodu napisati jezgrine funkcije Cekaj_BSEM, Postavi_BSEM, Cekaj_OS, Postavi_OS,Cekaj_OSEM i Postavi_OSEM. (05-41), (05-42), (05-60), (05-61), (05-66), (05-67)
56. Opisati nacin umetanja opisnika dretve u listu Zakašnjele_D. Koja vrijednost se upisuje upolje Zadano_kašnjenje u opisniku dretve?Lista Zakašnjele_D je složena prema vremenima kašnjenja. Prva retva u listi ima najmanje vrijeme spavanja, okzanja ima najulje. U polje Zaano_kašnjenje prvog opisnika upisuje se apsolutna virjenost zaanog kašnjenja, a uostale opisnike samo oatno ogađanje u onosu na prethonu retvu.
57. Koje vrste prekida uzrokuju jezgrine funkcije Zapoceti_UI i Prekid_UI u jednostavnom
modelu jezgre?
Zapoceti_UI je programski prekid, a Prekid_UI je sklopovski.
58. Može li se prekinuti dretva koja obavlja neku jezgrinu funkciju?Ne, jezgrina funkcija ne može biti prekinuta.
-
8/16/2019 Skripta_os i Pitanja
17/74
9
59. Na koji način se jezgrine funkcije obavljaju medusobno iskljucivo na jednoprocesorskomracunalu, a kako na višeprocesorskom racunalu?Međusobno isključivanje na jenoprocesorskom računalu ostvaruje se prekiima. Na višeprocesorskom računalu
struktura podataka jezgre se mora nalaziti u dijeljenom spremniku. Za sinkronizaciju pristupa strukturama podataka
jezgre koristi se zastavica OGRADA_JEZGRE, a međusobno isključivanje se ostvaruje ranim čekanjem.
-
8/16/2019 Skripta_os i Pitanja
18/74
10
PITANJA ZA VJEŽBU – 2. CIKLUS
6. Međudretvena komunikacija i koncepcija monitora
60. Sinkronizirati proizvodaca i potrošaca korištenjem brojackog semafora.
Proizvođač: dok je(1){
proizvesti poruku P;
Ispitati_Osem(2);
MS[UL]=P;
UL=(UL+1)%N;
Postavi_Osem(1);
}
Potrošač: dok je(1){
Ispitati_Osem(1);
R=MS[IZ];
IZ=(IZ+1)%N;
Postavi_Osem(2);
Potrošiti poruku R;
}
Objašnjene varijabli:
MS=međuspremnik UL, IZ=kazaljke za kretanje po međuspremniku
P, R=poruka
N=veličina međuspremnika
61. Sinkronizirati više proizvođaća i više potrošaca uz pomoć binarnih i brojackih semafora.Proizvođač:
Dok je (1){
Proizvesti poruku P;
Ispitati_Osem(S);
Ispitati_Bsem(P);Dobaviti pretinac sa stoga SKLADISTE;
Postaviti P u pretinac i uvrstiti ga u
Red_Poruka[i];
Postaviti_Bsem[P];
Postaviti_Osem(i);
}
Potrošač:
Dok je (1){
Ispitati_Osem(i);
Ispitati_Bsem(K);
Preuzeti poruku R iz prvog spremnika uRed_Poruka[i];
Vratiti ispažnjeni pretinac na stog SKLADISTE;
Postaviti_Bsem[K];
Postaviti_Osem(S);
Potrošiti poruku R;
}
62. Sinkronizirati rad dviju dretvi tako da se one obavljaju naizmjenicno.
Dretva Di:
dok je (1){
Ispitati_Osem (i);
nešto raiti;
Postaviti_Osem(j);
}
Dretva Dj:
dok je (1){
Ispitati_Osem (j);
nešto raditi;
Postaviti_Osem(i);
}
jedan OSEM je inicijalno postavljen na 0, a drugi na 1; Dretva u kojoj je OSEM postavljen u 1 ce prva poceti izvođenje.
63. Što je potpuni zastoj? Potpuni zastoj je stanje sustava u kojem su sve dretve blokirane u nekom redu uvjeta.
-
8/16/2019 Skripta_os i Pitanja
19/74
11
64. Navesti nužne uvjete za nastajanje potpunog zastoja. srestva se koriste međusobno isključivo (neko srestvno u istom času može upotrebljavati samo jena o
dretvi)
retvi se srestvo ne može ouzeti – ona ga otpusta sama kada ga vise ne treba
ok traži oatna srestva retva rži oijeljena
barem 2 retve se natječu za barem 2 srestva
65. Što je monitor? Monitor je jezgrin mehanizam za sinkronizaciju.
66. Navesti jezgrine strukture podataka koje se koriste za ostvarenje monitora.
monitorski semafor
redovi uvijeta
67. Navesti jezgrine funkcije za ostvarenje monitora.
udi_u_monitor(M),
izadi_iz_monitora(M), uvrstiti_u_red_uvjeta(M,K),
osloboditi_iz_reda_uvjeta(M,K)
68. Kada se može dogoditi da se dvije dretve nadu u monitoru?Jedna dretva je upravo deblokirana iz reda uvjeta, a druga koja je tu retvu eblokirala, a još nije završila izvođenje i
izašla iz monitora.
69. U pseudokodu napisati jezgrine funkcije za ostvarenje monitora: Uci_u_monitor,
Izaci_iz_monitora, Uvrstiti_u_red_uvjeta i Osloboditi_iz_reda_uvjeta.
Uci_u_monitor(M){
Pohraniti kontekst u opisnik Aktivna_D;
Ako je (Monitor[M].v==1) {
Monitor[M].v=0;
Obnoviti kontekst iz opisnika Aktivna_D;
Omoguditi prekianje;
Vratiti se iz prekinog načina raa;
}
Inače {
Premjestiti opisnik iz reda Aktivna_D u red Monitor[M];Aktivirati prvu dretvu iz reda Pripravne_D;
}
}
Izaci_iz_monitora(M){
Pohraniti kontekst u opisnik Aktivna_D;
Premjestiti opisnik iz reda Aktivna_D u red Pripravne_D;
Ako je ((Monitor[M].v==0) && (red Monitor[M] neprazan)) {
Premjesti prvi opisnik iz reda Monitor[M] u red Pripravne_D;
-
8/16/2019 Skripta_os i Pitanja
20/74
12
}
Inače
Monitor[M].v=1;
Aktivirati prvu dretvu iz reda Pripravne_D;
}
Uvrstiti_u_red_uvjeta(M,K){
Pohraniti kontekst u opisnik Aktivna_D;
Premjestiti opisnik iz reda Aktivna_D u Red_uvjeta[M,K];
Ako je ((Monitor[M].v==0) && (red Monitor[M] neprazan)) {
Premjesti prvi opisnik iz reda Monitor[M] u red Pripravne_D;
}
Inače
Monitor[M].v=1;
Aktivirati prvu dretvu iz reda Pripravne_D;
}
Osloboditi_iz_reda_uvjeta(M,K){
Pohraniti kontekst u opisnik Aktivna_D;
Premjestiti opisnik iz reda Aktivna_D u red Pripravne_D;
Ako je (Red_uvjeta[M,K] neprazan) {
Premjesti prvi opisnik iz reda Red_uvjeta[M,K] u red Pripravne_D;
}
Ako je ((Monitor[M].v==0) && (red Monitor[M] neprazan)) {
Premjesti prvi opisnik iz reda Monitor[M] u red Pripravne_D;
}
Inače Monitor[M].v=1;
Aktivirati prvu dretvu iz reda Pripravne_D;
}
70. Kojim jezgrinim mehanizmom moraju biti zašticene korisnicke monitorske funkcije? Monitorskim semaforima
71. U cemu se razlikuje monitorski semafor od binarnog semafora?
Binarni semafor koristi samo vije funkcije, a monitorski četiri
7. Analiza vremenskih svojstava racunalnih sustava.
72. Objasniti parametre sustava i njihov odnos:
ρ - iskoristivost ρ = α/β
α - broj poslova koji u jedinicnom vremenu ulaze u sustav
1/α – prosjecno vrijeme izmedju 2 posla
β -broj poslova koje poslužitelj može obaviti u jeinici vremena
1/β – prosjecno trajanje posluživanja n - prosjecni broj poslova u sustavu n = α T = ρ/(1-ρ) = α/(β- α)
-
8/16/2019 Skripta_os i Pitanja
21/74
13
T -prosjecno zaržavanje posla u sustavu T = 1/(β- α)
pi = (1-ρ)ρi - vjerojatnost da u sustavu imamo i poslova
p(i>N) = ρN+1
α = α1 + α2 + ...
ρ = ρ1 + ρ2 + ...
1/β = α1 /α * 1/β1 + α2 /α * 1/β2 + ...
73. Navesti Littleovo pravilo. n = α T
74. Skicirati Markovljev lanac gdje stanja predstavljaju broj poslova u sustavu. Sustav neka ima
Poissonovu razdiobu dolazaka s parametrom i eksponencijalnu razdiobu trajanja obrade s
parametrom 1/. (07-49)
76. U kojem slucaju se može dozvoliti veliki faktor iskorištenja (cak i 1)?U eterminističkom slučaju. U stohastičkom slučaju faktor iskorištenja je strogo manji o 1 (
-
8/16/2019 Skripta_os i Pitanja
22/74
14
PITANJA ZA VJEŽBU – 3. CIKLUS
8. Gospodarenje spremnickim prostorom
78. Gdje se generiraju adrese unutar procesora?
Programsko brojilo adrese instrukcija
Registar kazaljke stoga stogovne adrese
Saržaj aresnih ijelova instrukcija adrese podataka
79. Kako je podijeljen procesni adresni prostor?
Dretveni prostori + zajenički prostor
80. Opisati organizaciju smještaja sadržaja na magnetskom disku (cilindri, staze, sektori). Disk se sastoji o više ploča na istoj osovini. Kružnice na ploči prestavljaju staze, a staze su pojeljene na jednake
djelove (kružne lukove s jenakim sreišnjim kutem) – sektore. Staze jenakih polumjera svih iskova čine cilinar.
81. Čime je odredena jedinstvena adresa svakog sektora na disku?
Renim brojem ploče
Renim brojem staze na ploči Rednim brojem sektora na stazi
83. Od cega se sastoji trajanje traženja staze (seek time )? Ubrzavanje (ručice glave)
Gibanje konstantnom brzinom
Usporavanje
Fino pozicioniranje
84. Koliko iznosi prosjecno vrijeme traženja u odnosu na vrijeme koje je potrebno za prijelaz preko svih
staza?Za vrijeme trazenja se uzima trečina vremena potrebnoh za prijelaz svih staza
82. Koliko iznosi ukupno trajanje prijenosa podataka tvrdi disk - radni spremnik? Pogledaj 85.
85. Kako je podijeljeno vrijeme koje je potrebno za prijenos podataka s diska ili na disk?
1)
Trajanje postavljanja glave (head positioning time)
Trajanje traženja staze (seek time)
-
Ubrzavanje ručice glave
- Gibanje konstantnom brzinom
-
usporavanje
-
fino pozicioniranje rotacijsko kašnjenje ( = /2)
2) Trajanje prijenosa podataka (data transfer time)
Trajanje čitanja ijela ili cijele staze
86. Zbog čega nastaje rotacijsko kašnjenje i koliko ono iznosi? Rotacijsko kašnjenje (Tr) nastaje zbog toga što se nakon postavljanja glave na oabranu stazu mora prije početka
prijenosa pričekati a se ispo glave za čitanje pojavi traženi sektor.
Iznosi između nula(najpovoljniji slučaj traženi sektor upravo nailazi ispod glave u trenutku njezinog postavljanja na
stazu) i jednog (najlošiji slučaj traženi sektor upravo prolazi ispod glave kad je ona postavljena na stazu) okretaja.
Zato se za rotacijsko kašnjenje uzima prosječna vrijenost, onosno pola trajanja jenog okretaja (Tr=Tr/2).
-
8/16/2019 Skripta_os i Pitanja
23/74
15
87. Čime je odredena brzina prijenosa podataka s diska u spremnik diskovne upravljacke jedinke?Brzinom kojom ispo glave promiču bajtovi sektora i brojem podataka koje trebamo prenjeti.
88. Neka je trajanje traženja staze Ts nekog diska s 2000 staza opisano sa sljedece triformule, gdje je D udaljenost izmedu trenutnog položaja glave i tražene staze: Ts = 1.5 x D ms za D 4,
Ts = 4.0 + 0.5 x D 1/2ms za 4 400.
Koliko iznosi prosjecno vrijeme traženja staze?
= 10.0 + 0.01 ∗2000
3= 16.66
89. Navesti sadržaj procesnog informacijskog bloka. Tablice sektora u kojima je program procesa pohranjen na isku i poaci o smještaju programa u ranom spremniku.
90. Opisati postupke statickog i dinamickog dodjeljivanja spremnika.
Statičko ojeljivanje:
Particije su stalne veličine (fixe partitions), program ka je ojeljen jenoj particiji uvijek je u toj particiji, i ka j e
izbačen iz ranog spremnika može se vratiti samo u tu particiju. Dolazi o problema fragmentacije i toga što aresniprostor programa nije mogao biti vedi o najvede particije fizičkog spremnika.
Dinamičko ojeljivanje:
Programi se upisuju jedan iza drugog. Doan je sklop s kojim se početna aresa pribraja svakoj aresi koju proces
proizvee. Programi se priređuju tako a svaki ima svoj aresni prostor. Važno je a se prije izvođenja u bazni
registar pohrani aktualna početna aresa.
91. Navesti vrste fragmentacije prilikom statickog dodjeljivanja spremnika.
Unutarnja fragmentacija: Programi nisu jednake velicine kao particije pa ce jelovi particija ostati neiskorišteni.
Vanjska fragmentacija: Tijekom raa se može ogoiti a svi procesi čiji su programi smješteni u istu particiju bivaju
blokirani pa ta particija ranog spremnika ostaje prazna. Pritom može postojati više procesa čiji programi čekaju nadodjelu radnog spremnika, ali oni ne mogu biti napunjeni u radni spremnik jer nisu pripremljeni za tu particiju.
92. Problem fragmentacije prilikom dinamickog dodjeljivanja spremnika se ne može izbjeci, ali se možeublažiti. Kako? Rupe se oržavaju što večima kako bi se u njih mogo smjestiti novi program.
Pri svakom oslobađanju nekog procesnog prostora novo nastala rupa spaja se s eventualnim
susjenim rupama u novu vedu rupu
Pri svakom novom zahtjevu za spremničkim prostorom potraži se najmanja rupa u koju se može
smjestiti novi program
93. Unatoč tome što se problem fragmentacije prilikom dinamickog dodjeljivanja spremnika može ublažiti,fragmentacija može postati prevelika. Što treba tada učiniti?Privremeno obustaviti izvođenje retvi i „presložiti“ programe u kompaktni prostor.
94. Navesti i dokazati Knuthovo 50% pravilo.
Knuthovo pravilo: u stacionarnom stanju de u spremniku biti broj rupa jenak polovici broja punih blokova.
Izvod:
Knuthovo pravilo pretpostavlja da je vjerojatnost oslobađa ja spremničkog prostora jednaka
vjerojatnosti zahtjeva. Pretpostavlja
se da de zbog toga tijekom vremena u sustavu odi do stohastičkog ravnotežnog stanja odnosno da de prosječan broj rupa i
-
8/16/2019 Skripta_os i Pitanja
24/74
16
punih blokova biti stalan. U tom slučaju možemo predpostaviti da postoje 4 tipa blokova razvrstavjudi ih po kriteriju
da li im im jepredhodnik i sljedbenik rupa ili puni blok.
A xxx, B xx0, C 0xx, D 0x0
Veliko slovo je tip bloka, a malo slovo je broj blokova tog tipa. Blokova tipa A ima a.
Vjerojatnost a de se pronadi neka rupa koja de točno ogovarati veličini zahtjevanog prostora je zanemariva i
označava se sa q, a vjerojatnost ( p= 1 - q) je zato približno jenaka 1.
Sad idemo prebrojat rupe, blokove tipa ne brojimo jer oni nemaju rupa, a blokove tipa D brojimo dva puta jer imaju
po dve rupe. E sad buudi da ako, recimo, imamo blok tipa B(xx0) i
blok tipa C(0xx) jedan do drugoga vidimo da smo ovu nulu brojili dva puta
i zato moramo cijelu sumu podjelit još sa dva.
n(rupa) = (b+c+2d)/2
Uz to buudi da ako jednom bloku (C) slijedi nula, to mora značiti da de slijeedem (B)
prethoditi, što znači da de broj blokova tipa C i tipa B bit jednak c=b .
Znači,
n(rupa)=(2b+2d)/2 = b + d
m(količina punih segmenata)=a + b + c +
Vjerojatnost da de nastati jedna rupa (znači mora nestat jedan blok tipa A) je a/m.
Vjerojatnost da de se popunit rupa (mora nestat blok tipa D) je d/m + vjerojatnost da postoji zahtjev veličine jedne r
upe u koju de se novi program smjestiti (ili krade q).
Zbog onog prvog uvjeta vjerojatnost popunjavanja i pražnjenja rupa moraju biti otprilike jednaki znači:
a/m = d/m + q ; pomnoži s m, zamjeni q sa 1‐p
a=d + m(1‐p)
uvrstimo sad taj a um=a+b+c+d;
m=d + m(1‐p) +b+c+d ;
sad se sjetimo odprije da je c=b i b+d=n
m=d + m‐pm + b +b + d
m=m‐pm +2(n)
pm = 2n
n=1/2pm ; uudi da je p približno 1
n(rupa)=1/2m(memorije)
50% memorije čine rupe .
95. Kako treba podijeliti program (koji u cijelosti ne stane u radni spremnik) u prekloponom nacinu uporabe
radnog spremnika?
Na jean osnovni io koji se uvijek nalazi u ranom spremniku i na ijelove koji se naizmjenično smještaju u preostali
io korisničkog ijela fizičkog spremnika.
96. Kako je podijeljen logicki, a kako fizicki adresni prostor u sustavu sa stranicenjem?
Logički aresni prostor se dijeli na jednako velike dijelove koje nazivamo stranicama ( page). Prikladno je da stranice
imaju veličinu koja je cjelobrojna potencija broja dva.
-
8/16/2019 Skripta_os i Pitanja
25/74
17
Fizički aresni prostor možemo poijeliti na ijelove koji su jenaki veličini stranice logičkog aresnog prostora. Te
zamišljene ijelove nazivamo okvirima ( frames). U jean okvir fizičkog ranog spremnika može se smjestiti jena
stranica logičkog adresnog prostora
97. O cemu ovisi velicina fizickog i logickog adresnog prostora?
Logički aresni prostor ovisi o arhitekturi, a fizički o RAM-u.
98. Mogu li stranice logickog adresnog prostora biti smještene u okvire fizickog spremnika proizvoljnimredoslijedom?
Mogu. Time se izbjegava problem fragmentacije.
99. Cemu služi tablica prevodenja? Od kojih se elemenata sastoji?Služi za prevođenje logičkog u fizički aresni prostor. Sastoji se o irektorija stranica i tablica stranica.
Tablica prevođenja ima vije razine aresa organizirane po stranicama veličine 4 KB. U prvoj razini je jena stranica s
1024 kazaljki o po 32 bita (irektorij stranica). Kazaljke irektorija pokazuju na stranice u kojima je opet smješteno
po 1024 riječi o po 32 bita (tablica stranica)
100. U cemu se razlikuju prekidi izazvani zbog promašaja stranice kod stranicenja na zahtjev od ostalih vrstaprekida?
Preki zbog aresiranja nepostojede stranice se ogoi usre instrukcije. Nakon obrade prekida mora se ponoviti
instrukcija unutar koje se dogodio prekid. Kod ostalih vrsta prekida, postojanje prekida se provjerava nakon
izvojenja instrukcije, a ponovno pokretanje retve započinje sljeečom instrukcijom.
101. Opisati sklopovsku potporu za ostvarenje stranicenja u Intel x86 arhitekturi. Što sadrži i cemusluži TLB (Translation Lookaside Buffer)? Opisati tablicu prevodenja. Gdje se ona nalazi?Intel nema registra povijesti. Stranice se razvrstavaju u dva razreda: one u koje se u
prethodnoj periodi pisalo i one u koje se nije
pisalo. Postoji jedan bit pristupa(A) i bit nečistode(D). Prvo se pokuša izbaciti stranica kojoj je A=0. Inače se izbacuje s
tranica
kojoj je bit nečistode 0, odnosno čista stranica.
TLB je 32 bitni priručni međuspremnik za prevođenje aresa koji nam služi za cjelokupno spremanje fizičke arese i
ijela logičke ares, tj. omoguduje nam a ne moramo uzastopno ohvadati fizičku aresu ako ju trebamo češde.
Koliko puta je potrebno pristupiti radnom spremniku ako se stranica ne nalazi u TLB meduspremniku? 3 a
koliko ako se nalazi u TLB medusprenmiku? 1
102. Koju informaciju nosi bit cistoce? Gdje se on nalazi?
Označava a li se saržaj stranice mijenjao od njenog prebacivanja u radni spremnik. Ako se mijenjao kod izbacivanja
iz radnog spremnika se mora prepisivati na disk, a ako nije onda se samo obriše iz ranog spremnika.
103. Čemu služi posmačni registar povijesti?Za izvebu LRU strategije. Pri punjenju stranice u neki ovir inicijaliziraju se na 0 njezin bit pristupa i posmačni
registar. Kada se pristupi stranici bit pristupa stranice se postavlja u 1. Prekid od sata periodno posmakne sve bitove
pristupa u posmačne registre i zatim bit pristipa izbriše. Saržaj registra može se pročitati kao binarni broj. Manji broj
pokazuje a se stranicu nije uže vrijeme koristilo. Kada se pojavi potreba za izbacivanjem stranice izbacuje se ona s
najmanjim brojem.
104. Opisati sljedece strategije za izbacivanje stranica: FIFO, LRU, OPT te satni algoritam.
FIFO – izbacuje se stranica koja je najdulje u radnom spremniku (first-in first-out)
LRU – izbacuje se stranica koja se najdulje u proslosti nije upotrebljavala (least recently used)
-
8/16/2019 Skripta_os i Pitanja
26/74
18
OPT (Optimalna strategija) – izbacuje se stranica koja se najulje u buučnosti nede upotrebljavati
Satni algoritam – Stranice se svrstavaju u listu po reu prispjeda. Lista se obilazi kružno posebnom kazaljkom
(kaa ođe o kraja kazaljka se vrada na početak liste). Kaa se pojavi potreba za praznim okvirom izbacit de
se stranica na koju pokazuje kazaljka ako je njezina zastavica A u 0, inače de se preskočiti i pritom promjeniti
vrijednost A u 0. Kazaljka se pomiče za jeno mjesto ok ne naiđe na stranicu s A=0.
105. Opisati strategiju izbacivanja stranica u Intel x86 arhitekturi kada se u obzir uzimaju dvije zastavice za
oznacavanje stanja stranice.Zastavice koje se koriste su bit pristupa (A) i bit nečistode (D). Prije se izbacuju stranice u kojima se nije pristupalo i
koje su čiste.
106. U kojim stanjima se mogu nalaziti pojedini okviri tijekom rada?
Aktivno stajne – okvir je dodjeljen jednom od procesa i njegov se redni broj (kazaljka koja pokazuje na njegov
početak) nalazi u tablici prevođenja tog procesa
Slobodno stanje – okvir se nalazi u povezanoj listi oslobođenih okvira
Slobono stanje s obrisanim saržajem – okvir je spreman za dodjeljivanje
9. Datotečni podsustav
107. Navesti sadržaj opisnika datoteke. Naziv datoteke
Tip
Lozinka
Ime vlasnika
Prava pristupa
Vrijeme stvaranja
Vrijeme zadnje uporabe Ime posljenjeg korisnika, i slično
Opis smještaja
108. Gdje su pohranjeni
a) opis smještaja datoteke - u opisniku datoteke
b) opisnik datoteke - na disku u nekom volume-u
c) datotecna tablica - u opisniku datoteke
109. Navesti sadržaj datotecne tablice.
broj sektora po disku (kapacitet)
broj slobodnih sektora (veličina slobonog prostora)
informacije o slobodnim sektorima
tablica opisnika pohranjenih datoteka
110. Na koji nacin se može prikazati slobodan prostor na disku. bitovni prikaz
lista slobodnih sektora
lista nakupina sektora
-
8/16/2019 Skripta_os i Pitanja
27/74
19
111. Opisati bitovni prikaz slobodnog prostora na disku.
U nizu bitova svakom sektoru odnosno nakupini sektora pripada jedan bit čija je vrijenost jenaka 1 kaa je sektor
odnosno nakupina zauzeta, inace 0.
112. Opisati prikaz slobodnog prostora u obliku liste slobodnih blokova.
Svaki element liste sadrzi tri lokacije. Prvo je kazaljka na sljedeci slobodan element, drugo adresa prvog slobodnog
sektora, a trece broj slobodnih sektora.
113. Opisati nacin smještaja datoteka u UNIX datotecnim podsustavima (i-node ).Opisnik datoteke u UNIXu zove se i-noe. Uz pretpostavku a je sektor velik 1KB u jean sektor se može smjestiti 256
kazaljki. U opisniku se nalazi 13 kazaljki i to:
10 neposrednih kazaljki
1 jednostruko indirektna kazaljka
1 dvostruko indirektna kazaljka
1 trostuko indirektna kazaljka
Pristup o atoteke obavlja se na sljeedi način:
Prvih eset sektora ohvada se neposrenim kazaljkama čime se može ohvatiti sve sektore atoteka manjih
od 10KB Jeanaesta kazaljka pokazuje na sektor u kojem se nalazi sljeečih 256 kazaljki (256 + 10)KB
Dvanaesta kazaljka pokazuje na sektor u kojem su kazaljke na 256 sektora svaki s 256 kazaljki
(256*256+256+10)KB
Trinaesta kazaljka pokazuje na trostuko stablo kazaljki (256*256*256+256*256+256+10)KB = 16GB
114. Opisati nacin smještaja datoteka u NTFS datotecnom podsustavu. Što je MFT? Kako se pohranjuju„male“ datoteke? Diskovni prostor dodjeljuje se po skupinama sektora (po 1, 2, 4 ili 8 sektora). NTFS sarži atoteku MFT (glavna
tablica datoteka) u kojoj se nalaze opisnici svih datoteka (ukljucujuci i nje same). Jean MFT zapis ima veličinu jene
skupine sektora (npr. 4KB). Za veče atoteke zapis sarži inekse skupina sektora i ako je potrebno oatnoproširenje opisa.
Datoteka se dijeli na djelove koji su jednako veliki kao nakpine sektora (virtualne skupine). Za smještaj atoteka
pronalazi se što više uzastopnih skupina sektora i ojeljuje se atoteci (ako nema uzastopnih ojeljuju se
pojeinačne skupine).
Male atoteke smještaju se unutar MFT zapisa.
-
8/16/2019 Skripta_os i Pitanja
28/74
Operacijski sustavi
prof. Marin Golub
- službena stranica : http://www.zemris.fer.hr/labosi/os1/tehvel
- preporučena literatura: Operating System Concepts – Silberschatz
Ivan Nenadić
-
8/16/2019 Skripta_os i Pitanja
29/74
Operacijski sustavi – predavanja 2/34
Operacijski sustavi - predavanja 2/34
Predgovor
Ova skripta je rađena po bilješkama sa auditornih predavanja kolegija ‘Operacijskisustavi’ te je moguće da se u njoj pojavljuju raznorazne greške (tipfeleri, krivi prijepisi
s ploče, netočne informacije..) pa molim da sve greške ili gradivo koje nije upisano uovoj skripti, a trebalo bi biti, prijavite na [email protected] .
Dilanje ove skripte kao i njezino prepravljanje je potpuno besplatno (bar što seautora tiče :-)
P.S. posebna zahvala Zoranu Marinčiću na nadopuni skripte kad ja nisam bio
prisutan na predavanjima :-)
-
8/16/2019 Skripta_os i Pitanja
30/74
Operacijski sustavi – predavanja 3/34
Operacijski sustavi - predavanja 3/34
Sadržaj
1.Model jednostavnog računala.................................................................................. 6
1.1 Dijelovi OS-a..................................................................................................... 6
1.2 Rudimentalno računalo ..................................................................................... 6
1.3 Osnovni registri procesora ................................................................................ 7
1.4 Procesor trajno radi sljedeće............................................................................. 8
1.5 Osnovni pojmovi ............................................................................................... 8
1.6 Proces se sastoji od.......................................................................................... 8
2.Obavljanje I/O operacija, prekidni rad...................................................................... 9
2.1 Prenošenje znakova radnim čekanjem ............................................................. 9
2.2 Prekidni način rada procesora ........................................................................ 10
2.3 Podsustav za prihvat više prekida................................................................... 10
2.4 Prenošenje blokova i sklopovi s neposrednim pristupom................................ 12
3. Datotečni podsustav............................................................................................. 13
3.1 Koncepcija datoteka........................................................................................ 13
3.2 Opisnik datoteka ............................................................................................. 13
3.3 Smještaj datoteka u vanjskom spremniku ....................................................... 14
3.4 Tipične datotečne operacije ............................................................................ 17
4. Međusobno isključivanje u višedretvenim sustavima............................................ 19
4.1 Model višedretvenosti ..................................................................................... 19
4.2 Ostvarenje međusobnog isključivanja dretvi ................................................... 21
4.3 Sklopovska potpora međusobnom isključivanju.............................................. 23
5. Jezgra OS-a ......................................................................................................... 24
5.1 Uvod................................................................................................................ 24
5.2 Struktura podataka jednostavnog modela jezgre............................................ 24
5.3 Prikaz mogućih stanja dretvi ........................................................................... 26
-
8/16/2019 Skripta_os i Pitanja
31/74
Operacijski sustavi – predavanja 4/34
Operacijski sustavi - predavanja 4/34
5.4 Jezgrine funkcije ............................................................................................. 26
6. Međudretvena komunikacija ................................................................................. 29
6.5 Pokretanje više procesa.................................................................................. 29
6.6 Višedretveni rad .............................................................................................. 29
7. Gospodarenje spremničkim prostorom (Memory Management – MM)................. 30
7.1 Fragmentacija ................................................................................................. 30
7.2 Ocjena fenomena fragmentacije (Knuthovo 50% pravilo) ............................... 31
7.3 Straničenje...................................................................................................... 32
7.4 Praktična ostvarenja izbacivanja stranica ....................................................... 33
Slike
Slika 1 - Dijelovi OS-a................................................................................................. 6
Slika 2 - procesor i spremnik povezan na sabirnicu.................................................... 7
Slika 3 - pristupni sklop za prijenos pojedinačnih znakova ......................................... 9
Slika 4 - više prekidnih signala spojenih na jedan prekidni ulaz procesora .............. 10
Slika 5 - dijagram rada prekida i prekidne rutine....................................................... 11
Slika 6 - sustav sa sklopom za prihvat prekida......................................................... 12
Slika 7 - jednostavni model sklopa za neposredni pristup spremniku....................... 12
Slika 8 - Opisnik datoteke......................................................................................... 13
Slika 9 - ploče tvrdog diska....................................................................................... 14
Slika 10- Fizički sektori nisu logički susjedni sektori ................................................ 17
Slika 11 - Grafički prikaz 4 strategije posluživanja.................................................... 18
Slika 12 - Jezgra OS-a ............................................................................................. 24
Slika 13 – Opisnici .................................................................................................... 25
Slika 14 - moguća stanja dretvi................................................................................. 26
Slika 15 – statička fragmentacija radnog spremnika................................................. 30
Slika 16 - dinamička fragmentacija radnog spremnika ............................................. 30
-
8/16/2019 Skripta_os i Pitanja
32/74
Operacijski sustavi – predavanja 5/34
Operacijski sustavi - predavanja 5/34
Slika 17 - tipovi blokova............................................................................................ 31
-
8/16/2019 Skripta_os i Pitanja
33/74
Operacijski sustavi – predavanja 6/34
Operacijski sustavi - predavanja 6/34
1.Model jednostavnog računala
def: Operacijski sustav je skup programa koji nam olakšavaju rad na računalu.
Današnji operacijski sustavi omogućuju višekorisnički i višezadaćni rad.
1.1 Dijelovi OS-a
Slika 1 - Dijelovi OS-a
- MMU – Memory Management Unit
- API – Application Program Interface
- GUI – Graphic User Interface
- I/O – Input/Output
1.2 Rudimentalno računalo
- procesor i radni spremnik
- pretpostavke:
1. U radnom spremniku nalazi se strojni oblik programa i svi potrebni podaci
2. Rezultati programa također se pohranjuju u radni spremnik
- u jednom sabirničkom ciklusu može se obaviti samo jedno ili čitanje ili pisanje
u radni spremnik
-
8/16/2019 Skripta_os i Pitanja
34/74
Operacijski sustavi – predavanja 7/34
Operacijski sustavi - predavanja 7/34
Slika 2 - procesor i spremnik povezan na sabirnicu
registri – služe za pohranjivanje svih informacijskih sadržaja koji ulaze ili izlaze izprocesora i u njemu se transformiraju.
1.3 Osnovni registri procesora
- adresni međuregistar (AMR)
- podatkovni međuregistar (PMR)
- instrukcijski međuregistar – pohranjuju se instrukcije koje se izvode
- programsko brojilo (PC)
- registar kazaljke STOG-a (SP – Stack Pointer)
- skup općih registara
-
8/16/2019 Skripta_os i Pitanja
35/74
Operacijski sustavi – predavanja 8/34
Operacijski sustavi - predavanja 8/34
1.4 Procesor trajno radi sljedeće
Ponavljati {dohvati iz spremnika instrukciju na koju pokazuje PC;PC++;dekodirati instrukciju i odrediti operaciju;odrediti adresu operanada i rezultata;operande dovesti u Aritmetičko-Logičku Jedinicu (ALJ) i izvesti operaciju;pohrani rezultat; Ako je (prekidni signal postavljen) {
zabraniti prekidanje;aktivirati sustavni adresni prostor i sustavnu kazaljku STOG-a;PC pohraniti na sustavni STOG;u PC staviti adresu potprograma prekida;}
}
Procesor “provlači” kroz niz instrukcija instrukcijsku dretvu.
1.5 Osnovni pojmovi
1. Program – nešto što je pohranjeno na papiru, disketi, memoriji,...- statični niz instrukcija
2. Dretva (thread) - niz instrukcija koje se izvode
3. Proces - skup računalnih resursa koji omogućuju izvođenje programa- “sve što je potrebno” da bi se program izvodio- okolina koja omogućuje izvođenje programa
1.6 Proces se sastoji od
1. barem jedne dretve
2. zajedničkog adresnog prostora
3. adresnog prostora rezerviranog za pojedinu dretvu
4. STOG, kazaljka STOG-a, opisnici datoteka, opisnici cijevovoda, redoviporuka, semafori...
-
8/16/2019 Skripta_os i Pitanja
36/74
Operacijski sustavi – predavanja 9/34
Operacijski sustavi - predavanja 9/34
2.Obavljanje I/O operacija, prekidni rad
2.1 Prenošenje znakova radnim čekanjem
Slika 3 - pristupni sklop za prijenos pojedinačnih znakova
PR – podatkovni registarRS – registar stanja
Prenošenje jednog bajta prema izlaznoj napravi:
1. Jednom instrukcijom bajt se dobavlja iz spremnika u registar procesora
2. Drugom instrukcijom bajt se prenosi u podatkovni registar
Prihvat jednog bajta od ulazne naprave:
Jedan način prijenosa naziva se radno čekanje:
Pročitati RS;dok je (zastavica == 0) pročitati RS;pročitati PR; //ovim čitanjem zastavica se vraća u ‘0’
Dvožično rukovanje:
-
8/16/2019 Skripta_os i Pitanja
37/74
Operacijski sustavi – predavanja 10/34
Operacijski sustavi - predavanja 10/34
2.2 Prekidni način rada procesora
ZASTAVICA ↑ - generira električki signal koji se preko posebnog vodića dovodi doprocesora.
PREKID – procesor prelazi iz korisničkog načina rada u sustavski ili jezgrivinačin rada
- pozivaju se potprogrami koji sačinjavaju jezgru OS-a- procesor pri prelasku u jezgriv način rada djeluje tako da:
- onemogući prekidanje- adresira sustavski dio spremnika- aktivira sustavski registar sustavske kazaljke STOG-a- programsko brojilo ide na sustavski STOG- u PC se postavlja kazaljka na početak potprograma
- ponašanje procesora treba nadopuniti tako da on na kraju izvođenja svakeinstrukcije ispituje da li se pojavljuje prekidni signal (to se na različitimarhitekturama izvodi na različite načine)
Pogledati ‘procesor trajno radi sljedeć e’
Na početku potprograma sve registre pohraniti na sust. STOG (pohraniti kontekst)
Na kraju programa vratiti registre obrnutim redoslijedom (obnoviti kontekst)
Prije nego što se PC sa sustav. STOG-a vrati, treba se vratiti iz prekidnog načinarada:
- omogućiti prekidanje
- prebaciti adresiranje u korisnički adresni prostor
- aktivirati korisnički registar kazaljke STOG-a
2.3 Podsustav za prihvat više prekida
Najjednostavniji oblik:
(Zastavica 1, zastavica 2,...zastavica n)
Slika 4 - više prekidnih signala spojenih na jedan prekidni ulaz procesora
-
8/16/2019 Skripta_os i Pitanja
38/74
Operacijski sustavi – predavanja 11/34
Operacijski sustavi - predavanja 11/34
Nedostatak: manje važan prekid (čija obrada dugo traje) može ometati rad važnijihprekida
Podsustav za prihvat više prekida razvrstanih po prioritetima s
najjednostavnijim sklopovljem:
- navedeni nedostatak može se otkloniti programskim rješenjem
- pristupni sklopovi su razvrstani po važnosti ili prioritetu (npr. veći broj – većiprioritet)
Slika 5 - dijagram rada prekida i prekidne rutine
Prekidna rutina ( ) {
(prekidni signal ↑, prekidanje onemogućeno, PC je na sust. STOG-u)pohrani kontekst na sust. STOG;ispitati uzrok prekida, indeks prekida i; Ako je (1
-
8/16/2019 Skripta_os i Pitanja
39/74
Operacijski sustavi – predavanja 12/34
Operacijski sustavi - predavanja 12/34
Sklopovska potpora za ostvarivanje višestrukog prekidanja:
Slika 6 - sustav sa sklopom za prihvat prekida
Prekidi generirani unutar procesora:
Uzrokuju ih: - dijeljenje s nulom
- adresiranje nepostojeće lokacije u adresnom prostoru- dekodiranje nepostojeće instrukcije
Programski prekidi:
Postoji barem jedna instrukcija koja omogućuje namjerno izazivanje prekida izprograma.
2.4 Prenošenje blokova i sklopovi s neposrednim pristupom
Slika 7 - jednostavni model sklopa za neposrednipristup spremniku
AR – adresni registar
BR – brojač
-
8/16/2019 Skripta_os i Pitanja
40/74
Operacijski sustavi – predavanja 13/34
Operacijski sustavi - predavanja 13/34
3. Datotečni podsustav
3.1 Koncepcija datoteka
Datoteka je skup informacija povezanih u jednu cjelinu.
Datoteka i rad s datotekama je najvidljiviji dio OS-a.
Datotečni podsustav sastoji se od:
1. datoteka
2. direktorija (tablica)
3. procedura za manipuliranje datotekamaOS sadrži naredbe za rad s direktorijima i datotekama
osnovne naredbe:- stvori direktorij: md ili mkdir - briši direktorij: rmdir - premjesti se: cd - kopiraj: cp - premjesti datoteku ili direktorij: mov - briši: rm
3.2 Opisnik datoteka
Svaka datoteka je u potpunosti opisana svojim opisnikom.
Slika 8 - Opisnik datoteke
pravo pristupa (zastavice): [UNIX]
User Group Other
r w x r w x r w x
chmod o-rwx .. briše rwx flagove sa ‘other’
chmod go+rx .. stavlja flagove rx na ‘group’ i ‘other’
-
8/16/2019 Skripta_os i Pitanja
41/74
Operacijski sustavi – predavanja 14/34
Operacijski sustavi - predavanja 14/34
3.3 Smještaj datoteka u vanjskom spremniku
Slika 9 - ploče tvrdog diska
Staze su podijeljene na sektore jednake veličine (kapacitet)
Svaki vanjski spremnik ima svoju datotečnu tablicu.
Na disku su neke od staza rezervirane za smještaj tablica.
Organizacija tablica se razilkuje od OS-a do OS-a.
Osnovni sadržaj datotečne tablice je:
1. broj sektora po disku
2. broj slobodnih sektora
3. Informacije o slobodnim sektorima
4. tablica opisnika pohranjenih datoteka
Informacije o slobodnim sektorima – evidencija o slobodnom prostoru na disku:
a) binarni prikaz
011010011010
sektor zauzet
sektor slobodan
-
8/16/2019 Skripta_os i Pitanja
42/74
Operacijski sustavi – predavanja 15/34
Operacijski sustavi - predavanja 15/34
- prednost: sektori s greškom se prilikom formatiranja mogu postaviti u 1 (i višeih nikad ne možemo koristiti)
- mana: slobodan prostor saznajemo brojeći nule (traje)
b) lista slobodnih blokova (skupina sektora) Xc) lista slobodnih skupina blokova √
Svaki sektor ima jedinstvenu adresu koja se sastoji od:
a) rednog broja ploče
b) rednog broja staze na ploči
c) rednog broja sektora na stazi
Adresira se blok bajtova a ne 1 bajt! (1 sektor ili više)
NTFS (MS WINDOWS NT, 2000, ...) – NT File System
Prostor na disku dodjeljuje se po skupinama sektora (cluster)
Cluster se sastoji od n sektora
n vel. diska B (byte)
1 < 512Mb 512
2 do 1Gb 1024
4 do 2Gb 2048
8 > 2Gb 4056
LNC – logički broj skupine
- redni broj skupine (od početka do kraja)
- fizička adresa = n . LNC
-
8/16/2019 Skripta_os i Pitanja
43/74
Operacijski sustavi – predavanja 16/34
Operacijski sustavi - predavanja 16/34
MFT – datoteka; glavna tablica datoteka (Master File Table)
- svaka datoteka (pa i MFT) ima u toj datoteci zapis koji je opisnik datoteke
- datoteka MFT je podijeljena na zapise a svaki taj zapis je veličine jedne
skupine- male datoteke smještavaju se unutar MFT zapisa
- velike datoteke – u MFT-u se nalaze indeksi skupina sektora (podaci osmještaju datoteke) i ukoliko je potrebno, MFT zapis se proširuje za dodatnizapis.
VCN – virtualni redni broj skupine (Virtual Cluster Number)...0, 1, 2, ...
Za smještanje datoteke pronalaze se uzastopne skupine sektora (ako ih ima) idodjeljuju se datoteci.
UNIX FS: i-node (indeksni č vor)
U opisniku se tipično predviđa:
10k – 10 direktnih kazaljki (na sektore ili skupine sektora)
10+255 – 1 jednostruko indirektna kazaljka
Uzimamo da je sektor veli č ine 1k, kazaljke veli č ine 1B
266+256.256 – 1 dvostruko indirektna kazaljka
- 1 trostruko indirektna kazaljka
(10+256+256 .256+256
3≈ 16Gb)
-
8/16/2019 Skripta_os i Pitanja
44/74
Operacijski sustavi – predavanja 17/34
Operacijski sustavi - predavanja 17/34
Ukupno trajanje prijenosa podatakatrajanje postavljanja glave
trajanje traženja staze (seek time)→ ovisi o početnom i krajnjem položaju glave→ sastoji se od: 1. ubrzavanje glave
2. konstantna brzina3. usporavanje4. fino podešavanje
+ rotacijsko kašnjenje =TR/2 TR – vrijeme jednog okretaja+ trajanje prijenosa podataka (data transfer time)
trajanje čitanja dijela ili cijele staze(po potrebi treba uzeti u obzir faktor PREPLITANJA)
+ trajanje premještanja glave sa staze na stazu
Slika 10- Fizički sektori nisu logički susjedni sektori
Ako su dva sektora koji logički slijede jedan iza drugoga fizički smješteni nasektorima n i n+k tada je faktor preplitanja jednak ‘k’.
3.4 Tipične datotečne operacije
- stvoriti
- izbrisati
- kopirati
- premjestiti
- otvoriti
- zatvoriti
- čitati
- pisati
-
8/16/2019 Skripta_os i Pitanja
45/74
Operacijski sustavi – predavanja 18/34
Operacijski sustavi - predavanja 18/34
Zadatak:
Disk s pokretnim glavama ima 100 staza (0-99). Neka se glava trenutno nalazi nastazi 29 s tim da je prije bila na stazi 8. Zahtjevi za pristup pojedinim stazamasvrstani su po redu prispjeća: 3, 7, 40, 98, 71, 68, 70, 21, 5, 49.
a) koliki je ukupan pomak glave pri izvršenju tih zahtjeva za sve 4 strategijeposluživanja?
b) opisati svaku od navedenih strategija
c) kod kojih strategija može doći do izgladnjivanja (beskonačnog odgađanjaposluživanja nekih zahtjeva zbog posluživanja novopristiglih zahtjeva)?
d) grafički prikazati kretanje glave prilikom obrade danih zahtjeva za sve 4strategije
Slika 11 - Grafički prikaz 4 strategije posluživanja
1. FCFS (First Come First Served) – posluživanje po redu prispijeća.
2. SSTF (Shortest Seek Time First) – posluživanje najbližih zahtjeva (može doćido izgladnjivanja.
3. SCAN – skeniranje (ovisi o položaju glave prije početnog).
4. C-SCAN (Circular SCAN) – kružno skeniranje (posluživanje).
-
8/16/2019 Skripta_os i Pitanja
46/74
Operacijski sustavi – predavanja 19/34
Operacijski sustavi - predavanja 19/34
4. Međusobno isključivanje u višedretvenim sustavima
4.1 Model višedretvenosti
Dretve
- proces se sastoji od barem jedne dretve
- podaci rerzervirani za proces dostupni su svim dretvama
- dretveni dio spremničkog prostora sastoji se od:
-dijela gdje su smještene instrukcije-STOG, kazaljka STOG-a-lokalni podaci
- problem sinhronizacije prilikom pristupa zajedničkim podacima treba nekakoriješiti
- dretve se mogu izvoditi istodobno (paralelno) na više procesora ili prividnoistodobno (prividno paralelno) ako se izvode na istom procesoru (dretve seizvode naizmjenično)
Dretva T čita podatke iz domene D, obavlja neku funkciju f(D) nad podacima izdomene i rezultat upisuje u poddomenu K.. ( f(D)=K).
Ti – i-ta dretva, f i : Di →Ki
DVA ZADATKA SU ME ĐUSOBNO NEZAVISNA AKO NEMAJU ZAJEDNIČKIHLOKACIJA U SVOJIM DOMENAMA I PODDOMENAMA.
Uvijet nezavisnosti zadataka i i j je:
0)()()( =∩∪∩∪∩ i j ji ji K DK DK K
Pišu na isto mjesto Piše tamo gdje drugi čita .
K-kodomena – mjesto gdje se upisuju rezultati
Kada zadaci pišu na isto mjesto, zadaci