Professional Documents
Culture Documents
5. Koliko iznosi ukupno trajanje prijenosa podataka tvrdi disk - radni spremnik?
1
6. Od Čega se sastoji trajanje traženja staze (seek time)?
• Ubrzavanje (ručice glave)
• Gibanje konstantnom brzinom
• Usporavanje
• Fino pozicioniranje
10. Neka je trajanje traženja staze Ts nekog diska s 2000 staza opisano sa sljedeće tri
formule, 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 < D ≤ 400,
• Ts = 10.0 + 0.01 x D ms za D > 400.
2
11. Navesti sadržaj procesnog informacijskog bloka.
Procesni informacijski blok sastoji se od tablica sektora u kojima je program procesa
pohranjen na disku, podataka o smještaju programa u radnom spremniku.
Statičko dodjeljivanje:
Kod statičkog raspoređivanja programi se tijekom svog boravka u sustavu nalaze u istom
dijelu radnog spremnika. Spremnik se dijeli na dijelove stalne veličine tzv stalne particije.
Particije različitih veličina omogućavaju bolje iskorištenje radnog spremnika jer se manji
programi spremaju na manje particije a veći programi u veće. Programi se nalaze na disku i
mogu se po ukazanoj potrebi napuniti u radni spremnik. Ako ih se privremeno izbaci iz
radnog spremnika oni se kasnije vraćaju u istu particiju. Pošto radni spremnik nije iskorišten
dolazi do problema fragmentacije. Dvije vrste fragmentacije:
- VANJSKA: javlja se zbog toga što se programi ne mogu izvoditi u drugim dijelovima
memorije nego u onima za koje su kompajlirani
- UNUTARNJA: javlja se zbog toga što je program manji od dodijeljene particije
Dinamičko dodjeljivanje:
Programi se upisuju jedan iza drugog. Dodan je sklop s kojim se početna adresa pribraja
svakoj adresi koju proces proizvede. Programi se priređuju tako da svaki ima svoj adresni
prostor. Važno je da se prije izvođenja u bazni registar pohrani aktualna početna adresa.
3
16. Navesti i dokazati Knuthovo pedesetpostotno pravilo.
Knuthovo pravilo: u stacionarnom stanju de u spremniku biti broj rupa jednak polovici broja
punih blokova. (vjerojatnost oslobađanja spremničkog prostora jednaka je vjerojatnosti
zahtjeva).
Izvod:
Knuthovo pravilo pretpostavlja da je vjerojatnost oslobađaja spremničkog prostora jednaka
vjerojatnosti zahtjeva. Pretpostavlja se da de zbog toga tijekom vremena u sustavu dodi do
stohastičkog ravnotežnog stanja odnosno da de prosječan broj rupa i 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 da de se pronadi neka rupa koja de točno odgovarati veličini zahtjevanog
prostora je zanemariva i označava se sa q, a vjerojatnost (p= 1 - q) je zato približno jednaka 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 bududi 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 bududi da ako jednom bloku (C) slijedi nula, to mora značiti da de slijededem (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 + d
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 rupe 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:
4
m=a+b+c+d;
m=d + m(1-p) +b+c+d ;
m=d + m-pm + b +b + d
m=m-pm +2(n)
pm = 2n
n=1/2pm ; ududi da je p približno 1
n(rupa)=1/2m(memorije)
17. Kako treba podijeliti program (koji u cijelosti ne stane u radni spremnik) u
prekloponom nacinu uporabe radnog spremnika?
Na jedan osnovni dio koji se uvijek nalazi u radnom spremniku i na dijelove koji se
naizmjenično smještaju u preostali dio korisničkog dijela fizičkog spremnika.
18. Kako je podijeljen logicki, a kako fizicki adresni prostor u sustavu sa stranicenjem?
Logički adresni prostor se dijeli na jednako velike dijelove koje nazivamo stranicama
(page). Prikladno je da stranice imaju veličinu koja je cjelobrojna potencija broja dva.
Fizički adresni prostor možemo podijeliti na dijelove koji su jednaki veličini stranice
logičkog adresnog prostora. Te zamišljene dijelove nazivamo okvirima (frames). U jedan
okvir fizičkog radnog spremnika može se smjestiti jedna stranica logičkog adresnog prostora
Logički adresni prostor je prostor u kojem su sve adrese unutar programa izračunate kao da je
početna adresa jednaka nuli, dijeli se na stranice, ovisi o arhitekturi. Ne mijenja se tekom
izvođenja programa
Fizički adresni prostor: Program će se smjestiti u radni spremnik u prostor koji započinje s
početnom adresom PA. Taj ćemo prostor nazivati fizičkim adresnim prostorom. Dijeli se na
okvire, ovisi 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.
5
21. Čemu služi tablica prevodenja? Od kojih se elemenata sastoji?
Služi za prevođenje logičkog u fizički adresni prostor. Sastoji se od direktorija stranica i
tablica stranica.
U tablici prevođenja se stanje stranice može označiti posebnim bitom prisutnosti koji se
dodaje svakom njezinom retku:
➢ vrijednost 1 neka označava prisutnost stranice u
okviru fizičkog spremnika,
➢ a vrijednost 0 neka označava da se stranica ne nalazi
u fizičkom spremniku.
Tablica prevođenja ima dvije razine adresa organizirane po stranicama veličine 4 KB. U prvoj
razini 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 od po 32 bita (tablica stranica)
22. U čemu se razlikuju prekidi izazvani zbog promašaja stranice kod stranicenja na
zahtjev od ostalih vrsta prekida?
Prekid zbog adresiranja nepostojede stranice se dogodi usred instrukcije. Nakon obrade
prekida mora se ponoviti instrukcija unutar koje se dogodio prekid. Kod ostalih vrsta prekida,
postojanje prekida se provjerava nakon izvodjenja instrukcije, a ponovno pokretanje dretve
započinje sljedečom instrukcijom.
može se dogoditi za vrijeme izvođenja instrukcije, provjerava se na kraju
ponovno se mora izvesti naredba umjesto da se prelazi na sljedeću kao kod ostalih
prekida
to je omogućeno skrivenim kopijama svih registara
23. Opisati sklopovsku potporu za ostvarenje stranicenja u Intel x86 arhitekturi. Što
sadrži i cemu služi TLB (Translation Lookaside Buffer)? Opisati tablicu prevodenja.
Gdje se ona nalazi? Koliko je puta potrebno pristupiti radnom spremniku ako se
stranica ne nalazi u TBL međuspremniku, a koliko ako se nalazi u TBL
međuspremniku?
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 stranica kojoj je
bit nečistode 0, odnosno čista stranica.
TLB je 32 bitni priručni međuspremnik za prevođenje adresa koji nam služi za cjelokupno
spremanje fizičke adrese i dijela logičke adres, tj. omoguduje nam da ne moramo uzastopno
dohvadati fizičku adresu ako ju trebamo češće.
6
Označava da li se sadrž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 radnog spremnika. Nalazi se u tablici prevođenja.
26. 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)
• OPT (Optimalna strategija) – izbacuje se stranica koja se najdulje u budućnosti neće
upotrebljavati
• Satni algoritam- je inačica LRU – Stranice se svrstavaju u listu po redu prispjeća.
Lista se obilazi kružno posebnom kazaljkom (kada dođe do kraja kazaljka se vrada na
početak liste). Kada se pojavi potreba za praznim okvirom izbacit će se stranica na
koju pokazuje kazaljka ako je njezina zastavica A u 0, inače će se preskočiti i pritom
promijeniti vrijednost A u 0. Kazaljka se pomiče za jedno mjesto dok ne naiđe na
stranicu s A=0.
27. Opisati strategiju izbacivanja stranica u Intel x86 arhitekturi kada se u obzir
uzimaju dvije zastavice za označavanje stanja stranice.
Zastavice koje se koriste su bit pristupa (A) i bit nečistoće (D). Prije se izbacuju stranice u
kojima se nije pristupalo i koje su čiste.
7
8
9. DATOTEČNI SUSTAV
2. Gdje su pohranjeni:
a) opis smještaja datoteke,
b) opisnik datoteke i
c) datotecna tablica?
a) opis smještaja datoteke - u opisniku datoteke
b) opisnik datoteke - na disku u nekom volume-u
c) datotecna tablica - u opisniku datoteke
1
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:
10 neposrednih kazaljki
1 jednostruko indirektna kazaljka
1 dvostruko indirektna kazaljka
1 trostuko indirektna kazaljka
8. 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 sadrži
datoteku MFT (glavna tablica datoteka) u kojoj se nalaze opisnici svih datoteka (ukljucujuci i
nje same). Jedan MFT zapis ima veličinu jedne skupine sektora (npr. 4KB). Za veče datoteke
zapis sadrži indekse skupina sektora i ako je potrebno dodatno proširenje opisa.
Datoteka se dijeli na djelove koji su jednako veliki kao nakpine sektora (virtualne skupine).
Za smještaj datoteka pronalazi se što više uzastopnih skupina sektora i dodjeljuje se datoteci
(ako nema uzastopnih dodjeljuju se pojedinačne skupine).
Male datoteke smještaju se unutar MFT zapisa
2
OPERACIJSKI SUSTAVI – ZI ‐ PITANJA – 2007/08 1
Operacijski sustavi
Priprema za Završni ispit – ak. god. 2007/08
Pitanja i odgovori sa predavanja
Pitanja postavljali i odgovarali: PyroMan, Rosita Pedringo, nyala, sunshine, Dada, nevilliny i Force
1. Kako treba podijeliti program koji ne stane u cijelosti u radni spremnik u preklopnom načinu
uporabe spremnika?
• jedan dio uvijek u radnom spremniku
• drugi dio (dijelovi) koji mogu biti i na hard disku (dakle ne stalno u radnom spremniku)
2. Opisati logički i fizički adresni prostor.
• logički adresni prostor je prostor u kojem su sve adrese unutar programa izračunate kao da je početna
adresa jednaka nuli, dijeli se na stranice, ovisi o arhitekturi. Ne mijenja se tekom izvođenja programa
• fizički adresni prostor: Program će se smjestiti u radni spremnik u prostor koji započinje s početnom
adresom PA. Taj ćemo prostor nazivati fizičkim adresnim prostorom. Dijeli se na okvire, ovisi o RAM‐u
3. Čemu služi tablica prevođenja?
• za prevođenje adrese iz logičkog adresnog prostora u fizički adresni prostor
4. U čemu se razlikuju prekidi izazvani promašajem stranice od ostalih prekida?
• može se dogoditi za vrijeme izvođenja instrukcije, provjerava se na kraju
• ponovno se mora izvesti naredba umjesto da se prelazi na sljedeću kao kod ostalih prekida
• to je omogućeno skrivenim kopijama svih registara
5. Što sadrži procesni informacijski blok? Koliko procesnih informacijskih blokova ima u procesu?
• sve informacije važne za odvijanje procesa, sve informacije povezane s gospodarenjem spremničkim
prostorom, tablicu prevođenja, opisnike svih dretvi, opisnik virtualnog adresnog prostora.
• ima ih koliko ima i procesa.
6. Čemu služi TLB?
• za spremanje cjelokupne dohvaćene fizičke adrese i dijela logičke adrese, to jest omogućuje nama da ne
moramo uzastopno dohvaćati jednu te istu fizičku adresu ako je trebamo u njemu tražimo da li već
postoji logička adresa, ako postoji, onda je unutra i fizička adresa.
7. Koliko puta je potrebno pristupiti radnom spremniku ako se fizička adresa ne nalazi u TLB? A ako se
nalazi?
• 3 puta, odnosno jednom ako se nalazi
8. U kojim stanjima se mogu nalaziti okviri tijekom rada?
• aktivno (koristi se); slobodno; slobodno s obrisanim sadržajem
OPERACIJSKI SUSTAVI – ZI ‐ PITANJA – 2007/08 2
9. Gdje se generiraju adrese unutar procesora?
• stog (instrukcijski registar)
• programsko brojilo
• adresni dio instrukcija
10. Procesni adresni prostor dijeli se na 3 segmenta. Koja?
• instrukcijski segment ‐ segment u koji se pohranjuju instrukcije programa ili programski kod, adresira se
iz programskog brojila
• stogovni segment ‐ segment u koji se pohranjuje stog, adresira se iz registra kazaljke stoga
• podatkovni segment ‐ segment u koji se pohranjuju podaci i čije adrese potiču iz adresnih djelova
instrukcija
11. Opisati organizaciju smještaja na magnetskom disku. (slika?)
• Sve ploče učvršćene su na istu osovinu i vrte se konstantnom brzinom ω.
• U smjeru radiusa ploča (ili približno u smjeru radiusa blagim lukom pomiču se glave za pisanje i čitanje.
• Glave se mogu vrlo precizno postaviti na jedno mjesto i tada ispod njih prolazi vrlo uski prsten ploče koji
zovemo stazom (engl. track).
• Staze jednakih polumjera svih diskova leže na zamišljenom plaštu valjka i zovemo ih zajedničkim imenom
cilindar (engl. cylinder).
• Svaka je staza podijeljena je na jednake dijelove (kružne lukove s jednakim središnjim kutevima) koje zovemo
sektorima (engl. sector).
• U jedan sektor može se pohraniti određeni broj bajtova. Uobičajeno je to 256, 512 ili 1024 bajtova.
• Svaki sektor na disku ima svoju jedinstvenu adresu koja se izračunava iz:
• rednog broja ploče,
• rednog broja staze na ploči i
• rednog broja sektora na stazi.
• Ploča se odabire aktiviranjem odgovarajuće glave, redni broj staze određuje se na temelju položaja glava, a
redni broj sektora dobiva se tako da se mjere kutovi vrtnje počevši od posebne oznake na ploči koja
označava početni kut.
• U uobičajenim izvedbama diskova svaka ploča ima svoju glavu za pisanje, odnosno čitanje, ali se u jednom
času može pristupiti samo do jedne od ploča, tj. može se čitati ili pisati samo u jednu stazu cilindra.
OPERACIJSKI SUSTAVI – ZI ‐ PITANJA – 2007/08 3
12. Koliko iznosi ukupno trajanje prijenosa podataka tvrdi disk ‐ radni spremnik?
13. Od čega se sastoji trajanje traženja staze?
• sastoji se od 4 djela. Ubrzavanja, konstantne brzine, usporavanja i finog podešavanja
14. Vrijeme koje je potrebno za prijenos podataka s diska ili na disk dijeli se na dva dijela. Koja?
• trajanje postavljanja glave (trajanje traženja staze + rotacijsko kašnjenje)
• trajanje prijenosa podataka
15. Zbog čega nastaje rotacijsko kašnjenje i koliko iznosi?
• rotacijsko kašnjenje nastaje zbog toga što se nakon postavljanja glave na odabranu stazu mora prije
početka prijenosa pričekati da se ispod 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
• prosječno rotacijsko kašnjenje jednako je polovini trajanja jednog okretaja diska
16. Čime je određena brzina prijenosa podataka iz diska u spremnik diskovne upravljačke jezgre?
• brzinom kojom se disk okreće ‐ omega – ω
• gustoćom podataka (broj sektora/broj staza)
17. Navesti vrste fragmentacije prilikom statičkog i dinamičkog dodjeljivanja spremnika.
• unutarnja i vanjska kod statičkog
• vanjska kod dinamičkog
18. Navesti i dokazati Knuthovo pravilo.
• potražiti na materijalima datoteku: "OS ‐ ZI ‐ Izvod Knuthovog pravila (by Ovca).pdf" . Nalazi se unutar
datotete "Tutoriali ‐ ak. god. 2006/07.rar"
OPERACIJSKI SUSTAVI – ZI ‐ PITANJA – 2007/08 4
19. Kako održavati fragmentaciju minimalnom?
• osnovni način suzbijanja fragmentacije svodi se na to da se rupe održavaju što većima kako bi se u njih
mogli smjestiti novi programi. To se postiže tako da se: pri svakom oslobađanju nekog procesnog
prostora novonastala rupa spaja s eventualnim susjednim rupama u novu veću rupu i pri svakom
novom zahtjevu za spremničkim prostorom potraži najmanja rupa u koju se može smjestiti novi
program.
• nadalje, preostaje mogućnost da se u nekom trenutku, kada se ustanovi da je fragmentacija postala
prevelika, privremeno obustavi izvođenje dretvi i "presloži" programe u kompaktni prostor. Time se
na kraju spremnika možda dobije dovoljno velika rupa u koju se može smjestiti program koji čeka na
dodjelu radnog spremnika. Ta se tehnika “sakupljanja otpadaka”(engl. garbage collection)
upotrebljava i u nekim programskim okruženjima za izvođenje programa koji intenzivno koriste
dinamičke strukture podataka
20. Čime su određene veličine fizičkog i logičkog adresnog prostora?
• logički ovisi o arhitekturi, fizički o RAM‐u
21. Čime je određen broj stranica?
• veličinom logičkog adresnog prostora, stranice imaju veličinu koja je cjelobrojna potencija broja 2.
22. Kako treba podijeliti program u preklopnom načinu uporabe radnog spremnika?
• do potrebe za djeljenjem programa dolazi kada trebamo izvesti program čiji je logički adresni prostor
veći od fizičkog spremnika. Program se djeli na dijelove koji ne trebaju biti istovremeno smješteni u
fizičkom spremniku. U radnom spremniku mora u svakom trenutku biti onaj dio programa koji sadrži
instrukcije koje se upravo izvode te dio podatkovnog prostora koji te instrukcije adresiraju.
• program se djeli na jedan osnovni dio koji se uvijek nalazi u radnom spremniku i na dijelove koji se
naizmjence smještaju u preostali dio korisničkog dijela fizičkog spremnika
23. Gdje se nalazi bi čistoće?
• u tablici prevođenja
24. Navesti i opisati strategije izbacivanja stranica.
• FIFO (First In First Out) strategija ‐ iz radnog se spremnika (primarnog spremnika) izbacuje stranica koja
je najdulje u radnom spremniku.
• LRU (Least Recently Used) strategija ‐ izbacuje se stranica koja se najdulje u prošlosti nije
upotrebljavala.
• LFU (Least Frequently Used) strategija ‐ izbacuje se ona stranica od onih u radnom spremniku koja se
najrjeđe koristila.
• OPT (Optimal) strategija ‐ izbacuje se ona stranica koja će se najkasnije u budućnosti koristiti.
25. Opisati satni algoritam.
• Inačica LRU algoritma koja se koristi u više inačica operacijskog sustava UNIX naziva se satnim
algoritmom (Clock algorithm). Algoritam djeluje tako da se sve stranice u radnom spremniku slažu u
kružnu listu po redu prispijeća. Prilikom traženja stranice za izbacivanje posebnom se kazaljkom
pretražuje lista, počevši od zadnje stranice učitane u primarni spremnik. Ukoliko stranica ima oznaku
(zastavicu) A=1 (tj. stranica se koristila u nekom prethodnom "bliskom" trenutku), ta se oznaka
postavlja na 0 te se kazaljka pomiče na slijedeću stranicu. Ako stranica ima oznaku A=0 tada se
dotična stranica izbacuje iz radnog spremnika i na isto mjesto se učitava nova stranica (kazaljka se ne
pomiče). Svaki puta kada se neka stranica koristi njena se oznaka A postavlja u jedinicu.
26. U kojim stanjima se mogu nalaziti pojedini okviri tijekom rada?
• aktivno (koristi se); slobodno; slobodno s obrisanim sadržajem
OPERACIJSKI SUSTAVI – ZI ‐ PITANJA – 2007/08 5
27. Na koji način se može pokazati slobodni prostor na disku?
• može se pokazati na 3 načina. Binarni prikaz, lista slobodni sektora, lista nakupina sektora
28. Opisati način smještaja datoteka u unix i ntfs datotečnom sustavu.
• UNIX ‐ slajdovi 09‐25, 09‐26, 09‐27
• NTFS ‐ slajdovi 09‐28, 09‐29, 09‐30
29. Navesti elemente datotečnog podsustava.
• datoteka
• datotečna tablica
• procedura za manipuliranje datotekama
30. Navesti osnovni sadržaj opisnika datoteke.
• ime datoteke
• tip datoteke
• lozinka
• ime vlasnika
• prava pristupa
• vrijeme stvaranja
• vrijeme zadnje promjene
• ime zadnjeg korisnika
• opisnik smještaja
31. Navesti osnovni sadrža datotečne tablice.
• broj sektora po disku
• broj slobodnih sektora
• informacije o slobodnim sektorima
• tablica opisnika pohranjenih datoteka
32. Opisati način evidencije binarnim prikazom operacijskog sustava za rad s datotekama.
• binarni prikaz: 011000101001100… ima onoliko 1 i 0 koliko ima sektora, 0 označava da je sektor
slobodan a 1 da je sektor zauzet. Svaki sektor ima svoju jedinstvenu adresu koja se sastoji od: rednog
broja ploče, rednog broja staze na ploči i rednog broja sektora na ploči
PITANJA ZA ZAVRŠNI ISPIT IZ OPERACIJSKIH SUSTAVA verzija 1.0
by Aeroflot
Sva prava pridržana
Copyright Aeroflot ©.
1
UVODNA NAPOMENA
NE ODGOVARAM ZA GREŠKE!!!!
Ako krivo naučite iz ove skripte, sami ste si krivi jer mi vjerujete XD.
I da… hvala svima koje sam pokrao. :D Sad ću bezobrazno stavit svoj copyright i dilat po fakultetu. XD
p.s. downloadom ove skripte automatski pristajete autoru donirati bubreg, jetru ili bilo koji drugi organ u slučaju potrebe :D
2
1. CIKLUS PREDAVANJA
1. i 2. POGLAVLJE
1. Što je OS? (OK) 0102
Skup programa koji omogućavaju izvođenje osnovnih operacija na računalu – potpora raznovrsnim
primjenskim programima.
2. Nabrojite osnovne dijelove OSa! (OK), slika
Upravljanje datotečnim sustavom, upravljanje spremnikom (memorijom), upravljanje U/I uređajima,
API (Application programming interface), GUI (Graphical user interface), procesi i dretve
(komunikacija, sinkronizacija i raspoređivač poslova), mrežni i sigurnosni podsustav.
4. Čime su određena svojstva i ponašanje procesora? (OK) 0215
Skupom registara (služe za pohranjivanje svih sadržaja koji ulaze i izlaze iz procesora i u njemu se
transformiraju) i skupom instrukcija (određen izvedbom ALU i upravljačke jedinke procesora).
5. Nabroji osnovni skup registara procesora? (OK) 0216
Adresni međuregistar (za postavljanje adrese)
Podatkovni međuregistar (za dohvat odnosno spremanje podataka)
Instrukcijski registar (spremaju se insturkcije kad se dobave)
Programsko brojilo (PC) (za dohvat instrukcija, pokazuje na sljedeću instrukciju)
Registar kazaljke stoga (SP) (stack pointer)
Registar stanja (SR) (registar zastavica)
Registri opće namjene (R)
6. Što je kontekst dretve? (OK) 0242
Sadržaj trenutne dretve pohranjen u registrima procesora.; Svi registri osim programskog brojila.
7. Definirajte program, proces i dretvu! (OK) 0239
Program – statični niz instrukcija, pohranjen na papiru, disketi, memoriji itd.
Dretva – niz instrukcija koje se izvode i kontroliraju proces.
Proces – program u izvođenju; skup računalnih resursa koji omogućuju izvođenje programa; okolina u
kojoj se program izvodi; sve što je potrebno za izvođenje programa; sastoji se od:
barem jedne dretve
zajedničkog adresnog prostora
adresnog prostora rezerviranog za svaku pojedinu dretvu
stog, kazaljke stoga, opisnici datoteka, opisnici cjevovoda, redovi poruka, semafori, uvjetne
varijable, zaključavanja.
8. Kako je moguć višeprogramski rad na jednom procesoru? (OK)
Tako da se svaka dretva izvodi naizmjence pa dobijemo privid istovremenosti. Ključna je pravila
izmjena konteksta dretve.
9. Napisati pseudokod što procesor trajno radi! (OK) 0229
ponavljati {
dohvatiti iz spremnika instrukciju na koju pokazuje programsko brojilo;
dekodirati instrukciju, odrediti operaciju koju treba izvesti;
povećaj sadržaj programskog brojila tako da pokazuje na sljedeću instrukciju;
odrediti odakle dolaze operandi i kuda se pokhranjuje rezultat;
operande dovesti na aritmetičkologičku jedinku, izvesti zadanu operaciju;
pohraniti rezultat u odredište;
} dok je (procesor uključen);
3
Procesor se može promatrati kao automat koji, nakon uključivanja, trajno izvodi instrukciju za
instrukcijom strojnog programa.
10. Skicirati procesor i spremnik povezan na sabirnicu. Sabirnicu podijeliti na tri dijela! (OK)
0212
11. Opisati osnovne komponente pristupnog sklopa. (OK) 0306
sklop za dekodiranje adrese (dobavlja adresu podatka)
podatkovni registar (PR) (za podatke)
registar stanja (RS) (daje procesoru stanje u kojem se nalazi naprava)
upravljački dio (određuje stanje naprave)
12. Što je to adresni prostor?
Adresni prostor je dio spremnika potreban procesoru koji se dijeli na:
dio u kojem je smješten program segment instrukcija
dio rezerviran za stog
dio za podatke (korisnički i sustavski podaci)
4
3. POGLAVLJE
13. Što je radno čekanje? (OK) 0306, 0315
Režim rada procesora u kojem procesor čeka na određeni događaj u programu (npr. pojava zastavice)
i troši vrijeme dok se on ne dogodi.
(primjer pseudokoda):
čitati registar sranja RS;
dok je (ZASTAVICA ==0){
čitati registar stanja RS;
}
čitati registar PR; //time se automatski briše ZASTAVICA
ako se na takav način čita niz znakova onda ovu petlju treba ponavljati u nekoj nadređenoj petlji
14. Skicirati signale dvožičnog rukovanja između pristupnog sklopa i U/I naprave! (OK) 0316...
Upisivanje se događa kada je zastavica u niskoj razini, te se nakon upisivanja ona podiže i tada se
aktivira čitanje PR koje po svom završetku spušta zastavicu i omogucuje novo čitanje.
S obzirom da se signali na dva vodiča ("žice") naizmjence podižu i spuštaju taj je protokol nazvan
dvožičnim rukovanjem (engl. twowire handshaking).
15. Što se zbiva kad se dogodi prekid? (OK) 0322, 0323
Pojava prekidnog signala prebacuje procesor u tzv. sustavski (jezgreni) način rada – pozivaju se
podprogrami koji sačinjavaju jezgru OSa. Također procesor čini sljedeće:
1. onemogućuje daljnje prekidanje
2. adresira sustavski dio spremnika (spremnik je time podijeljen na korisnički i sustavski)
3. aktivira sustavski registar kazaljke stoga koji se nalazi u procesoru
4. pohranjuje trenutni sadržaj programskog brojila (PC) na stog
5. u programsko brojilo stavlja adresu na kojoj počinje podprogram za obradu prekida
6. pohranjuje kontekst dretve na sustavski stog
7. nakon što je kontekst spremljen može se obaviti stvarna obrada prekida
8. nakon obrade pokreće prekinutu korisničku dretvu
9. sa sustavskog stoga vraća sadržaj registara
10. omogućuje prekidanje
11. prebacuje adresiranje u korisnički adresni prostor
12. aktivira korisnički registar kazaljke stoga
13. vraća sadržaj programskog brojila (čime se pokreće prekinuta dretva)
5
16. Objasniti instrukciju vratiti se iz prekidnog načina rada, obnoviti kontekst i pohraniti
kontekst! (OK) 0327...
a) vratiti se iz prekidnog načina rada
Prije no što se programsko brojilo sa sustavskog stoga vrati u PC (sadržaj) treba omogućiti prekidanje,
prebaciti adresiranje u korisnički adresni prostor i aktivirati korisnički registar kazaljke stoga.
b) pohraniti kontekst
Sadržaj registara procesora prilikom izvođenja dretve naziva se kontekst dretve.
Kontekst dretve treba pri prekidanju izvođenja jedne dretve pohraniti izvan procesora (osim PC
registra koji se tretira zajedno!) i u registre staviti kontekst dretve koju se želi pokrenuti.
Pohraniti kontekst znaci pohranjivanje sadržaja svih registara procesora na sustavski stog, radi se na
početku podprograma.
c) obnoviti kontekst
Na kraju podprograma treba vratiti registre obrnutim redoslijedom.
17. Što radi potprogram za obradu prekida na početku? (OK) 0326
Pohranjuje sadržaj svih registara procesora (kontekst) na sustavski stog.
18. Kako završiti s prekidom? (OK)
obnoviti kontekst sa sustavskog stoga
omogućiti prekidanje (odgođeno do upisa nove vrijednosti u PC), prebacuje adresiranje u
korisnički prostor
vratiti se iz prekidnog načina rada (aktivira korisnički registar kazaljke stoga)
vratiti PC
19. Skicirati sklop za prihvat prekida! (VIDI) 0351,52
20. Čemu služi i kako djeluje sklop za prihvat prekida? (OK) 0350
Sklop za prihvat prekida služi za filtriranje prekida tako da kad se dogodi prekid manjeg prioriteta sklop
ne šalje prekid procesoru („ne ometa ga“ tako da procesor ni nezna da je bio prekid). Odnosno prema
procesoru se propušta samo prekid višeg prioriteta od dretve koju procesor trenutno izvodi.
21. Koje strukture podataka treba sadržavati OS koji omoguduje prihvat prekida različitih
prioriteta? (OK)
Varijablu T_P (tekući prioritet), polje KON[N] (kontekst pojedine dretve) i polje K_Z[N] (kopije
zastavica).
22. Što su programski prekidi i tko ih izaziva? (OK)
Programski prekidi su instrukcije pomoću kojih programi pozivaju jednu od jezgrinih funkcija. Može se
javiti zbog greške u programu (dijeljenje s 0, nepostavljena varijabla) ili ih možemo postaviti u
programu kada je potrebno kontekst (podatke u registrima procesora) obraditi u jezgrenom načinu
rada.
23. Što sve uzrokuje prekid generiran unutar procesora? (OK) 0360
dijeljenje sa nulom
adresiranje nepostojeće lokacije u adresnom prostoru dretve
dekodiranje nepostojećeg instrukcijskog koda
24. Što obavlja instrukcija vratiti se iz prekidnog načina?
Vraća u procesor sadržaj programskog brojila i prevodi procesor iz sustavskog u korisnički način rada.
6
25. Zašto se PC tretira zasebno prilikom pohrane konteksta? (OK)
Procesor se prebacuje na rutinu za obradu prekida tako da promijeni PC na adresu te rutine. Što znači
da ta rutina ne može pohraniti PC (jer je već "uništen") već to mora učiniti procesor. Također, vraćanje
PCa pokreće prekinutu dretvu!
26. Zašto u kontekstu nije uključeno programsko brojilo? (OK) – nešto slično ko 25
Zato jer se kod prekida prvo stavlja sadržaj programskog brojila na stog a zatim kontekst kako bi se pri
vraćanju iz prekida mogao kontekst obnoviti prije nego se vrati stara vrijednost programskog brojila
(što će pokrenuti dretvu).
27. Opisati DMA sklop i njegove registre! (OK) 0364...
DMA služi prijenosu blokova znakova/podataka. Odvijanje prijenosa cijelog bloka između dvaju
prekida obavlja se bez sudjelovanja procesora.
Registri pristupnog sklopa:
adresni registar (AR) (sprema se početna adresa bloka koji se želi prenesti)
brojač (BR) (sprema se broj znakova koji se prenose)
registar stanja (RS) (daje procesoru zahtjev za prekid)
podatkovni registar (PR) (spremaju se podaci koji se prenose)
28. Koje su razlike prijenosa znakova prekidnim mehanizmom i DMA prijenosom? (OK)
Kod prekidnog mehanizma javljati će se prekid koji će zahtjevati dodatnu količinu instrukcija za
spremanje i obnovu konteksta i zato će se gubiti dio radnog vremena procesora koji se može iskoristiti
za obavljanje nekog korisnog posla. Također je bitna razlika da DMA radi blokovski prijenos podataka
te je neovisna o procesoru, što nije slučaj dok koristimo prekidni mehanizam. DMA će tražiti od
procesora prekid po bloku podataka, dok će prekidni mehanizam za svaki poslani znak tražiti zaseban
prekid.
7
4. POGLAVLJE
29. Što je zajedničko procesu roditelju i procesu djetetu?
Ništa. Dijete dobiva kopije instrukcija i podataka... svaki proces dobiva svoj adr.prostor(osim, kako ti je
opisano, u slučajevima kad se instrukcijski dio dijeli) i ne mogu jedno drugom adresirat varijable.
30. Objasniti pojmove višezadaćni rad, višedretveni rad i višekorisnički rad! (OK)
Višezadaćni rad (multitasking) – mogućnost računala da obavlja istovremeno više poslova
Višedretveni rad (multithreading) – brzo obavljanje više procesa u jednom programu
Višekorisnički rad (multiuser system) – računalo koje mogu koristiti više osoba
svima je zajedničko da obavljaju više zadaća odjenom
31. Koja sredstva dijele dretve istog procesa? (OK), 0405
Dretve koje djeluju unutar jednog procesa dijele sva sredstva koja je operacijski sustav stavio na
raspolaganje tom procesu. Posebice se to odnosi na adresni prostor procesa.
32. Kako je podijeljen spremnički prostor procesa/dretve? (OK), 0410
Dretveni prostor: dio za instrukcije dretve, dio za stog dretve i dio za lokalne podatke dretve.
Spremnički prostor: se sastoji od više dretvenih prostora i zajedničkog prostora (koji mogu dohvaćati
sve dretve procesa – globalne varijable).
33. Kako najjednostavnije dretve mogu komunicirati?
tako da jedna dretva piše direktno u domenu druge
preko rezerviranog dijela zajedničkog spremnika (zajedničke varijable)
34. Navesti i pojasniti uvjet nezavisnosti dretvi? (OK), 0415
Dretve i su nezavisne kad vrijedi:
∩ ∪ ∩ ∪ ∩ = ∅
Dvije dretve su nezavise kada se mogu obavljati u isto vrijeme bez da jedna drugu ometa – to znači da
se ne smije dogoditi da jedna dretva piše na adrese koje bi druga dretva mogla koristiti (za čitanje ili
pisanje). Dakle, smiju samo čitati s istih adresa da bi bile nezavisne.
Odnosno: ako je bilo koji od ova tri uvjeta ispunjen, dretve su zavisne.
∩ u isto vrijeme ita dretva čita podatak i jta dretva zapisuje – ako se to dogodi – zavisne
∩ u isto vrijeme jta dretva čita podatak i ita dretva zapisuje – ako se to dogodi – zavisne
∩ u isto vrijeme i ita i jta dretva zapisuju podatke na istu kodomen – zavisne
35. Kako se u usmjerenom grafu sustava dretvi prepoznaju zavisne, tj. nezavisne dretve? (OK)
Dretve koje se nalaze na istom putu od početne do završne dretve moraju se izvoditi propisanim
redoslijedom, te su dretve međusobno zavisne.
Dretve koje se ne nalaze na istom putu moći će se izvoditi proizvoljnim redoslijedom i one moraju biti
međusobno nezavisne.
36. Navedite uvjete koje moraju zadovoljavati algoritmi za međusobno isključivanje? (OK)
dretve se odvijaju međusobno isključivo (dvije dretve ne smiju obavljati K.O.)
algoritam mora funkcionirati i onda kada su brzine izvođenja dretvi različite
ako neka dretva zastane u N.K.O. to ne smije spriječiti drugu dretvu da uđe u K.O.
izbor koja dretva će ući u K.O. mora se zbiti u konačnom vremenu.
8
37. S koliko dretvi radi Dekkerov, a s koliko Lamportov algoritam? (OK)
Dekkerov algoritam radi sa dvije dretve, dok Lamportov algoritam služi za isključivanje N dretvi.
38. Koje strukture podataka koriste Dekkerov i Lamportov algoritam? (OK)
Dekker najobičnije varijable (dvije zastavice ZASTAVICA[I] i ZASTAVICA [J] i pravo PRAVO)
Lamport polje zastavica (koje govori koja dretva pokušava ući) ULAZ[I], polje brojeva dretvi BROJ[J] i
varijabla zadnjeg broja ZADNJI_BROJ.
39. Koji je najjednostavniji način međusobnog isključivanja na 1procesorskom računalu? (OK)
Prekidom.
40. Kako je osmišljen višedretveni rad u jednoprocesorskom računalu? (OK)
Višedretveni rad se može provesti tako da procesor naizmjence izvodi sve dretve. Pri prekidanju
izvođenja jedne dretve njen sadržaj se mora pohraniti izvan procesora i u registre staviti sadržaj dretve
koja se želi pokrenuti. Time nismo postigli brzinu, ali smo omogućili da se može izvoditi jedna dretva
dok druga iz nekog razloga mora čekati.
41. Kako je moguć višeprocesorski rad na jednoprocesorskom računalu?
Višeprocesorski rad zahtjeva više procesora. Višedretveni rad je moguć na jednom procesu tako da se
naizmjenično izvršava malo jedna dretva, malo druga, malo treća itd.
42. Navedite instrukcije procesora koje služe kao sklopovska potpora međusobnom
isključivanju? (OK)
TAS (test & set) funkcija koja se obrađuje u dva nedjeljiva sabirnička ciklusa pa je osigurano da s
takvim pozivom neće dvije dretve obaviti istu stvar (dohvatiti isti podatak i promijeniti ga!)
SWAP (zamijeni) u prvom ciklusu dobave sadržaj adresirane lokacije, i smjeste ga u jedan od
registara procesora, a u drugom ciklusu pohranjuju u tu lokaciju vrijednost koja je prije toga bila
pohranjena u tom ili drugom registru.
FETCH_AND_ADD – dohvati i povećaj za 1 u prvom ciklusu dobave sadržaj adresirane lokacije, i
smjeste ga u jedan od registara procesora, a u drugom ciklusu pohranjuju u tu lokaciju taj sadržaj
uvećan za jedan.
43. Ostvariti međusobno isključivanje pomoću XY instrukcije (iz 40. pitanja)! (OK)
dok je (1) {
TAS ZASTAVICA;
dok je (ZASTAVICA !=0) {
TAS ZASTAVICA;
}
kritični odsječak;
ZASTAVICA = 0;
nekritični odječak;
}
9
5. POGLAVLJE
44. Što predstavlja pojam ulazak u jezgru OSa i kad se događa? (OK)
Pojam predstavlja poziv jezgrine funkcije i zbiva se prekidom.
45. Što se događa prilikom poziva jezgrine funkcije? (OK)
Onemogući se daljnje prekidanje (ne mogu se pozivati druge funkcije). Pohranjuje se kontekst, pamti
se gdje je bio prekid. Poziva se odgovarajuća funkcija koja sa sustavnog stoga pohranjuje konktekst u
opisnik aktivna dretva.
46. Što se radi prilikom izlaska iz jezgre? (OK)
Aktivira se prva dretva iz reda Pripravne D. u red Aktivna D. Obnovi se kontekst iz opisnika Aktivna D.
Omogućuje se prekidanje, vraća se iz prekidnog načina. Obnavlja se PC. Iz sustavskog se prelazi u
korisnički način rada.
47. Opisati način ostvarenja i osnovnu upotrebu binarnog semafora. (OK)
Binarni semafor je jezgrin mehanizam koji služi za međusobno isključivanje dretvi, tj. zaštitu kritičnih
odsječaka. On propušta jednu po jednu dretvu.
48. Od čega se sastoji jezgra OSa? (OK)
Od struktura podataka i jezgrinih funkcija.
49. Navesti vrste prekida. (OK)
sklopovski prekidi
programski prekidi
prekidi od sata.
50. Navesti podatke dretve (sadržaj opisnika dretve). (OK) 0513
kazaljke ili više njih za premještanje iz liste (reda) u listu(red)
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 adresa dretvenog spremnika prostora
veličina dretvenog spremničkog prostora
adresa prve instrukcije
zadano kašnjenje
prostor za smještanje konteksta
51. Navesti strukture podataka jezgre. (OK)
1. Lista (red) postojećih dretvi – kada se dretva nalazi na samo jednoj listi, onda je u pasivnom
stanju
2. Lista (red) aktivnih dretvi – dretve koje se izvode, broj članova u toj listi jednak je broju
procesora. U jednoprocesorskom sustavu ima samo jedan deskriptor.
3. Lista (red) pripravnih dretvi – ako se ne izvode, a spremne su. Prema načinu formiranja red
može biti – po redu prispjeća (FCFS (first come, first served) ili FIFO) ili prioritetni
4. Red semafora – dretve tijekom izvođenja mogu biti blokirane čekajući na ispunjenje nekog
uvijeta (4 načina blokiranja čekanjem na: BSEM (binarni semafor), OSEM (opći semafor),
istek zadanog intervala kašnjenja, završetak U/I operacije
5. Lista (red) odgođenih dretvi – zadano kašnjenje dretve
6. Lista (red) U/I naprave – redova koliko ima U/I naprava, U/I naprave se obično koriste
pojedinačno
latentna dretva,
opisnik za svaku dretvu
Napomena – ovdje sam očito nešto dodavao, čim nije lijepo formatirano znači da sam
naknadno nešto editirao (latentna dretva i opisnik za svaku dretvu). Pa provjerite još ovo
zadnje, na kaj sam mislio. :D
10
52. Koja su blokirana stanja dretvi? (OK)
čekanje na binarnom seamforu
čekanje na općem semaforu
čekanje na istek zadanog intervala kašnjenja (odgođene dretve)
čekanje na završetak U/I operacije.
53. Koja su moguća stanja dretvi? (OK, Pogledati i graf 0535!!!)
aktivna dretva
pasivna dretva
BSEM (binarni semafor)
OSEM (opći semafor)
odgođene dretve
čekadnje na završetak U/I operacije
pripravne dretve
54. Koje vrste prekida uzrokuju jezgrine funkcije Započeti U/I i Prekid U/I? (OK)
Sklopovski prekid.
55. Može li se kontekst dretve koja obavlja neku jezgrenu funkciju naći u opisniku u listi aktivna
dretva, i zašto? (OK)
Ne. Lista aktivnih dretvi sadrži dretvu koja se treba početi izvršavati nakon dretve jezgrene funkcije.
Ne, jezgrina funkcija ne može biti prekinuta.
56. Što obavlja instrukcija Aktivirati dretvu iz reda pripravne dretve? (OK)
Premješta opisnik dretve iz reda Pripravne_D u red Aktivna_D i nakon toga se iz tog opisnika prenosi
kontekst dretve u registre procesora.
57. Čemu služe jezgrini mehanizmi binarni i opći semafor? (OK)
Služe za međusobno isključivanje dretvi. Jedan od drugoga se razlikuju samo u realizaciji.
58. Što je najveći nedostatak međusobnog isključivanja? (OK)
To što dretve izvode radno čekanje i time beskorisno troše vrijeme svojeg procesora i sabirničke
cikluse.
59. Koje strukture podataka koriste BSEM, OS, OSEM? (OK)
BSEM koristi varijablu Bsem[I].v i kazaljku. OS koristi varijablu OS.v i kazaljku. OSEM koristi varijablu
Osem[J].v i kazaljku.
60. U pseudokodu napisati jezgrine funkcije Čekaj_BSEM (ili OS, ili OSEM) i Postavi_BSEM(ili
OS, ili OSEM)?
SKRIPTA + ono sa FER.HR
61. Kako treba proširiti jegrine funkcije u višeprocesorskom sustavu? (OK), vidi 0580
Jezgrine funkcije treba proširiti radnim čekanjem.
11
Činjenice
Komunikacija među dretvama je znatno brza od komunikacije među procesima.
Komunikacija među dretvama istog procesa odvija se bez uplitanja OS
Jedinstevno za svaku dretvu: Thread ID (TID), stanje registra, kazaljka stoga (stack pointer), stog,
prioritet
Skup zauzetih sredstava je isti za sve dretve jednog procesa.
U programu s više procesa, globalne varijable u programu vide svi procesi ali prilikom njihove
promjene i jedan i drugi proces dobivaju kopije tih varijabli.
Napomene vezane za prvi međuispit:
U pitanjima "što procesor radi kada dođe prekid / poziv potprograma / što procesor konstanto radi /
itd." valja odgovarati pseudokodom.
Što se tiče onih 5 neuspjelih primjera za ostvarivanje međusobnog isključivanja, ne treba znati kod, ali
treba znati zašto ne valjaju!
12
2. CIKUS PREDAVANJA
POJMOVI
Pravila za pisanje korisničkih funkcija:
1) monitorska funkcija je zaštićena monitorskim semaforom (uđi u monitor, izađi iz monitora)
2) uvjet se ne ispituje naredbom ako je već dok je
3) dretva koja oslobađa neku drugu dretvu iz reda uvjeta, nakon što ju je oslobodila završava
4) jezgrine funkcije za ostvarenje monitora koriste se isključivo unutar monitorskih funkcija
5) nakon uvrsti_u_red_uvjeta obavezno napisati ući_u_monitor
Problemi sa semaforima
1) semafor ispituje jedan uvjet, odnosno služi međusobnom isključivanju, sinkornizaciji i brojanju
događaja
2) Ispitivanje semafora povezano je sa zauzećem sredstva kojeg semafor štiti – ne može se
razdvojiti ispitavnje od semafora.
3) opasnost od potpunog zastoja
Funkcije za monitore
Mvarijabla zaključvanja
mutex_lock (M) – uđi u monitor
mutex_unlock (M) – izađi iz monitora
cond_wait (red uvjeta, M) – uvrsti u red uvjeta, ući u monitor
cond_signal (red_uvjeta) – oslobodi iz reda uvjeta, ući u monitor
cond_broadcast
POGLEDATI ONU NJIHOVU SKRIPTU SA FERWEBA ZA VIŠE!
pojmovi:
‐ iskoristivost (opterećenje) – ρ
‐ broj poslova koji ulaze u sustav u jedinici vremena – α
‐ broj poslova koje poslužitelj može obaviti u jedinici vremena – β
‐ prosječan broj poslova u sustavu n
‐ prosječno zadržavanje posla u sustavu (kvaliteta usluge) ρ
‐ Littleovo pravilo n = α ∙ T (riječima!)
‐ Markovljev lanac (skicirati)
U kružnom posluživanju dretvama višeg prioriteta može se dodjeljivati dva ili više uzastopna kvanta
procesorskog vremena
13
PITANJA
1. Kako se pozivaju jezgrine funkcije? OK (0506)
Poziv jezgrine funkcije — ulazak u jezgru — zbiva se pod utjecajem sklopovskog ili programskog
prekida
U jednoprocesorskom sustavu je time osigurano međusobno isključeno obavljanje jezgrinih procedura
2. Od čega se sastoji jezgra? OK (0506)
Jezgra se sastoji od jezgrinih struktura podataka i jezgrinih funkcija (pozivaju se kod prekida).
3. Što sadrži opisnik dretve? (OK) 0513
kazaljke ili više njih za premještanje iz liste (reda) u listu(red)
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 adresa dretvenog spremnika prostora
veličina dretvenog spremničkog prostora
adresa prve instrukcije
zadano kašnjenje
prostor za smještanje konteksta
4. Navedi strukture podataka jezgre. (OK)
Liste (redovi) dretvi i opisnici dretvi.
7. Lista (red) postojećih dretvi – kada se dretva nalazi na samo jednoj listi, onda je u pasivnom
stanju
8. Lista (red) aktivnih dretvi – dretve koje se izvode, broj članova u toj listi jednak je broju
procesora. U jednoprocesorskom sustavu ima samo jedan deskriptor.
9. Lista (red) pripravnih dretvi – ako se ne izvode, a spremne su. Prema načinu formiranja red
može biti – po redu prispjeća (FCFS (first come, first served) ili FIFO) ili prioritetni
10. Red semafora – dretve tijekom izvođenja mogu biti blokirane čekajući na ispunjenje nekog
uvijeta (4 načina blokiranja čekanjem na: BSEM (binarni semafor), OSEM (opći semafor),
istek zadanog intervala kašnjenja, završetak U/I operacije
11. Lista (red) odgođenih dretvi – zadano kašnjenje dretve
12. Lista (red) U/I naprave – redova koliko ima U/I naprava, U/I naprave se obično koriste
pojedinačno
5. Koja su blokirna stanja dretve? (OK) 0526
čekanje na binarnom seamforu
čekanje na općem semaforu
čekanje na istek zadanog intervala kašnjenja (odgođene dretve)
čekanje na završetak U/I operacije.
6. Opiši kako radi binarni semafor. (OK) 0527
omogućuje nam ostvarenje međusobnog isključivanja dretvi, a sastoji se od varijable
Bsem[I].v koja igra ulogu zastavice i kazaljke koja pokazuje na red opisnika dretvi koje nisu
uspjele proći semafor
semafor može poprimiti dvije vrijednosti 0 i 1. Ako je Bsem[I].v == 1, semafor je prolazan, ako
je Bsem[I].v == 0 semafor je neprolazan.
dretva koja naiđe na prolazni semafor bit će propuštena i jezgra će staviti vrijednost 0 u
Bsem[I].v
ako jedna ili više dretvi pokušaju proću uz neprolazni semafor, one će biti zaustavljene i
njihovi će opisnici biti prebačeni u red pridružen tom semaforu.
14
7. Opiši kako radi opći semafor. 0529
8. Skiciraj graf stanja dretva SLAJDOVI 0535,
9. Što obavlja instrukcija "aktiviraj prvu dretvu"? (OK)
premjestiti prvi opisnik iz reda Pripravne_D u red Aktivna_D;
obnoviti kontekst iz opisnika Aktivna_D;
omogućiti prekidanje;
vratiti se iz prekidnog načina;
10. Čemu služe semafori?
Služe za međusobno isključivanje dretvi
11. Koju strukturu podataka ima binarni i opći semafor?
BSEM koristi varijablu Bsem[i].v i kazaljku
OS koristi varijablu OS.v i kazaljku
OSEM koristi varijablu Osem[J].v i kazaljku.
12. Na koji način se obavljaju jezgrine funkcije na jednojezgrenom procesoru, a kako na
višejezgrenom procesoru?
U 1CPU se obavljaju međusobno isključivo (pomoću zabranjivanja prekida)
U višejezgrenom – TAS?
Nije mi ovo najjasnije pitanje.
13. Naizmjenično obavljanje 2 dretve
Se može sinkronizirati upotrebom minimalno 2 binarna semafora (mogu i OS i OSem)
14. Navedi načine međusobnog isključivanja (programske)?
Dekkerov postupak – Međusobno isključivanje 2 dretve
Petersonov postupak – Međusobno isključivanje 2 dretve (pojednostavljen Dekker)
Lamportov protokol – Međusobno isključivanje većeg broja dretvi
15. Što je to potpuni zastoj?
Blokiranje reda u redu čekanja , stanje sustava u kojem su sve dretve blokirane na nekom redu uvjeta
16. Koji su nužni uvjeti za potpuni zastoj? (OK) 0529
Potpuni zastoj se može dogoditi kada se najmanje dvije dretve nadmeću za najmanje dva sredstva. Tri
su nužna uvjeta za nastajanje potpunog zastoja:
neko sredstvo u istom času može upotrebljavati samo jedna od dretvi (međusobno isključivo)
dretvi se sredstvo ne može oduzeti – ona ga otpusšta sama kada ga više ne treba
dretva drži dodijeljeno joj sredstvo dok čeka na dodjelu dodatnog sredstva
17. Što je to monitor?
Monitor je sinkronizacijski mehanizam u višedretvenim/višeprocesorskim sustavima. U njemu su
objedinjeni mehanizmi suradnje dretvi kao prikladne nakupine funkcija koje djeluju na njegovu
strukturu podataka.
18. Navesti jezgrine strukture podataka potrebne za ostvarenje monitora!
Red čekanja Monitor[M], red čekanja Reduvjeta[M,K] gdje svaki red predstavlja jedan uvjet
Funkcije su: Uđi_u_monitor, Izađi_iz_monitora, Uvrsti_u_red_uvjeta, Oslobodi_iz_reda_uvjeta
15
19. Kada se mogu naći 2 dretve u monitoru?
Kada dretva koja je ušla u monitor može djelovat na ispunjenje nekog uvjeta tako da time deblokira
dretvu koja je unutar monitora čekala na ispunjene tog uvjeta.
Napomena: Oko ovog pitanja sam čuo dosta svađe jer neki tvrde da je odgovor ovo gore, neki tvrde
da je to samo prividno (da se dvije nalaze u monitoru), a neki kažu da jednostavno NIKAKO. Pa vi
budite pametni…
20. Kojim jezgrinim mehanizmima je zaštićen monitor?
Čekanjem monitorskog semafora
21. Što je to monitorska funkcija?
monitorska funkcija se odvija u korisničkom načinu rada (kreira je korisnik)
unutar monitorske funkcije dretva ispituje složeni uvijet
22. U čemu se razlikuje monitorski semafor od binarnog semafora?
Monitorski semafor omogućuje i drugim monitorskim funkcijama da koriste istu strukturu podataka.
kod BSEM imamo samo dvije funkcije (čekaj/postavi)
MON 2 primarne funkcije + dodatne (2) (uđi/izađi) + (uvrsti u red uvjeta / oslobodi iz reda uvjeta)
23. objasniti parametre sustava:
a) iskoristivost/faktor iskorištenja: ro=alfa/beta, a u postocima: ni=(Tp/Td)*100 (%) ili alfa/beta*100%
b) alfa broj poslova koji ulazi u sustav u jedinici vremena
c) beta broj poslova koje poslužitelj može obaviti u jedinici vremena
d) n potez prosjećan broj poslova u sustavu
e) T potez prosjećno zadržavanje u sustavu
24. Navesti jezgre funkcije za ostvarenje monitora!
Uđi_u_monitor, Izađi_iz_monitora, uvrsti_u_red_uvjeta, oslobodi_iz_reda_uvijeta
25. Objasni:
Littleovo pravilo
Markoljev lanac(skiciraj i objasni)
26. Skicirajte Markovljev lanac gdje stanja predstavljaju broj poslova u sustavu. Sustav ima
Poissonovu razdiobu. To si nađite u slajdovima
27. U kojem slučaju se može dozvoliti veliki faktor iskorištenja?
Kada su trenutci dolaska i trajanja poslova deterministički (daju se odrediti i stalno su isti)
U Determinističkom, ako trenuci dolazaka poslova i trajanje obrade odgovaraju determinističkoj
raspodjeli, inače dolazi do zagušenja.
28. O čemu ovisi parametar β?
O vrsti posla, o poslužitelju
29. Koja je zadnja aktivnost unutar monitorske funkcije?
Zadnja aktivnost unutar monitorske funkcije je izaći iz monitora ili oslkoboditi dretvu iz reda uvjeta.
16
3. CIKLUS PREDAVANJA
8. POGLAVLJE
1. Gdje se generiraju adrese unutar procesora? OK
U von Neumannovoj arhitekturi računala se sve adrese generiraju unutar procesora, i onda se one
neposredno preko adresnih vodiča dovode do spremnika.
a) adrese instrukcija koje dolaze iz programskog brojila kad se iz radnog spremnika
dohvaćaju instrukcije
b) stogovne adrese koje dolaze iz registra kazaljke stoga kad se adresira stog;
c) adrese operanada i rezultata operacija (adrese podataka), koje se stvaraju na temelju
sadržaja adresnih dijelova instrukcija kad se adresiraju podaci.
2. Na koje segmente se dijeli procesni adresni prostor? (Sumnjivo, ali nisam našao bolji)
Svaki računalni proces ima barem jednu dretvu. Ako se proces sastoji od više dretvi, onda se
spremnički prostor procesa dijeli na dretvene prostore i jedan zajednički prostor u koji mogu pristupiti
sve dretve. Unutar svakog dretvenog podprostora može se prepoznati:
a) kodni ili instrukcijski segment u koji se pohranjuju instrukcije programa ili programski kod,
i adresira se iz programskog brojila;
b) stogovni segment u koji se pohranjuje stog, i adresira se iz registra kazaljke stoga;
c) podatkovni segment u koji se pohranjuju podaci, i cije se adrese stvaraju na temelju
sadrzaja adresnih dijelova instrukcija.
3. Koliko iznosi ukupno trajanje prijenosa podataka između tvrdog diska i RAMa? (THX Daxxx)
I.)trajanje postavljanja glave:
a)trajanje traženja (seek time) – t ubrzavanja ručice glave, gibanje konstantnom
brzinom, t usporavanja, t finog pozicioniranja
b)rotacijsko kašnjenje (avg Tr/2)
II.)trajanje prijenosa podataka – ovisi o brzini prijenosa i količini podataka
Vp=broj_sektora*veličina_sektora/Tr
4. Čime je određeno trajanje prijenosa podataka? FER2
brzinom prijenosa (engl. data transfer rate)
Brzina prijenosa određena je brzinom kojom ispod glave za čitanje ili pisanje promiču bajtovi sektora.
Može se izračunati tako sa se broj sektora na stazi pomnoži s brojem bajtova u sektoru i taj umnožak
podijeli s trajanjem jednog okretaja.
količinom prenešenih podataka
mislim da ovo ne treba dodatno pojasnjavati :)
ponašanjem upravljačkog sklopa diska.
Spremnik upravljačkog sklopa služi kao međuspremnik između radnog spremnika i samog
magnetskog diska. Upravljački sklop obavlja sve detalje komuniciranja s diskom. U njemu se može
obaviti i zaštitno kodiranje odnosno dekodiranje i eventualno ponovno čitanje s diska kako bi se
eliminirale moguće pogreške nastale od trenutnih smetnji. Brzina prijenosa iz upravljačkog sklopa
diska u radni spremnik ovisi i o brzini prijenosa na sabirnici, kao i o trenutnom intenzitetu prometa na
sabirnici.
U najgorem slučaju upravljački sklop može djelovati tako da ukupnom trajanju prijenosa pridonosi
dijelove milisekunde i mi ćemo ga, u pojednostavljenom gledanju, naprosto zanemariti.
17
5. Od čega se sastoji trajanje postavljanja glave?
Trajanje traženja staze (4 komponente: trajanje ubrzavanja ručice glave, kretanje konstantnom
brzinom, trajanje usporavanja i trajanje finog pozicioniranja)
Rotacijsko kašnjenje (čeka se da se nakon postavljanja glave na odabranu stazu ispod glave pojavi
traženi sektor. Max=>ako je traženi sektor taman prolazio ispod glave kad je ona prispjela u stazu;
mora se čekati puni okretaj. Min=>kad se traženi sektor pojavi u trenutku njezina postavljanja na
stazu)
6. Od čega se sastoji trajanje traženja staze? OK
Trajanje traženja staze (seek time, trajanje traženja) se sastoji od:
a) trajanje ubrzavanja ručice glave
b) kretanje konstantnom brzinom
c) trajanje usporavanja
d) trajanje finog podešavanja (pozicioniranaja)
7. Uobičajeno se za vrijeme traženja uzima vrijeme koje je potrebno za prijelaz preko
____trećine_________ ukupnog broja staza. OK
8. Zbog čega nastaje rotacijsko kašnjenje i o čemu ovisi? OK
Rotacijsko kašnjenje nastaje zbog toga što se nakon postavljanja glave na odabranu stazu mora prije
početka prijenosa pričekati da se ispod glave za čitanje pojavi traženi sektor.
Najlošiji slučaj – adresirani sektor je upravo prolazio ispod glave kad je ona prispjela na stazu
Najbolji slučaj – adresirani sektor upravo u trenutku postavljanja glave nailazi ispod glave.
Prosječno – uzimamo vrijednost tih dvaju krajnjih slučajeva i pretpostavljamo da je prosječno
rotacijsko kašnjenje jednako poloviti trajanja jednog okretaja diska – Tr/2.
9. Navedite sadržaj procesnog informacijskog bloka! (THX Daxxx)
Tablice sektora, podaci o smještaju programa u radnom spremniku, opisnici dretvi procesa, opisnik
virtualnog procesnog adresnog prostora.
10. Objasniti statičko i dinamičko raspoređivanje spremnika! OK
Statičko particije su stalne veličine (fixed partitions), program kad je dodjeljen jednoj particiji uvijek je
u toj particiji, i kad je izbačen iz radnog spremnika može se vratiti samo u tu particiju. Nedostatak –
unutarnja i vanjska fragmentacija
Dinamičko program izračunava adrese kao da kreće od 0 (logički adresni prostor), smjestiti će u
radni spremnik koji započinje fizičkom adresom PA, u procesoru iza adresnog međuregistra je jedno
sklopovsko zbrajalo i uz njega registar u koji se zapisuje početna adresa fizičkog adresnog prostora,
'reg' se naziva bazni registar. Programi se slažu jedan iza drugoga. Registar ograde koristi se da
program ne bi zauzeo prostor susjednog programa. Računa se kao OG=PA (početna adresa u
fizičkom adresnom prostoru) + VELIČINA (veličina programa). Ovo rješenje je sklopovsko i registar
ograde se provjerava prije ulaska u radni spremnik. I dalje nedostatak fragmentacija (vanjska) pojava
rupa (kada se neki program makne iz radnog spremnika).
11. Navedite vrste fragmentacije (statičko i dinamičko)! OK
Prilikom statičkog raspoređivanja radnog spremnika javljaju se dvije vrste fragmentacija:
Unutarnja (internal fragmentation) – programi neće biti jednake veličine kao particije te će dijelovi
particija ostati neiskorišteni
Vanjska (external fragmentation) – tijekom rada se može dogoditi da svi procesi čiji su programi
smješteni u istu particiju bivaju blokirani pa ta particija radnog spremnika ostane prazna. Pritom može
postojati više procesa čiji programi čekaju na dodjelu radnog spremnika, ali oni ne mogu biti napunjeni
u radni spremnik jer nisu pripremljeni za tu particiju.
18
Kod dinamičkog raspoređivanja radnog spremnika imamo samo vanjsku fragmentaciju:
Problem fragmentacije spremničkog prostora – tijekom vremena neki procesi završavaju izvođenje i
oslobađaju svoj spremnički prostor. Drugi procesi bivaju blokirani i izbacuju se iz radnog spremnika pa
tako također oslobađaju svoj procesni prostor kako bi načinili mjesta za programe procesa koji se
mogu izvoditi. Ti će se procesi kasnije vratiti u spremnik ali najvjerojatnije na neko drugo mjesto. S
obzirom da veličine programa nisu jednake u spremniku će se nakon nekog vremena između
procesnih adresnih prostora pojaviti prazni dijelovi spremnika koje nazivamo rupama.
12. Kako se može ublažiti problem fragmentacije prilikom dinamičkog dodjeljivanja spremnika,
s obzirom da se ne može se izbjeći? OK
Pri svakom oslobađanju nekog procesnog prostora novonastala rupa spaja s eventualnim susjednim
rupama u novu veću rupu
Pri svakom novom zahtjevu za spremničkim prostorom potraži se najmanja rupa u koju se može
smjestiti novi program
Ako fragmentacija postane prevelika postoji mogućnost da se privremeno obustavi izvođenje dretvi i
presloži programe u kompaktni prostor. Ta se tehnika zove „garbage collection“
13. Navesti i dokazati Knuthovo 50%tno pravilo! OK, izvod – Daxxx fotka, FER2, skripta
U stacionarnom stanju u spremniku postoji broj rupa koji je jednak polovini broja punih blokova.
14. Kad se ustanovi da je fragmentacija prilikom dinamičkog dodjeljivanja spremnika prevelika,
tada se _zaustave se sve dretve, presloži se sve programe u kompaktni prostor, i krene se dalje
(garbage collection)___ . OK
15. Kojim redoslijedom mogu biti smještene stranice logičkog adresnog prostora u okvire
fizičkog spremnika? ??? Ovo sam izvadio sa materijala i nisam našao u skripti
Proizvoljnim redoslijedom.
16. Objasniti preklopni način uporabe spremnika! OK, FER2
Osnovna zamisao je da se program čiji je logički adresni prostor veći od fizičkog spremnika podjeli na
dijelove koji ne moraju istovremeno biti spremljeni u radnu memoriju (fizički spremnik). U radnom
spremniku mora se nalaziti onaj dio programa koji se trenutno izvodi kao i dio podatkovnog prostora
koji te instrukcije adresiraju. Program, treba podijeliti na jedan osnovni dio koji se uvijek nalazi u
radnom spremniku i na dijelove koji se naizmjence smještaju u preostali dio korisničkog dijela fizičkog
spremnika. Zamjenljivi dijelovi programa se u preklopu (engl. overlay) smještaju u radni spremnik pa
taj način nazivamo preklopnim načinom uporabe spremnika.
Programer mora podijeliti program na odgovarajuće dijelove i u osnovni dio programa ugraditi
mehanizme za donošenje odluke o pravodobnom prebacivanju preklopnih dijelova u radni spremnik.
Postupak podjele programa na dijelove i način njihova smještanja u radni spremnik treba
automatizirati, kako bi se olakšala priprema programa i izbjegle pogreške programera.
U današnjim računalnim sustavima upotrebljavaju se procesori s prikladnim spremničkim
međusklopovima koji omogućuju da operacijski sustavi ostvare vrlo djelotvorno gospodarenje
spremničkim prostorom.
17. Kako treba podijeliti program u preklopnom načinu uporabe radnog spremnika? OK
U radnom spremniku mora se nalaziti onaj dio programa koji se trenutno izvodi kao i dio podatkovnog
prostora koji te instrukcije adresiraju. Pritom program, treba podijeliti na jedan osnovni dio koji se
uvijek nalazi u radnom spremniku i na dijelove koji se naizmjence smještaju u preostali dio korisničkog
dijela fizičkog spremnika.
19
18. Kako se dijeli logički adresni prostor, a kako fizički? OK
Logički adresni prostor dijelimo na stranice, a fizički adresni prostor dijelimo na okvire.
19. O čemu ovisi veličina logičkog adresnog prostora, a o čemu veličina fizičkog adresnog
prostora? OK
Veličina logičkog adresnog prostora ovisi o arhitekturi procesora (32 bitna, 64 bitna…), a
veličina fizičkog adresnog prostora o količini radne memorije (RAMa).
20. Čemu sluzi tablica prevođenja, i od kojih se elemenata sastoji? (THX Daxxx)
Tablica prevođenja je sastavni dio spremničkog međusklopa u kojoj se vodi evidencijao tome u kojem
je okviru smještena pojedina stranica (za više vidi TLB kod Intel x86). Kaže daxxx od redaka (za
svaku stranicu jedan redak) u kojima se pohranjuje broj okvira u kojem se nalazi (ako je in) te
dodatnog bita prisutnosti za svaki redak]
21. U čemu se razlikuju prekidi izazvani zbog promašaja stranice od ostalih vrsta prekida? OK
Prekid uslijed promašaja stanice dogodio se za vrijeme izvođenja instrukcije, a ne na kraju instrukcije.
Stoga se instrukcija koja je izazvala prekid mora ponoviti. Da bismo ponovili instrukciju, moramo znati
sadržaje svih registara prije izvođenja te instrukcije. Zbog toga procesori predviđeni za ostvarivanje
virtualnog spremnika imaju posebne skrivene kopije registara u kojima se čuvaju nepromijenjene
vrijednosti registara tijekom izvođenja cijele instrukcije. Vrijednosti tih registara se obnavljaju tek na
kraju izvođenja svake instrukcije.
22. Čemu služi posmačni registar povijesti? OK
Dio praktične aproksimacije LRU strategije zamjene stranica. U tablicu stranica dodani su posmačni
registri u koje možemo posmaknuti bitove pristupa. Dio operacijskog sustava za gospodarenje
spremničkim prostorom djeluje na sljedeći način: Pri punjenju stranice u neki okvir briše se njezin bit
pristupa i pripadni posmačni registar. Prekid od sata (periodno) posmakne sve bitove pristupa u
registre i zatim ih izbriše. Ponovni pristup (čitanje ili pisanje) do stranice postavit će opet njezin bit
pristupa u 1. Nakon nekoliko perioda otkucaja sata, sadržaj posmačnih registara može se pročitati kao
binarni broj. Manji broj pokazuje da se u stranicu dulje vremena nije pristupalo. Kada se pojavi potreba
za izbacivanjem stranice izbacuje se ona sa najmanjim brojem (ili jedna iz razreda sa jednakim
najmanjim brojevima).
23. Opisati satni algoritam. OK
Satni algoritam je inačica LRU strategije. Upotrebljava se u UNIX i Windows NT serijama operacijskih
sustava. Postupak djeluje na sljedeći način – sve se stranice u listu svrstavaju po redu prispijeća. Lista
se obilazi kružno posebnom kazaljkom (kada dođe do kraja kazaljka se vraća na početak liste – otuda
i naziv postupka). Kada se pojavi potreba za praznim okvirom izbacit će se stranica na koju pokazuje
kazaljka ako je njezina zastavica A (zastavica pristupa) jednaka nuli. Stranica će se preskočiti ako je
vrijednost zastavice A jedan, ali će se pritom njezina vrijednost promijeniti u 0. Kazaljka se pomiče za
po jedno mjesto dok ne naiđe na stranicu sa A jednakoj nuli. Ako kazaljka kružno obiđe cijelu listu
pronalazeći sve same jedinice ona će ih sve obrisati te izbaciti stranicu s koje je započela obilazak.
20
28. Kakva je sklopovska potpora za straničenje u Intel x86 arhitekturi? Također koliko pristupa
radnom spremniku je potrebno ako je stranica navedena u TLB i ako stranica nije navedena u
TLB. (THX Daxxx) i moja i Daxxxova preporuka – učite to iz skripte!
Unutar procesora – CR3 registar – kazaljka na tablicu prevođenja (svaki proces ima svoju tablicu)
Tablica prevođenja – dvorazinska
a) direktorij stranica – 1024 kazaljke po 32 bita pokazuju na stranice pod b)
b) tablice stranica – 1024 riječi po 32 bita
AL (logička adresa):
gornjih 10b izabire iz a) kazaljku na jednu od tablica stranica
sljedećih 10b iz te tablice odabire adresu stranice
donjih 12b ide izravno u donjih 12 AF (fizičke adrese.)
Tako odabranih 32b à 1 od registara TLBa (priručni međuspremnik za prevođenje adresa)
TLB – gornjih 20b ide u gornjih 20b AF (sadrži i dodatni 20b registru koji ide gornjih 20b AL, za
usporedbu s novom adresom ubrzanje.)
9. POGLAVLJE
24. Što sačinjava opisnik datoteke? OK
Naziv datoteke, tip datoteke, lozinka, ime vlasnika, pravo pristupa, vrijeme stvaranja, vrijeme zadnje
uporabe, ime posljednjeg korisnika, opis smještaja datoteke
25. Što sačinjava datotečnu tablicu? OK
Veličina diska (particije), količina slobodnog prostora, informacije o slobodnom prostoru (pozicija i sl)
opisnici datoteke.
2. Na koji način je opis smještaja pohranjen u NTFS, a na koji u UNIX sustavu? (THX Daxxx)
NTFS
diskovni prostor dodjeljuje se po skupinama sektora (1,2,4,8)/cluster;
referenca na disk uporabom LCN (r.br.clustera);
postoji datoteka MFT koja sadrži opisnik svake datoteke (1 zapis je veličine 1 clustera ~4KB);
male datoteke se cijele smještaju unutar MFT zapisa;
veće datoteke – zapis sadrži indekse clustera (+ dodatna potrebna proširenja);
datoteka se dijeli na „virtualne skupine“ („stranice“ jednake veličini „okvira“ (clustera))
– r.br.str. = VCN;
UNIX
13 kazaljki:
10 neposrednih pokazuju na prvih 10 sektora [dat. do 10KB]
1 jednostruko indirektna pokazuje na sektor s idućih 256 kazaljki [do 266KB]
1 dvostruko indirektna pokazuje na sektor s kazaljkama na 256 sektora od kojih svaki ima 256
kazaljki () [do 64MB]
1 trostruko indirektna kao gore samo još jedan stupanj indirekcije (256x256x256) [do 16GB]
21
10. POGLAVLJE
26. Po kojim pravilima djeluje globalni logički sat? OK
‐ proces Pi povećava svoj logički sat Ci između svaka svoja dva događaja
‐ kada proces Pi šalje poruku m on u nju pridodaje vremensku oznaku Tm=Ci
‐ kada proces Pj primi poruku on postavlja u svoj logički sat Cj vrijednost koja je veća od
njegove prethodne vrijednosti i veća od prispjele vremenske oznake Tm.
27. Zašto izgladnjivanje nije moguće kod Ricarta&Agrawala te kod Lamporta? FER2 – provjeriti
Zbog globalnog logičkog sata.
PROTOKOLI
‐ slajdovi pred sam kraj (konkretno počinje na 1051) pa to lijepo proučite.
Besramno pokradeno od Daxxxa:
1. Centralizirani protokol
Jedna od čvorova odgovoran za ostvarenje međusobnog isključivanja, u njemu su svi podaci, on daje
dozvole za ulazak u KO
Pi čija dretva želi u KO šalje zahtjev(i) centralnom čvoru (pa čeka odgovor);
c.č. prihvaća zahtjev i šalje odgovor(i) čvoru Pi kad ovaj smije ući u KO;
nakon KO dretva šalje izlaz(i) c.č.u;
(dozvola ulaska ~ značka)
2. Protokol sa putujućom značkom
Jedna značka kao poruka putuje kroz čvorove;
kad prispije u čvor Pi, on:
a) zadrži je ako želi u KO i šalje dalje po završetku
b) šalje dalje ako ne želi u KO
3. Lamportov protokol
(nabrojat ću pravila)
a) Pi zahtjeva ulazak u KO – stavlja poruku zahtjev(i,T(i)) u svoj red, šalje je svim procesima
b) kad Pj primi zahtjev(i,T(i)) – uskladi svoj Cj, stavlja poruku u svoj red čekanja, šalje
odgovor(i,T(j)) procesu Pi
c) )Pi smije u KO – kad je njegov zahtjev na početku reda, te kad je primio odgovore (od svih
ostalih procesa) čije su vremenske oznake >T(i)
d) Pi izlazi iz KO – odstrani iz svog reda zahtjev(i,T(i)), pošalje svim ostalima izlazak(i,T(i)*)
[!! T(i)* je vrijednost prvotno poslanog zahtjeva]
e) Pj primi izlazak(i,T(i)) – iz svog reda izbacuje zahtjev(i,T(i))
3x(n1) poruka za inout KO
4. Protokol RA
Procesi šalju odgovore samo kad ustanove da ne žele u KO ili kad nemaju pravo prvenstva (to je bitna
razlika od Lamporta, kaže daxxx da mu se n da opet ista pravila pisat J)
2x(n1) poruka za inout KO (učinkovitiji od Lamporta)
5. Lokalni i globalni logički sat
Lokalni logički sat Ci – brojilo, povećava vrijednost prilikom svakog karakterističnog događaja u Pi
‐ Jednoznačno utvrđivanje redoslijeda događaja unutar 1 procesa
‐ a àb ako Ci(a) < Ci(b)
Globalni logički sat
‐ kada Pi šalje poruku m, uz nju pridodaje vremensku oznaku Tm = Ci
‐ kada Pj primi m, postavlja svoj Cj na vrijednost veću od prethodne i veću
od pristigle Tm
‐ a ==>b ako Ci(a)<Cj(b) || [ Ci(a)=Cj(b)) && i<j ]
22
Lana Jelusić, Skripta OS drugi kolokvij teorija i zadaci
TEORIJA
2. Koliko iznosi ukupno trajanje prijenosa podataka izmeĊu tvrdog diska i RAM-a ?
12. U ĉemu se razlikuju prekidi izazvani zbog promašaja stranice od ostalih vrsta
prekida?
Prekid uslijed promašaja stanice dogodio se za vrijeme izvođenja instrukcije, a ne na
kraju instrukcije.
Stoga se instrukcija koja je izazvala prekid mora ponoviti. Da bismo ponovili instrukci
ju, moramo znati sadržaje svih registara prije izvođenja te instrukcije.
Zbog toga procesori predviđeni za ostvarivanje virtualnog spremnika imaju posebne
skrivene kopije registara u kojima se čuvaju nepromijenjene vrijednosti registara
tijekom izvođenja cijele instrukcije. Vrijednosti tih registara se obnavljaju tek na kraju iz
vođenja svake instrukcije.
Lana Jelusić, Skripta OS drugi kolokvij teorija i zadaci
17. Na koji naĉin je opis smještaja pohranjen u NTFS, a na koji u UNIX sustavu?
NTFS
diskovni prostor dodjeljuje se po skupinama sektora (1,2,4,8)/cluster;
referenca na disk uporabom LCN (r.br.clustera);
postoji datoteka MFT koja sadrži opisnik svake datoteke (1 zapis je veličine 1 clustera
~4KB);
male datoteke se cijele smještaju unutar MFT zapisa;
veće datoteke – zapis sadrži indekse clustera (+ dodatna potrebna proširenja);
datoteka se dijeli na „virtualne skupine“ („stranice“ jednake veličini „okvira“ (clustera))
– r.br.str. = VCN;
UNIX
13 kazaljki:
10 neposrednih pokazuju na prvih 10 sektora [dat. do 10KB]
1 jednostruko indirektna pokazuje na sektor s idućih 256 kazaljki [do 266KB]
1 dvostruko indirektna pokazuje na sektor s kazaljkama na 256 sektora od kojih svaki ima
256 kazaljki () [do 64MB]
1 trostruko indirektna kao gore samo još jedan stupanj indirekcije (256x256x256) [do
16GB]
Lana Jelusić, Skripta OS drugi kolokvij teorija i zadaci
VAŽNIJI POJMOVI
staza
‐ vrlo uski prsten ploče kojeg čita glava
cilindar
‐ staze jednakih polumjera svih diskova; leže na zamišljenom plaštu valjka; ne može
sepročitati cijeli cilindar istovremeno, nego se mora čitati staza po staza iz čega proizlazi da
je vrijeme čitanja cilindra s N staza jednako N*Tr pri čemu je Tr vrijeme potrebno
za jedan okretaj diska
sektor
‐ dio staze; svi su sektori jednake veličine; svaki sektor ima jedinstvenu adresu
koji se računa iz rednog broja ploče, rednog broja staze na ploči i rednog broja sektora na
stazi
blokovi
‐ skupine bajtova koji se mogu adresirati, a sastoje se od jednog ili više sektora
rotacijsko kašnjenje
‐ vremenski interval između postavljanja glave na željenu stazu i početka
čitanja kojemu je uzrok to što traženi sektor mora doputovati do glave; najmanje vrijeme
kašnjenja je 0 i do njega dolazi kada je upravo taj sektor točno ispod glave, a najveće je oko
Tr kada se mora čekati cijeli krug jer je traženi sektor baš netom otišao; u proračunima se
često uzima kao prosječno vrijeme kašnjenja Tr/2
procesni informacijski blok
‐ struktura podataka za svaki proces u kojoj se nalaze sve informacije važne za odvija
nje tog procesa (tablice sektora u kojima je program procesa pohranjen na disku,
podatci o smještanju programa u radnom spremniku i slično)
apsolutni oblik zapisa programa
‐ u okviru instrukcija programa zapisane su stvarne fizičke adrese
relativni oblik zapisa programa
‐ u okviru instrukcija zapisane su adrese u odnosu na početnu adresu; za takve
programe kompilator generira oznake za relativne adrese
Lana Jelusić, Skripta OS drugi kolokvij teorija i zadaci
stalne particije
‐ podjela spremnika na dijelove fiksne veličine u koje se smiještaju programi; za
preseljenje u novu particiju generirati novi apsolutni kod programa; problemi:
unutarnja i vanjska fragmentacija
unutarnja fragmentacija
‐ particije u kojima su programi manje veličine od njih samih ostaju
nepotpuno iskorištene
vanjska fragmentacija
‐ svaki program je pripreljmen za točno određenu particiju; ako u svi procesi
neke particije budu blokirani, particija zjapi prazna i u nju se ne može ugurati nitko tko
jadan čeka jer je pripremljen za neku drugu particiju
logiĉki adresni prostor ‐ prostor kojeg adresiraju relativne adrese, dakle tako
izračunate kao da je početna adresa programa (PA) jedanaka nuli
fiziĉki adresni prostor ‐ baš onaj pravi OPERACIJSKI
20. Mogu li stranice logičkog adresnog prostora biti smještene u okvire fizičkog spremnika
proizvoljnim redoslijedom?
Mogu. Kako bi se pri dodjeli okvira fizičkog spremnika izbjegao problem fragmentacije, osnovna
postavka straničenja svodi se na to da stranice logičkog adresnog prostora mogu biti smještene u
okvire fizičkog spremnika proizvoljnim redoslijedom.
Iz devetog poglavlja
2. Gdje su pohranjeni:
a) opis smještaja datoteke – u opisniku datoteke
b) opisnik datoteke – u datotečnoj tablici
c) datotečna tablica – u sektorima ili nakupinama sektora na disku (na nultoj stazi na disku)
ZADACI
1.Zadatak:
Lana Jelusić, Skripta OS drugi kolokvij teorija i zadaci
2.Zadatak:
Lana Jelusić, Skripta OS drugi kolokvij teorija i zadaci
3.Zadatak:
Lana Jelusić, Skripta OS drugi kolokvij teorija i zadaci
Lana Jelusić, Skripta OS drugi kolokvij teorija i zadaci
4.Zadatak:
Lana Jelusić, Skripta OS drugi kolokvij teorija i zadaci
Satni algoritam
Lana Jelusić, Skripta OS drugi kolokvij teorija i zadaci
Sektori klasteri
Lana Jelusić, Skripta OS drugi kolokvij teorija i zadaci
Kazaljke
Lana Jelusić, Skripta OS drugi kolokvij teorija i zadaci
H2O
Lana Jelusić, Skripta OS drugi kolokvij teorija i zadaci
Lana Jelusić, Skripta OS drugi kolokvij teorija i zadaci
REGISTAR
ADRESE REGISTAR
SADRŽAJA
ADRESNI DIO m = 32
SABIRNICE
PODATKOVNI
n = 32
DIO SABIRNICE
UPRAVLJAČKI k
DIO SABIRNICE
PROCESOR
ADRESNI PODATKOVNI
MEĐUREGISTAR MEĐUREGISTAR
m predstavlja broj vodiča u adresnoj sabirnici, n broj vodiča u podatkovnoj, a k broj
vodiča u upravljačkoj sabirnici.
ponavljati {
dohvati iz spremnika instrukciju sa adrese na koju pokazuje programsko brojilo (PC);
dekodiraj instrukciju i odredi operaciju koju treba izvesti;
uvećaj programsko brojilo za 1, na način da pokazuje na sljedeću instrukciju;
odrediti odakle dolaze operandi i kamo se pohranjuju rezultati operacije nad njima;
operande dovesti na ALU (aritmetičko-logičku jedinicu) te izvesti zadanu operaciju;
pohraniti rezultat na odredište;
} sve dok je (procesor uključen);
8. Što je program?
9. Što je proces?
b) S mogućnošću prekidanja:
ponavljati {
dohvati iz spremnika instrukciju sa adrese na koju pokazuje programsko brojilo (PC);
dekodiraj instrukciju i odredi operaciju koju treba izvesti;
uvećaj programsko brojilo za 1, na način da pokazuje na sljedeću instrukciju;
odrediti odakle dolaze operandi i kamo se pohranjuju rezultati operacije nad njima;
operande dovesti na ALU (aritmetičko-logičku jedinicu) te izvesti zadanu operaciju;
pohraniti rezultat na odredište;
ako (došlo_do_prekida) {
1. Onemogući daljnje prekide;
2. Prebaci se u sustavski način rada;
3. Prebacuje se adresiranje na sustavski adresni prostor;
4. Aktivira se sustavski pokazivač stoga;
5. Pohranjuje se sadržaj PC-a u sustavski stog;
6. U PC se unosi adresa potprograma za obradu prekida, nakon čega započinje i
njegovo izvođenje
}
} sve dok je (procesor uključen);
1. Obnavlja se kontekst,
2. Prelazi se u korisnički način rada,
a) Adresiranje se prebacuje na korisnički adresni prostor,
b) Aktivira se korisnički pokazivač stoga (USP – User Stack Pointer),
3. Omogućavaju se daljnji prekidi,
4. U programsko brojilo unosi se povratna adresa (odnosno, adresa nakon koje je
procesor pokrenuo prekidnu rutinu), kako bi se omogućilo daljnje izvođenje
prekinutog programa.
Nije izravno spojen, nego UI uređaj ima određeni elektronički sklop pomoću kojeg
komunicira sa sabirnicom. Taj sklop ima 2 sučelja; jedno prema sabirnici, a drugo prema
samom uređaju. Na sljedećoj skici prikazan je detaljniji pogled na pristupni sklop:
podatkovni registar
SPREMNIK
registar stanja
adrese
podaci
upravljanje
PROCESOR SKLOP ZA PR RS
PREPOZNAVANJE
ADRESE
UPRAVLJAČKI
od naprave ili DIO PRISTUPA
prema napravi
Radno čekanje je izvođenje procesa koji ne radi ništa osim provjeravanja stanja
zastavice za prekid. Dakle, sve dok je zastavica u stanju 0, procesor je u stanju radnog
čekanja.
UPISATI
ZASTAVICA
čitanje PR-a
21. Zašto se programsko brojilo tretira zasebno prilikom obrade prekida?
Mora se tretirati zasebno, budući da je u trenutku upisivanja adrese u PC, već gotovo.
Odnosno, procesor odmah skače na instrukciju čija se adresa nalazi u PC-u. Kada bi se,
primjerice, obnovom konteksta, obnovio i sadržaj programskog brojila, prije nego što se
procesor prebaci u korisnički način rada, došlo bi do kaosa. Programsko brojilo je, stoga,
na neki način jedini usmjerivač rada procesora prilikom obrade prekida, te ga se radi toga
mora posebno tretirati.
22. Napisati što procesor trajno radi ako omogućuje prekidni rad?
Sklop za prihvat prekida sastavni je dio procesora, na kojeg direktno putem sabirnica
dolaze zahtjevi za prekidima. Tada sklop prema procesoru propušta samo onaj prekidni
signal koji ima veći prioritet od dretve koju procesor trenutno izvodi. PROFESOROVA
INTUITIVNA DEFINICIJA: Sklop za prihvat prekida nekad ga samo prihvaća, nekad ga
prekida, a nekad ga i pamti.
Višekorisnički rad (multiuser system) omogućuje većem broju korisnika obavljanje funkcija na
jednom operacijskom sustavu. Važno je napomenuti da svaki od njih može koristiti funkciju
višezadaćnosti.
Sve dretve istog procesa koriste jednake računalne procese, odnosno, nema
restrikcija u pogledu dostupnosti resursa. Drugim riječima, dretve istog procesa dijele sve
računalne resurse.
INSTRUKCIJE
STOG
Kada ovaj uvjet vrijedi za dvije dretve, tada su ta dva zadatka nezavisna.
SVEUČILIŠTE U ZAGREBU
FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA
Zavod za elektroniku, mikroelektroniku,
računalne i inteligentne sustave
Operacijski sustavi
Zagreb, 2013.
1. Uvod
[dodatno]
Računalni sustav
• korisnik
• programi
• operacijski sustav
• sklopovlje
Gornji elementi se mogu promatrati i kao slojevi, prema slici 1.3.
[dodatno]
Svrha/uloga OS-a
• olakšavanje uporabe računala (skriva detalje)
• djelotvorno (učinkovito) korištenje svih dijelova računala (ima upravljačke programe)
• višeprogramski rad
Pitanja za vježbu 1
Dijelovi računala
• funkcijski model: ulazni dio, izlazni dio, radni spremnik, AL jedinka, upravljačka jedinka
• sabirnički model: procesor, sabirnica, spremnik, UI pristupni sklopovi
[dodatno]
Von Neumannov model računala – instrukcije i podaci u istom spremniku (dohvaćaju se preko
zajedničke sabirnice
Druga arhitektura = Harvardska arhitektura – instrukcije odvojene od podataka i dohvaćaju se za-
sebnom sabirnicom, dok se podaci dohvaćaju svojom. L1 priručni spremnik procesora je uglavnom
izveden Harvardskom arhitekurom (podijeljen na dio za instrukcije i dio za podatke).
Sabirnički ciklus
• prijenos jednog podatka od procesora do spremnika (ili pristupnog sklopa) ili obratno (do pro-
cesora)
[dodatno]
[dodatno]
Zbog različitih brzina komponenata računalnog sustava, stvarne arhitekture imaju više sabirnica
kojima su one povezane.
2.2. Kratki opis komponenata računala 9
Spremnik
• spaja se na sabirnicu s svojim med̄uregistrima i poslužuje zahtjeve za čitanje i pisanje
Procesor
• aritmetičko-logička (AL) jedinka
• registri opće namjene (npr. R0-R7)
• programsko brojilo PC
• kazaljka stoga SP
• registar stanja SR
• upravljačka jedinka
– instrukcijski registar
– upravljački signali
• adresni med̄uregistar
• podatkovni med̄uregistar
[dodatno]
ponavljaj {
dohvati instrukciju na koju pokazuje PC;
povećaj PC tako da pokazuje na iduću instrukciju;
dekodiraj instrukciju;
obavi operaciju zadanu instrukcijskim kodom
( ovisi o instrukciji, npr. za AL instrukciju može biti:
dohvati operande, obavi AL, spremi rezultat )
}
dok je procesor uključen;
[dodatno]
ARM procesori koriste poseban registar (LR=R14) za pohranu povratne adrese; med̄utim, radi
ugnježd̄avanja programski je potrebno na početku funkcije pohraniti taj registar na stog (čime se
postiže sličan učinak kao i gornji prikaz poziva i povratka iz potrpograma koji je uobičajen za većinu
arhitektura)
U nastavku se koristi asembler sličan ARM-ovom, uz neke razlike (primjerice poziv i povratak iz
potprograma nije kao kod ARMa već uobičajeni).
; Računanje faktorijela
; zadano: N, pretpostavlja se N > 0 !
; rezultat spremiti u: REZ
PETLJA:
SUB R1, 1 ; R1 = R1 - 1
CMP R1, 1 ; usporedi R1 i 1
BEQ KRAJ ; ako je R1 == 1 skoči na KRAJ
KRAJ:
STR R0, REZ ; spremi R0 u REZ
...
MNOZI:
LDR R2, [SP+4] ; dohvati parametar
MUL R0, R2; R0 = R0 * R2;
RET
2.3. Instrukcijska dretva 11
Program
• niz instrukcija (i podataka) koji opisuju kako nešto napraviti
• program = slijed instrukcija u spremniku (“prostorno povezanih”)
• nalazi se u datoteci, na disku, ili u spremniku
Proces
• nastaje pokretanjem programa
• traži i zauzima sredstva sustava (spremnik, procesorsko vrijeme, naprave)
[dodatno]
Dretva
• dretva = slijed instrukcija u izvod̄enju (“povezanih vremenom izvod̄enja”)
Dretva za svoje izvod̄enje treba:
• instrukcije, podatke, stog => sve u spremniku
• registre procesora => u procesoru = kontekst dretve
2.3. Instrukcijska dretva 13
[dodatno]
Pitanja za vježbu 2
[dodatno]
Primjer naprava: zaslon (monitor), tipkovnica, miš, zvučnici, disk, mreža, grafička kartica, . . .
Sve osim procesora i spremnika (i sabirnice) su naprave (u našim razmatranjima rada sustava i
upravljanja).
Zato se naprave ne spajaju izravno na (glavnu) sabirnicu, već se spajaju preko med̄usklopa –
pristupnog sklopa
Slika 3.3. Primjer sinkronizacije izmed̄u naprave, pristupnog sklopa i procesora (3.4.)
3.2. Korištenje UI naprava radnim čekanjem 19
...
ADR R0, RS //adresa registra stanja u R0
ADR R2, PR //adresa podatkovnog registra u R2
petlja: \
LDR R1, [R0] ;pročitaj registar stanja s ZASTAVICA-om | radno
CMP R1, 0 | čekanje
BEQ petlja /
LDR R1, [R2] // pročitaj znak iz pristupnog sklopa u registar R1
...//obrada pročitanog podatka, npr. samo spremanje u spremnik
[dodatno]
Prekidni signal dovodi se preko zajedničkog vodiča do procesora (npr. spojeni ILI)
[dodatno]
Stoga, procesor može prihvatiti prekidni signal (za 1.) ili ga privremeno ignorirati (za 2.)
Prekidni potprogram
{
pohrani kontekst na sustavski stog (osim PC koji je već tamo);
ispitnim lancem odredi uzrok prekida (ispitujući RS pristupnih sklopova) => I;
signaliziraj napravi da je njen prekid prihvaćen (te da spusti prekidni signal);
instrukcija: vrati_se_u_prekinutu_dretvu
{
obnovi PC i SR sa sustavskog stoga;
prebaci (vrati) se u način rada prekinute dretve (definiran u SR);
dozvoli prekidanje;
}
[dodatno]
Obnavljanje registra stanja vraća dretvu u prethodni način rada (korisnički, ako se vraćamo u dretvu
ili sustavski ako se vraćamo u obradu nekog prekinutog prekida).
obrada_prekida_naprave_I
{
dohvati PR_I;
obradi podatak; // "svašta" ili samo pohrana negdje u spremnik
a)
Podatkovna struktura:
• TEKUĆI_PRIORITET – prioritet tekućeg posla, 0 za dretvu, I za obradu prekida naprave rednog
broja (prioriteta) I
• OZNAKA_ČEKANJA[N] – polje od N elemenata (N je najveći prioritet)
– označava da li dotična naprava čeka na početak obrade (zbog prioritetnijih pr.)
• KON[N] – rezervirano mjesto u spremniku za pohranu konteksta dretve pri obradi pojedinog
prekida; uz kontekst sprema se i tekući prioritet
prekidni potprogram {
pohrani kontekst na sustavski stog (osim PC i SR);
odredi uzrok prekida (dohvati KZ) => i;
signaliziraj napravi da je njen prekid prihvaćen (te da spusti prekidni signal);
pohrani TP na sustavski stog; //može i bez, uz *
TP[i] = 1;
dozvoli prekidanje;
obradi prekid (i);
zabrani prekidanje;
Sa sklopom za prihvat prekida izbjegavaju se nepotrebna prekidanja => propuštaju se samo priori-
tetniji zahtjevi!
3.3. Prekidni rad 25
a) [u idealnom slučaju]
U idealnom slučaju zanemarujemo trajanje kućanskih poslova, a prekidi se obrad̄uju prema
prioritetu (nakon što se pojavi zahtjev za odgovarajućim prekidom).
3.3. Prekidni rad 27
Prihvat prekida (PP) i povratak iz prekida (PP) jednako traju jer se te operacije svode na po-
hranu konteksta prekinute dretve (ili obrade manjeg prioriteta) te obnovu konteksta (na kraju
obrade prekida)
Zanimljivi trenuci:
3 ms: P1 ne prekida obradu P2
4 ms: P3 prekida obradu P2 jer je prioritetniji
7,5 ms: P3 završava obnavlja se kontekst od P2 koji još nije gotov
Naglasiti: manje kućanskih poslova jer nam sklop pomaže. Zato i PP traje kraće nego u b)
slučaju, tj. sustav je efikasniji od b) i stoga što ne propušta manje prioritetnije zahtjeve do
procesora dok on radi prioritetnije obrade.
Općenito:
U ovom zadatku se koriste mnogo veća vremena za kućanske poslove pri prihvatu prekida nego
li je to u stvarnim sustavima u odnosu na trajanja obrada kako bi trajanje obrade prekida mogli
lakše prikazati na slikama.
30 3. Obavljanje ulazno-izlaznih operacija, prekidni rad
• PR – podatkovni registar
• RS – registar stanja
• AR – adresni registar – od kuda/kamo se učitavaju/pohranjuju podaci
• BR – brojilo podataka – koliko podataka još za prenijeti
• UI pristupni sklop sam prenosi podatak iz PR u spremnik ili obratno
• Za korištenje sabirnice traži dozvolu procesora
• Po zahtjevu procesor prepušta idući sabirnički ciklus zahtjevu (pretpostavka)
dok je ( BR > 0 ) {
čekaj na podatak VJ; //ili na spremnost VJ za prihvat novog podatka
zatraži sabirnicu i čekaj na dodjelu sabirnice; //dvožično rukovanje!
{AR, PR} na sabirnicu (+čitaj/piši signal);
AR++;
BR--;
}
postavi signal PREKID;
[dodatno]
a) neka procesor ima 10 MIPS-a te neka u sekundi prosječno treba prenijeti 1000 znakova
• radno čekanje => 100% procesorskog vremena, 10 korisnih instrukcija po prijenosu
– 1000 (zn. u 1 s) * 10 (instr.) / 10 000 000 (instr./s) = 0,01% korisnog rada
– (ili 10 / 10 000 = 0,01% korisnog rada)
• prekidi: ∼200 instr. po prekidu => 1000 * 200 / 10 000 000 = 2% => 98% ostane!
– (ili 200 / 10 000 = 2%, 98% ostaje)
• DMA: 1000 / 10 000 000 = 0,01 % => 99,99 % ostane! (ne računajući obradu prekida!)
– (ili 1 / 10 000 = 0.01%, 99.99% ostaje)
b) isti procesor, maksimalna brzina prijenosa (jako brza UI)
• radno čekanje: 10 000 000 / 10 = 1000 000 znakova/s uz 100% opt. procesora
• prekidi: 10 000 000 / 200 = 50 000 znakova/s uz 100% opt. procesora
• DMA: 10 000 000 / 2 = 5000 000 znakova/s uz 50% opt. procesora (svaki 2.s.c.)
32 3. Obavljanje ulazno-izlaznih operacija, prekidni rad
T – traženje sabirnice (BREQ – Bus Request) D – dodjela sabirnice (BACK – Bus Acknowledge)
Pojmovi:
• simetrični više procesorski sustavi – SMP
• homogeni — II —
• NUMA – Non-Uniform Memory Access
3.7. Prekidi u “stvarnim sustavima”? (informativno) 33
Pitanja za vježbu 3
[dodatno]
Nekada: proces je program u izvod̄enju. Danas ova definicija nije (uvijek) ispravna.
Dretva je niz instrukcija koji se izvodi. (Neispravno je reći da je dretva program koji se izvodi, jer se
program može sastojati od više dretvi.)
Proces se sastoji od barem jedne dretve
[dodatno]
Prije: proces se sastojao od samo jedne dretve (pa se pojam dretve nije koristio!)
LWP:
42 4. Med̄usobno isključivanje u višedretvenim sustavima
• laki (engl. lightweight) proces, virtualni procesor, ono što OS vidi kao dretvu
• u većini slučajeva LWP je isto što i dretva procesa
[dodatno]
[dodatno]
Med̄utim ima i iznimaka kada se nekim dretvama upravlja unutar procesa – OS ih ne vidi sve (npr.
fiber ).
Korist:
• višezadaćnosti – više poslova paralelno
• paralelno koristiti elemente računala
– iskoristiti višeprocesorske sustave – intenzivni računalni problemi (CPU) koji se daju rastaviti
na (bar djelomično) neovisne dijelove
– dok jedna dretva čeka dovršetak UI operacije (naprava “radi/izvodi” dretvu ), procesor izvodi
drugu dretvu
• asinkrono upravljanje dogad̄ajima, npr. Web poslužitelj na novi zahtjev stvara novu dretvu koja
će poslužiti zahtjev (ili bira postojeću) (obrada prekida: IST, bottom half)
• složeni (kompleksni sustavi) – principom “podijeli i vladaj” smanjujemo složenost odvajanjem
zasebnih aktivnosti u zasebne dretve (ali oprezno!)
44 4. Med̄usobno isključivanje u višedretvenim sustavima
Ako su podzadaci zavisni tada se mora utvrditi redoslijed izvod̄enja njihovih dretvi.
Ako su podzadaci nezavisni tada se njihove dretve mogu se izvoditi proizvoljnim redoslijedom, pa
i paralelno!
46 4. Med̄usobno isključivanje u višedretvenim sustavima
[dodatno]
Često kada dretve koriste zajednička sredstva nije potrebno utvrd̄ivati redoslijed njihova izvod̄enja,
već samo osigurati da takva korištenja budu pojedinačna – da se promjene ne obavljaju paralelno.
Više o tome kasnije (u odjeljku o med̄usobnom isključivanju).
4.3. Model višedretvenosti 47
Z1 Z1 Z1 Z1 Z1 Z1 Z1
M1 D D D K
M2 K K D D
M3 K D K K
M4 K D
M5
[dodatno]
Da li može biti prazan redak (kao M5) – može! Da li može biti prazan stupac – može!
Da li može biti u istom stupcu više D i/ili više K – može!!
Da li može biti u nekom stupcu samo K ili samo D – pogad̄ate: može!!
Odrediti maksimalno paralelni sustav zadataka, uzimajući u obzir njihov med̄usobni odnos u lancu
i domene i kodomene.
Grafičko rješenje (napomena: problem se može rješiti i s relacijama Zi < Zj ; pogledati poglavlje
4.2.3. u knjizi):
[dodatno]
Npr. ako više dretvi povećava neki brojač kodom brojač=brojač+dodano; rezultat može biti krivi
zato jer su potrebne četiri instrukcije (dohvati brojač, dohvati dodano, zbroji, pohrani) koje mogu
biti prekinute ili izvod̄ene paralelno.
Kod dretve se stoga može podijeliti na kritične odsječke i nekritične odsječke, primjerice:
dretva_x
{
...
nekritični odsječak;
kritični odsječak;
nekritični odsječak;
kritični odsječak;
...
}
Radi jednostavnosti u nastavku ćemo razmatrati cikličke dretve, koje imaju samo jedan kritičan
odsječak prema:
ciklička_dretva
{
ponavljaj {
kritični odsječak;
nekritični odsječak;
}
do zauvijek;
}
U nekom poslužitelju dretve koje poslužuju zahtjeve će raditi otprilike slijedeće:
ciklička_dretva
{
ponavljaj {
ud̄i_u_KO();
kritični odsječak;
izad̄i_iz_KO();
nekritični odsječak;
}
do zauvijek;
}
ud̄i_u_KO () izad̄i_iz_KO ()
{ {
dok je ( ZASTAVICA == 1 ) ZASTAVICA = 0;
; //ništa, ponovno pročitaj ZASTAVICU; }
ZASTAVICA = 1;
}
U asembleru ud̄i_u_KO:
ud̄i_u_KO:
ADR R0, ZASTAVICA;
petlja:
LDR R1, [R0] //problem ako ovo ide paralelno, svi čitaju 0!
CMP R1, 1
BEQ petlja
STR 1, [R0] //tek se ovdje ZASTAVICA mijenja
RET
Problemi:
• ako idu paralelno, u uzastopnim sabirničkim ciklusima, obje čitaju 0 i obje ulaze u KO;
• nije ispunjen osnovni uvjet (1)
Problemi:
• ulazak u KO je strogo naizmjeničan
• uvjeti 2 i 3 nisu ispunjeni!
4.5. Potraga za algoritmima med̄usobnog isključivanja 51
ZASTAVICA[I] = 1;
}
Problem:
• u paralelnom radu obje mogu pročitati 0 u suprotnim zastavicama i ući u KO
dok je ( ZASTAVICA[J] != 0 )
;
}
Problem:
• u paralelnom radu obje mogu prvo postaviti svoje zastavice i onda u idućoj petlji beskonačno
radno čekati jer se zastavice neće spustiti – nikad neće ući u KO (4) – potpuni zastoj
Problem:
• u paralelnom radu obje sinkrono mogu podizati i spuštati zastavice i nikad ne ući u KO (4),
mada dovoljan je mali “poremećaj” pa da jedna “prod̄e”.
dok je ( ZASTAVICA[J] != 0 ) {
ako je ( PRAVO == J ) {
ZASTAVICA[I] = 0;
dok je ( PRAVO == J )
;
ZASTAVICA[I] = 1;
}
}
//neće izaći iz petlje dok se ZASTAVICA[J] ne spusti!
}
ud̄i_u_KO (I)
{
//uzimanje broja
ULAZ[I] = 1;
BROJ[I] = ZADNJI;
ZADNJI++;
ULAZ[I] = 0;
izad̄i_iz_KO (I)
{
BROJ[I] = 0;
}
Drugi načini
Problem prvog pokušaja, sa samo jednom zastavicom, je bio u tome što se provjera zastavice
i njeno postavljanje moglo prekinuti drugom dretvom, koja je takod̄er, paralelno mogla provjeriti
vrijednost zastavice.
Ako se to sklopovski onemogući, onda bi algoritam bio dobar!
Kako?
U prvom ciklusu (I) se čita vrijednost zastavice, a u drugom (I+1) se zastavica postavlja u 1!
TAS (adresa) = {
//prvi dio instrukcije koristi 1. sabirnički ciklus
LDR X, [adresa]
CMP X, 0 //proširenje gornje instrukcije; samo pogleda je li 0
X je privremeni registar, a prve dvije naredbe koriste dva uzastopna sabirnička ciklusa
ud̄i_u_KO: izad̄i_iz_KO:
petlja: ADR R1, zastavica
TAS zastavica STR 0, [R1]
BNE petlja //kada nije 0 čekaj RET
RET
Neka u pseudokodu TAS adresa vraća pročitanu vrijednost (radi jednostavnosti i kraćeg zapisa):
ud̄i_u_KO () izad̄i_iz_KO ()
{ {
dok je ( TAS (zastavica) == 1 ) zastavica = 0;
; // radno čekanje }
}
56 4. Med̄usobno isključivanje u višedretvenim sustavima
ud̄i_u_KO: izad̄i_iz_KO:
ADR R3, zastavica ADR R1, zastavica
LDR R1, 1 STR 0, [R1]
petlja: RET
SWP R1, R2, [R3]
CMP R2, 1
BEQ petlja
RET
Neka u psedudokodu funkcija Zamijeni ( adresa, var ) radi zamjenu vrijednosti varijabli adresa
i registra reg u dva uzastopna sabirnička ciklusa.
ud̄i_u_KO () izad̄i_iz_KO ()
{ {
reg = 1; zastavica = 0;
ponavljaj { }
Zamijeni ( zastavica, reg );
}
dok je ( reg == 1 );
}
4.6. Sklopovska potpora med̄usobnom isključivanju 57
Pitanja za vježbu 4
Natuknice
• računalo za rad: pinus, fly, linux (pravi i virtualni), . . .
• spajanje: putty, ssh, terminal, . . .
• osnovne naredbe: ls, pwd, cd, mkdir, cp, mv, rm (!)
• ljuska: bash (tab, strelice)
• tekstualni editor: vi, vim, joe, pico
• prevod̄enje (kompajliranje): gcc, g++, cc, CC
• pokretanje programa: ./a.out
• rad s procesima: ps, kill -9 PID
• rad s resursima: ipcs, ipcrm
• prijenos datoteka: copy/paste, scp, winscp, dos2unix, unix2dos
Napisati program, pohraniti ga pod imenom vj1.c, prevesti (kompajlirati) i pokrenuti ga.
$ pico vj1.c
1 #include <stdio.h>
2 int main ()
3 {
4 printf ( "Hello World!\n" );
5 return 0;
6 }
O signalima u OS-u
• analogno prekidnim signalima na razini procesora (sklopovlja), signali su mehanizam na razini
OS-a (procesi ih primaju)
• kao i prekidi i signali služe za obradu iznimnih pojava, asinkronih pojava i slično
• procesi reagiraju na signale koje šalju:
– jezgra OSa (npr. SIGSEGV kada proces pristupa spremničkoj lokaciji koja nije u njegovom
adresnom prostoru)
– proces sam sebi (npr. SIGALRM)
– drugi proces
– korisnik (Ctrl+C, preko sučelja OS-a - ljuske)
• signali koji uništavaju procese: SIGKILL (9)
• UNIX ima oko 30 signala (simbolička imena nalaze se u "signal.h"), neki od njih:
– SIGINT – Ctrl + C
– SIGQUIT – Ctrl + (ž)
– SIGTSTP – Ctrl + Z
– SIGALARM, SIGTERM, SIGKILL
• proces može (ali i ne mora) reagirati na signal: signali se mogu ili ignorirati (neki) ili su povod
akciji
– prihvati i obradi pretpostavljenom funkcijom (default)
– prihvati i obradi zadanom funkcijom (zadana u programu)
– zadrži signal (za eventualnu kasniju obradu)
– ignoriraj signal
• signal ne sadrži nikakve dodatne informacije (osim u nekim proširenjima, koji se i/ne koriste u
vježbi)
• pri prihvatu signala ponašanje procesa za taj signal mijenja se u “zadrži” dok se on ne obradi;
kad obrada završi isti se signal ponovno može prihvatiti na isti način.
Primjer sa sigaction
1 #include <stdio.h>
2 #include <signal.h>
3
4 void prekidna ( int sig )
5 {
6 printf ( "U obradi prekida\n" );
7 sleep (5);
8 printf ( "Obrada prekida gotova\n" );
9 }
10
11 int main ()
12 {
13 struct sigaction act;
14
15 act.sa_handler = prekidna; //ili act.sa_sigaction = prekidna;
16 act.sa_flags = 0; //ili act.sa_flags = SA_SIGINFO;
17
18 sigemptyset ( &act.sa_mask );
19 sigaddset ( &act.sa_mask, SIGQUIT );
20 /* i SIGQUIT će biti maskiran za vrijeme obrade signala */
21
22 if ( sigaction ( SIGINT, &act, NULL ) )
23 {
24 perror ( "sigaction" );
25 fprintf ( stderr, "Nisam postavio masku za signale\n" );
26 exit (1);
27 }
28
29 while (1)
30 sleep (1); /* cekaj na signal */
31
32 return 0;
33 }
—— fork() ——
if ( fork() == 0 )
{
posao_procesa_djeteta;
exit (0);
}
nastavak rada procesa roditelja;
wait ( NULL );
1 #include <stdio.h>
2
3 void Proces ( int i )
4 {
5 int j;
6
7 for (j = 1; j <= 5; j++ ) {
8 printf ( "Proces:%d, prolaz:%d\n", i, j );
9 sleep (1);
10 }
11 }
12 int main (void)
13 {
14 int i, pid;
15
16 for ( i = 0; i < 4; i++ ) {
17 pid = fork();
18 switch ( pid ) {
19 case -1:
20 printf("Ne mogu stvoriti novi proces!\n");
21 exit(1);
22 case 0:
23 Proces(i);
24 exit(0);
25 default:
26 printf("Stvorio process %d\n", pid);
27 break;
28 }
29 }
30 for(i = 0; i < 4; i++)
31 wait(NULL);
32
33 return 0;
34 }
[dodatno]
1 pthread_create(
2 &tid, //mjesto za spremanje opisnika nove dretve
3 NULL, //parametri za novu dretvu (prioritet, način raspored̄ivanja, ...)
4 pocetna_funkcija_za_dretvu, //početna funkcija
5 pparam //parametar koji se šalje u početnu funkciju (adresa - zašto adresa!)
6 );
—— pthread_create() ——
1 #include <stdio.h>
2 #include <pthread.h>
3
4 void *dretva ( void *rbr )
5 {
6 int i, brd = *((int *) rbr); //komentirati načine prenosa parametra
7
8 for ( i = 1; i <= 5; i++ ) {
9 printf ("Ja sam dretva %d i i=%d\n", brd, i );
10 sleep (1); //usleep(1000000); na pinusu
11 }
68 LAB-3. Procesi i dretve
12 }
13
14 int main (void)
15 {
16 int i, BR[3];
17 pthread_t t[3];
18
19 for ( i = 0; i < 3; i++ ) {
20 BR[i] = i;
21 if ( pthread_create ( &t[i], NULL, dretva, (void*) &BR[i] ) ) {
22 printf("Ne mogu stvoriti novu dretvu!\n");
23 exit(1);
24 }
25 }
26
27 for ( i = 0; i < 3; i++ )
28 pthread_join ( t[i], NULL );
29
30 return 0;
31 }
32 // gcc -lpthread ...
Što ako se koristi fork nakon stvaranja dretvi sa pthread_create? Hoće li se u novom procesu
duplicirati i dretve?
• uglavnom neće (Linux, pinus sa POSIX sučeljem)
• hoće: pinus sa Solaris sučeljem (thr_create)
LAB-3.1. Stvaranje procesa i dretvi u UNIX okruženju 69
Primjer korištenja
globalne varijable:
struct ZS {
int prvi;
double drugi;
...
} *zv;
zv->prvi = 0;
zv->drugi = 104.6;
...
shmdt ( (char *) zv );
shmctl ( Id, IPC_RMID, NULL ); //ako nije već i prije (bolje da je i prije)
Kako koristiti:
• globalne varijable kod dretvi – izravno
• zajednički spremnik kod procesa – preko kazaljki
Primjer korištenja zajedničkog spremnika više varijabli (+slika spremnika):
...
int *a, *b;
double *c;
...
a = shmat(...);
b = a + 1;
c = (double *) (b + 1);
...
Povećavanje/smanjivanje sa semop:
sem_t s;
...
sem_init ( &s, 0, 5 ); //početna vrijednost = 5
...
sem_post ( &s ); //PostaviOSEM
...
sem_wait ( &s ); //ČekajOSEM
LAB-4.2. Monitori
Monitor se ostvaruje pomoću:
• varijabli med̄usobnog isključivanja i
• uvjetnih varijabli (reda uvjeta)
pthread_cond_t uvjet;
...
pthread_cond_init( &uvjet, NULL );
...
pthread_cond_wait(&uvjet, &ključ);
...
pthread_cond_signal(&uvjet);
// oslobad̄anje samo jedne (prve) dretve iz reda uvjeta
...
pthread_cond_broadcast(&uvjet);
// oslobad̄anje svih dretvi iz reda uvjeta
• ukoliko nije zadovoljen uvjet, dretva ne prolazi uvjet već prelazi u red uvjeta (s *cond_wait) i
čeka na ispunjenje istoga i OTKLJUČAVA ključ
• ukoliko nema nikoga u redu uvjeta, a pozove se *cond_signal ili *cond_broadcast tada NIŠTA,
tj. to ne znači zeleno svjetlo za iduću dretvu koja poziva *cond_wait
Primjer na webu — stari most (OS koncepti)
Komentiraj zadatke za 3. labos.
OPERACIJSKI SUSTAVI – ZI ‐ PITANJA – 2007/08 1
Operacijski sustavi
Priprema za Završni ispit – ak. god. 2007/08
Pitanja i odgovori sa predavanja
Pitanja postavljali i odgovarali: PyroMan, Rosita Pedringo, nyala, sunshine, Dada, nevilliny i Force
1. Kako treba podijeliti program koji ne stane u cijelosti u radni spremnik u preklopnom načinu
uporabe spremnika?
• jedan dio uvijek u radnom spremniku
• drugi dio (dijelovi) koji mogu biti i na hard disku (dakle ne stalno u radnom spremniku)
2. Opisati logički i fizički adresni prostor.
• logički adresni prostor je prostor u kojem su sve adrese unutar programa izračunate kao da je početna
adresa jednaka nuli, dijeli se na stranice, ovisi o arhitekturi. Ne mijenja se tekom izvođenja programa
• fizički adresni prostor: Program će se smjestiti u radni spremnik u prostor koji započinje s početnom
adresom PA. Taj ćemo prostor nazivati fizičkim adresnim prostorom. Dijeli se na okvire, ovisi o RAM‐u
3. Čemu služi tablica prevođenja?
• za prevođenje adrese iz logičkog adresnog prostora u fizički adresni prostor
4. U čemu se razlikuju prekidi izazvani promašajem stranice od ostalih prekida?
• može se dogoditi za vrijeme izvođenja instrukcije, provjerava se na kraju
• ponovno se mora izvesti naredba umjesto da se prelazi na sljedeću kao kod ostalih prekida
• to je omogućeno skrivenim kopijama svih registara
5. Što sadrži procesni informacijski blok? Koliko procesnih informacijskih blokova ima u procesu?
• sve informacije važne za odvijanje procesa, sve informacije povezane s gospodarenjem spremničkim
prostorom, tablicu prevođenja, opisnike svih dretvi, opisnik virtualnog adresnog prostora.
• ima ih koliko ima i procesa.
6. Čemu služi TLB?
• za spremanje cjelokupne dohvaćene fizičke adrese i dijela logičke adrese, to jest omogućuje nama da ne
moramo uzastopno dohvaćati jednu te istu fizičku adresu ako je trebamo u njemu tražimo da li već
postoji logička adresa, ako postoji, onda je unutra i fizička adresa.
7. Koliko puta je potrebno pristupiti radnom spremniku ako se fizička adresa ne nalazi u TLB? A ako se
nalazi?
• 3 puta, odnosno jednom ako se nalazi
8. U kojim stanjima se mogu nalaziti okviri tijekom rada?
• aktivno (koristi se); slobodno; slobodno s obrisanim sadržajem
OPERACIJSKI SUSTAVI – ZI ‐ PITANJA – 2007/08 2
9. Gdje se generiraju adrese unutar procesora?
• stog (instrukcijski registar)
• programsko brojilo
• adresni dio instrukcija
10. Procesni adresni prostor dijeli se na 3 segmenta. Koja?
• instrukcijski segment ‐ segment u koji se pohranjuju instrukcije programa ili programski kod, adresira se
iz programskog brojila
• stogovni segment ‐ segment u koji se pohranjuje stog, adresira se iz registra kazaljke stoga
• podatkovni segment ‐ segment u koji se pohranjuju podaci i čije adrese potiču iz adresnih djelova
instrukcija
11. Opisati organizaciju smještaja na magnetskom disku. (slika?)
• Sve ploče učvršćene su na istu osovinu i vrte se konstantnom brzinom ω.
• U smjeru radiusa ploča (ili približno u smjeru radiusa blagim lukom pomiču se glave za pisanje i čitanje.
• Glave se mogu vrlo precizno postaviti na jedno mjesto i tada ispod njih prolazi vrlo uski prsten ploče koji
zovemo stazom (engl. track).
• Staze jednakih polumjera svih diskova leže na zamišljenom plaštu valjka i zovemo ih zajedničkim imenom
cilindar (engl. cylinder).
• Svaka je staza podijeljena je na jednake dijelove (kružne lukove s jednakim središnjim kutevima) koje zovemo
sektorima (engl. sector).
• U jedan sektor može se pohraniti određeni broj bajtova. Uobičajeno je to 256, 512 ili 1024 bajtova.
• Svaki sektor na disku ima svoju jedinstvenu adresu koja se izračunava iz:
• rednog broja ploče,
• rednog broja staze na ploči i
• rednog broja sektora na stazi.
• Ploča se odabire aktiviranjem odgovarajuće glave, redni broj staze određuje se na temelju položaja glava, a
redni broj sektora dobiva se tako da se mjere kutovi vrtnje počevši od posebne oznake na ploči koja
označava početni kut.
• U uobičajenim izvedbama diskova svaka ploča ima svoju glavu za pisanje, odnosno čitanje, ali se u jednom
času može pristupiti samo do jedne od ploča, tj. može se čitati ili pisati samo u jednu stazu cilindra.
OPERACIJSKI SUSTAVI – ZI ‐ PITANJA – 2007/08 3
12. Koliko iznosi ukupno trajanje prijenosa podataka tvrdi disk ‐ radni spremnik?
13. Od čega se sastoji trajanje traženja staze?
• sastoji se od 4 djela. Ubrzavanja, konstantne brzine, usporavanja i finog podešavanja
14. Vrijeme koje je potrebno za prijenos podataka s diska ili na disk dijeli se na dva dijela. Koja?
• trajanje postavljanja glave (trajanje traženja staze + rotacijsko kašnjenje)
• trajanje prijenosa podataka
15. Zbog čega nastaje rotacijsko kašnjenje i koliko iznosi?
• rotacijsko kašnjenje nastaje zbog toga što se nakon postavljanja glave na odabranu stazu mora prije
početka prijenosa pričekati da se ispod 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
• prosječno rotacijsko kašnjenje jednako je polovini trajanja jednog okretaja diska
16. Čime je određena brzina prijenosa podataka iz diska u spremnik diskovne upravljačke jezgre?
• brzinom kojom se disk okreće ‐ omega – ω
• gustoćom podataka (broj sektora/broj staza)
17. Navesti vrste fragmentacije prilikom statičkog i dinamičkog dodjeljivanja spremnika.
• unutarnja i vanjska kod statičkog
• vanjska kod dinamičkog
18. Navesti i dokazati Knuthovo pravilo.
• potražiti na materijalima datoteku: "OS ‐ ZI ‐ Izvod Knuthovog pravila (by Ovca).pdf" . Nalazi se unutar
datotete "Tutoriali ‐ ak. god. 2006/07.rar"
OPERACIJSKI SUSTAVI – ZI ‐ PITANJA – 2007/08 4
19. Kako održavati fragmentaciju minimalnom?
• osnovni način suzbijanja fragmentacije svodi se na to da se rupe održavaju što većima kako bi se u njih
mogli smjestiti novi programi. To se postiže tako da se: pri svakom oslobađanju nekog procesnog
prostora novonastala rupa spaja s eventualnim susjednim rupama u novu veću rupu i pri svakom
novom zahtjevu za spremničkim prostorom potraži najmanja rupa u koju se može smjestiti novi
program.
• nadalje, preostaje mogućnost da se u nekom trenutku, kada se ustanovi da je fragmentacija postala
prevelika, privremeno obustavi izvođenje dretvi i "presloži" programe u kompaktni prostor. Time se
na kraju spremnika možda dobije dovoljno velika rupa u koju se može smjestiti program koji čeka na
dodjelu radnog spremnika. Ta se tehnika “sakupljanja otpadaka”(engl. garbage collection)
upotrebljava i u nekim programskim okruženjima za izvođenje programa koji intenzivno koriste
dinamičke strukture podataka
20. Čime su određene veličine fizičkog i logičkog adresnog prostora?
• logički ovisi o arhitekturi, fizički o RAM‐u
21. Čime je određen broj stranica?
• veličinom logičkog adresnog prostora, stranice imaju veličinu koja je cjelobrojna potencija broja 2.
22. Kako treba podijeliti program u preklopnom načinu uporabe radnog spremnika?
• do potrebe za djeljenjem programa dolazi kada trebamo izvesti program čiji je logički adresni prostor
veći od fizičkog spremnika. Program se djeli na dijelove koji ne trebaju biti istovremeno smješteni u
fizičkom spremniku. U radnom spremniku mora u svakom trenutku biti onaj dio programa koji sadrži
instrukcije koje se upravo izvode te dio podatkovnog prostora koji te instrukcije adresiraju.
• program se djeli na jedan osnovni dio koji se uvijek nalazi u radnom spremniku i na dijelove koji se
naizmjence smještaju u preostali dio korisničkog dijela fizičkog spremnika
23. Gdje se nalazi bi čistoće?
• u tablici prevođenja
24. Navesti i opisati strategije izbacivanja stranica.
• FIFO (First In First Out) strategija ‐ iz radnog se spremnika (primarnog spremnika) izbacuje stranica koja
je najdulje u radnom spremniku.
• LRU (Least Recently Used) strategija ‐ izbacuje se stranica koja se najdulje u prošlosti nije
upotrebljavala.
• LFU (Least Frequently Used) strategija ‐ izbacuje se ona stranica od onih u radnom spremniku koja se
najrjeđe koristila.
• OPT (Optimal) strategija ‐ izbacuje se ona stranica koja će se najkasnije u budućnosti koristiti.
25. Opisati satni algoritam.
• Inačica LRU algoritma koja se koristi u više inačica operacijskog sustava UNIX naziva se satnim
algoritmom (Clock algorithm). Algoritam djeluje tako da se sve stranice u radnom spremniku slažu u
kružnu listu po redu prispijeća. Prilikom traženja stranice za izbacivanje posebnom se kazaljkom
pretražuje lista, počevši od zadnje stranice učitane u primarni spremnik. Ukoliko stranica ima oznaku
(zastavicu) A=1 (tj. stranica se koristila u nekom prethodnom "bliskom" trenutku), ta se oznaka
postavlja na 0 te se kazaljka pomiče na slijedeću stranicu. Ako stranica ima oznaku A=0 tada se
dotična stranica izbacuje iz radnog spremnika i na isto mjesto se učitava nova stranica (kazaljka se ne
pomiče). Svaki puta kada se neka stranica koristi njena se oznaka A postavlja u jedinicu.
26. U kojim stanjima se mogu nalaziti pojedini okviri tijekom rada?
• aktivno (koristi se); slobodno; slobodno s obrisanim sadržajem
OPERACIJSKI SUSTAVI – ZI ‐ PITANJA – 2007/08 5
27. Na koji način se može pokazati slobodni prostor na disku?
• može se pokazati na 3 načina. Binarni prikaz, lista slobodni sektora, lista nakupina sektora
28. Opisati način smještaja datoteka u unix i ntfs datotečnom sustavu.
• UNIX ‐ slajdovi 09‐25, 09‐26, 09‐27
• NTFS ‐ slajdovi 09‐28, 09‐29, 09‐30
29. Navesti elemente datotečnog podsustava.
• datoteka
• datotečna tablica
• procedura za manipuliranje datotekama
30. Navesti osnovni sadržaj opisnika datoteke.
• ime datoteke
• tip datoteke
• lozinka
• ime vlasnika
• prava pristupa
• vrijeme stvaranja
• vrijeme zadnje promjene
• ime zadnjeg korisnika
• opisnik smještaja
31. Navesti osnovni sadrža datotečne tablice.
• broj sektora po disku
• broj slobodnih sektora
• informacije o slobodnim sektorima
• tablica opisnika pohranjenih datoteka
32. Opisati način evidencije binarnim prikazom operacijskog sustava za rad s datotekama.
• binarni prikaz: 011000101001100… ima onoliko 1 i 0 koliko ima sektora, 0 označava da je sektor
slobodan a 1 da je sektor zauzet. Svaki sektor ima svoju jedinstvenu adresu koja se sastoji od: rednog
broja ploče, rednog broja staze na ploči i rednog broja sektora na ploči
• Gdje se generiraju adrese unutar procesora?
Adrese se generiraju u programskom brojilu (PC – Program counter; adrese instrukcija koje
dolaze), kazaljci stoga (SP – Stack pointer; stogovne adrese) i u adresnom dijelu instrukcija
(adrese operanada i rezultata operacja).
Svaki sektor na disku ima svoju jedinstvenu adresu koja se izračunava iz:
rednog broja ploče,
rednog broja staze na ploči i
rednog broja sektora na stazi.
Ploča se odabire aktiviranjem odgovarajuće glave, redni broj staze određuje se na temelju
položaja glava, a redni broj sektora dobiva se tako da se mjere kutovi vrtnje počevši od
posebne oznake na ploči koja označava početni kut.
• Koliko iznosi ukupno trajanje prijenosa podataka tvrdi disk – radni spremnik?
Trajanje traženja staze sastoji se od 4 komponente: trajanje ubrzavanja ručice glave, kretanje
konstantnom brzinom, trajanje usporavanja, trajanje finog pozicioniranja.
• Koliko iznosi prosječno vrijeme traženja u odnosu na vrijeme koje je potrebno za
prijelaz preko svih staza?
Prosječno vrijeme traženja uzima vrijeme koje je potrebno za prijelaz preko trećine ukupnog
broja staza.
Rotacijsko kašnjenje nastaje zbog toga što se nakon postavljanja glave na odabranu stazu mora
prije početka prijenosa pričekati da se ispod glave za čitanje pojavi traženi sektor.
Najlošiji slučaj – adresirani sektor je upravo prolazio ispod glave kad je ona prispjela na stazu
Najbolji slučaj – adresirani sektor upravo u trenutku postavljanja glave nailazi ispod glave.
Prosječno – uzimamo vrijednost tih dvaju krajnjih slučajeva i pretpostavljamo da je
prosječno rotacijsko kašnjenje jednako poloviti trajanja jednog okretaja diska – Tr/2.
Brzina prijenosa određena je brzinom kojom ispod glave za čitanje ili pisanje promiču bajtovi
sektora. (broj sektora na stazi pomnoži s brojem bajtova u sektoru i taj umnožak podijeli s
trajanjem jednog okretaja).
Unutar bloka nalaze se sve informacije važne za odvijanje procesa, informacije povezane s
gospodarenjem spremničkim prostorom, tablice sektora u kojima je program procesa
pohranjen na disku, podaci o smještanju programa u radnom spremniku, kazaljke na druge
informacijske blokove i dr.
STATIČKO – Particije su stalne veličine (fixed partition), program kada je dodjeljen jednoj
particiji uvijek je u toj particiji. Kad je izbačen iz radnog spremnika može se vratit jedino u tu
particiju. Javlja se problem fragmentacije (unutarnje i vanjske) i adresni prostor nikako nije
mogao biti veći od najveće particije fizičkog spremnika. (08‐50)
DINAMIČKO – Program izračunava adrese kao da kreće od 0 (logički adresni prostor),
smjestiti će se u radni spremnik koji započinje fizičkom adresom PA. U procesoru iza
adresnog međuregistra je jedno sklopovsko zbrajalo i uz njega registar u koji se upisuje
početna adresa fizičkog adresnog prostora. „reg“ se naziva bazni registar. Programi se slažu
jedan iza drugoga. Registar ograde (OG) se koristi da program ne bi zauzeo prostor susjednog
programa. Računa se kao OG=PA+VELIČINA PROGRAMA. Ovo rješenje je sklopovsko i
registar OG se provjerava prije ulaska u radni spremnik. Problem fragmentacije (vanjske),
nastanak rupa (holes). (08‐61)
Pri svakom oslobađanju nekog procesnog prostora novonastala rupa spaja s eventualnim
susjednim rupama u novu veću rupu.
Pri svakom novom zahtjevu za spremničkim prostorom potraži se najmanja rupa u koju se
može smjestiti novi program.
Tada se zaustave se sve dretve, presloži se sve programe u kompaktni prostor, i krene se dalje
(garbage collection).
U stacionarnom stanju će se u spremniku naći broj rupa koji je jednak polovini broja punih
blokova.
Jedan programa se uvijek nalazi u radnom spremniku (osnovni dio), a drugi dijelovi
(preklopni dijelovi) na tvrdom disku (logički spremnik), te se tokom preklopa (overlay)
smještaju po potrebi u radni spremnik.
• Logički adresni prostor je onaj prostor kojeg program može adresirati i određen je širinom
adresne
• sabirnice, te se dijeli na stranice, ovisno o arhitekturi.
• Fizički adresni prostor je prostor određen količinom memorije, tj. količinom raspoložive
memorije
• (RAM) I dijeli se na okvire, ovisno o RAM‐u.
• Mogu li stranice logičkog adresnog prostora biti smještene u okvire fizičkog spremnika
proizvoljnim redosljedom?
Da, mogu se u posebnoj se tablici vodi evidencija o tome u kojem je okviru smještena
pojedina stranica.
Tablica prevođenja je sastavni dio spremničkog međusklopa u kojoj se vodi evidencija o tome
u kojem je okviru smještena pojedina stranica (za više vidi TLB kod Intel x86).
Od redaka (za svaku stranicu jedan redak) u kojima se pohranjuje broj okvira u kojem se
nalazi (ako je in) te dodatnog bita prisutnosti za svaki redak]
• U čemu se razlikuju prekidi izazvani zbog promašaja stranice od ostalih vrsta prekida?
• Opisati sklopovsku potporu za ostvarenje straničenja u Intel x86 arhitekturi. Što sadrži I
čemu služi TLB? Opisati tablicu prevođenja. Koliko puta je potrebno pristupiti radnom
spremniku ako se fizička adresa ne nalazi u TLB? A ako se nalazi?
Unutar procesora nalazi se jedan 32-bitni registr koji služi za smještanje kazaljke koja
pokazuje na tablicu prevođenja. TLB služi za spremanje cjelokupne dohvaćene fizičke adrese i
dijela logičke adrese, to jest omogućuje nama da ne moramo uzastopno dohvaćati jednu te istu
fizičku adresu ako je trebamo u njemu tražimo da li već postoji logička adresa, ako postoji,
onda je unutra i fizička adresa. Potrebno je pristupiti 3 puta, odnosno jednom ako se nalazi.
• Opisati sljedeće strategije za izbacivanje stranica: FIFO, LRU, OPT, te satni algoritam.
LRU
- sve stranice u radnom spremniku razvrstane su u FIFO listu
- lista se obilazi kazaljkom koja kada dođe do kraja, vraća se na početak
- izbacuje se onaj okvir na koji pokazuje kazaljka i bit pristupa mu je jednak nuli a kazaljka se
pomiče za jedno mjesto u desno
- ako je bit pristupa ‘1’ tada se on resetira i kazaljka se pomiče za jedno mjesto u desno
Moguće izvesti samo na jednoprocesorskom sustavu!
• Budući da Intel x86 nemaju registra povijesti opisati strategiju izbacivanja stranica.
9 POGLAVLJE
Ime, tip, lozina, ime vlasnika, prava pristupa, vrijeme stvaranja, vrijeme promjene, ime
zadnjeg korisnika, opisnik smještaja.
U nizu bitova svakom sektoru, odnosno nakupini sektora pripada jedan bit čija je vrijednost
jednaka 1 kada je sektor, odnosno nakupina zauzeta ili jednaka 0 u suprotnom slučaju.
Lista u kojoj svaki zapis sadrži početnu adresu skupine slobodnih sektora te broj sektora u toj
skupini.
• NTFS – diskovni prostor je dodjeljuje po skupinama sektora (1, 2, 4, 8). LCN (logical cluster
• number) je redni broj skupine od početka do kraja diskovnog prostora predviđenog za smještaj
• datoteka. Datoteka je podijeljena na „stranice“ koje su jednake veličini okvira.
MFT – datoteka; glavna tablica datoteka (Master File Table), svaka datoteka (pa i MFT) ima
u toj datoteci zapis koji je opisnik datoteke
Grupa A
Parametar predstavlja:
Kolika je vjerojatnost da u sustavu ima i poslova (u kojem dolasci podliježu Poissonovoj razdiobi s parametrom , a trajanje obrade podliježe eksponencijalnoj razdiobi s parametrom 1/):
Grupa B
Prametar predstavlja:
Koliki je prosječni broj poslova u sustavu u kojem dolasci podliježu Poissonovoj razdiobi s parametrom , a trajanje obrade podliježe eksponencijalnoj razdiobi s parametrom 1/:
Grupa C
U kojem su odnosu broj dolazaka novih poslova u jedinici vremena i broj poslova koje poslužitelj može obaviti u jedinici vremena u determinističkom sustavu:
Navesti Littleovo pravilo:
Grupa D
U kojem su odnosu broj dolazaka novih poslova u jedinici vremena i broj poslova koje poslužitelj može obaviti u jedinici vremena u nedeterminističkom sustavu:
Ako kratki poslovi imaju parametre (1, 1), a dugi poslovi imaju parametre (2, 2), koliko iznosi parametar u mješovitom sustavu:
Odabrana pitanja
Uz pretpostavku da se neki disk vrti neuobičajenom brzinom od 6000 okretaja u minuti, navesti rotacijsko kašnjenj tog diska u milisekundama TR/2=1/(100*2)=5ms
Navesti udio ukupnog broja sektora na stazi koji se uobičajeno uzima za trajanje rotacijskog kašnjenja (1/2 ili 1/3 ili 1/4 ili 1/5 ili nešto drugo) 1/2
Rotacijsko kašnjenje iznosi TR/2
Cilindar je skup staza istog radijusa
Navesti naziv „opisnika procesa“ procesni informacijski blok
Navesti vrste fragmentacija koje se javljaju prilikom statičkog dodjeljivanja spremnika unutarnja i vanjska fragmentacija
Navesti razlog zbog čega se javlja unutarnja fragmentacija prilikom statičkog dodjeljivanja spremnika zato što su programi manji od particija: razlika je unutarnja fragmentacija
Navesti naziv sklopa unutar procesora koji se brine nalazi li se tražena adresa u okvirima procesnog adresnog prostora ili ne (dovoljno je navesti samo kraticu) spremnički međusklop ili MMU
1. Uvod
Operacijski sustav je
Dogovoreni način komunikacije između dvije strane naziva se
Navesti jedan od zadataka operacijskog sustava
Signali
Nabrojiti tko ili što sve može poslati signal procesu
Koje akcije može poduzeti proces kada primi signal
Navesti okvirni broj signala (5, 10, 30, 50, 100, 200 ili 1000)u UNIX okruženju 30
Koliki broj signala iste vrste može operacijski sustav zapamtiti za svaki proces
Kako proces može reagirati na signal (4 načina)?
Kojim naredbom iz komandne linije se može poslati signal nekom procesu?
Čemu služi funkcija sigaction?
Koji će se signal poslati procesu kada se pritisne Ctrl+C ?
Kojom funkcijom se određuje što će proces napraviti kada primi određeni signal? sigset
Kojom funkcijom se zaustavlja daljnje prihvaćanje nekog signala? sighold
Kojom funkcijom se ponovo omogućava prihvaćanje nekog signala nakon što je on zaustavljen sa sighold? sigrelse
Procesi i dretve
Koliko puta ispisani A, B i C? [ a) 2/4/6 b) 2/4/8 c) 2/2/2 ]
...
fork();
printf("A");
fork();
printf("B");
fork();
printf("C");
Koliko dretvi je ukupno u sustavu (na početku je jedna)? [ a) 4 b) 8 c) 12 ]
fork();
fork();
pthread_create(&id[0], NULL, fja_dretve, &arg);
pthread_create(&id[0], NULL, fja_dretve, &arg);
Navesti broj binarnih semafora i navesti broj općih semafora koji su potrebni za ispravnu sinkronizaciju jednog potrošača i jednog proizvođača preko ograničenog međuspremnika 2 opća 0 bin
Navesti broj binarnih semafora i navesti broj općih semafora koji su potrebni za ispravnu sinkronizaciju jednog potrošača i dva proizvođača preko ograničenog međuspremnika 2 opća 1 bin
Navesti broj binarnih semafora i navesti broj općih semafora koji su potrebni za ispravnu sinkronizaciju tri potrošača i jednog proizvođača preko ograničenog međuspremnika 2 opća 1 bin
Navesti broj binarnih semafora i navesti broj općih semafora koji su potrebni za ispravnu sinkronizaciju četiri potrošača i sedam proizvođača preko ograničenog međuspremnika 2 opća 2 bin
Navesti strukture podataka monitora
Nabrojiti jezgrine funkcije za ostvarenje monitora
Funkcija Uđi_u_monitor se obavlja u korisničkom / jezgrinom (zaokružiti) načinu rada
Monitorske funkcije se obavljaju u korisničkom / jezgrinom (zaokružiti) načinu rada i one moraju biti zaštićene (navesti sinkronizacijski mehanizam čime su monitorske funkcije zaštićene)
Za ispravnu sinkronizaciju proizvođača i potrošača koristi se opći semafor. Zaokružite kakav opći semafor mora u tom slučaju biti a) Dijkstrin opći semafor ili b) brojački semafor ili c)
svejedno je koji semafor, samo da je opći.
Tipična brzina okretaja ploče današnjih diskova iznosi 7200 ok/s 720 ok/s 7200 ok/min 720 ok/min (zaokružiti točan odgovor)
Uz pretpostavku da se neki disk vrti neuobičajenom brzinom od 6000 okretaja u minuti, navesti rotacijsko kašnjenj tog diska u milisekundama TR/2=1/(100*2)=5ms
Ako rotacijsko kašnjenje nekog diska iznosi 6ms, a trajanje postavljanja glave 10ms, navesti koliko traje traženje staze 10-6=4ms
Ako rotacijsko kašnjenje nekog diska iznosi 5ms, a trajanje traženje staze 7ms, navesti koliko traje postavljanje glave 5+7=12ms
Navesti udio ukupnog broja staza koji se uobičajeno uzima za vrijeme traženja staze (1/2 ili 1/3 ili 1/4 ili 1/5 ili nešto drugo) 1/3
Navesti udio ukupnog broja sektora na stazi koji se uobičajeno uzima za trajanje rotacijskog kašnjenja (1/2 ili 1/3 ili 1/4 ili 1/5 ili nešto drugo) 1/2
Jedinstvena logička adresa sektora može se preračunati u položaj sektora na disku koji je određen rednim brojem a) rednog broja ploče
b) rednog broja staze na ploči
c) rednog broja sektora na stazi
Rotacijsko kašnjenje iznosi TR/2
Cilindar je skup staza istog radijusa
Podaci, koji se čitaju s tvrdog diska, prvo se pohranjuju u međuspremnik diska
Broj okretaja u jedinici vremnena današnjih diskova uobičajeno iznosi (više odgovora je ispravno, navesti jednu vrijednost i to u okretajima u minuti) 5400
Ako se glava tvrdog diska pomiče samo za nekoliko staza, tada se trajanje traženja staze uglavnom svodi samo na premještanje glave sa staze na stazu
Navesti naziv „opisnika procesa“ procesni informacijski blok
Opisnik virtualnog adresnog prostora pohranjen je u sustavskom dijelu spremnika i to u strukturi podataka jezgre operacijskog sustava koja se naziva
Navesti vrste fragmentacija koje se javljaju prilikom statičkog dodjeljivanja spremnika unutarnja i vanjska fragmentacija
Navesti razlog zbog čega se javlja unutarnja fragmentacija prilikom statičkog dodjeljivanja spremnika zato što su programi manji od particija: razlika je unutarnja fragmentacija
Vanjska fragmentacija prilikom statičkog dodjeljivanja spremnika javlja se zbog toga što su Svi programi koji su smješteni u određenu particiju
Blokirani, a drugi koji čekaju nisu pripremljeni za izvođenje u toj particiji.
Navestinaziv sklopa unutar procesora koji se brine nalazi li se tražena adresa u okvirima procesnog adresnog prostora ili ne (dovoljno je navesti samo kraticu) spremnički međusklop ili MMU
Koliko je u stacionarnom stanju u spremniku rupa ako se u njemu nalazi 100 punih blokova 50
Koliko je u stacionarnom stanju u spremniku punih blokova ako se u njemu nalazi 100 rupa 200
Navesti Knuthovo pedesetpostotno pravilo. U stacionarnom stanju broj rupa jednak je polovici broja punih blokova.
Problem fragmentacije prilikom dinamičkog dodjeljivanja spremnika se nikako ne može izbjeći, ali se može ublažiti. Navesti kako. Tako da se rupe održavaju što većima kako bi se u njih
mogli smjestiti novi programi.
Logički adresni prostor dijeli se na stranice.
Fizički adresni prostor dijeli se na okvire
Navesti dva dijela na koje se dijeli logička adresa broja segmenta i offseta
Izračunati trajanje postavljanja glave (prosječno) za disk koji se vrti sa 6000 okr/min, ima 9000 staza te vrijeme traženja staze iznosi t=10+0,005*D (D - udaljenost u stazama koje glava treba
prijeći). t = TR/2 + (10+0,005*9000/3) = 1/w / 2 + (10+15) = 1000ms / 100 / 2 + 25 = 5+25 = 30 ms
Izračunati vrijeme čitanja jedne staze (uz k=1) za disk koji se vrti sa 6000 okr/min, uz pretpostavku vremena postavljanja glave od 7 ms. t = tseek + TR = 7 + 1000/100 = 17 ms
Izračunati vrijeme čitanja jedne staze (uz k=3) za disk koji se vrti sa 6000 okr/min, uz pretpostavku vremena postavljanja glave od 7 ms. t = tseek + TR * k = 7 + 3 * 10 = 37 ms
Ako je vrijeme čitanja jednog sektora veličine 1000 B jednako ts=0,05 ms, a brzina prijenosa podataka s diska u radni spremnik 100 Mbita/s, koliki mora biti faktor preplitanja (uz
pretpostavku da se po čitanju sektora on odmah mora prenijeti u radni spremnik)? tprijenos=1000*8 / 100000000 = 8/100000 = 0,08 ms; tprijenos/ts = 0,08/0,05 = 1,6 => k = 3
Kod statičkog upravljanja spremnikom programi su na pomoćnom spremniku pripremljeni u apsolutnim ili relativnim adresama ? apsolutnim
Kod dinamičkog upravljanja spremnikom programi su na pomoćnom spremniku pripremljeni u apsolutnim ili relativnim adresama ? relativnim
Kod upravljanja spremnikom straničenjem programi su na pomoćnom spremniku pripremljeni u apsolutnim ili relativnim adresama ? relativnim
Knuthovo 50% pravilo odnosi se na statičko ili dinamičko upravljanje spremnikom? dinamičko
9. Datotečni podsustav
Ako je veličina kazaljke u nekom Unix datotečnom sustavu 4 bita, a veličina bloka 4KB, kolika je maksimalna veličina sveska za taj datotečni sustav u KB 24 x 4 KB = 64 KB
Navesti barem tri podatka smještena u opisnik datoteke
Navesti barem dva podatka smještena u datotečnoj tablici
Ako je veličina kazaljke u nekom Unix datotečnom sustavu 5 bita, a veličina bloka 2KB, kolika je maksimalna veličina sveska za taj datotečni sustav u KB 25 x 2 KB = 64 KB
Minimalna jedinica adresiranja na datotečnom sustavu je
Ako je veličina kazaljke u nekom Unix datotečnom sustavu 6 bita, a veličina bloka 1KB, kolika je maksimalna veličina sveska za taj datotečni sustav u KB: 26 x 1 KB = 64 KB
Ako je veličina kazaljke u nekom Unix datotečnom sustavu 4 bita, a veličina bloka 8KB, kolika je maksimalna veličina sveska za taj datotečni sustav u KB: 24 x 8KB = 128 KB
Navesti dvije moguće podatkovne strukture za vođenje evidencije o slobodnom prostoru na disku
Poruka je
Poruka se ne šalje izravno drugom procesu već se šalje u red poruka.
Na koji način proces može znati da je poruka koja se nalazi u redu poruka upućena baš njemu prema tipu poruke.
Red poruka može poslužiti za sinkronizaciju jer se ponaša kao semafor.
Ako red poruka koristimo kao sinkronizacijski mehanizam, koja je funkcija za rad s porukama istovjetna funkciji Postavi_semafor stavljanje u red.
Ako red poruka koristimo kao sinkronizacijski mehanizam, koja je funkcija za rad s porukama istovjetna funkciji Čekaj_semafor uzimanje iz reda.
Okolina (environment) je niz znakova oblika "IME=vrijednost"
Nabroji barem tri korisničke ljuske sh, csh, bash, zsh, ksh, tcsh, ssh, rsh...
Varijable okoline mogu se podijeliti u sljedeće dvije skupine varijable okoline koje se predaju programima prilkom pokretanja i one koje poznaje samo ljuska
Koje informacije u prijenosnom protokolu (TCP) se dodaju bloku podataka? rbr i paritet (zaštitni bajtovi)
Koje informacije u Internet protokolu (IP) se dodaju bloku podataka? adrese ishodišta i odrešta
Prilikom poziva udaljene procedure razmjena ulaznih podataka i rezultata se obavlja prenošenjem vrijednosti ili adresa? (zaokružiti)
Kako se zove mehanizam unutar nekog (jednog) računala koji broji događaje? Lokalni logički sat
Prema pravilima globalnog logičkog sata, na koju vrijednost proces Pi postavlja lokalni logički sat Ci kada primi poruku zahtjev(j, T(j))? Ci=max{Ci, Tj}+1
Kojom vrstom cjevovoda je moguće povezati već stvorene procese imenovanim cjevovodima
Navesti svojstva datoteke koja je imenovani cjevovod (dovoljno je navesti dva svojstva)
S koliko je opisnika opisan obični cjevovod 2
S koliko je opisnika opisan imenovani cjevovod 1
Proces P1 koji želi komunicirati cjevovodom s procesom P2 (koji još nije stvoren) mora najprije stvoriti cjevovod
Navesti naredbu iz komandne linije kojom se stvara imenovani cjevovod mknod
U postupku povezivanja cjevovoda na standardni ulaz treba zatvoriti standardni ulaz ili standardni izlaz STD_IN
U postupku povezivanja cjevovoda na standardni izlaz treba zatvoriti standardni ulaz ili standardni izlaz STD_OUT
Procesi imaju namjerno razdvojene adresne prostore zato da si jedni drugima ne smetaju
Nabrojite načine komunikacije između procesa
Protokolni slog je skup protokola.
Navedite četiri razine protokolnog sloga na Internetu
Na kakav način se obavlja razmjena ulaznih podataka i rezultata kod poziva udaljenih procedura (u usporedbi s pozivom potprograma)
Navedite tri osnovna načina komunikacije između procesa u raspodijeljenim sustavima poruke, RPC i raspodijeljeni zajednički adresni prostor.
Lokalni logički sat ponaša se kao brojilo.
Kada prema pravilima globalnog logičkog sata proces povećava svoj logički sat Između svaka svoja dva događaja.
Prema pravilima globalnog logičkog sata kada proces šalje poruku on uz nju pridodaje vremensku oznaku.
Na koju će vrijednost postaviti lokalni logički sat proces ako primi poruku s vremenskom oznakom 178, a vrijednost njegovog lokalnog logičkog sata neka je 177 179.
Navesti broj poruka koji treba razmijeniti u sustavi s N računala da bi proces na jednom računalu mogao ući u kritični odsječak ako se koristi raspodijeljeni Lamportov protokol 3x(N-1).
Navesti broj poruka koji treba razmijeniti u sustavi s N računala da bi proces na jednom računalu mogao ući u kritični odsječak ako se koristi protokol Ricarta i Agrawala 2x(N-1).
Zašto procesi koji nisu u srodstvu ne mogu komunicirati cjevovodom
Čitanje iz cjevovoda je za razliku od čitanja iz datoteke destruktivno.
OS je skup osnovnih programa koji omogućuju provođenje radnih zahvata na računalu, tj. izvođenje operacija
računala.
4. Što je sučelje?
Ponavljati {
Proces je sve ono što je potrebno da bi se program mogao izvoditi. Skup računalnih resursa koji omogućava rad
programa.
Na način da dretve rade naizmjenično, u kratkim vremenskim razmacima, što stvara dojam višeprogramskog
načina rada.
1. Skicirati način spajanja UI naprave na sabirnicu.
Dok je (zastavica == 0) ;
Pročitaj PR;
5. Kako treba nadopuniti ponašanje procesora da on omogućuju prekidni rad bez sklopa za prihvat prekida?
Dodati;
Pohraniti kontekst – pohranjivanje sadržaja svih registara osim PC-a na sustavski stog.
Vratiti se iz prekidnog načina – vraća sadržaj programskog brojila sa sustavskog stoga, te prebacuje adresiranje
u korisnički adresni prostor i aktivira korisničku kazaljku stoga.
Zato što se sadržaj programskog brojila automatski pohranjuje pri pojavi prekidnog signala, te u PC se zatim
stavlja adresa na kojoj počinje potprogram za obradu prekida.
10. Koje strukture podataka treba sadržavati operacijski sustav koji omogućuje prihvat prekida različitih
prioriteta?
Uz sustavski stog potrebna je i struktura koja se sastoji od: Polje za zastavice, polje za tekući prioritet te polje za
pohranu kontekstâ
Sklop za prihvat prekida sastavni je dio procesora, na kojeg direktno putem sabirnica dolaze zahtjevi za
prekidima. Tada sklop prema procesoru propušta samo onaj prekidni signal koji ima veći prioritet od dretve
koju procesor trenutno izvodi.
PROFESOROVA INTUITIVNA DEFINICIJA: Sklop za prihvat prekida nekad ga samo prihvaća, nekad ga prekida, a
nekad ga i pamti.
12. Kako treba nadopuniti ponašanje procesora do on omogućuje rad sa sklopom za prihvat prekida?
13. Navesti koje radnje koje mogu generirati prekid unutar procesora.
Pojava nekih nenormalnih stanja - Pokušaj dijeljenja sa nulom, adresiranje nepostojeće lokacije u adresnom
prostoru, dekodiranje nepostojećeg operacijskog koda i sl.
14. U kojem će se slučaju dogoditi „poziv jezgre“, odnosno „ulazak u jezgru“ i što se tada poziva?
15. Navesti osnovne registre pristupnog sklopa za neposredni pristup spremniku (DMA).
Zatražiti sabirnicu;
AR++;
BR--;
Više procesora spojeno na jednu sabirnicu komunicira preko dijeljenog spremnika. Korištenje sabirnice je
regulirano dodjeljivačem sabirnica.
1. Koje računalne resurse dijele dretve istog procesa?
Sve
Ništa
Kada neka dretva zastane u NKO, to ne smije spriječiti drugu da uđe u KO.
Izbor koja će dretva ući u kritični odsječak mora se odvijati u konačnom vremenu.
6.
7. Čemu služi Dekkerov, a čemu Lamportov algoritam? Koje strukture podataka koriste?
Dekkerov postupak je mehanizam za isključivanje dviju dretvi, koji je realiziran pomoću tri pomoćne varijable:
ZASTAVICA[I], ZASTAVICA[J], PRAVO.
Lamportov protokol je način ostvarenja postupka međusobnog isključivanja dretvi, koji je primjenjiv ne samo
na 2, već na n dretvi.
10. Navesti najjednostavniji način međusobnog isključivanja više dretvi na jednoprocesorskom računalu.
dok je (1) {
Onemogućiti prekidanje;
Kritični odsječak;
Omogućiti prekidanje;
Nekritični odsječak;
11. Navesti nedjeljive instrukcije procesora koje služe kao sklopovska potpora međusobnom isključivanju.
12.
13.
PITANJA I ODGOVORI ZA TREĆI KOLOKVIJ IZ
KOLEGIJA
OPERACIJSKI SUSTAVI 1
1
1. Opisati organizaciju smještaja podataka na magnetskom disku.
U jedan sektor može se pohraniti određeni broj bajtova. Uobičajeno je to 256, 512 ili 1024
bajtova.
Svaki sektor na disku ima svoju jedinstvenu adresu koja se izračunava iz:
rednog broja ploče,
rednog broja staze na ploči i
rednog broja sektora na stazi.
Ploča se odabire aktiviranjem odgovarajuće glave, redni broj staze određuje se na temelju
položaja glava, a redni broj sektora dobiva se tako da se mjere kutovi vrtnje počevši od
posebne oznake na ploči koja označava početni kut.
U uobičajenim izvedbama diskova svaka ploča ima svoju glavu za pisanje, odnosno čitanje, ali
se u jednom času može pristupiti samo do jedne od ploča, tj. može se čitati ili pisati samo u
jednu stazu cilindra.
2. Koliko iznosi ukupno trajanje prijenosa podataka izmeĊu tvrdog diska i RAM-a ?
Ukupno trajanje prijenosa podataka = trajanje postavljanja glave + trajanje prijenosa podataka
Trajanje postavljanja glave = trajanje traženja staze + rotacijsko kašnjenje
Trajanje prijenosa po dataka = tranje čitanja djela ili cijele staze + trajanje premještanja glave sa
staze na stazu
2
3. Zbog ĉega nastaje rotacijsko kašnjenje i o ĉemu ovisi?
Rotacijsko kašnjenje nastaje zbog toga što se nakon postavljanja glave na odabranu stazu mora prije
početka prijenosa pričekati da se ispod glave za čitanje pojavi traženi sektor.
Najlošiji slučaj – adresirani sektor je upravo prolazio ispod glave kad je ona prispjela na stazu
Najbolji slučaj – adresirani sektor upravo u trenutku postavljanja glave nailazi ispod glave.
Prosječno – uzimamo vrijednost tih dvaju krajnjih slučajeva i pretpostavljamo da je prosječno
rotacijsko kašnjenje jednako poloviti trajanja jednog okretaja diska – Tr/2.
U von Neumannovoj arhitekturi računala se sve adrese generiraju unutar procesora, i onda se one
neposredno preko adresnih vodiča dovode do spremnika.
a) adrese instrukcija koje dolaze iz programskog brojila kad se iz radnog spremnika dohvaćaju
instrukcije
b) stogovne adrese koje dolaze iz registra kazaljke stoga kad se adresira stog;
c) adrese operanada i rezultata operacija (adrese podataka), koje se stvaraju na temelju sadržaja
adresnih dijelova instrukcija kad se adresiraju podaci.
U stacionarnom stanju u spremniku postoji broj rupa koji je jednak polovini broja punih blokova.
3
DOKAZ
Veliko slovo je tip bloka, a malo slovo je broj blokova tog tipa. Blokova tipa A ima a.
Vjerojatnost da će se pronać neka rupa koja će točno odgovarat veličini zahtjevanog prostora
je zanemariva i označava se sa q, a vjerojatnost(p=1‐q) je zato približna 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 budući 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 cjelu sumu podjelit još sa dva.
n(rupa) = (b+c+2d)/2
Uz to budući da ako jednom bloku (C) slijedi nula, to mora značiti da će slijedećem (B)
prethodit, što znači da će broj blokova tipa C i tipa B bit jednak c=b
Znači,
n(rupa)=(2b+2d)/2 =b+d
m(memorija) = a+b+c+d I
Vjerojatnost da će nastati jedna rupa (znači mora nestat jedan blok tipa A) je a/m.
Vjerojatnost da će se popunit rupa (mora nestat blok tipa D) je d/m + vjerojatnost da postoji
zahtjev veličine jedne rupe u koju će se novi program smjestiti (ili kraće q)
Zbog onog prvog uvjeta vjerojatnost popunjavanja i pražnjenja rupa moraju biti otprilike
jednaki znači:
a=d + m(1‐p)
m=a+b+c+d;
c=b i b+d=n
m=d + m‐pm + b +b + d
m=m‐pm +2(n)
pm = 2n
n(rupa)=1/2m(memorije)
4
7. Kako se može ublažiti problem fragmentacije prilikom dinamiĉkog dodjeljivanja spremnika,
s obzirom da se ne može izbjeći ?
Pri svakom oslobađanju nekog procesnog prostora novonastala rupa spaja s eventualnim susjednim
rupama u novu veću rupu.
Pri svakom novom zahtjevu za spremničkim prostorom potraži se najmanja rupa u koju se može
smjestiti novi program.
Logički adresni prostor dijelimo na stranice, a fizički adresni prostor dijelimo na okvire.
Tablica prevođenja je sastavni dio spremničkog međusklopa u kojoj se vodi evidencija o tome u kojem
je okviru smještena pojedina stranica (za više vidi TLB kod Intel x86).
Od redaka (za svaku stranicu jedan redak) u kojima se pohranjuje broj okvira u kojem se nalazi (ako je
in) te dodatnog bita prisutnosti za svaki redak]
12. U ĉemu se razlikuju prekidi izazvani zbog promašaja stranice od ostalih vrsta prekida?
Prekid uslijed promašaja stanice dogodio se za vrijeme izvođenja instrukcije, a ne na kraju instrukcije.
Stoga se instrukcija koja je izazvala prekid mora ponoviti. Da bismo ponovili instrukciju, moramo
znati sadržaje svih registara prije izvođenja te instrukcije. Zbog toga procesori predviđeni za
ostvarivanje virtualnog spremnika imaju posebne skrivene kopije registara u kojima se čuvaju
nepromijenjene vrijednosti registara tijekom izvođenja cijele instrukcije. Vrijednosti tih registara se
obnavljaju tek na kraju izvođenja svake instrukcije.
Ako se sadržaj stranice nije mijenjao, tj. ako je stranica ostala čista, ne treba ju prepisivati natrag na
disk. Zbog toga se u tablicu stranica uvodi posebni bit za označavanje čistoće.
5
15. Što saĉinjava opisnik datoteke ?
Naziv datoteke, tip datoteke, lozinka, ime vlasnika, pravo pristupa, vrijeme stvaranja, vrijeme zadnje
uporabe, ime posljednjeg korisnika, opis smještaja datoteke.
Veličina diska (particije), količina slobodnog prostora, informacije o slobodnom prostoru (pozicija i
sl), opisnici datoteke.
17. Na koji naĉin je opis smještaja pohranjen u NTFS, a na koji u UNIX sustavu?
NTFS
diskovni prostor dodjeljuje se po skupinama sektora (1,2,4,8)/cluster;
referenca na disk uporabom LCN (r.br.clustera);
postoji datoteka MFT koja sadrži opisnik svake datoteke (1 zapis je veličine 1 clustera ~4KB);
male datoteke se cijele smještaju unutar MFT zapisa;
veće datoteke – zapis sadrži indekse clustera (+ dodatna potrebna proširenja);
datoteka se dijeli na „virtualne skupine“ („stranice“ jednake veličini „okvira“ (clustera))
– r.br.str. = VCN;
UNIX
13 kazaljki:
10 neposrednih pokazuju
na prvih 10 sektora [dat. do 10KB]
1 jednostruko indirektna pokazuje
na sektor s idućih 256 kazaljki [do 266KB]
1 dvostruko indirektna pokazuje
na sektor s kazaljkama na 256 sektora od kojih svaki ima 256
kazaljki () [do 64MB]
1 trostruko indirektna kao
gore samo još jedan stupanj indirekcije (256x256x256) [do 16GB]
6
VAŽNIJI POJMOVI
cilindar ‐ staze jednakih polumjera svih diskova; leže na zamišljenom plaštu valjka; ne može se
pročitati cijeli cilindar istovremeno, nego se mora čitati staza po staza iz čega proizlazi da je vrijeme
čitanja cilindra s N staza jednako N*Tr pri čemu je Tr vrijeme potrebno za jedan okretaj diska
sektor ‐ dio staze; svi su sektori jednake veličine; svaki sektor ima jedinstvenu adresu koji se računa iz
rednog broja ploče, rednog broja staze na ploči i rednog broja sektora na stazi
blokovi ‐ skupine bajtova koji se mogu adresirati, a sastoje se od jednog ili više sektora
rotacijsko kašnjenje ‐ vremenski interval između postavljanja glave na željenu stazu i početka
čitanja kojemu je uzrok to što traženi sektor mora doputovati do glave; najmanje vrijeme kašnjenja je
0 i do njega dolazi kada je upravo taj sektor točno ispod glave, a najveće je oko Tr kada se mora čekati
cijeli krug jer je traženi sektor baš netom otišao; u proračunima se često uzima kao prosječno vrijeme
kašnjenja Tr/2
procesni informacijski blok ‐ struktura podataka za svaki proces u kojoj se nalaze sve informacije
važne za odvijanje tog procesa (tablice sektora u kojima je program procesa pohranjen na disku,
podatci o smještanju programa u radnom spremniku i slično)
apsolutni oblik zapisa programa ‐ u okviru instrukcija programa zapisane su stvarne fizičke adrese
relativni oblik zapisa programa ‐ u okviru instrukcija zapisane su adrese u odnosu na početnu
adresu; za takve programe kompilator generira oznake za relativne adrese
stalne particije ‐ podjela spremnika na dijelove fiksne veličine u koje se smiještaju programi; za
preseljenje u novu particiju generirati novi apsolutni kod programa; problemi: unutarnja i vanjska
fragmentacija
unutarnja fragmentacija ‐ particije u kojima su programi manje veličine od njih samih ostaju
nepotpuno iskorištene
vanjska fragmentacija ‐ svaki program je pripreljmen za točno određenu particiju; ako u svi procesi
neke particije budu blokirani, particija zjapi prazna i u nju se ne može ugurati nitko tko jadan čeka jer
je pripremljen za neku drugu particiju
logiĉki adresni prostor ‐ prostor kojeg adresiraju relativne adrese, dakle tako izračunate kao da je
početna adresa programa (PA) jedanaka nuli
7
OPERACIJSKI SUSTAVI
PITANJA ZA VJEŽBU – 1. CIKLUS
(by kate)
1. Uvod
1. Što je Operacijski sustav?
Skup programa koji omogudavaju izvođenje osnovnih operacija na računalu – potpora raznovrsnim primjenskim
rogramima.
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 pri
ispravljanju greške?
Pogreska kod inicijalizacije polja, pointera ili varijabli (neinicijailzacija ili adresirano izvan adresnog prostora).
1
9. U pseudokodu napisati što procesor trajno radi?
ponavljati {
dohvatiti iz spremnika instrukciju na koju pokazuje programsko brojilo;
dekodirati instrukciju, odrediti operaciju koju treba izvesti;
povečaj sadržaj programskog brojila tako da pokazuje na sljededu instrukciju;
odrediti odakle dolaze operandi i kuda se pohranjuje rezultat;
operande dovesti na aritmetičko-logičku jedinicu, izvesti zadanu operaciju;
pohraniti rezultat u odredište;
} dok je (procesor uključen);
2
15. Što je radno čekanje?
Režim rada procesora u kojem procesor čeka na određeni događaj u programu (npr. pojava zastavice) i troši vrijeme
dok se taj događaj ne dogodi.
Podatak se upisuje kada je zastavica u niskoj razini, nakon upisivanja se ona podiže i tada se aktivira čitanje PR koje
po svom završetku spušta zastavicu i omogučuje novo čitanje. S obzirom da se signali na dva vodiča ("žice")
naizmjence podižu i spuštaju taj je protokol nazvan dvožičnim rukovanjem (engl. Twowire handshaking).
U prekidnom potprogramu:
1. pohraniti kontekst
2. posluživanje prekida
3. obnavlja kontekst
4. omogudi prekidanje
5. vrati se iz prekidnog načina rada (vračanje programskog brojila sa stoga, prebacivanje adresiranja u korisnički
adresni prostor, aktiviranje korisničkog registra kazaljke stoga)
18. Kako treba nadopuniti ponašanje procesora da on omogučuje prekidni rad bez sklopa za
prihvat 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 prekida i;
Dok je ((𝑝𝑜𝑠𝑡𝑜𝑗𝑖 𝐾_𝑍[𝑗] ! = 0)⋀(𝐽 > 𝑇_𝑃)){
Odabrati najvedi j;
K_Z[j] = 0;
Pohraniti kontekst sa sustavskog stoga i T_P u KON[j];
T_P = j;
Omogudi prekidanje;
Prijeđi u korisnički način rada;
Pozovi potprogram za obradu prekida j;
3
Zabrani prekidanje;
Prijeđi u sustavski način rada;
Vrati sadržaj iz KON*j+ na sustavski stog i u varijablu T_P;
}
}
Obnovi kontekst sa sustavskog stoga;
Omogudi prekidanje;
Vrati se iz prekidnog načina rada;
}
23. Koje strukture podataka treba sadržavati operacijski sustav koji omogućuje prihvat
prekida razlicitih prioriteta?
Varijablu T_P (tekudi prioritet) – broj tekudeg prioriteta dretve koja se upravo izvodi
Polje KON[n] (polje za kontekst) – pohranjuje se kontekst dretve i T_P
Polje K_Z[n] (kontrolna zastavica) – polje u kojem su zapisani prekidi koji čekaju na obradu (1-stigao prekid, 0-nije)
25. Kako treba nodopuniti ponašanje procesora da on omogucuje prekidni rad sa sklopom za
prihvat 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;
4
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 kad se dogodi prekid. Pozivaju se neke vrste potprograma koje se izvode 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 adresa bloka koji se želi prenesti Brojač (BR) - sprema se broj znakova koji
se 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 adresu sadržaj podatkovnog registra PR (ili obrnuto);
AR++ ;
BR-- ;
}
Postaviti signal PREKID;
32. Kako je podijeljen spremnicki prostor procesa, a kako dretveni spremnicki podprostor?
Procesni prostor: više dretvenih prostora i zajednički prostor (koji mogu dohvadati sve dretve procesa – globalne
varijable).
5
Dretveni prostor: dio za instrukcije dretve, dio za stog dretve i dio za lokalne podatke dretve
34. Navesti uvjete koje mora zadovoljavati algoritam medusobnog iskljucivanja dretvi.
Dretve se odvijaju međusobno isključivo (dvije dretve ne smiju obavljati K.O.)
Algoritam mora funkcionirati i onda kada su brzine izvođenja dretvi različite
Ako neka dretva zastane u N.K.O. to ne smije spriječiti drugu dretvu da uđe u K.O.
Izbor koja dretva de udi u K.O. mora se zbiti u konačnom vremenu.
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 dretvi
Strukture podataka: polje zastavica (koje govori koja dretva pokušava ući) ULAZ[I], polje brojeva dretvi
BROJ[J] ivarijabla zadnjeg broja ZADNJI_BROJ.
40. Navesti nedjeljive instrukcije procesora koje služe kao sklopovska potpora medusobnom
iskljucivanju.
TAS (ispitati i postaviti) - u prvom ciklusu dobave sadržaj adresirane lokacije i smjeste ga u jedan od registara
procesora, a u drugom ciklusu pohranjuju u tu lokaciju vrijednost 1
swap (zamjeni)- u prvom ciklusu dobave sadržaj adresirane lokacije i smjeste ga u jedan od registara procesora, a u
drugom ciklusu pohranjuju u tu lokaciju vrijednost koja je prije toga bila pohranjena u tom ili drugom registru
fetch-and-add - u prvom ciklusu dobave sadržaj adresirane lokacije i smjeste ga u jedan od registar procesora, a u
drugom ciklusu pohranjuju na tu lokaciju taj sadržaj uvedan za jedan
6
41. U pseudokodu riješiti problem medusobnog iskljucivanja više dretvi uz pomoc nedjeljive
instrukcije TAS/SWAP/FATCH_AND_ADD. Koja je prednost tih rješenja u odnosu na Lamportov
algoritam medusobnog iskljucivanja?
dok je (1) {
TAS ZASTAVICA;
dok je (ZASTAVICA !=0) {
TAS ZASTAVICA;
}
kritični odsječak;
ZASTAVICA = 0;
nekritični odječak;
}
Rješenja sa nedjeljivim instrukcijama su jednostavnija, krača i zahtjevaju manje varijabli, pa se zbog toga brže izvode i
zauzimaju manje memorije.
7
3. Pripravne_D – ako se ne izvode, a spremne su. Prema načinu formiranja red može biti – po redu prispjeda
ili prioritetni
4. Red BSEM[i] – dretve koje cekaju na binarnom semaforu
5. Red OSEM[j] – dretve koje cekaju na opčem semaforu
6. Red odgođen1_D – zadano kašnjenje dretve
7. Red UI[k] – ima ih koliko ima U/I naprava
Opisnici dretvi
56. Opisati nacin umetanja opisnika dretve u listu Zakašnjele_D. Koja vrijednost se upisuje u
polje Zadano_kašnjenje u opisniku dretve?
Lista Zakašnjele_D je složena prema vremenima kašnjenja. Prva dretva u listi ima najmanje vrijeme spavanja, dok
zadnja ima najdulje. U polje Zadano_kašnjenje prvog opisnika upisuje se apsolutna virjednost zadanog kašnjenja, a u
ostale opisnike samo dodatno odgađanje u odnosu na prethodnu dretvu.
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.
8
59. Na koji način se jezgrine funkcije obavljaju medusobno iskljucivo na jednoprocesorskom
racunalu, a kako na višeprocesorskom racunalu?
Međusobno isključivanje na jednoprocesorskom računalu ostvaruje se prekidima. 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 radnim čekanjem.
9
PITANJA ZA VJEŽBU – 2. CIKLUS
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č: Potrošač:
Dok je (1){ Dok je (1){
Proizvesti poruku P; Ispitati_Osem(i);
Ispitati_Osem(S); Ispitati_Bsem(K);
Ispitati_Bsem(P); Preuzeti poruku R iz prvog spremnika u
Dobaviti pretinac sa stoga SKLADISTE; Red_Poruka[i];
Postaviti P u pretinac i uvrstiti ga u Vratiti ispažnjeni pretinac na stog SKLADISTE;
Red_Poruka[i]; Postaviti_Bsem[K];
Postaviti_Bsem[P]; Postaviti_Osem(S);
Postaviti_Osem(i); Potrošiti poruku R;
} }
jedan OSEM je inicijalno postavljen na 0, a drugi na 1; Dretva u kojoj je OSEM postavljen u 1 ce prva poceti izvođenje.
10
64. Navesti nužne uvjete za nastajanje potpunog zastoja.
sredstva se koriste međusobno isključivo (neko sredstvno u istom času može upotrebljavati samo jedna od
dretvi)
dretvi se sredstvo ne može oduzeti – ona ga otpusta sama kada ga vise ne treba
dok traži dodatna sredstva dretva drži dodijeljena
barem 2 dretve se natječu za barem 2 sredstva
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 prekidanje;
Vratiti se iz prekidnog načina rada;
}
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;
11
}
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
12
T -prosjecno zadržavanje posla u sustavu T = 1/(β- α)
α = α1 + α2 + ...
ρ = ρ1 + ρ2 + ...
1/β = α1/α * 1/β1 + α2/α * 1/β2 + ...
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 determinističkom slučaju. U stohastičkom slučaju faktor iskorištenja je strogo manji od 1 (<1), dok je u
determinističkom slučaju <=1
13
PITANJA ZA VJEŽBU – 3. CIKLUS
80. Opisati organizaciju smještaja sadržaja na magnetskom disku (cilindri, staze, sektori).
Disk se sastoji od više ploča na istoj osovini. Kružnice na ploči predstavljaju staze, a staze su podjeljene na jednake
djelove (kružne lukove s jednakim središnjim kutem) – sektore. Staze jednakih polumjera svih diskova čine cilindar.
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 dijela ili cijele staze
14
87. Čime je odredena brzina prijenosa podataka s diska u spremnik diskovne upravljacke jedinke?
Brzinom kojom ispod 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 tri
formule, 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<D 400,
Ts = 10.0 + 0.01 x D ms za D > 400.
Koliko iznosi prosjecno vrijeme traženja staze?
2000
𝑇𝑠 = 10.0 + 0.01 ∗ = 16.66 𝑚𝑠
3
92. Problem fragmentacije prilikom dinamickog dodjeljivanja spremnika se ne može izbjeci, ali se može
ublažiti. Kako?
Rupe se održ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
susjednim 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 dretvi i „presložiti“ programe u kompaktni prostor.
15
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 da de se pronadi neka rupa koja de točno odgovarati veličini zahtjevanog prostora je zanemariva i
označava se sa q, a vjerojatnost (p= 1 - q) je zato približno jednaka 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 bududi 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 bududi da ako jednom bloku (C) slijedi nula, to mora značiti da de slijededem (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 + d
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)
95. Kako treba podijeliti program (koji u cijelosti ne stane u radni spremnik) u prekloponom nacinu uporabe
radnog spremnika?
Na jedan osnovni dio koji se uvijek nalazi u radnom spremniku i na dijelove koji se naizmjenično smještaju u preostali
dio korisničkog dijela fizičkog spremnika.
96. Kako je podijeljen logicki, a kako fizicki adresni prostor u sustavu sa stranicenjem?
Logički adresni prostor se dijeli na jednako velike dijelove koje nazivamo stranicama (page). Prikladno je da stranice
imaju veličinu koja je cjelobrojna potencija broja dva.
16
Fizički adresni prostor možemo podijeliti na dijelove koji su jednaki veličini stranice logičkog adresnog prostora. Te
zamišljene dijelove nazivamo okvirima (frames). U jedan okvir fizičkog radnog spremnika može se smjestiti jedna
stranica logičkog adresnog prostora
98. Mogu li stranice logickog adresnog prostora biti smještene u okvire fizickog spremnika proizvoljnim
redoslijedom?
Mogu. Time se izbjegava problem fragmentacije.
Tablica prevođenja ima dvije razine adresa organizirane po stranicama veličine 4 KB. U prvoj razini 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 od po 32 bita (tablica stranica)
100. U cemu se razlikuju prekidi izazvani zbog promašaja stranice kod stranicenja na zahtjev od ostalih vrsta
prekida?
Prekid zbog adresiranja nepostojede stranice se dogodi usred instrukcije. Nakon obrade prekida mora se ponoviti
instrukcija unutar koje se dogodio prekid. Kod ostalih vrsta prekida, postojanje prekida se provjerava nakon
izvodjenja instrukcije, a ponovno pokretanje dretve započinje sljedečom instrukcijom.
101. Opisati sklopovsku potporu za ostvarenje stranicenja u Intel x86 arhitekturi. Što sadrži i cemu
služ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 adresa koji nam služi za cjelokupno spremanje fizičke adrese i
dijela logičke adres, tj. omoguduje nam da ne moramo uzastopno dohvadati fizičku adresu 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
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)
17
OPT (Optimalna strategija) – izbacuje se stranica koja se najdulje u budučnosti nede upotrebljavati
Satni algoritam – Stranice se svrstavaju u listu po redu prispjeda. Lista se obilazi kružno posebnom kazaljkom
(kada dođe do kraja kazaljka se vrada na početak liste). Kada 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 jedno mjesto dok 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.
9. Datotečni podsustav
107. Navesti sadržaj opisnika datoteke.
Naziv datoteke
Tip
Lozinka
Ime vlasnika
Prava pristupa
Vrijeme stvaranja
Vrijeme zadnje uporabe
Ime posljednjeg korisnika, i slično
Opis smještaja
18
111. Opisati bitovni prikaz slobodnog prostora na disku.
U nizu bitova svakom sektoru odnosno nakupini sektora pripada jedan bit čija je vrijednost jednaka 1 kada je sektor
odnosno nakupina zauzeta, inace 0.
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 sadrži datoteku MFT (glavna
tablica datoteka) u kojoj se nalaze opisnici svih datoteka (ukljucujuci i nje same). Jedan MFT zapis ima veličinu jedne
skupine sektora (npr. 4KB). Za veče datoteke zapis sadrži indekse skupina sektora i ako je potrebno dodatno
proširenje opisa.
Datoteka se dijeli na djelove koji su jednako veliki kao nakpine sektora (virtualne skupine). Za smještaj datoteka
pronalazi se što više uzastopnih skupina sektora i dodjeljuje se datoteci (ako nema uzastopnih dodjeljuju se
pojedinačne skupine).
Male datoteke smještaju se unutar MFT zapisa.
19
Operacijski sustavi
prof. Marin Golub
Ivan Nenadić
Operacijski sustavi – predavanja 2/34
Predgovor
Dilanje ove skripte kao i njezino prepravljanje je potpuno besplatno (bar što se
autora tiče :-)
P.S. posebna zahvala Zoranu Marinčiću na nadopuni skripte kad ja nisam bio
prisutan na predavanjima :-)
Sadržaj
5.1 Uvod................................................................................................................ 24
Slike
Slika 4 - više prekidnih signala spojenih na jedan prekidni ulaz procesora .............. 10
def: Operacijski sustav je skup programa koji nam olakšavaju rad na računalu.
- I/O – Input/Output
- pretpostavke:
- u jednom sabirničkom ciklusu može se obaviti samo jedno ili čitanje ili pisanje
u radni spremnik
registri – služe za pohranjivanje svih informacijskih sadržaja koji ulaze ili izlaze iz
procesora i u njemu se transformiraju.
PR – podatkovni registar
RS – registar stanja
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:
Prije nego što se PC sa sustav. STOG-a vrati, treba se vratiti iz prekidnog načina
rada:
- omogućiti prekidanje
Nedostatak: manje važan prekid (čija obrada dugo traje) može ometati rad važnijih
prekida
- pristupni sklopovi su razvrstani po važnosti ili prioritetu (npr. veći broj – veći
prioritet)
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<=i<=N) {
oznaka_čekanja[ i ] = 1;
zastavica_i = 0;
Dok (postoji oznaka_čekanja[ j ] != 0 && j>tekući_prioritet) {
odaberi najveći j;
oznaka_čekanja[ j ] = 0;
zapis[ j ] ← kontekst sa sust. STOG-a, tekući_prioritet;
tekući_prioritet = j;
omogući prekidanje;
potprogram za obradu prekida ( j );
zabrani prekidanje;
zapis[ j ] → kontekst na sust. STOG, tekući_prioritet;
} obnovi kontekst sa sust. STOG-a;
omogući prekidanje;
vrati se iz prekidnog načina rada;
}
}
Programski prekidi:
Postoji barem jedna instrukcija koja omogućuje namjerno izazivanje prekida iz
programa.
AR – adresni registar
BR – brojač
3. Datotečni podsustav
1. datoteka
2. direktorija (tablica)
osnovne naredbe:
- stvori direktorij: md ili mkdir
- briši direktorij: rmdir
- premjesti se: cd
- kopiraj: cp
- premjesti datoteku ili direktorij: mov
- briši: rm
r w x r w x r w x
a) binarni prikaz
011010011010
sektor zauzet
sektor slobodan
2 do 1Gb 1024
4 do 2Gb 2048
- svaka datoteka (pa i MFT) ima u toj datoteci zapis koji je opisnik datoteke
(10+256+256.256+2563 ≈ 16Gb)
Ako su dva sektora koji logički slijede jedan iza drugoga fizički smješteni na
sektorima n i n+k tada je faktor preplitanja jednak ‘k’.
- izbrisati
- kopirati
- premjestiti
- otvoriti
- zatvoriti
- čitati
- pisati
Zadatak:
Disk s pokretnim glavama ima 100 staza (0-99). Neka se glava trenutno nalazi na
stazi 29 s tim da je prije bila na stazi 8. Zahtjevi za pristup pojedinim stazama
svrstani 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 strategije
posluživanja?
2. SSTF (Shortest Seek Time First) – posluživanje najbližih zahtjeva (može doći
do izgladnjivanja.
Dretve
Dretva T čita podatke iz domene D, obavlja neku funkciju f(D) nad podacima iz
domene i rezultat upisuje u poddomenu K.. ( f(D)=K).
( K i ∩ K j ) ∪ ( Di ∩ K j ) ∪ ( D j ∩ K i ) = 0
Pišu na isto mjesto Piše tamo gdje drugi čita .
Zadatak:
Z2 Z3 Z4 Z5 Z6 Z7 Z8
M1 D D D K
M2 K K D D
M3 K D K K
M4 K D
1.Utvrđivanje zavisnosti ( K i ∩ K j ) ∪ ( Di ∩ K j ) ∪ ( D j ∩ K i ) = 0
Kritični odsječak je dio programa u kojem dretve koriste neko zajedničko sredstvo
(zajednička memorija, datoteka..).
Ako neka dretva zastane u N.K.O. to ne smije spriječiti drugu dretvu da uđe u K.O.
Izbor koja dretva treba ući u K.O. mora se obaviti u konačnom vremenu.
Dretva {
dok je (1) {
dok je (ZASTAVICA==1); //radno čekanje
ZASTAVICA=1;
K.O.;
ZASTAVICA=0;
N.K.O.;
}
}
dok je (1) {
dok je (PRAVO!=I);
K.O.;
PRAVO=J;
N.K.O.;
}
Rješenje:
dok je (1) {
ZASTAVICA[ I ]=1;
dok je (ZASTAVICA[ J ]==1) {
ako je (PRAVO==J) {
ZASTAVICA[ I ]=0;
dok je (PRAVO==J);
ZASTAVICA[ I ]=1;
}
}
K.O.;
PRAVO=J;
ZASTAVICA[ I ]=0;
N.K.O.;
}
dok je (1) {
dok je (TAS_zastavica==1);
K.O.;
ZASTAVICA=0;
N.K.O.;
}
2.SWAP
dok je (1) {
a=1;
dok je (a==1) SWAP(KLJUČ,A);
K.O.;
KLJUČ=0;
N.K.O.;
}
3.FETCH_AND_ADD
5. Jezgra OS-a
5.1 Uvod
PREKID izaziva ulazak u jezgru.
1. struktura podataka
2. jezgrinih funkcija
kazaljke
ID dretve
prioriteta
kašnjenja
Slika 13 – Opisnici
- prioritetni red
- red UI naprave
• onemogući prekidanje
b) Izlaz iz jezgre zbiva se kada jezgrina funkcija završi, svodi se na aktiviranje jedne
od dretvi (aktivira prvu dretvu iz reda pripravnih dretvi), a događa se sljdeće:
• omogućiti prekidanje
BSEM OS
• neprolazan ali je
red prazan
čekaj_OS v--; (prođi) v--; (pređi u red OS, ide u red koji hoće
proći preko semafora)
6. Međudretvena komunikacija
"Medjudretvena
komunikacija.ppt"
vidjeti predavanja power point…..
Vraća:
'-1' ako se dogodi greška ili ako nemože stvoriti novi proces
'0' ako uspije svoriti proces dijete, ono dobiva vrijednost '0'
Proces dijete postaje proces 'zombie', ako ga roditelj ne čeka (wait (NULL)), kada
proces završi on vraća NULL procesu roditelj, pa stoga proces roditelj treba čekati
dok se proces dijete ne završi.
thr_create() vraća: '-1' Æ ako se dogodi greška ili ako nemože stvoriti novu
dretvu
7.1 Fragmentacija
Radni spremnik
A) statičko raspoređivanje radnog spremnika
U kojem odnosu su m i h ?
Uvjet ravnoteže:
a d
= +q a = d + m(1 − p)
m m
m=a+b+c+d
m = d + m(1-p) + b + c + d, b = c
m = 2d + m – mp + 2b =
= 2(d+b) + m – mp
m = 2n + m – mp
2n = mp
n = (m / 2) . p ; (p ≈ 1) => n = m / 2
7.3 Straničenje
Strategije izbacivanja stranica
Zadatak: u sustavu sa straničenjem program veličine 400 riječi (1-400) generira slijed
adresa: 23, 47, 333, 81, 105, 1, 400, 157, 30, 209, 289, 149 i 360.
Program ima na raspolaganju 200 riječi primarne memorije.
Napisati niz referenciranja stranica veličine 50 riječi (to je veličina stranice).
Koliki je postotak promašaja za sve tri strategije izbacivanja stranica?
Stranice 1 1 7 2 3 1 8 4 1 5 6 3 8
FIFO 1 1 1 1 8 8 8 8 6 6 6
- 7 7 7 7 4 4 4 4 3 3
- - 2 2 2 2 1 1 1 1 8
- - - 3 3 3 3 5 5 5 5
LRU 1 1 1 1 1 1 1 1 1 8
- 7 7 7 8 8 8 6 6 6
- - 2 2 2 4 4 4 3 3
- - - 3 3 3 5 5 5 5
OPT 1 1 1 1 1 1 5 5
- 7 7 7 7 4 4 6
- - 2 2 8 8 8 8
- - - 3 3 3 3 3
FIFO (First In First Out) – izbacuje se ona stranica koja je bila prva dohvaćena.
Svako dobavljanje stranice iz tvrdog diska u radni spremnik naziva se promašaj, a
pogodak kada se traži stranica koja se već nalazi u radnom spremniku.
LRU (Last Recently Used) – izbacuje se ona stranica koja se u povijesti najdulje nije
koristila.
Broj stranice u koju spada određena riječ dobije se tako da se podijeli broj te riječi sa
veličinom stranice..npr. 23 / 50 = 0.xx => spada u prvu stranicu, 81 / 50 = 1.xx =>
spada u drugu stranicu.
1 0 0 0 0 0 0 0 0 1
Intel x86
- nema registra povijesti
bit čistoće (ako je postavljen => stranica je čista, u nju se nije ništa zapisivalo).
Pristup Čistoća
0 0
0 1
1 0
1 1
Više UNIX operacijskih sustava i WinNT (i viši) koriste inačicu LRU strategije koja se
naziva SATNI MEHANIZAM.
- ako je bit pristupa ‘1’ tada se on resetira i kazaljka se pomiče za jedno mjesto
u desno
PROCES - je program koji se izvodi ili program u izvođenju zajedno sa svim potrebnim
resursima
Sastoji se od: - barem jedne dretve
- zajedničkog adresnog prostora
- adresnog prostora rezerviranog za svaku pojedinu dretvu
- ostalo – stog, kazaljka stoga, opisnici datoteka, opisnici
cjevovoda, redovi poruka, semafori, uvjetne varijable, varijable
zaključavanja itd.
SKRAČENO:
pročitaj (RS);
dok je (ZASTAVICA==0) pročitaj (RS);
pročitaj (PR);
Procesor zabrani daljnje prekidanje, adresira sustavski dio spremnika, aktivira sustavski
registar kazaljke stoga. Programsko brojilo sprema na sustavski stog, te se u PC na
početak podprograma sprema kazaljka.
10. Napisati u pseudokodu što procesor trajno radi i kako treba nadopuniti ponašanje
procesora tako da se omogući prekidni način rada?
ponavljati {
.
.
.
//na kraju dolazi
ako je (prekidni signal postavljen) {
zabrani prekidanje;
aktivirati sustavski adresni prostor i sustavsku kazaljku stoga;
PC ↔ sustavski stog;
PC ↔ adresa početka podprograma;
}
} sve dok je (procesor uključen);
Kada za dvije dretve vrijedi uvjet tada su ta dva zadatka nezavisna. Ako su bilo koji
od ova tri uvjeta ispunjeni zadaci su zavisni.
Di ∩ Kj – u isto vrijeme ita dretva čita podatak i jota dretva zapisuje – ako se to
dogodi onda su dretve zavisne
Dj ∩ Ki – u isto vrijeme jota dretva čita podatak i ita dretva zapisuje – ako se to
dogodi onda su dretve zavisne
Ki ∩ Kj – i ita i jota dretva zapisuju na istu kodomenu – ako se to dogodi onda su dretve
zavisne
Z1 Z2 Z3 Z4 Z5 Z6 Z7
M1 D D D K
M2 K K D D
M3 K D K K
M4 K D
D4 i D3 se mogu paralelno
D5 i D6 idu paralelno
D6 i D7 mogu paralelno
20. Nabrojiti uvjete koje treba zadovoljavati algoritam međusobnog isključivanja.
1. Dvije dretve ne smiju obavljati K.O. (kritični odsječak)
2. Mehanizam mora djelovati kako brzo se obavljaju drtve
3. Ako neka dretva bude u N.K.O. ne smije spriječiti drugu da uđe u K.O.
4. U konačnom vremenu mora se odlučiti koja će ući prva
1. Aktivna dretva
2. Pasivne dretve
3. BSEM (binarni semafor)
4. OSEM (opći semafor)
5. Odgođene dretve
6. U/I
7. Pripravne dretve
Datotečni podsustav
1. Navesti elemente datotečnog podsustava. (18)
2. Navesti barem pet osnovnih naredbi operacijskog sustava za rad s datotekama. (18)
3. Opisati osnovni sadržaj opisnika datoteke. (19)
4. Navesti osnovni sadržaj datotečne tablice. (20)
5. Opisati način evidencije binarnim prikazom o slobodnom prostoru na disku. (20)
6. Koliko iznosi ukupno trajanje prijenosa podataka tvrdi disk ↔ radni spremnik? (21)
7. Navesti tipične datotečne operacije. (21)
8. Opisati organizaciju smještaja sadržaja na magnetskom disku (cilindi, staze, sektori). (19) ?
9. Opisati strategije posluživanja zahtjeva za pristup stazama tvrdog diska. (23) ?
10. Zadatak: " Disk s pokretnim glavama ima 100 staza (0-99). Neka...". (23)
Međudretvena komunikacija
11. Što se događa prilikom poziva funkcije fork?
12. Napisati program u C-u ili u pseudokodu koji pokreće dva procesa.
13. Nabrojati mehanizme za komunikaciju među procesima.
14. Napisati program u C-u ili u pseudokodu koji pokreće dvije dretve.
15. Nabrojiti mehanizme za sinkronizaciju rada dretvi, odnosno procesa.
16. Što je to potpuni zastoj? ?
17. Navesti nužne uvjete za nastajanje potpunog zastoja.
Gospodarenje spremničkim prostorom
18. Navest vrste fragmenatcije prilikom statičkog i dinamičkog dodjeljivanja spremnika.
19. Navesti i pokazati Knuthovo 50%-tno pravilo.
20. Navesti osnovne strategije zamjene stranica.
21. Zadatak: "U sustavu sa straničenjem program veličine 400 riječi (1-400) generira slijed
adresa:...". ?*
22. Čemu služi posmačni registar povijesti. Opisati ga. *?
23. Budući da Intel x86 nemaju registra povijesti opisati strategiju izbacivanja stranica. *
24. Što je to satni mehanizam?
Datotečni podsustav
1. Navesti elemente datotečnog podsustava. (18)
1.) Datoteka
2.) Tablica (direktorija)
3.) Procedura za manipuliranje datotekama
2. Navesti barem pet osnovnih naredbi operacijskog sustava za rad s datotekama. (18)
stvori (mkdir, md), briši (rmdir), premjesti (mv), kopiraj (copy, cp), promijeni tekući
direktorij (cd)
6. Koliko iznosi ukupno trajanje prijenosa podataka tvrdi disk ↔ radni spremnik? (21)
7. Navesti tipične datotečne operacije. (21)
stvoriti, izbrisati, kopirati, premjestiti, otvoriti (file *fopen (“ime datoteke”, tip→ r, w ... datoteke),
zatvoriti, čitati (fgets), pisati (fputs) “””””””””” → pokazivač na opisnik tablice
8. Opisati organizaciju smještaja sadržaja na magnetskom disku (cilindi, staze, sektori). (19)
10. Zadatak: Disk s pokretnim glavama ima 100 staza (0-99). Neka se glava trenutno nalazi na
stazi 29 s tim da je prije bila na stazi 8. Zahtjevi za pristup pojedinim stazama, svrstani su po
redu prispjeća. Zahtjevi su slijedeći: 3, 7, 40, 98, 71, 68, 70, 21, 5 i 49. Koliki je ukupan pomak
glave pri izvršenju tih zahtjeva za strategiju poslučivanja:
1. redom prispjeća FCFS (first come first serve)
2. s najkraćim vremenom traženja SSTF (shortest seek time first)
3. pregledavanje (scan)
4. kružno pregledavanje (c-scan)
Međudretvena komunikacija
11. Što se događa prilikom poziva funkcije fork?
Sistemskim pozivom fork zahtijeva se stvaranje novog procesa. Kada proces koji se trenutno
izvodi pokrene novi proces, pokrenuti proces postaje proces "dijete" procesa "roditelja" koji
ga je pokrenuo. Dijete dobija kopije segmenta instrukcija i segmenta podataka od roditelja.
Također, dijete nasljeđuje većinu sistemskih podataka od roditelja.
12. Napisati program u C-u ili u pseudokodu koji pokreće dva procesa.
To si isfurajte u bilježnicu iz OS (labosa) koja je dozvoljena na ispitu. Program ide ovako:
#include <stdio.h>
#define br.procesa 2
#define br. prolaza 5
void proces (int i) {
int j;
for (j=1 ; j<br. prolaza; j++) {
printf(''\n Proces: %d, prolaz: %d\n'', i, j);
sleep (1);
}
}
int main (void) {
int i;
for (i=0; i<br. procesa; i++) {
switch(fork() ) {
case –1: printf('' Ne mogu stvoriti novi proces! \n'');
exit (0);
case 0: Proces(i), exit(0);
default: break;
}
}
for (i=0; i<br. procesa; i++) wait (null);
return 0;
}
14. Napisati program u C-u ili u pseudokodu koji pokreće dvije dretve.
To si isfurajte u bilježnicu iz OS (labosa) koja je dozvoljena na ispitu. Program ide ovako:
#include <stdio.h>
#include >ptherad.h>
#define br.dretvi 2
void *dretva (void *rbr) {
int i, brd;
for (i=1; i<6; i++) {
printf(''Ja sam dretva: %d i i= %d\n'', (int)rbr, i);
sleep (1);
}
}
int main (void) {
int i, br[br_dretvi] { *t[br.dretvi]
pthread_t t;
for (i=0; i<br.dretvi; i++) {
br[i]=i+1;
if (pthread_create (&t, null, dretva (int*) & br[i]))
{
printf(''Ne mogu stvoriti dretvu!\n'');
exit (1);
}
while (pthread_join(t, null)= =0);
return 0;
}
}
Oslobađanje srednjega:
21. Zadatak: U sustavu sa straničenjem program veličine 400 riječi (1-400) generira slijed
adresa: 23, 47, 333, 81, 105, 1, 400, 157, 30, 209, 289, 149, 360. Program ima na raspolaganju
200 riječi primarne memorije. Napisati niz refenciranja stanica veličine 50 riječi. Koliki je
postotak promašaja za sve tri strategije izbacivanja stranica?
Što je sučelje?
Sučelje je utvrđeni način komuniciranja: postavljanje zahtjeva OS-u i izgled povratnih poruka OS-a.
Općenito, naziv sučelje se koristi za čvrsto dogovoreni način uspostavljanja veze između nekih, inače
razdvojenih, cjelina.
Razina Ri ostvarena je samo pomoću objekata i operacija razine Ri-1, a razina Ri+1 samo od objekata i
operacija iz razine Ri.
Razina Ri+1 „ne vidi“ objekte i operacije iz razine Ri-1, ona kroz svoje sučelje „vidi“ jednake objekte i
operacije u razini Ri.
Na računalno sklopovlje oslonjena je razina OS-a računala. Iznad razine OS-a nalazi se razina
primjenskih programa koji transformiraju računalni sustav u različite virtualne strojeve.
Različiti korisnici sa svoje razine kroz sučelja primjenskih programa gledaju „svoj“ virtualni stroj
(korisnici moraju poznavati samo neke najosnovnije funkcije OS-a, a do njih mogu pristupiti kroz
sučelje OS-a predviđeno za korisnike).
Primjenski programi su, s jedne strane, neporedno oslonjeni na sklopovlje(izvođenje programa se
svodi na izvođenje niza strojnih instrukcija), s druge strane, oslonjeni na funkcije pripremljene unutar
OS-a koje su dohvatljive kroz njegovo sučelje prema primjenskim programima – API.
Što je sabirnica?
Sabirnica je jedan zajednički snop vodiča na koji su spojeni svi dijelovi računala. Osim vodiča sabirnica
ima i svoj sabirnički elektronički sklop, koji pomaže pri ostvarivanju veza.
Skiciraj sklopovlje računala povezano sabirnicom i objasni.
Sve potrebne razmjene podataka, instrukcija i upravljačkih signala obavljaju se preko zajedničkih
vodiča.
Kosa crtica preko crte koja predstavlja sabirnicu označava da je riječ o snopu vodiča.
Sabirnica se mora naizmjence (s podjelom vremena) koristi za ostvarenje potrebnih veza između
dijelova računala.
Vrijeme na sabirnici se dijeli na sabirničke periode ili sabirničke cikluse. U jednom sabirničkom ciklusu
trajanja 𝑇𝐵 ostvaruje se jedna veza, tj. prijenos jednog sadržaja.
npr. Sabirnica koja ima ciklus trajanja 𝑇𝐵 = 100𝑛𝑠 omogućila bi da se u jednoj sekundi obavi 10
milijuna prijenosa sadržaja.
Pretpostavlja se da su brojevi bitova adrese i podataka jednaki. Svi registri su jednake duljine i svi
prospojni putovi imaju jednak broj vodiča. Međusobno su povezani s ostalim dijelovima procesora,
posebice s aritmetičko-logičkom jedinicom pomoću unutarnjih sabirnica S1,S2 i S3. Preklopke na
crtama koje povezuju registre na sabirnicu simboliziraju povezanost registra na sabirnicu. Zamišljene
preklopke otvara i zatvara upravljački sklop prema potrebi.
Procesor je automatski izvoditelj programa koji obavlja instrukcije onim redom kojim su one
smještene u spremniku.
Opiši izvođenje instrukcija i njenu podjelu.
1. faza dohvata instrukcije:
-sadržaj programskog brojila prebacuje se u adresni međuregistar
-upravljačka jedinica pokreće aktivnost dohvata instrukcije iz spremnika
-instrukcija dolazi u podatkovni međuregistar i iz njega u instrukcijski registar
2.faza dekodiranja instrukcije:
upravljačka jedinica:
-utvrđuje na temelju dijela bitova instrukcije (operacijskim kodom) operaciju koju treba provesti
-povećava sadržaj programskog brojila tako da pokazuje na sljedeću instrukciju
-šalje upravljačke signale aritmetičko-logičkoj jedinici kako bi ona “znala“ koju operaciju treba obaviti
-na temelju dijela bitova instrukcije (adresni dio instrukcije) ustanovljuje iz kojih registara dolaze
operandi i gdje treba pohraniti rezultat, te zatvara odgovarajuće preklopke na unutarnjim
sabirnicama
-ako adresni dio instrukcije određuje da operand dolazi iz spremnika, onda se adresa operanda
prebacuje u adresni međuregistar i pokreće dobavljanje operanda iz spremnika, pa će se taj operand
naći u podatkovnom međuspremniku i iz njega dovesti u aritmetičko-logičku jedinicu
3.faza obavljanja operacije:
-aritmetičko-logička jedinica obavlja zadanu operaciju i pohranjuje rezultat preko sabirnice S3 u
odredište
-vrijednosti pojedinih zastavica koje ovise o dobivenom rezultatu pohranjuju se u registar stanja
Spremnik računala prikazan je na slici razlomljen u tri dijela kako bi se jednostavnije prikazao tijek
izvođenja programa.
U jednom dijelu spremnika je pohranjen program, u drugom dijelu spremnika je smješten programski
odsječak potprograma. Treći dio spremnika je rezerviran za smještanje stoga.
Kada izvođenje programa dobiva obilježje procesa? Kako nazivamo takav proces?
Izvođenje programa dobiva obilježje procesa kada mu se pripišu neka vremenska svojstva. S obzirom
da se proces odvija u računalu govorimo o računalnom procesu.