ОС2/Фебруар 2022 — разлика између измена
(Добар линк до задатака на страници) |
м (→Rešenje: Ispravljena greska u prvom delu) |
||
| (Није приказана једна међуизмена другог корисника) | |||
| Ред 1: | Ред 1: | ||
{{tocright}} | {{tocright}} | ||
[http://os.etf.rs/OS2/rokovi/2022/februar/Feb%202022.pdf | '''Ispit u februarskom roku 2022. godine''' održan je 10. februara. Postavka roka dostupna je sa [http://os.etf.rs/OS2/rokovi/2022/februar/Feb%202022.pdf stranice predmeta.] | ||
== 1. zadatak == | == 1. zadatak == | ||
=== Postavka === | === Postavka === | ||
Da li se kod algoritma raspoređivanja Multi-level Feedback Queue Scheduling procesu koji | 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? | ||
je došao u red spremnih iz stanja suspenzije po pravilu smanjuje ili povećava prioritet? Zašto? | |||
=== Rešenje === | === 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 == | == 2. zadatak == | ||
=== Postavka === | === Postavka === | ||
Na programskom jeziku Java realizovati monitor sa dve operacije, op1 i op2, pri čemu | Na programskom jeziku Java realizovati monitor sa dve operacije, <code>op1</code> i <code>op2</code>, pri čemu monitor održava sledeću invarijantu: ukupan broj izvršavanja operacije <code>op1</code> je uvek ne manji od broja izvršavanja operacije <code>op2</code>. Zanemariti prekoračenje ograničenog opsega celobrojnih brojača. | ||
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 === | === Rešenje === | ||
<syntaxhighlight lang="java"> | <syntaxhighlight lang="java"> | ||
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(); | |||
} | |||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== 3. zadatak == | == 3. zadatak == | ||
=== Postavka === | === Postavka === | ||
U koju kategoriju međuprocesne komunikacije po pitanju imenovanja spada koncept | U koju kategoriju međuprocesne komunikacije po pitanju imenovanja spada koncept cevovoda (''pipe'')? Obrazložiti. Šta je osnovna motivacija za ovakav koncept? | ||
cevovoda (pipe)? Obrazložiti. Šta je osnovna motivacija za ovakav koncept? | |||
=== Rešenje === | === 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 == | == 4. zadatak == | ||
=== Postavka === | === Postavka === | ||
Navesti i precizno objasniti bar dva načina sprečavanja mrtve blokade ukidanjem uslova | Navesti i precizno objasniti bar dva načina sprečavanja mrtve blokade ukidanjem uslova "držanje i čekanje" (''hold and wait''). | ||
=== Rešenje === | === 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 == | == 5. zadatak == | ||
=== Postavka === | === Postavka === | ||
Dati sistem primenjuje izbegavanje mrtve blokade. Tri procesa, P1, P2 i P3, najavila su | 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. | ||
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 === | === 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 == | == 6. zadatak == | ||
=== Postavka === | === Postavka === | ||
Kod LRU algoritma zamene stranica korišćenjem dodatnih bita referenciranja, navesti šta | Kod LRU algoritma zamene stranica korišćenjem dodatnih bita referenciranja, navesti šta tačno radi operativni sistem u sledeće dve situacije: | ||
tačno radi operativni sistem u sledeće dve situacije: | |||
* periodično ažuriranje evidencije: | * periodično ažuriranje evidencije: | ||
* izbor žrtve za izbacivanje: | * izbor žrtve za izbacivanje: | ||
=== Rešenje === | === 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 == | == 7. zadatak == | ||
=== Postavka === | === Postavka === | ||
Neki sistem primenjuje sistem parnjaka (buddy) za alokaciju memorije. Stanje sistema u | Neki sistem primenjuje sistem parnjaka (''buddy'') za alokaciju memorije. Stanje sistema u datom trenutku prikazano je na sledećoj slici: | ||
datom trenutku prikazano je na sledećoj slici: | |||
* X__XX__X_X__X___ | * X__XX__X_X__X___ | ||
Svako polje predstavlja jedan elementarni blok (najmanju jedinicu alokacije), a blokovi označeni sa | 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: | ||
X su zauzeti. Prikazati stanje nakon zahteva za alokaciju segmenta veličine dva bloka: | |||
=== Rešenje === | === Rešenje === | ||
* X__XX__X_XXXX___ | * X__XX__X_XXXX___ ili | ||
* X__XX__X_X__X_XX | |||
== 8. zadatak == | == 8. zadatak == | ||
=== Postavka === | === Postavka === | ||
Koja RAID konfiguracija ima veći efektivni prostor za podatke, RAID0 ili RAID1, i koliki | 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? | ||
je efektivni prostor za 2N jednakih diskova? A koja ima veću pouzdanost? | |||
=== Rešenje === | === 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 == | == 9. zadatak == | ||
=== Postavka === | === Postavka === | ||
Ukratko objasniti koncept modula jezgra u sistemu Linux, uključujući i motivaciju za | Ukratko objasniti koncept modula jezgra u sistemu ''Linux'', uključujući i motivaciju za uvođenje tog kocnepta<sup>[sic]</sup>. | ||
uvođenje tog kocnepta. | |||
=== Rešenje === | === 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 == | == 10. zadatak == | ||
=== Postavka === | === Postavka === | ||
Koji način alokacije fajlova primenjuje Linux ext fajl sistem? Ukratko ga objasniti. | Koji način alokacije fajlova primenjuje ''Linux'' ext fajl sistem? Ukratko ga objasniti. | ||
=== Rešenje === | === Rešenje === | ||
* | * Indeksni, sa najviše 3 nivoa indirekcije. | ||
* | * Nalik je alokaciji stranica za procese korišćenjem PCBa. | ||
[[Категорија:Рокови]] | [[Категорија:Рокови]] | ||
[[Категорија:ОС2]] | [[Категорија:ОС2]] | ||
Тренутна верзија на датум 9. фебруар 2023. у 18:25
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.