ОС2/Јануар 2021 — разлика између измена
м (popravljen link ka stranici predmeta) |
м (slika za 4. zadatak) |
||
| (2 међуизмене истог корисника нису приказане) | |||
| Ред 1: | Ред 1: | ||
{{tocright}} | {{tocright}} | ||
[http://os.etf.bg.ac.rs/OS2/rokovi/2021/januar/Jan%202021.pdf Zadaci na stranici predmeta.] | [http://os.etf.bg.ac.rs/OS2/rokovi/2021/januar/Jan%202021.pdf Zadaci na stranici predmeta.] | ||
| Ред 6: | Ред 5: | ||
=== Postavka === | === Postavka === | ||
Navesti osnovne elemente algoritama raspoređivanja procesa MFQS (''Multi-level Feedback Queue Scheduling''). | Navesti osnovne elemente algoritama raspoređivanja procesa MFQS (''Multi-level Feedback Queue Scheduling''). | ||
=== Rešenje === | |||
Isti kao MQS, samo je moguć prelazak procesa iz jednog u drugi red čekanja. Svaki red čekanja ima veći ili manji prioritet, prikazan vremenskim odsečkom koji mu se dodeljuje (niži prioritet - veći vremenski odsečak, viši prioritet - manji vremenski odsečak). Ako proces puno koristi CPU i "potroši" ceo odsečak koji mu je dodeljen, prebacuje se u red nižeg prioriteta. Ako proces dugo čeka na svoj red, prebacuje se u red višeg prioriteta. | |||
== 2. zadatak == | == 2. zadatak == | ||
: ''Isti zadatak se našao i na [[ОС2/Септембар 2015#2. zadatak|septembarskom roku iz 2015]].' | |||
=== Postavka === | === Postavka === | ||
Korišćenjem klasičnih uslovnih promenljivih napisati kod monitora koji realizuje binarni semafor. | Korišćenjem klasičnih uslovnih promenljivih napisati kod monitora koji realizuje binarni semafor. | ||
=== Rešenje === | |||
<syntaxhighlight lang="ada"> | |||
monitor sem; | |||
export wait, signal; | |||
var | |||
condvar : cond; | |||
count : int; | |||
procedure signal(); | |||
begin | |||
count := 1; | |||
signal(condvar); | |||
end; | |||
procedure wait(); | |||
begin | |||
while (count == 0) then | |||
begin | |||
wait(condvar); | |||
end; | |||
count := 0; | |||
end; | |||
begin | |||
count := 0; | |||
end; | |||
</syntaxhighlight> | |||
== 3. zadatak == | == 3. zadatak == | ||
=== Postavka === | === Postavka === | ||
Objasniti razliku između sinhronog i asinhronog slanja poruke u međuprocesnoj komunikaciji. | Objasniti razliku između sinhronog i asinhronog slanja poruke u međuprocesnoj komunikaciji. | ||
=== Rešenje === | |||
Sinhrono slanje poruke blokira pozivaoca sve dok poruka nije primljena; asinhrono slanje poruke ne. | |||
== 4. zadatak == | == 4. zadatak == | ||
=== Postavka === | === Postavka === | ||
U nekom sistemu primenjuje se mehanizam izbegavanja mrtve blokade (''deadlock avoidance'') zasnovan na grafu alokacije. Na slici je prikazan graf alokacije resursa za posmatrano stanje sistema. Ukoliko ''P2'' zatraži resurs ''R1'', da li će mu taj resurs biti odmah dodeljen? Ako neće odmah, kada mu može biti dodeljen? | U nekom sistemu primenjuje se mehanizam izbegavanja mrtve blokade (''deadlock avoidance'') zasnovan na grafu alokacije. Na slici je prikazan graf alokacije resursa za posmatrano stanje sistema. Ukoliko ''P2'' zatraži resurs ''R1'', da li će mu taj resurs biti odmah dodeljen? Ako neće odmah, kada mu može biti dodeljen? | ||
[[Датотека:OS2 januar 2021 zadatak 4.svg|мини|Graf potražnje uz 4. zadatak]] | |||
=== Rešenje === | |||
Resurs ''R1'' neće biti odmah dodeljen procesu ''P2'' jer bi se u tom slučaju napravila petlja u grafu (R1->P2->R2->P1->R1). Ipak, ''R1'' može biti dodeljen procesu ''P2'' nakon što proces ''P1'' oslobodi resurs ''R2''. | |||
== 5. zadatak == | == 5. zadatak == | ||
| Ред 24: | Ред 64: | ||
<code>4, 1, 2, 3, 4, 5, 2, 1, 3, 7, 2, 3, 4, 5, 2, 3, 1, 4, 7</code> | <code>4, 1, 2, 3, 4, 5, 2, 1, 3, 7, 2, 3, 4, 5, 2, 3, 1, 4, 7</code> | ||
=== Rešenje === | |||
Odgovor: <span class="spoiler" data-solution="text">9</span> | |||
== 6. zadatak == | == 6. zadatak == | ||
=== Postavka === | === Postavka === | ||
Neki ''storage'' sistem sa više diskova, visoke pouzdanosti, označen je na sledeći način: RAID5+1 2x(9+1), pri čemu je kapacitet svakog diska 1TB. Koliki je efektivni kapacitet (za „korisne“ informacije koje koristi fajl sistem) ove strukture diskova? Da li je on otporan na otkaz dva diska? Ako nije, zašto nije? Ako jeste, pod kojim uslovima jeste? | Neki ''storage'' sistem sa više diskova, visoke pouzdanosti, označen je na sledeći način: RAID5+1 2x(9+1), pri čemu je kapacitet svakog diska 1TB. Koliki je efektivni kapacitet (za „korisne“ informacije koje koristi fajl sistem) ove strukture diskova? Da li je on otporan na otkaz dva diska? Ako nije, zašto nije? Ako jeste, pod kojim uslovima jeste? | ||
=== Rešenje === | |||
Efektivni kapacitet je <math>2*9*1TB = 18TB</math>. | |||
S obzirom da se radi o RAID5+1, svaki disk je ''mirror''-ovan jedanput, tako da je sistem otporan na otkaz dva diska u slučaju da ta dva diska nisu "original" i njegov ''mirror''. | |||
== 7. zadatak == | == 7. zadatak == | ||
: ''Isti zadatak se našao i na [[ОС2/Јануар 2020#9. zadatak|januarskom roku iz 2020]].'' | |||
=== Postavka === | === Postavka === | ||
Ukratko objasniti osnovne principe mikrokernel arhitekture operativnog sistema. | Ukratko objasniti osnovne principe mikrokernel arhitekture operativnog sistema. | ||
Тренутна верзија на датум 5. јул 2023. у 22:08
1. zadatak
Postavka
Navesti osnovne elemente algoritama raspoređivanja procesa MFQS (Multi-level Feedback Queue Scheduling).
Rešenje
Isti kao MQS, samo je moguć prelazak procesa iz jednog u drugi red čekanja. Svaki red čekanja ima veći ili manji prioritet, prikazan vremenskim odsečkom koji mu se dodeljuje (niži prioritet - veći vremenski odsečak, viši prioritet - manji vremenski odsečak). Ako proces puno koristi CPU i "potroši" ceo odsečak koji mu je dodeljen, prebacuje se u red nižeg prioriteta. Ako proces dugo čeka na svoj red, prebacuje se u red višeg prioriteta.
2. zadatak
- Isti zadatak se našao i na septembarskom roku iz 2015.'
Postavka
Korišćenjem klasičnih uslovnih promenljivih napisati kod monitora koji realizuje binarni semafor.
Rešenje
monitor sem;
export wait, signal;
var
condvar : cond;
count : int;
procedure signal();
begin
count := 1;
signal(condvar);
end;
procedure wait();
begin
while (count == 0) then
begin
wait(condvar);
end;
count := 0;
end;
begin
count := 0;
end;
3. zadatak
Postavka
Objasniti razliku između sinhronog i asinhronog slanja poruke u međuprocesnoj komunikaciji.
Rešenje
Sinhrono slanje poruke blokira pozivaoca sve dok poruka nije primljena; asinhrono slanje poruke ne.
4. zadatak
Postavka
U nekom sistemu primenjuje se mehanizam izbegavanja mrtve blokade (deadlock avoidance) zasnovan na grafu alokacije. Na slici je prikazan graf alokacije resursa za posmatrano stanje sistema. Ukoliko P2 zatraži resurs R1, da li će mu taj resurs biti odmah dodeljen? Ako neće odmah, kada mu može biti dodeljen?
Rešenje
Resurs R1 neće biti odmah dodeljen procesu P2 jer bi se u tom slučaju napravila petlja u grafu (R1->P2->R2->P1->R1). Ipak, R1 može biti dodeljen procesu P2 nakon što proces P1 oslobodi resurs R2.
5. zadatak
Postavka
Data je sekvenca referenciranja stranica. Koliki je broj straničnih grešaka za algoritam OPT zamene stranica ako je na raspolaganju 4 okvira?
4, 1, 2, 3, 4, 5, 2, 1, 3, 7, 2, 3, 4, 5, 2, 3, 1, 4, 7
Rešenje
Odgovor: 9
6. zadatak
Postavka
Neki storage sistem sa više diskova, visoke pouzdanosti, označen je na sledeći način: RAID5+1 2x(9+1), pri čemu je kapacitet svakog diska 1TB. Koliki je efektivni kapacitet (za „korisne“ informacije koje koristi fajl sistem) ove strukture diskova? Da li je on otporan na otkaz dva diska? Ako nije, zašto nije? Ako jeste, pod kojim uslovima jeste?
Rešenje
Efektivni kapacitet je . S obzirom da se radi o RAID5+1, svaki disk je mirror-ovan jedanput, tako da je sistem otporan na otkaz dva diska u slučaju da ta dva diska nisu "original" i njegov mirror.
7. zadatak
- Isti zadatak se našao i na januarskom roku iz 2020.
Postavka
Ukratko objasniti osnovne principe mikrokernel arhitekture operativnog sistema.