ОС1/Јануар 2013

Извор: SI Wiki
< ОС1
Датум измене: 28. септембар 2021. у 17:07; аутор: Hm190261 (разговор | доприноси) (pogresan zadatak)
Пређи на навигацију Пређи на претрагу

Задаци на страници предмета.

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. задатак

Поставка

Навести најмање три случаја (повода) у којима процес губи процесор и прелази у ред суспендованих (блокираних) и назначити да ли се то дешава као последица системског позива тог процеса или спољашњег прекида

Решење

  1. Због операције на синхронизационој примитиви, тј. на семафору или догађају
  2. Приликом експлицитног позива методе која чека да се нит/нити заврше (јоин нпр.)
Овај задатак није решен. Помозите СИ 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К улаза. Приказати логичку структуру виртуелнеадресеи означити ширину сваког поља. Означити и поделу поља за број странице на поља заиндексирање ПМТ првог и другог нивоа.

Решење

Овај задатак није решен. Помозите СИ Wики тако што ћете га решити.

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. задатак

Поставка

Навести и објаснити неку технику организације структуре података за руковање слободним простором фајл система на диску, осим бит-вектора.

Решење

Слободни блокови се могу груписати тако да први блок у групи слободних садржи показивач на наредне слободне блокове.