ОС2/Јун 2016 — разлика између измена
(WIP) |
м (→1. zadatak: fix) |
||
| (Једна међуизмена истог корисника није приказана) | |||
| Ред 4: | Ред 4: | ||
== 1. zadatak == | == 1. zadatak == | ||
: ''Slični zadatak se našao i na [[ОС2/Јануар 2022#1. zadatak|januarskom roku iz 2022]].'' | |||
=== Postavka === | === Postavka === | ||
Navesti razloge zašto FIFO algoritam nema dobar učinak kod raspoređivanja procesa. | Navesti razloge zašto FIFO algoritam nema dobar učinak kod raspoređivanja procesa. | ||
=== Rešenje === | === 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 == | == 2. zadatak == | ||
| Ред 13: | Ред 16: | ||
=== Rešenje === | === Rešenje === | ||
<syntaxhighlight lang="ada"> | <syntaxhighlight lang="ada"> | ||
monitor control; | |||
export acquire, release; | |||
var | |||
cond : condition; | |||
count : integer; | |||
procedure acquire(): | |||
begin; | |||
while (count >= N) | |||
begin; | |||
wait(cond) | |||
end; | |||
count := count + 1; | |||
end; | |||
procedure release(): | |||
begin; | |||
count := count - 1; | |||
signal(wait); | |||
end; | |||
begin; | |||
count := 0; | |||
end; | |||
</syntaxhighlight> | </syntaxhighlight> | ||
== 3. zadatak == | == 3. zadatak == | ||
{{delimično rešeno}} | |||
=== Postavka === | === Postavka === | ||
Ukratko objasniti kako treba organizovati serverski program koji može da prima zahteve za uspostavu veze preko jedne serverske priključnice (''socket''), a potom da vodi „odvojene dijaloge“ (razmenjuje poruke) sa različitim klijentima uporedo i nezavisno jedan od drugog, ali na isti način (istim protokolom). | Ukratko objasniti kako treba organizovati serverski program koji može da prima zahteve za uspostavu veze preko jedne serverske priključnice (''socket''), a potom da vodi „odvojene dijaloge“ (razmenjuje poruke) sa različitim klijentima uporedo i nezavisno jedan od drugog, ali na isti način (istim protokolom). | ||
=== Rešenje === | === Rešenje === | ||
== 4. zadatak == | == 4. zadatak == | ||
| Ред 25: | Ред 53: | ||
Kako se rešava problem mogućeg gubitka poruka ili povratnica (acknowledgment) kod međuprocesne komunikacije razmenom poruka? | Kako se rešava problem mogućeg gubitka poruka ili povratnica (acknowledgment) kod međuprocesne komunikacije razmenom poruka? | ||
=== Rešenje === | === Rešenje === | ||
Koristi se tajmer tokom čekanja na odgovor/povratnicu, koji ako istekne, zaključuje se neuspeh i nastavlja se izvršavanje. | |||
== 5. zadatak == | == 5. zadatak == | ||
| Ред 67: | Ред 96: | ||
Svako polje predstavlja jedan elementarni blok (najmanju jedinicu alokacije), a osenčeni blokovi su zauzeti. Prikazati stanje nakon zahteva za alokaciju segmenta veličine dva bloka: | Svako polje predstavlja jedan elementarni blok (najmanju jedinicu alokacije), a osenčeni blokovi su zauzeti. Prikazati stanje nakon zahteva za alokaciju segmenta veličine dva bloka: | ||
=== Rešenje === | === Rešenje === | ||
{| class="wikitable" | |||
|- | |||
! | |||
| | |||
! | |||
! | |||
! | |||
! | |||
| | |||
! | |||
| | |||
| | |||
| | |||
| | |||
! | |||
| | |||
! | |||
! | |||
|} | |||
== 8. zadatak == | == 8. zadatak == | ||
=== Postavka === | === Postavka === | ||
| Ред 78: | Ред 125: | ||
Navesti bar tri Linux distribucije. | Navesti bar tri Linux distribucije. | ||
=== Rešenje === | === Rešenje === | ||
* Gentoo | * Gentoo Linux | ||
* Red Star OS | * Red Star OS | ||
* Hannah Montana Linux | * Hannah Montana Linux | ||
| Ред 86: | Ред 133: | ||
Šta je <code>vm_area_struct</code> u sistemu Linux? Navesti značenje i svrhu ove strukture, kao i bar neku informaciju koja ona sadrži. | Šta je <code>vm_area_struct</code> u sistemu Linux? Navesti značenje i svrhu ove strukture, kao i bar neku informaciju koja ona sadrži. | ||
=== Rešenje === | === Rešenje === | ||
* <code>vm_area_struct</code> je struktura koja sadrži informacije o regionu memorije. | |||
* Sadrži veličinu regiona, mapirane fajlove (ako postoje), flegove za pristup, pokazivače na funkcije koji implementiraju rukovanje stranicama pri straničnoj grešci za taj region memorije itd. | |||
[[Категорија:Рокови]] | [[Категорија:Рокови]] | ||
[[Категорија:ОС2]] | [[Категорија:ОС2]] | ||
Тренутна верзија на датум 12. фебруар 2022. у 15:15
- За питања са више одговора, тачни одговори су подебљани и уоквирени
- За питања за које се одговори уносе, тачни одговори су подвучени и сакривени, тако да се прикажу када изаберете тај текст (пример: овако)
- Притисните лево дугме испод за сакривање и откривање свих одговора, или десно дугме за укључивање и искључивање интерактивног режима:
1. zadatak
- Slični zadatak se našao i na januarskom roku iz 2022.
Postavka
Navesti razloge zašto FIFO algoritam nema dobar učinak kod raspoređivanja procesa.
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, napisati kod monitora koji može da posluži za kontrolu pristupa resursu kome istovremeno može pristupiti najviše N uporednih procesa
Rešenje
monitor control;
export acquire, release;
var
cond : condition;
count : integer;
procedure acquire():
begin;
while (count >= N)
begin;
wait(cond)
end;
count := count + 1;
end;
procedure release():
begin;
count := count - 1;
signal(wait);
end;
begin;
count := 0;
end;
3. zadatak
- Овај задатак није решен. Помозите SI Wiki тако што ћете га решити.
Postavka
Ukratko objasniti kako treba organizovati serverski program koji može da prima zahteve za uspostavu veze preko jedne serverske priključnice (socket), a potom da vodi „odvojene dijaloge“ (razmenjuje poruke) sa različitim klijentima uporedo i nezavisno jedan od drugog, ali na isti način (istim protokolom).
Rešenje
4. zadatak
Postavka
Kako se rešava problem mogućeg gubitka poruka ili povratnica (acknowledgment) kod međuprocesne komunikacije razmenom poruka?
Rešenje
Koristi se tajmer tokom čekanja na odgovor/povratnicu, koji ako istekne, zaključuje se neuspeh i nastavlja se izvršavanje.
5. zadatak
- Овај задатак није решен. Помозите SI Wiki тако што ћете га решити.
Postavka
U jednom sistemu primenjuje se sledeća tehnika sprečavanja mrtve blokade (deadlock): svakom procesu i koji pristupa nekom resursu dodeljuje se jedinstvena vremenska marka (timestamp) Pi, koja predstavlja trenutak pokretanja tog procesa; kada proces i zahteva resurs koga već drži proces j, proces i će čekati blokiran samo ako je njegova marka Pi manja od Pj (odnosno ako je i stariji od j); u suprotnom, proces i se otkazuje (prekida) i pokreće ispočetka. Da li procesu koji je otkazan, prilikom ponovnog pokretanja, treba dodeliti novu vremensku marku ili sačuvati staru (od prvog pokretanja) i šta je problem u suprotnom?
Rešenje
6. zadatak
Postavka
Data je sledeća sekvenca referenciranja stranica od strane nekog procesa:
2, 5, 7, 4, 5, 7, 5, 3, 2, 5, 6, 7, 5, 6, 7
Procesu su dodeljena 4 okvira, zamena se vrši lokalno, samo u skupu stranica dodeljenih tom procesu, a inicijalno nije učitana nijedna stranica ovog procesa. Koliko puta ovaj proces generiše straničnu grešku (page fault) ako je algoritam zamene stranica LRU?
Rešenje
8
7. zadatak
Postavka
Neki sistem primenjuje sistem parnjaka (buddy) za alokaciju memorije. Stanje sistema u datom trenutku prikazano je na sledećoj slici:
Svako polje predstavlja jedan elementarni blok (najmanju jedinicu alokacije), a osenčeni blokovi su zauzeti. Prikazati stanje nakon zahteva za alokaciju segmenta veličine dva bloka:
Rešenje
8. zadatak
Postavka
Koji RAID nivo ima bolje iskorišćenje prostora, RAID 5 ili RAID 6 i zašto?
Rešenje
RAID 5 ima bolje iskorišćenje jer koristi block striping sa jednim blokom za parnost, dok RAID 6 ima dva bloka za parnost.
9. zadatak
Postavka
Navesti bar tri Linux distribucije.
Rešenje
- Gentoo Linux
- Red Star OS
- Hannah Montana Linux
10. zadatak
Postavka
Šta je vm_area_struct u sistemu Linux? Navesti značenje i svrhu ove strukture, kao i bar neku informaciju koja ona sadrži.
Rešenje
vm_area_structje struktura koja sadrži informacije o regionu memorije.- Sadrži veličinu regiona, mapirane fajlove (ako postoje), flegove za pristup, pokazivače na funkcije koji implementiraju rukovanje stranicama pri straničnoj grešci za taj region memorije itd.