OS1/Januar 2013
1. zadatak
Postavka
Šta je to multiprocesorski sistem, a šta distribuirani sistem? Navesti po jedan primer svakog.
Rešenje
Videti zadatak iz julskog roka 2012.
2. zadatak
Postavka
Korišćenjem funkcije yield(jmp_buf old, jmp_buf new)
koja čuva kontekst jedne niti i predaje procesor drugoj niti, realizovati operaciju wait
na brojačkom semaforu u školskom jezgru.
Rešenje
void Semaphore::wait() {
lock(lck);
if(--val < 0) {
jmp_buf old = Thread::running->context;
blocked.put(Thread::running);
Thread::running = Scheduler::get();
jmp_buf new = Thread::running->context;
yield(old, new);
}
unlock(lck);
}
3. zadatak
Postavka
Navesti najmanje tri slučaja (povoda) u kojima proces gubi procesor i prelazi u red suspendovanih (blokiranih) i naznačiti da li se to dešava kao posledica sistemskog poziva tog procesa ili spoljašnjeg prekida
Rešenje
- Zbog operacije na sinhronizacionoj primitivi, tj. na semaforu ili događaju
- Prilikom eksplicitnog poziva metode koja čeka da se nit/niti završe (join npr.)
- Овај задатак није решен. Помозите SI Wiki тако што ћете га решити.
4. zadatak
Postavka
Napisati kod koji realizuje Petersonov algoritam međusobnog isključenja dva uporedna procesa pomoću uposlenog čekanja.
Rešenje
shared var turn : integer := 1, flag1, flag2 : boolean := false;
process P1
begin
loop
flag1 = true; turn := 2;
while flag2 and turn = 2 do null;
<critical>
flag1 := false
<non-critical>
end
end P1;
process P2
begin
loop
flag2 = true; turn := 1;
while flag1 and turn = 1 do null;
<critical>
flag2 := false
<non-critical>
end
end P2;
5. zadatak
Postavka
U čemu je razlika između tehnika dinamičkog učitavanja (dynamic loading) i preklopa (overlay)?
Rešenje
Videti zadatak iz julskog roka 2012.
6. zadatak
Postavka
Virtuelni adresni prostor sistema je 8GB, adresibilna jedinica je 16-bitna reč, a virtuelni adresni prostor je organizovan stranično sa stranicomveličine 32KB. Fizički adresni prostor je veličine 2GB. Tabele preslikavanja stranica su organizovaneu dva nivoa, s tim da tabela prvog nivoa ima 2K ulaza. Prikazati logičku strukturu virtuelneadresei označiti širinu svakog polja. Označiti i podelu polja za broj stranice na polja zaindeksiranje PMT prvog i drugog nivoa.
Rešenje
- Овај задатак није решен. Помозите SI Wiki тако што ћете га решити.
7. zadatak
Postavka
Neki sistem sa straničnom organizacijom memorije koristi tehniku copy on write. Jedan proces je tek kreirao drugi proces pozivom fork()
. Ako novokreirani proces odmah po pokretanju izvrši operaciju upisa u memoriju, koji izuzetak će generisati procesor, page fault ili neki drugi i koji? Precizno objasniti zašto i kako.
Rešenje
- Овај задатак није решен. Помозите SI Wiki тако што ћете га решити.
8. zadatak
Postavka
Na asembleru nekog zamišljenog RISC procesora sa LOAD/STORE arhitekturom napisati program koji prenosi blok podataka zadate dužine sa zadate adrese na izlazni uređaj korišćenjem programiranog ulaza/izlaza sa prozivanjem (polling).
Rešenje
main: LD R1, blockAddr
LD R2, cnt
ST [ctrl], #0..1
wait: LD R0, [status]
AND R0, #1..0
JZ wait
LD R0, [R1]
ST [data], R0
INC R1
DEC R2
JNZ wait
ST [ctrl], #0
9. zadatak
Postavka
Šta je osnovna svrha (motiv) postojanja operacije otvaranja fajla?
Rešenje
Svrha toga jeste da pri svakom obraćanju fajlu ne koristimo njegovo ime već koristimo ID u nizu fajl deskriptora koji sadrže pokazivače deskriptor u tabeli otvorenih fajlova koja sadrži pokazivač na FCB datog fajla.
10. zadatak
Postavka
Navesti i objasniti neku tehniku organizacije strukture podataka za rukovanje slobodnim prostorom fajl sistema na disku, osim bit-vektora.
Rešenje
Slobodni blokovi se mogu grupisati tako da prvi blok u grupi slobodnih sadrži pokazivač na naredne slobodne blokove.