ОС2/Фебруар 2022
Ispit u februarskom roku 2022. godine održan je 10. februara. Postavka roka dostupna je sa stranice predmeta.
1. zadatak
Postavka
Da li se kod algoritma raspoređivanja Multi-level Feedback Queue Scheduling procesu koji je došao u red spremnih iz stanja suspenzije po pravilu smanjuje ili povećava prioritet? Zašto?
Rešenje
- Stavlja se u viši (prioritetniji) red.
- Zato što smo prošlom procenom precenili dužinu njegovog naleta ili smo potcenili njegovu interaktivnost. Zato stavljamo proces u red u kojem će kraće čekati sledeći nalet, ali će imati i manje vreme naleta.
2. zadatak
Postavka
Na programskom jeziku Java realizovati monitor sa dve operacije, op1
i op2
, pri čemu monitor održava sledeću invarijantu: ukupan broj izvršavanja operacije op1
je uvek ne manji od broja izvršavanja operacije op2
. Zanemariti prekoračenje ograničenog opsega celobrojnih brojača.
Rešenje
public class MyMonitor {
private int count;
public synchronized void op1() {
this.count += 1;
if (this.count == 1) notifyAll();
}
public synchronized void op2() {
while (--this.count < 0) wait();
}
}
3. zadatak
Postavka
U koju kategoriju međuprocesne komunikacije po pitanju imenovanja spada koncept cevovoda (pipe)? Obrazložiti. Šta je osnovna motivacija za ovakav koncept?
Rešenje
- Indirektno, ne moramo znati tačnu indetifikaciju procesa kojem šaljemo/uzimamo podatke, već samo ime cevovoda.
- Motivacija je rasprezanje koda što omogućava lakše održavanje i nezavisno menjanje koda.
4. zadatak
Postavka
Navesti i precizno objasniti bar dva načina sprečavanja mrtve blokade ukidanjem uslova "držanje i čekanje" (hold and wait).
Rešenje
- Procesi ne smeju tražiti novi resurs ukoliko već imaju/traže neki drugi. Za hold and wait su potrebna bar 2 resursa što ovaj pristup onemogućava.
- Procesi sve svoje resurse moraju tražiti istovremeno, ukoliko ne dobiju sve koje su tražili oslobađaju ih pa posle nekog vremena pokušavaju ponovo sve dok ne dobiju sve tražene resurse. Za hold and wait moramo držati neki resurs dok tražimo drugi, a ovim pristupom se to onemogućava jer se svi resursi zauzimaju istovremeno.
5. zadatak
Postavka
Dati sistem primenjuje izbegavanje mrtve blokade. Tri procesa, P1, P2 i P3, najavila su korišćenje oba resursa R1 i R2. Nacrtati graf zauzeća resursa nakon sledeće sekvence: P1 traži R1, P3 traži R2, P2 traži R1, P1 oslobađa R1. Ako više procesa čeka na isti resurs, dobiće ga najpre onaj koji ga je najranije tražio.
Skica rešenja
- P1 najavljuje korišćenje svih resursa
- P2 traži R1, najavljuje korišćenje R2
- P3 koristi R2, najavljuje korišćenje R1
6. zadatak
Postavka
Kod LRU algoritma zamene stranica korišćenjem dodatnih bita referenciranja, navesti šta tačno radi operativni sistem u sledeće dve situacije:
- periodično ažuriranje evidencije:
- izbor žrtve za izbacivanje:
Rešenje
- Šiftuje dodatne bite referenciranja i u njih ubacuje bit referenciranja koji ugađa hardver koji potom resetuje na 0
- Putuje po kružnoj listi i ponavlja korak pod a dok ne naiđe na stranicu kojoj svi biti referenciranja 0
7. zadatak
Postavka
Neki sistem primenjuje sistem parnjaka (buddy) za alokaciju memorije. Stanje sistema u datom trenutku prikazano je na sledećoj slici:
- X__XX__X_X__X___
Svako polje predstavlja jedan elementarni blok (najmanju jedinicu alokacije), a blokovi označeni sa X su zauzeti. Prikazati stanje nakon zahteva za alokaciju segmenta veličine dva bloka:
Rešenje
- X__XX__X_XXXX___ ili
- X__XX__X_X__X_XX
8. zadatak
Postavka
Koja RAID konfiguracija ima veći efektivni prostor za podatke, RAID0 ili RAID1, i koliki je efektivni prostor za 2N jednakih diskova? A koja ima veću pouzdanost?
Rešenje
- Veću pouzdanost ima RAID1, a veći efektivni prostor ima RAID0.
- U ovom primeru RAID0 ima 2N, a RAID1 ima N efektivnog prostora.
9. zadatak
Postavka
Ukratko objasniti koncept modula jezgra u sistemu Linux, uključujući i motivaciju za uvođenje tog kocnepta[sic].
Rešenje
- Jezgro Linux "dovlači" potrebne delove koda tek kada mu zatrebaju, npr. drajvere, jer ih inače ne sadrži u svom kodu.
- Motivacija je želja da Linux može raditi i na hardverski lošim računarima.
10. zadatak
Postavka
Koji način alokacije fajlova primenjuje Linux ext fajl sistem? Ukratko ga objasniti.
Rešenje
- Indeksni, sa najviše 3 nivoa indirekcije.
- Nalik je alokaciji stranica za procese korišćenjem PCBa.