ОС1/Октобар 2011

Извор: SI Wiki
< ОС1
Датум измене: 20. септембар 2021. у 17:53; аутор: Ivan Pešić (разговор | доприноси) (средити 6. задатак)
(разл) ← Старија измена | Тренутна верзија (разл) | Новија измена → (разл)
Пређи на навигацију Пређи на претрагу

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

1. задатак

Поставка

Укратко објаснити основни мотив увођења расподеле времена (тиме схаринг) у мултипрограмирање.

Решење

У зависности од тога у ком хронолошком поретку су се догодиле акције корисника, што је потпуно произвољно, корисници би добијали одзиве након различитог времена и зависили би од броја и активности других корисника, те би корисници имали осећај да сметају једни другима. Механизмом расподеле времена кориснику се одаје утисак да рачунар ради само за њега са довољно добрим и уједначеним временом одзива, иако опслужује више корисника истовремено.

2. задатак

Поставка

На асемблеру неког замишљеног РИСЦ процесора са ЛОАД/СТОРЕ архитектуром написати програм који врши учитавање блока података са улазног уређаја техником програмираног улаза коришћењем прекида. Самостално усвојити потребне детаљне претпоставке.

Решење

main:	LD R1, blockAddr
		LD R2, count
		LD R3, #0
		ST [ctrl], #00..01
wait:	CMP R3, #1
		JNZ wait
		HALT

intr:	LD R0, [data]
		ST [R1], R0
		INC R1
		DEC R2
		JNZ ret
		LD R3, #1
		ST [ctrl], #0
ret: 	RTI

3. задатак

Поставка

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

Решење

  1. Експлицитним захтевом за промену контекста - диспатцх, yиелд - синхроно.
  2. Истекло је додељено ЦПУ време - тиме еxцеедед - асинхроно.
  3. Прекид - маскирајући или немаскирајући - асинхроно.
  4. Због операције на некој синхронизационој примитиви тј. семафору или догађају - синхроно.

4. задатак

Поставка

Коришћењем стандардних бројачких семафора у школском језгру, на језику C++ у потпуности реализовати класу за ограничени бафер (боундед буффер).

Решење

Видети задатак из јулског рока 2011.

5. задатак

Поставка

Дати пример делова кода два фајла са изворним C/Ц++ кодом за које ће линкер генерисати грешку типа вишеструких симбола и недефинсаних симбола, под претпоставком да су то једина два фајла која се линкују.

Решење

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

6. задатак

Поставка

Виртуелна меморија неког рачунара организована је странично. Величина виртуелног адресног простора је 2 МБ, адресибилна јединица је 16-битна реч, а величина странице је 128 КБ. Величина физичког адресног простора је 32 МБ. Оперативни систем учитава странице на захтев, тако што се страница учитава у први слободни оквир физичке меморије када јој се приступи. Када се креира процес, ни једна његова страница се не учитава одмах, већ тек кад јој се први пут приступи. У почетном тренутку, слободни оквири физичке меморије су оквири почев од 10х закључно са 1Фх. Неки процес генерише следећу секвенцу виртуелних адреса током свог извршавања (све вредности су хексадецималне):

30Ф00, 30Ф02, 30Ф04, 922Ф0, 922Ф2, 322Ф0, 322Ф2, 322Ф4, 522Ф0, 522Ф2, 402Ф0, 402Ф2

Приказати изглед целе табеле пресликавања страница (ПМТ) за овај процес након извршавања ове секвенце. За сваки улаз у ПМТ приказати индикатор присутности странице у физичкој меморији (0 или 1) и број оквира у физичкој меморији у који се страница пресликава, уколико је страница учитана; уколико није, приказати само овај индикатор.

Решење

ВАС: 2МБ = 2^21Б -> ВА: 20б

паге = 128КБ = 64К АУ -> 16б

ВА: паге(4) : оффсет(16)

7. задатак

Поставка

Навести типичне операције апстракције блоковски оријентисаног улазно/излазног уређаја са директним приступом.

Решење

Типичне операције су:

  • int readBlock(BlockNo block, void* buffer);
  • int writeBlock(BlockNo block, void* buffer);

8. задатак

Поставка

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

Решење

Фајл је отворен у режиму читања.

9. задатак

Поставка

Шта значи термин „пресна партиција“ (раw партитион)?

Решење

Пресна партиција је партиција која није форматизована, на њој није организован фајл систем. Може се употребљавати за посебне намене, нпр. за замену страница.

10. задатак

Поставка

Колико приступа блоковима на диску треба извршити за приступ н-том логичком блоку садржаја фајла ако је алокација фајла

  1. уланчана листа,
  2. континуална

Решење

  1. н
  2. 1