ОС1/Јун 2022

Извор: SI Wiki
Пређи на навигацију Пређи на претрагу

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

BSS (Block Started by Symbol) segment je segment statičke memorije koji se koristi za čuvanje globalnih i statičkih promenljivih koje nemaju inicijalizovane vrednosti (tj. koje su inicijalizovane na 0). U ovom segmentu se ne čuva fizički podatak, već samo informacija o tome koliko bajtova treba alocirati za te promenljive.

Text segment je segment memorije koji sadrži prevedeni mašinski kod programa.

Prilikom prvog pristupa stranici svakog od ovakvih segmenata, operativni sistem sa straničnom organizacijom virtuelne memorije će izvršiti sledeće korake:

Proverava se da li se stranica koja sadrži segment već nalazi u fizičkoj memoriji ili ne. Ako se stranica već nalazi u memoriji, operativni sistem zna da je segment već učitan u memoriju i samo prosleđuje referencu na njega. Ako se stranica ne nalazi u memoriji, operativni sistem će izvršiti stranično preslikavanje stranice iz spoljnog skladišta (na primer, sa hard diska) u fizičku memoriju.

Ako je neophodno, operativni sistem alocira memoriju za BSS segment.

Nakon što su svi potrebni segmenti učitani, program se može izvršavati.

Ukratko, operativni sistem sa straničnom organizacijom virtuelne memorije dinamički učitava segmente programa (uključujući BSS i Text segmente) u fizičku memoriju samo kada je to potrebno, na zahtev programa.

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:

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

Apstrakcija ulaznog ili izlaznog toka (stream) je koncept u programiranju koji omogućava da se ulazni ili izlazni tok posmatraju kao apstraktni tok podataka, bez obzira na fizički uređaj ili mehanizam korišćen za ulazno/izlazne operacije.

Karakteristike apstrakcije ulaznog ili izlaznog toka su:

Univerzalnost: Apstrakcija toka omogućava da se isti kod može koristiti za rad sa različitim ulaznim/izlaznim uređajima, kao što su tastature, miševi, fajlovi, mrežni socketi i drugi.

Jednostavnost: Rad sa tokovima se obično vrši pomoću jednostavnih i intuitivnih funkcija i operatora, što čini kod čitljivijim i lakšim za održavanje.

Bezbednost: Apstrakcija ulaznog/izlaznog toka omogućava programerima da se ne bave detaljima fizičkog uređaja, čime se smanjuje rizik od grešaka i povećava bezbednost aplikacije.

Efikasnost: Operacije nad tokovima su obično efikasnije i brže od direktnog pristupa fizičkom uređaju, jer se koristi bufferisano i optimizovano čitanje i pisanje podataka.

Fleksibilnost: Apstrakcija toka omogućava programerima da koriste različite tokove za različite operacije, kao što su tokovi sa različitim enkodinzima, kompresovani tokovi, šifrovani tokovi i drugi.

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

Tvrda veza (hard link) i meka veza (soft link) su dve vrste veza koje se mogu uspostaviti između fajlova u fajl sistemu.

Glavna razlika između ove dve vrste veza je u tome što tvrda veza uspostavlja vezu između dva imena fajla u okviru istog fajl sistema, dok se meka veza uspostavlja između dva fajla na različitim lokacijama u fajl sistemu, pri čemu se jedan fajl koristi kao simbolička referenca na drugi fajl.

Kada se tvrda veza kreira, dva imena fajla pokazuju na isti blok podataka na disku, tako da ako jedan fajl bude promenjen, drugi fajl će takođe biti promenjen. Tvrde veze ne mogu biti uspostavljene između fajlova na različitim fajl sistemima, niti između direktorijuma.

Meka veza je poseban fajl koji sadrži putanju do originalnog fajla, a kada se pristupi mekoj vezi, sistem koristi putanju za pronalaženje originalnog fajla. Ako se originalni fajl obriše, meka veza će pokazivati na nepostojeći fajl. Meka veza se može uspostaviti između fajlova na različitim fajl sistemima, kao i između direktorijuma.

Implementacija meke veze u fajl sistemu se obično vrši pomoću posebnog fajla koji sadrži putanju do originalnog fajla. Kada se pristupi mekoj vezi, sistem pročita putanju iz fajla i koristi je za pronalaženje originalnog fajla. Fajlovi koji predstavljaju meke veze se obično označavaju nekom posebnom oznakom (npr. znakom link) kako bi se razlikovali od običnih fajlova.

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.