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

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

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

1. задатак

Поставка

Шта је био основни мотив за увођење мултипрограмирања у рачунарске системе?

Решење

Видети задатак из септембарског рока 2011.

2. задатак

Поставка

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

Решење

Event::wait() {
	lock(lck);
	if(--val < 0) {
		if(setjmp(Thread::running->context) == 0) {
			blocked.put(Thread::running);
			Thread::running = Scheduler::get();
			longjmp(Thread::running->context, 1);
		}
	}
	unlock(lck);
}

3. задатак

Поставка

На језику C, коришћењем системског позива fork() за Униx, написати програм који прихвата целобројни аргумент н и који, када се над њим покрене процес, покреће један процес-дете и завршава се, овај процес-дете покреће своје дете, итд, тако да укупно буде н процеса у релацији родитељ-дете (н „генерација“).

Решење

int main(int argc, char* argv[]) {
	if(argc < 2)
		return -1;
	int N = atoi(argv[1]);
	for(int i = 0; i < N; i++) {
		if(fork() != 0) return 0;
	}
	return 0;
}

4. задатак

Поставка

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

Решење

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

5. задатак

Поставка

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

Решење

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

6. задатак

Поставка

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

Решење

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

7. задатак

Поставка

Применом технике цопy-он-wрите код виртуелне меморије, хардвер је генерисао изузетак типа „недозвољен упис у адресирану страницу“. Прецизно објаснити шта даље ради оперативни систем.

Решење

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

8. задатак

Поставка

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

Решење

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

9. задатак

Поставка

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

Решење

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

10. задатак

Поставка

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

  1. ФАТ, при чему је цела ФАТ у меморији
  2. континуална?

Решење

  1. 1
  2. 1