Download as pdf or txt
Download as pdf or txt
You are on page 1of 4

Aprilski rok

13. april 2010.


08.2008. Operativni sistemi

Odgovori
1. Da li je kod operativnog sistema MS-DOS moguć multitasking. Obrazložiti odgovor?
Odgovor: Moguć je upotrebom aktivnog TSR. Tipičan primer je PRINT spooler.

2. Kolika je veličina FAT tabele u sistemu datoteka FAT16 kapaciteta 1GB, ako je veličina klastera 8KB?
(2 poena)
Odgovor:
Broj klastera = kapacitet sistema datoteka /veličina klastera = 1GB / 8KB = 131072 klastera
FAT 16 ima dva bajta (16 bitova) po jednoj svojoj stavci
Veličina FAT tabele = broj klastera × broj bajtova po jednoj stavci FAT = 131072 × 2 = 256 KB

3. Šta će biti ispisano na standardnom izlazu nakon izvršenja sledećeg programa:

#include <sys/types.h>
#include <stdio.h>
int main(){
pid_t pid1, pid2;
printf("A");
pid1=fork();
if (pid1==0) pid2=fork();
else wait(NULL);
while (1) { }
}
Odgovor: Neće biti ispisano ništa jer beskonačna while petlja ne dozvoljava pražnjenje printf bafera.

4. Zaokružiti stavke koje pripadaju kontrolnom bloku višenitnog procesa:


a. Prioritet
b. Kontekst
c. Promenljive okruženja
d. Tekući direktorijum
e. Afinitet

5. Za upravljanje procesima u operativnom sistemu Unix zadužen je kernel. Da li je ipak nekako moguće
kreirati proces iz korisničkog programa? Obrazložiti odgovor.

Odgovor: Da, upotrebom sistemskog poziva fork.

6. Navesti bar dva načina realizacije sistemskih poziva kod arhitekture IA32.
Odgovor: Call Gate, softverski prekid, Fast Call mehanizam.

7. U arhitekturi IA32 procesor ne poseduje nikakve registre kojima se određuje nivo privilegije tekućeg
programa (CPL). Kako se onda određuje CPL?

Odgovor: Nivo privilegije tekućeg programa definisan je isključivo vrednošću DPL kodnog segmenta
kome pripada instrukcija koja se trenutno izvršava.
8. Koji od navedenih operativnih sistema ima mikrokernel:
a. Solaris
b. MS-DOS
c. Linux
d. Windows
e. Minix

9. Da li se iz prostora kernela mogu pozivati funkcije koje pripadaju prostoru korisnika? Obrazložiti odgovor.
Odgovor: Ne. Iako se radi o promeni nivoa privilegije od više ka nižoj, problem nastaje pri povratku u
prostor kernela (RETF). Tada se iz prostora korisnika može preneti nešto što ne bi smelo da se izvršava
u prostoru kernela.

10. Pretpostavimo da tekući program ima CPL = 2. On može uspešno da pozove ili skoči na deo kôda koji
se nalazi u:
a) non-konforming kodnom segmentu kod koga je DPL = 2
b) non-konforming kodnom segmentu kod koga je DPL = 3
c) konforming kodnom segmentu kod koga je DPL = 1
d) konforming kodnom segmentu kod koga je DPL = 3

11. Kod sistemskog poziva u arhitekturi IA32, parametri mogu da se prenose preko steka upotrebom:
a) Call Gate
b) Fast Call (SYSENTER, SYSCALL)
c) Programskog prekida
d) Segmenta iste privilegije (npr. kernel poziva funkciju kernela)

12. Opisati način efikasnog dodeljivanja anuliranih stranica upotrebom tehnike Copy On Write. (2 poena)

Odgovor: Pre upisivanja Posle upisivanja u stranicu B

Stranica A Stranica A
Stranica B Sve nule Stranica B Sve nule
Stranica C Stranica C
Stranica B

Virtuelna memorija Fizička memorija Virtuelna memorija Fizička memorija

13. Šta je po svojoj prirodi suprotno od pojma Radni skup (Working Set) stranica:
a. Rezidentni skup stranica
b. Skup LRU stranica
c. Skup prljavih stranica
d. Skup čistih stranica
14. U jednom sistemu koristi se sistem virtuelne memorije sa tri okvira koji su u početnom trenutku prazni. Dat
je sledeći niz od 20 memorijskih referenci: 1, 2, 3, 4, 2, 1, 5, 6, 2, 1, 2, 3, 7, 6, 3, 2, 1, 2, 3, 6.
a) Koliko će se grešaka stranice dogoditi ukoliko se zamena stranica obavlja po optimalnom algoritmu, a
koliko ako se ukoliko se zamena stranica obavlja po LRU algoritmu?
b) Odgovoriti na pitanje a) u slučaju kada bi broj slobodnih početnih okvira bio šest.
c) Kada bi broj okvira bio jednak broju stranica, da li bi broj straničnih grešaka u ovom zadatku bio nula?
Obrazložiti odgovor.
(5 poena)
Odgovor:
a) 3 okvira, optimalni algoritam, 11 straničnih grešaka
Referenca 1 2 3 4 2 1 5 6 2 1 2 3 7 6 3 2 1 2 3 6
PF (da/ne) da da da da ne ne da da ne ne ne da da ne ne da da ne ne da
Okvir 1 1 1 3 4 4 1 5 6 6 1 1 3 3 3 3 3 1 1 3 3
Okvir 2 2 2 2 2 2 2 2 2 2 2 2 7 6 6 2 2 2 2 6
Okvir 3 3 4 4 4 5 6 6 6 6 6 6 6 6 6 1 1 1 1

3 okvira, LRU algoritam, 15 straničnih grešaka


Referenca 1 2 3 4 2 1 5 6 2 1 2 3 7 6 3 2 1 2 3 6
PF (da/ne) da da da da ne da da da da da ne da da da ne da da ne ne da
Okvir 1 1 1 1 4 4 4 5 5 5 1 1 1 7 7 7 2 2 2 2 2
Okvir 2 2 2 2 2 2 2 6 6 6 6 3 3 3 3 3 3 3 3 3
Okvir 3 3 3 3 1 1 1 2 2 2 2 2 6 6 6 1 1 1 6

b) 6 okvira, optimalni algoritam, 7 straničnih grešaka


Referenca 1 2 3 4 2 1 5 6 2 1 2 3 7 6 3 2 1 2 3 6
PF (da/ne) da da da da ne ne da da ne ne ne ne da ne ne ne ne ne ne ne
Okvir 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
Okvir 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
Okvir 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
Okvir 4 4 4 4 4 4 4 4 4 4 7 7 7 7 7 7 7 7
Okvir 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5
Okvir 6 6 6 6 6 6 6 6 6 6 6 6 6 6

6 okvira, LRU algoritam, 7 straničnih grešaka


Referenca 1 2 3 4 2 1 5 6 2 1 2 3 7 6 3 2 1 2 3 6
PF (da/ne) da da da da ne ne da da ne ne ne ne da ne ne ne ne ne ne ne
Okvir 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
Okvir 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
Okvir 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
Okvir 4 4 4 4 4 4 4 4 4 4 7 7 7 7 7 7 7 7
Okvir 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5
Okvir 6 6 6 6 6 6 6 6 6 6 6 6 6 6

c) Kada bi broj okvira bio jednak broju stranica, broj straničnih grešaka u ovom zadatku ne bi bio nula,
već jednak broju okvira koji su u početnom trenutku prazni. Razlog za to je što svaka stranica koja se
po prvi put referencira, tog trenutka nije u memoriji. U zadatku pod a), apsolutni minimum straničnih
grešaka je 3, a pod b) apsolutni minimum straničnih grešaka je 6.

15. Ukoliko vrednost semafora ima pozitivnu vrednost m, to znači da (zaokružiti ono što je tačno):
a. m niti čeka u stanju mrtve petlje (busy waiting)
b. m niti čeka na tom semaforu u blokiranom stanju
c. m instanci zahtevanog resursa je trenutno zauzeto
d. m instanci zahtevanog resursa je trenutno slobodno
16. Ukoliko se kernel izvšava samo na jednom procesorskom jezgru, u kojoj situaciji ima smisla koristiti
spinlock za sinhronizaciju?

Odgovor: Kada je u kernelu dozvoljeno istiskivanje.

17. Rekurzivna funkcija funkcija implementirana je sa namerom da obezbedi uzajamno isključivanje


svojih poziva i da tako bude bezbedna za pozive iz konkurentnih niti koje sadrže ovu funkciju. Objasnite
šta je problem sa ovom implementacijom. (2 poena)

semaphore s;
sema_init(&s,1);

void funkcija (...) {


sema_wait(&s);
if (...) funkcija(...);
sema_signal(&s);
}
Odgovor:

Problem je to što jedna nit, koja pozove funkciju i uđe u rekurziju, ulazi u uzajamno blokiranje
(deadlock) sama sa sobom. Naime, kada se funkcija pozove iz neke niti, na semaforu se izvršava
operacija wait, što zatvara ulaz u funkciju funkcija za nove pozive. Kada ta nit rekurzivno pozove
funkciju, ponovo se izvršava wait na istom semaforu, što dovodi do blokiranja pozivajuće niti koja
zauvek ostaje blokirana na semaforu koji je sama zatvorila.

18. U redu zahteva za pristup disku nalaze se zahtevi za pristup sledećim cilindrima (po redosledu
pristizanja): 58, 39, 91, 126, 66, 37, 47. Prethodno opsluženi zahtev bio je na cilindru 52, a glava se kreće
prema cilindrima sa većim brojevima. Napisati redosled opsluživanja ovih zahteva ukoliko je algoritam
raspoređivanja: (2 poena)

a) SCAN: 58, 66, 91, 126, 47, 39, 37

b) SSTF: 47, 39, 37, 58, 66, 91, 126

19. Navedite i ukratko opišite tri tehnike za izvođenje U/I operacija. (3 poena)

Odgovor:
1. Programirani U/I - Procesor boravi u petlji dok čeka završetak operacije. CPU izdaje U/I komandu u
ime procesa.
2. U/I na bazi prekida - Zadaje se U/I komanda (CPU u ime procesa), nastavlja se izvršavanje
instrukcija, a U/I modul (hardver) šalje signal prekida kada je započeta U/I operacija završena.
3. Direktan pristup memoriji (DMA) - DMA modul (hardver) upravlja razmenom podataka između glavne
memorije i U/I modula. Procesor šalje zahtev za prenos bloka podataka DMA modulu i prekida se
samo kada se prenese ceo blok.

20. Opisati ukratko kako radi Feedback algoritam raspoređivanja.

Odgovor:
Drugačije je nazvan i Round Robin sa više nivoa. Održava više redova procesa, svaki sa svojim
vremenskim odsečkom. Nit ulazi na početku u najviši red. Ako nit dobije da se izvršava i istroši svoj
vremenski odsečak, prebacuje se u niži red. Najniži red koristi čisti Round Robin algoritam. Algoritam za
selekciju bira nit na početku najvišeg reda koji nije prazan. Ovaj algoritam penalizuje niti koje se dugo
izvršavaju.

You might also like