OS1/Jun 2022

Izvor: SI Wiki
< ОС1
Datum izmene: 15. februar 2023. u 09:56; autor: Ms160091 (razgovor | doprinosi) (→‎Rešenje)
Pređi na navigaciju Pređi na pretragu

Zadaci na stranici predmeta.

1. zadatak

Postavka

Napisati komandnu liniju kojom se izvršava komanda cmd1, tako da ona svoj (standardni) ulaz uzima iz fajla input koji se nalazi u direktorijumu koji je roditeljski tekućem, a svoj (standardni) izlaz prosleđuje na ulaz komandi cmd2. Kako se zovu koncepti koji obezbeđuju navedene tehnike vezane za ulaz i izlaz ovih komandi?

Rešenje

cmd1 < ../input | cmd2

Koncepti u pitanju su preusmerenje (redirekcija) i cevovod (pipe).

2. zadatak

Postavka

Precizno objasniti šta sadrži tzv. bss segment, a šta text segment u prevedenom programu? Šta operativni sistem sa straničnom organizacijom virtuelne memorije tačno radi prilikom prvog pristupa stranici svakog od ovakvih segmenata?

Rešenje

Овај задатак није решен. Помозите SI Wiki тако што ћете га решити.

3. zadatak

Postavka

U nekom sistemu sa straničnom organizacijom memorije i straničenjem u dva nivoa vreme pristupa dinamičkoj RAM memoriji je 100 ns, vreme pristupa TLB-u je 10 ns, a TLB ima učestanost pogotka od 90%. Koliko je efektivno vreme pristupa memoriji? Izvesti račun.

Rešenje

4. zadatak

Postavka

Neki sistem primenjuje tehniku kopiranja pri upisu (copy on write). Jedan proces roditelj zauzima sledeću memoriju: 12KB za programski kod, 24KB za stek, 36KB za podatke koji se samo čitaju i 40KB za podatke koji se menjaju. Ako ovaj proces pokrene proces-dete sistemskim pozivom fork, koliko najviše operativne memorije ova dva procesa ukupno zauzimaju? Objasniti.

Rešenje

Najviše zauzimaju u slučaju da proces dete promeni neke podatke. Tada se ponovo alociraju stek (24KB) i prostor za podatke koji se menjaju (40KB).

Računica: <math> 12KB + 2 \cdot 24KB + 36KB + 2 \cdot 40KB = 176KB

5. zadatak

Postavka

U nekom programu koji koristi školsko jezgro pokazivač myThread ukazuje na objekat klase izvedene iz klase Thread. Precizno objasniti u čemu je razlika u izvršavanju redefinisane operacije run te klase za sledeća dva poziva: myThread->run() i myThread->start().

Rešenje

Ako se pozove myThread->run() (koji je inače zaštićen, ne bi trebalo da može da se pozove), trenutni tok kontrole će samo ući u telo funkcije run(), odnosno ne dobija se nikakva konkuretnost.

U slučaju da se pozove myThread->start(), sistemskim pozivom će se zatražiti od operativnog sistema da započne novu nit koja će onda izvršavati telo redefinisane funkcije run(), čime se dobija konkurentnost.

6. zadatak

Postavka

Šta je osnovni nedostak FIFO algoritma raspoređivanja procesa? Precizno objasniti.

Rešenje

Procesi koji se veoma kratko izvršavaju mogu dugo da čekaju ukoliko su ispred njih u redu procesi koji se vrlo dugo izvršavaju.

7. zadatak

Postavka

Na jeziku C++ napisati kod za ograničeni bafer uz sinhronizaciju pomoću semafora u školskom jezgru.

Rešenje

Videti sedmi zadatak zadatak iz jula 2011.

8. zadatak

Postavka

Šta su karakteristike apstrakcije ulaznog ili izlaznog toka (stream)?

Rešenje

Овај задатак није решен. Помозите SI Wiki тако што ћете га решити.

9. zadatak

Postavka

U čemu je razlika između pojma meke veze (soft link) i tvrde veze (hard link) u fajl sistemu? Kako se implementira meka veza?

Rešenje

Овај задатак није решен. Помозите SI Wiki тако што ћете га решити.

10. zadatak

Postavka

Neki fajl sistem koristi indeksiranu alokaciju fajlova na disku sa kombinovanim indeksom. U FCB se nalazi neposredni indeks sa 32 ulaza, kao i adresa indeksa single indirect i indeksa double indirect. Veličina bloka je 512B, a veličina adrese bloka je 64 bita. Kolika je maksimalna veličina sadržaja fajla u ovom sistemu u KB? Izvesti račun.

Rešenje

U ovom fajl sistemu, blokovi imaju veličinu od 512 bajta, a adrese blokova su duge 64 bita (8 bajta). To znači da jedan blok može da sadrži 512 / 8 = 64 adrese blokova.

FCB ima neposredni indeks sa 32 ulaza, što znači da se prvih 32 bloka fajla može adresirati direktno iz FCB-a. Osim toga, FCB sadrži adresu bloka single indirect i adresu bloka double indirect, što omogućava adresiranje dodatnih blokova.

Blok single indirect sadrži 64 adrese blokova, što omogućava adresiranje dodatnih 64 bloka. Blok double indirect takođe sadrži 64 adrese blokova, ali svaka adresa u tom bloku pokazuje na blok single indirect, što omogućava adresiranje dodatnih 64 x 64 = 4096 blokova.

Ukupan broj blokova koji se može adresirati u ovom fajl sistemu je: 32 + 64 + (64 x 64) = 4224

Maksimalna veličina fajla se dobija množenjem ovog broja blokova sa veličinom bloka: 4224 x 512 bajta = 2162688 bajta

Da bi dobili veličinu fajla u kilobajtima, delimo ovaj broj sa 1024: 2162688 bajta / 1024 = 2112 KB

Dakle, maksimalna veličina fajla u ovom fajl sistemu je 2112 KB.