ОС1/Јун 2014

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

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

1. задатак

Поставка

Укратко објаснити значење појмова мултипрограмирање и мултипроцесирање.

Решење

Видети задатак из јануарског рока 2014.

2. задатак

Поставка

Коришћењем стандардних библиотечних функција setjmp() и longjmp() имплементирати функцију void yield(jmp_buf old, jmp_buf new) која врши промену контекста процесора.

Решење

void yield(jmp_buf old, jmp_buf new) {
	if(setjmp(old) == 0)
		longjmp(new, 1);
}

3. задатак

Поставка

Коришћењем нити у школском језгру (класа Thread) написати код који конкурентно и рекурзивно обилази бинарно стабло тако што текућа нит наставља да обилази лево подстабло, а креира нову нит која ће обићи десно подстабло. Структура Node {Node *left, *right} представља чвор стабла

Решење

class myThread : public Thread {
	public:
		myThread(Node* root) {
			this->root = root;
			start();
		}
	protected:
		void run() {
			visit(root);
		}
	private:
		Node* root;
};

void visit(Node* root) {
	if(root->right)
		new myThread(root->right);
	if(root->left)
		visit(root->left);
}

4. задатак

Поставка

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

Решење

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

5. задатак

Поставка

Шта је основни разлог тога (основни проблем који се решава тиме) што линкер свој посао обавља у два пролаза? Прецизно и кратко објаснити.

Решење

Основни проблем је како повезати преведене објектне фајлове у јединствени извршиви фајл и решити обраћање променљивој или функцији у другом фајлу. Линкер не зна апсолутну позицију симбола унутар фајла док не споји све фајлове па тек онда може да разрешава.

6. задатак

Поставка

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

Решење

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

7. задатак

Поставка

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

Решење

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

8. задатак

Поставка

Укратко објаснити технику двоструког баферисања.

Решење

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

9. задатак

Поставка

Неки фајл систем користи две врсте кључева за фајлове, дељене и ексклузивне, и фајлове закључава приликом отварања фајла, у зависности од најављеног начина коришћења фајла. Процеси А, Б, C и D извршавају системске позиве отварања и затварања истог фајла у следећем редоследу (неки процес извршава позив затварања фајла само ако га је успешно отворио):

  1. А: опен(РЕАД)
  2. Б: опен(WРИТЕ)
  3. C: опен(РЕАД)
  4. А: цлосе
  5. C: цлосе
  6. D: опен(WРИТЕ)

Решење

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

10. задатак

Поставка

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

  1. индексна, при чему је индекс фајла увек у два нивоа, а на блок са индексом првог нивоа указује поље у ФЦБ,
  2. уланчана листа, при чему је глава листе у ФЦБ? ФЦБ фајла је у меморији.

Решење

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