OS Jun 2016 Odgovori

You might also like

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

Operativni sistemi

Odgovori junski ispitni rok 2016

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

#include <sys/types.h>
#include <stdio.h>
int main(){
pid_t pid;
printf("RAF");
pid = fork();
if (pid == 0) fflush(stdout);
else wait(NULL);
}
Odgovor: RAFRAF

2. U jednom računarskom sistemu sa straničnom organizacijom memorije, veličina stranice je 4kB,


broj stranica je 128, a veličina fizičke memorije je 512kB. Kod drugog računarskog sistema sa
fizičkom memorijom od 512kB, broj stranica je 64, a veličina stranice je 8kB. Koliki je apsolutno
minimalni broj straničnih grešaka kod prvog, a koliki kod drugog sistema?

Odgovor:

U prvom sistemu broj okvira je 512/4 = 128, dok je kod drugog sistema broj okvira 512/8 = 64. U oba
slučaja broj okvira je jednak odgovarajućem broju stranica za dati sistem. Kada je broj okvira jednak
broju stranica, broj straničnih grešaka nije nula, već je 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. Prema tome, apsolutni minimum straničnih grešaka je 128 kod prvog sistema i 64 kod
drugog sistema.

3. Napisati deo NASM kôda koji će prekidnu rutinu timer pozvati kao da je obična funkcija, bez obzira
što je u pitanju prekidna rutina i što se završava sa IRET.

Odgovor:

pushf
push cs
call timer

Po završetku prekidne rutine, izvršavanjem instrukcije IRET, sa steka se skidaju vrednosti IP, CS i
FLAGS, pa se kontrola toka programa vraća pozivaocu.

4. Kolika je veličina linearnog adresnog prostora mikroprocesora iz klase IA32, ako se on nalazi u
realnom režimu rada? Obrazložiti odgovor.

Odgovor:

Maksimalna veličina lineranog adresnog prostora dobija se postavljanjem segmentnog registra (SR)
i ofset registra (OR) tako da sadrže sve jedinice, tj. SR = FFFF i OR = FFFF. Zatim se SR šiftuje za
četiri bita ulevo (pomnoži sa 16d) i sabere sa OR, tj. FFFF0 + FFFF = 10FFEF, što odgovara
prostoru od 1MB + 64kB = 1088kB. Naravno, procesor u realnom režimu rada može da adresira
samo prvih 1MB jer ima na raspolaganju 20 fizičkih adresnih linija (A0 – A19).
Operativni sistemi
5. Koji problemi mogu da nastanu upotrebom korisničke bibloteke niti kod višeprocesorskog sistema
koji ih mapira kao jednu kernelovu nit?

Odgovor:
a) U slučaju sinhronog (blokirajućeg) sistemskog poziva, blokiraju se sve korisničke niti bez obzira
kod koje je nastao ovaj poziv.
b) Operativni sistem ne može da pošalje neku specifičnu nit na izvršavanje nakon nastanka nekog
događaja.
c) Korisničke niti se ne mogu izvršavati na različitim procesorskim jezgrima.

6. Data je tabela deskriptora segmenata:


Deskriptor
Selektor
Bazna adresa segmenta Dužina segmenta
1 219 196
2 1327 196
3 2300 410
4 201 201
5 1327 580
Koje linearne adrese odgovaraju sledećim logičkim adresama:

Odgovor:
1:200 Ilegalna adresa
2:196 Ilegalna adresa
3:200 2500
4:200 401
5:196 1523

7. Pretpostavimo da su u nekom sistemu sa procesorom arhitekture IA32 već inicijalizovane tabele


GDT i IDT, kao i da postoje odgovarajuće rutine za obradu prekida. Segmentni selektori
(C_SEL,D_SEL,S_SEL)imaju poznate vrednosti. U zaštićeni režim ulazi se na sledeći način:

cli
mov eax, cr0
or eax, dword 1
mov cr0, eax
jmp C_SEL:flush
flush:
mov ax, D_SEL
mov ds, ax
mov ax, S_SEL
mov ss, ax
mov ax, 4C00h
int 21h

Imajući i vidu prvu instrukciju za zabranu svih prekida (cli), da li će biti izvršena poslednja
instrukcija (int 21h)? Obrazložiti odgovor.

Odgovor:

Izvršiće se, bez obzira na eventualno mapiranje IRQ1 u INT21h (tastatura), jer je u pitanju softverski
(sinhroni) “poziv” prekida.
Operativni sistemi
8. Na sledećem listingu prikazan je početak boot sektora FAT16 diska sa koga se podiže operativni
sistem. Navesti brojnu vrednost kodnog segmenta u kome će početi izvršavanje funkcije main?
Obrazložiti odgovor.

mem_velicina equ 640 ; Velicina memorije u KB


stek_velicina equ 1024 ; Velicina boot steka u bajtovima
mov ax, mem_velicina
shl ax, 6
sub ax, 32
mov es, ax
sub ax, stek_velicina / 16
mov ss, ax
mov sp, stek_velicina
mov cx, 512
mov si, 7C00h
xor di, di
mov ds, di
rep movsb
push es
push word main
retf

main:
push cs
pop ds
...

Odgovor:

Pre izvršenja funkcije main, program se kompletno relocira iz boot oblasti u oblast 640KB - 512
bajtova. Bazna adresa ovog dela memorije je 9FE00h, što znači da je njegova segmentna adresa
9FE0h, pa je i segmenta adresa funkcije main 9FE0h.

9. Objasniti ukratko koji proces kod operativnih sistema Unix i Linux ima PID = 0.

Odgovor:

U pitanju je proces pod nazivom swapper kod sistema BSD Unix ili shed kod Unix System V. U
principu, to i nije proces u klasičnom smislu jer ne pripada korisničkom prostoru, već kernelu.
Njegova istorijska uloga je učitavanje ili snimanje na disk celokupnih korisničkih procesa (swap-in i
swap-out), kada je to bilo potrebno, tj. kada je nedostajala fizička memorija kod multiprogramskih
sistema. Upotrebom straničenja na zahtev, swapper je izgubio svoju originalnu funkciju. Međutim, to
je i dalje proces u kernelovom prostoru koji nastaje iz niti boot procesa i koji forkuje prvi korisnički
proces init (PID = 1), kao i još neke sistemske procese (vmdaemon, pagedaemon ...).

Kod sistema Linux, proces čiji je PID = 0 je idle task, tj. proces koji se izvršava kada nijedan drugi
proces nije spreman.
Operativni sistemi
10. U nekom sistemu sa straničnom organizacijom virtuelne memorije u datom trenutku raspored
stranica tri procesa po okvirima u fizičkoj memoriji izgleda ovako:

Okvir 1 2 3 4 5 6 7 8 9
Korisnik K B2 A1 C3 C0 DLL B0 K K

Slova A, B i C označavaju procese kojima pripadaju stranice u tim okvirima, brojevi označavaju
brojeve stranica tih procesa, K označava okvir koji pripada kernelu operativnog sistema, a DLL
označava okvir čiji je sadržaj dinamička biblioteka koju koriste sva tri procesa A, B i C.
U virtuelnom adresnom prostoru procesa A dati DLL se nalazi na stranici broj 3, a u prostorima
procesa B i C na stranici broj 4. Napisati kako izgledaju tabele preslikavanja stranica za sva tri
procesa A, B i C. U tabelu upisati brojeve okvira i T ili F kao oznaku da li je stranica u memoriji ili
ne, za prvih 6 stranica.

Stranica 0 1 2 3 4 5
Proces A F T2 F T5 F F
Proces B T6 F T1 F T5 F
Proces C T4 F F T3 T5 F

You might also like