OS2/Januar 2022
1. zadatak
Postavka
Navesti osnovni problem FCFS algoritma raspoređivanja procesa i objasniti taj problem na primeru. Navesti i ukratko objasniti i drugi problem ovog algoritma.
Rešenje
- Osnovni problem je dugo prosečno vreme čekanja za dolazak na red.
- Drugi problem je tzv. konvoj efekat gde grupa I/O-bound procesa (koji se često blokiraju) čeka na CPU-bound proces (koji dugo zauzima proces) završi i tako u krug idu za njim kao konvoj što čini posledicu slabijeg iskorišćenja procesora.
2. zadatak
Postavka
Korišćenjem klasičnih uslovnih promenljivih realizovati monitor sa dve operacije, x i y, pri čemu monitor održava sledeću invarijantu: ukupan broj izvršavanja operacije x je uvek ne manji od broja izvršavanja operacije y. Zanemariti prekoračenje ograničenog opsega celobrojnih brojača.
Rešenje
monitor xy;
export x, y;
var
count : int;
canY : cond;
procedure x();
begin
count := count + 1;
if (count >= 0) then
begin
signal(canY);
end;
end;
procedure y();
begin
while (count == 0) then
begin
wait(canY);
end;
count := count - 1;
end;
begin
count := 0;
end;
3. zadatak
Postavka
Objasniti zašto je nemoguće u potpunosti garantovati semantiku tačno jednog poziva kod RPC u distribuiranom okruženju u opštem slučaju.
Rešenje
Neophodno je uspostaviti otpornost na izgubljene ili duplicirane poruke što nije trivijalno. Otpornost na izgubljene poruke se može implementirati porukama potvrde prijema, ali i one mogu da se izgube; ili vremenskom kontrolom, koja može da istekne pa se onda opet mora slati zahtev.
4. zadatak
Postavka
Nacrtati graf zauzeća resursa za dati sistem koji izbegava mrtvu blokadu posle sledeće sekvence: P1-request(R1), P3-request(R3), P2-request(R2). Sva tri procesa su najavila korišćenje sva tri resursa.
Rešenje
P1 će zauzeti R1. Zbog izbegavanja mrtve blokade, P3 neće smeti da uzme R3 (stvara se petlja) dok P1 ne oslobodi R1.
5. zadatak
Postavka
Ukratko objasniti algoritam časovnika za zamenu stranica.
Rešenje
- Osnova je FIFO kružna lista. Svaka stranica ima bit koji označava da li je bilo pristupa njoj - bit referenciranja.
- Postoji pokazivač (kazaljka časovnika) koji pokazuje na stranicu koju treba izbaciti.
- Ukoliko stranica ima bit referenciranja postavljen na 0, ona se izbacuje.
- Ukoliko je taj bit 1, postavlja se na 0 (time se daje "druga šansa") i prelazi se na sledeću stranicu u redu.
- Svodi se na FIFO ako su svi biti referenciranja 1.
6. zadatak
Postavka
Šta je keš (cache), a šta ploča (slab) kod algoritma za alokaciju memorije pločama? Precizno objasniti.
Rešenje
- Keš se sastoji od jedne ili više ploča. Služi da smesti sve instance nekog tipa objekta.
- Ploča je niz fizički susednih stranica. Polja u ploči su veličine tipa koji njen keš čuva. Broj polja zavisi od veličine objekta.
7. zadatak
Postavka
Neki RAID6 sistem označen je na sledeći način: (12 + 3) x 2 TB. Koliki je efektivan kapacitet za podatke ovog sistema?
Rešenje
2 x 12 = 24 TB.
8. zadatak
Postavka
Šta je CLR u .Net okruženju?
Rešenje
Common Language Runtime (CLR) je komponenta virtuelne mašine koja pokreće .NET programe.
9. zadatak
Postavka
Pod kojom licencom se distribuira Linux kernel?
Rešenje
GPL - GNU General Public License.
10. zadatak
Postavka
Navesti najmanje dve standardne C biblioteke ugrađene u sistem Android i kratko navesti čemu one služe.
Rešenje
- SQLite - implementacija relacione baze podataka
- OpenGL - biblioteka za renderovanje 2D i 3D grafike