ОС1/Јануар 2013
1. задатак
Поставка
Шта је то мултипроцесорски систем, а шта дистрибуирани систем? Навести по један пример сваког.
Решење
Видети задатак из јулског рока 2012.
2. задатак
Поставка
Коришћењем функције yield(jmp_buf old, jmp_buf new)
која чува контекст једне нити и предаје процесор другој нити, реализовати операцију wait
на бројачком семафору у школском језгру.
Решење
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. задатак
Поставка
Навести најмање три случаја (повода) у којима процес губи процесор и прелази у ред суспендованих (блокираних) и назначити да ли се то дешава као последица системског позива тог процеса или спољашњег прекида
Решење
- Због операције на синхронизационој примитиви, тј. на семафору или догађају
- Приликом експлицитног позива методе која чека да се нит/нити заврше (јоин нпр.)
- Овај задатак није решен. Помозите СИ Wики тако што ћете га решити.
4. задатак
Поставка
Написати код који реализује Петерсонов алгоритам међусобног искључења два упоредна процеса помоћу упосленог чекања.
Решење
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. задатак
Поставка
У чему је разлика између техника динамичког учитавања (дyнамиц лоадинг) и преклопа (оверлаy)?
Решење
Видети задатак из јулског рока 2012.
6. задатак
Поставка
Виртуелни адресни простор система је 8ГБ, адресибилна јединица је 16-битна реч, а виртуелни адресни простор је организован странично са страницомвеличине 32КБ. Физички адресни простор је величине 2ГБ. Табеле пресликавања страница су организованеу два нивоа, с тим да табела првог нивоа има 2К улаза. Приказати логичку структуру виртуелнеадресеи означити ширину сваког поља. Означити и поделу поља за број странице на поља заиндексирање ПМТ првог и другог нивоа.
Решење
ПА:фраме(16),оффсет(14) ВА:ПМТ1(11),ПМТ2(7),оффсет(14)
7. задатак
Поставка
Неки систем са страничном организацијом меморије користи технику цопy он wрите. Један процес је тек креирао други процес позивом fork()
. Ако новокреирани процес одмах по покретању изврши операцију уписа у меморију, који изузетак ће генерисати процесор, паге фаулт или неки други и који? Прецизно објаснити зашто и како.
Решење
- Овај задатак није решен. Помозите СИ Wики тако што ћете га решити.
8. задатак
Поставка
На асемблеру неког замишљеног РИСЦ процесора са ЛОАД/СТОРЕ архитектуром написати програм који преноси блок података задате дужине са задате адресе на излазни уређај коришћењем програмираног улаза/излаза са прозивањем (поллинг).
Решење
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. задатак
Поставка
Шта је основна сврха (мотив) постојања операције отварања фајла?
Решење
Сврха тога јесте да при сваком обраћању фајлу не користимо његово име већ користимо ИД у низу фајл дескриптора који садрже показиваче дескриптор у табели отворених фајлова која садржи показивач на ФЦБ датог фајла.
10. задатак
Поставка
Навести и објаснити неку технику организације структуре података за руковање слободним простором фајл система на диску, осим бит-вектора.
Решење
Слободни блокови се могу груписати тако да први блок у групи слободних садржи показивач на наредне слободне блокове.