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

Operativni sistemi

Odgovori                         septembarski ispitni rok  2011/2012 

Pitanja za 1 poen

1. U data segmentu navedena je pseudo-instrukcija:


poruka: db “ja sam poruka”, 0 
Izvršena je instrukcija:
mov di, poruka 
Ako želimo da registar DI pokazuje na prvo slovo “a”, koju instrukciju treba izvršiti?
a. inc [di] 
b. dec [di] 
c. inc di 
d. dec di 
 
2. Kolika je veličina linearnog adresnog prostora mikroprocesora iz klase IA32, ako se on nalazi u
realnom režimu rada?
a. 64 KB
b. 640 KB
c. 1024 KB
d. 1088 KB
e. 4 GB

3. Navesti fizičku adresu unutar tabele vektora prekida odakle počinje zapis za prekid 17h kada se
procesor IA32 nalazi u realnom režimu rada.

Odgovor: 5Ch.

4. Šta od navedenog generiše asinhroni prekid:


a. Nemaskirajući prekid INT 02h
b. Break point INT 03h
c. Sistemski časovnik INT 08h
d. Prekid tastature INT 09h

5. Kod mikroprocesora iz klase IA32, prelazak iz realnog u zaštićeni režim rada ostvaruje se:
a. Upotrebom sistemskog poziva
b. Zabranom prekida (uključujući i NMI, ukoliko to dozvoljavaju spoljašnja elektronska kola)
c. Postavljanjem PE (Protected Enable) bita u kontrolnom registru CR0
d. Resetovanjem mikroprocesora, nakon čega on odmah prelazi u zaštićeni režim rada

Pitanja za 2 poena

6. Popuniti sledeću tabelu odgovorima DA ili NE.

Operacija Istiskivanje Blokiranje


Izvršavanje niti
U prostoru kernela DA DA
U prostoru korisnika DA NE

RAF.08.2008.I5.2011
Operativni sistemi
7. Na slici je prikazan fizički adresni prostor jednog 32-bitnog Unix sistema. Ako pretpostavimo da su
stranice veličine 4 KB:
a) Koliko stavki mora da ima tabela stranica ukoliko se koristi 0xFFFFFFFF
jedinstvena tabela stranica? Stek (1MB)
0xFFFFFC00
b) Koliko stavki u zbiru moraju da imaju tabele stranica, ako se
koristi straničenje u dva nivoa (ne računati stavke za direktorijum)? Prazan prostor
(nema memorije)

0x011FFFFF
Odgovor: a) 1M stavki Program i
b) 12K stavki podaci
(18MB)
0x00000000

8. Navedite najmanje dva atributa Unix procesa koji nisu istovremeno atributi njegove osnovne niti.

Odgovor: Grupni ID, tekući direktorijum, korenski direktorijum, ID sesije, kontrolni terminal,
otvorene datoteke, dostupni resursi, identifikator procesa (PID) ...

9. U sistemu datoteka FAT16, sa klasterima veličine 1 KB, nalazi se datoteka DATA.TXT. Odrediti
kolika je njena interna fragmentacija. Napomena: EOC = 0FFF8h
direktorijumska stavka
ime start veličina atributi
DATA    TXT  006A  1BFE  ... 

FAT (u brojevima klastera izostavljene su prve dve vodeće nule)


65 66 67 68 69 6A … 92 93 94 95 96 97 98 99 9A 9B
46 6A 00 45 00 97 … 57 96 00 EOC 99 98 93 66 57 00

Odgovor: Datoteka je sa greškom i nije upotrebljiva. Lanac klastera čini zatvorenu petlju tako da
nije moguće odrediti njen kraj, bez obzira na veličinu koja upisana u direktorijumu.

10. Šta označava pojam “čista stranica” kod virtuelne memorije?

Odgovor: Za stranicu se kaže da je čista kada je njena memorijska verzija ista kao ona na disku.
U suprotnom, za nju se kaže da je prljava. Stranice se povremeno upisuju na disk i kernel to radi u
pozadini. Operacija može da se forsira upotrebom sistemskog poziva sync. Kernel može da preda
okvir čiste stranice drugome na korišćenje jer zna da može ponovo da je učita sa diska.

Pitanja za 3 poena

11. Popuniti sledeću tabelu odgovorima DA ili NE

Dodeljivanje Interna
memorije fragmentacija
Dinamičke particije NE
Segmentacija NE
Straničenje DA

 
 

RAF.08.2008.I5.2011
Operativni sistemi
12. Koja je funkcija sledećeg dela kôda?
    mov   ax,pocetak       
    mov   es,ax 
    cmp   word [es:0],‘MZ’ 
    je    relokacija 

Odgovor: Proverava da li je učitana datoteka tipa EXE.

13. Na dijagramu su prikazana stanja u kojima može da se nađe neki Unix proces. Objasnite šta
znače stanja označena sa ZOMBIE, READY MEMORY i RUN KERNEL.

intr

exit RUN return RUN


ZOMBIE KERNEL USER
syscall

sleep schedule return


preempt preempted

SLEEP wakeup READY


MEMORY MEMORY new

fork
swap_ out swap_ out swap_ in CREATED

SLEEP wakeup READY new


SWAPPED SWAPPED swapped

Odgovor:

ZOMBIE: Kada proces završi sa svojim izvršavanjem, sistem oslobađa memoriju i ostale resurse
koji su mu pripadali, tako da ih mogu koristiti drugi procesi. Međutim, njegova stavka ostaje u
tabeli procesa (zato se i naziva zombi). Roditeljski proces može da pročita izlazni status potomka
upotrebom sistemskog poziva wait(), nakon čega se zombi uklanja iz tabele procesa i njegov
PID može ponovo da se koristi za neki drugi proces.
READY MEMORY: Proces koji je spreman za izršavanje i nalazi se u redu čekanja u memoriji.
RUN KERNEL: Stanje izvršenja na procesoru koji je u zaštićenom režimu rada (režimu kernela).

14. U sledećem programu obezbediti da se na standardnom izlazu uvek ispisuje string BABA.
#include <sys/types.h>
#include <stdio.h>
int main(){
pid_t pid;
pid = fork();
if (pid !=0) printf(“A”);
wait(NULL);
pid = fork();
if (pid ==0) printf(“B”);
else if (pid > 0) wait(NULL);
}
Odgovor: Program uvek ispisuje BABA, tako da ne treba menjati ništa.

RAF.08.2008.I5.2011
Operativni sistemi
 
15. Šta je to mikrokernel arhitektura?
Odgovor:
Mikrokernel aritektura je rešenje kada se u prostoru kernela nalazi samo kernel sa minimalnim
funkcijama (raspoređivanje i dodeljivanje resursa), a da se ostale funkcionalnosti sistema (npr.
sistemi datoteka, drajveri, itd.) realizuju kao korisnički procesi.Komunikacija među procesima vrši
se razmenom poruka. Prednost takve arhitekture u odnosu na monolitne ili modularne je visoka
pouzdanst i robusnost. Pad nekog podistema (npr. drajvera) ne izaziva krah čitavog sistema.
Nedostatak su lošije performanse zbog česte promene nivoa privilegije prilikom prenosa poruka.

Pitanja za 5 poena

16. Imajući u vidu da PSP kod DOS datoteke tipa COM počinje od lokacije 81h, objasniti šta radi
sledeći deo koda:

org 100h 
 
mov  ch, 01h  ; Maksimalni broj ponavljanja instrukcije sa prefiksom rep__ 
mov  di, 81h 
mov  al, ' ' 
repe  scasb 
lea  dx, [di‐1] 
dec  di 
mov  al, 13 
repne  scasb 
mov  byte [di‐1], 0 

Odgovor: Parsuje komandnu liniju za argument COM datoteke zadat preko komandne linije. Ovaj
argument postaje string koji počinje od lokacije na koju pokazuje registar DX, a završava se nulom.

17. 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       

Objasniti ulogu instrukcije jmp C_SEL:flush imajući i vidu da je to praktično skok na sledeću


instrukciju, koja bi se izvršila i da nema navedene instrukcije.  

Odgovor: Instrukcija predstavlja međusegmentni skok (iako ostajemo u istom segmentu) koji
automatski prazni prefetch queue, čiji sadržaj ne može da se koristi u trenutku prelasaka u zaštićeni
režim rada.

RAF.08.2008.I5.2011
Operativni sistemi
18. 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.

19. Pretpostavimo da se funkcije sledeće dve niti, nit_1 i nit_2, izvršavaju konkurentno, pri čemu
dele semaforske promenljive R, S i T, koje su respektivno inicijalizovane na vrednosti 1, 8000h i 0,
kao i celobrojnu 16-bitnu promenljivu x, koja je inicijalizovana na vrednost 8000h.

void nit_1( ) { void nit_2( ) {


do { do {
semWait(S); semWait(T);
semWait(R); semWait(R);
x++; x--;
semSignal(R); semSignal(R);
semSignal(T); semSignal(S);
} while (1); } while (1);
} }

Da li konkurentno izvršavanje ove dve niti može da dovede obe niti u večno blokirano stanje?
Obrazložiti odgovor.

Odgovor:

Ne može. Ovo je klasično rešenje sinhronizacije, slično kao kod problema proizvođać/potrošač.

RAF.08.2008.I5.2011

You might also like