ОС1/Фебруар 2014

Извор: SI Wiki
Пређи на навигацију Пређи на претрагу

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

1. задатак

Поставка

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

Решење

ОС може да приступа диску директно, у произвољном редоследу, без значајних разлика у времену одзива као код трака (због премотавања) без обзира на то како су подаци смештени на самом диску. Диск је блоковски оријентисан улазно-излазни уређај. Подаци се могу и учитавати са диска и уписивати на њега, али се преносе искључиво у блоковима фиксне величине. Због овога је скуп послова који су поднети на извршавање могао да се сними на диск а да ОС са њега учитава оне које одлучи да ће се извршавати, на основу заузећа процесора и меморије, а не на основу редоследа којим су поднети.

2. задатак

Поставка

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

Решење

  1. једноспроцесорски системи:
    • маскирати прекиде
    • забранити преузимање
    • оптимистички приступ
  2. вишепроцесорски системи:
    • тест-анд-сет
    • сwап

3. задатак

Поставка

Коришћењем стандардних системских позива fork() и wait() написати C програм који креира тачно Н процеса своје деце, где је Н параметар програма, а потом чека да се сва деца заврше. Процеси-деца само испишу неку поруку на стандардни излаз и потом се завршавају.

Решење

#include <stdio.h>
int main(int argc, char* argv[]) {
	if(argc < 2)
		return -1;
	int N = atoi(argv[1]);
	int pid[N];
	for(int i = 0; i < N; i++) {
		pid[i] = fork();
		if(pid[i] < 0)
			return -2;
		else if(pid[i] == 0) {
			printf("Child %d", i);
			exit(0);
		}
	}
	for(int i = 0; i < N; i++)
		wait(pid[i]);
	return 0;
}

4. задатак

Поставка

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

Решење

Semaphore mutex(1), spaceAvailable(N), itemAvailable(0);

void append(Data* d) {
	spaceAvailable.wait();
	mutex.wait();
	<add>
	mutex.signal();
	itemAvailable.signal();
}

Data* take() {
	itemAvailable.wait();
	mutex.wait();
	<get data>
	mutex.signal();
	spaceAvailable.signal();
	return data;
}

5. задатак

Поставка

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

Решење

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

6. задатак

Поставка

Шта је екстерна фрагментација код алокације меморије? Да ли је она могућа код сегментно-страничне алокације меморије?

Решење

Екстерна фрагментација настаје када се процеси учитавају у меморију а затим деалоцирају. Како се делови произвољних димензија заузимају и ослобађају динамички, слободни фрагменти се стварају и називају екстерним. Није могућа екстерна фрагментација код сегментно-страничне организације јер алоцирају блокови исте величине.

7. задатак

Поставка

У неком систему са страничном организацијом виртуелне меморије виртуелна и физичка адреса су 32-битне, адресибилна јединица је бајт, а страница је величине 64 КБ. ПМТ је организована у два нивоа и један улаз у ПМТ оба нивоа заузима по једну 32-битну реч. ПМТ оба нивоа су исте величине. Колико укупно заузимају ПМТ за процес који је алоцирао само своју прву и последњу страницу?

Решење

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

8. задатак

Поставка

Укратко објаснити технику споолинг.

Решење

Када неки недељиви спори уређај жели да одради посао, прво се затражи коришћење тог уређаја системским позивом, ОС тада прави посебан фајл на одређеном месту у свом фајл систему у који ће преусмерити све улазне операције тог процеса са штампачем и враћа контролу процесу. ОС предаје фајл на обраду посебном процесу или нити (спулеру) који ће један по један фајл да узима и њихове садржаје да шаље датом уређају.

9. задатак

Поставка

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

Решење

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

10. задатак

Поставка

Колико приступа блоковима на диску треба извршити за приступ н-том логичком блоку садржаја фајла ако је алокација фајла а) индексна, при чему је индекс фајла увек у два нивоа, а на блок са индексом првог нивоа указује поље у ФЦБ, б) ФАТ, при чему је цела ФАТ у меморији? ФЦБ фајла је у меморији.

Решење

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