ОС1/Јун 2022 — разлика између измена
Ред 45: | Ред 45: | ||
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). | 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</ | Računica: <math> 12KB + 2 \cdot 24KB + 36KB + 2 \cdot 40KB = 176KB</math> | ||
== 5. zadatak == | == 5. zadatak == |
Верзија на датум 30. јун 2023. у 13:26
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.