Operativni Sistemi Flashcards

1
Q

1) Koje instrukcije/funkcije se izvršavaju u kernel, a koje u korisničkom modu?
a) fork()
b) semsignal(s)
c) a = sin(3,14)

A

a) fork() - kernel
b) semsignal(s) - korisnički
c) a = sin(3,14) - korisnički

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

2) Za svaku funkciju navesti da li uzrokuju prelazak u kernel mod i da li uzrokuju zamenu aktivnog procesa?
a) exchange(0, 1)
b) semwait(1)
c) strcmp(a, b)
d) scanf()
e) malloc()

A

a) exchange(0, 1) - ne uzrokuje prelaz u kernel mod, ne uzrokuje zamenu aktivnog procesa..
b) semwait(1) - ne uzrokuje prelaz u kernel mod, ne uzrokuje zamenu aktivnog procesa..
c) strcmp(a, b) - ne uzrokuje prelaz u kernel mod, ne uzrokuje zamenu aktivnog procesa.
d) scanf() - uzrokuje prelazak u kernel mod, uzrokuje zamenu aktivnog procesa.
e) malloc() - uzrokuje prelaz u kernel mod, ne uzrokuje zamenu aktivnog procesa

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

3) Koje funkcije uzrokuju prelazak u kernel mod? Objasniti zašto jednom rečenicom.
a) execv()
b) semwait(s)
c) strcat(a, b)
d) test&set()
e) printf()

A

a) execv() - uzrokuje prelazak u kernel mod, radi se o sistemskom pozivu, koji služi za poziv novog procesa iz postojećeg.
b) semwait(s) - u zavisnosti od vrednosti semafora moze da uzrokuje prelazak u kernel mod radi zamene procesa ( s <= 0 ).
c) strcat(a, b) - ne uzrokuje prelaz u kernel mod, zato što je to poziv funkcije iz standardne biblioteke.
d) test&set() - ne uzrokuje prelaz u kernel mod, zato što se ne vrši zamena procesa.
e) printf() - uzrokuje prelaz u kernel mod, zato što je ulazno-izlazna operacija.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

4) U kom stanju je bio i u koje stanje prelazi proces kada:
a) izvrši read() funkciju
b) izvrši semsignal(s), pri čemu je proces blokiran na semaforu višeg prioriteta
c) izvrši test&set() instrukciju

A

a) izvrši read() funkciju - Running => Blocked
b) izvrši semsignal(s), pri čemu je proces blokiran na semaforu višeg prioriteta- Blocked => Blocked ( ne menja stanje )
c) izvrši test&set() instrukciju - Running => Running ( ne menja stanje )

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

5) Da li prekid kloka uzrokuje prelazak u kernel mod i zasto da/ne?

A

Prekid clock-a uzrokuje prelazak u kernel mod. Čuvaju se argumenti procesa na steku i prelazi se na rutinu za obradu prekida koja se izvršava u kernel modu.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

6) Koje instrukcije/funkcije se izvrsavaju u kernel modu:
a) execve()
b) read()
c) strcpy()
d) semwait()
e) a+=3

A

a) execve()
b) read()
d) semwait() - u zavisnosti od vrednosti semafora prelazi u kernel mod.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

7) Kada jedan proces kreira novi proces korišćenjem fork(), šta je deljeno između parent i child procesa?
a) stek
b) heap
c) programski kod

A

c) programski kod

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

8) U koje stanje prelazi aktivni proces kada:
a) izvrši semwait(s), pri cemu je s = 1
b) pozove recieve() funkciju
c) njegova memorijska slika prebaci na disk jer je dugo blokiran na U/I
d) izvrši compare&swap() instrukciju
e) nastane prekid clock-a

A

a) izvrši semwait(s), pri cemu je s = 1 - ne menja stanje
b) pozove recieve() funkciju - blokira se
c) njegova memorijska slika prebaci na disk jer je dugo blokiran na U/I - blokiran/suspendovan
d) izvrši compare&swap() instrukciju - nastavlja sa izvrsenjem
e) nastane prekid clock-a - spreman
Prekid kloka ili poziv U/I operacije uzrokuje prebacivanje prekinutog
procesa u novo stanje (Spreman, Blokiran)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

9) Koja je osnovna razlika između sistemskog poziva i funkcije iz standardne C biblioteke?

A

Kada se radi o sistemskom pozivu prelazi se u kernel mod, dok kod poziva funkcije standardne biblioteke to nije slučaj.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

10) Sta se menja u upravljačkom bloku niti prilikom zamene niti (context switch-a) i zašto?

A

Menja se stanje niti, vrednosti registra opste namene, flegova, program counter-a.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

11) Šta je multiprogramiranje i kakve promene unosi u upravljanje memorijom i procesorom u odnosu na jednoprogramiranje?
a) Za šta služi stek u memorijskoj slici procesa?

A

Multiprogramiranje predstavlja kada operativni sistem u isto vreme smešta u memoriju vise poslova(procesa). U jednom trenutku samo jedan od poslova se izvršava na procesoru, ukoliko se blokira izvršenjem U/I operacije aktivira se planiranje poslova(job scheduling).
Kod jednoprogramiranja CPU mora da čeka dok se ne izvrši neka U/I instrukcija, nema zamene procesa.

a) Stek služi za čuvanje parametara pri pozivu funkcije, povratne adrese i lokalne promenljive funkcije.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

12) Ako izvršite sledeći C program, koji su mogući izlazi u slučaju da je fork() funkcija uspešna?
main()
{
int pid;
pid=fork();
printf(“%d \n”, pid);
}

A

Moguća su dva slučaja da je PID = 0 ili PID > 0 ukoliko je funkcija fork() uspešno izvršena, u suprotnom ako je PID < 0 nastaje greska

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

13) U kom slučaju se proces sa tri ULT niti brže izvršava od procesa sa tri KLT niti? Objasniti ukratko.

A

Izvršava se u slučaju kada nema blokiranja niti. Kod ULT-a ukoliko dođe do blokiranja niti, blokira se ceo proces. Međutim ukoliko nema blokiranja niti, ULT niti se izvršavaju brže jer pri promeni procesa ne zahteva privilegije kernel moda.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly