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

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

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

1. задатак

Поставка

На асемблеру неког двоадресног РИСЦ процесора са ЛОАД/СТОРЕ архитектуром написати превод следеће функције:

int log (int n) {
  if (n<2) return 0;
  else return 1+log(n/2);
}

Решење

log:	LD R1, #n[SP]
		CMP R1, #2
		JGE else
		LD R0, #0
		RTS
else:	LD R0, #1
		ASL R1, R0
		PUSH R1
		CALL log
		POP R1
		ADD R0, R1
		RTS

2. задатак

Поставка

На који начин се у програму кога извршава процесор може знати да је ДМА завршио операцију која му је задата?

Решење

1. Испитивањем индикатора у статусном регистру ДМА контролера.

2. Када ДМА контролер заврши са радом, генерише прекид.

3. задатак

Поставка

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

Решење

1. Експлицитним захтевом за промену контекста - диспатцх, yиелд - синхроно.

2. Истекло је додељено ЦПУ време - тиме еxцеедед - асинхроно.

3. Прекид - маскирајући или немаскирајући - асинхроно.

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

4. задатак

Поставка

Процес П треба да сачека да сва три процеса X, Y и З испуне неки свој услов, у било ком редоследу. Написати део кода процеса П и било ког од друга три процеса, уз потребне декларације, који обезбеђују ову условну синхронизацију помоћу једног стандардног бројачког семафора.

Решење

var sem : Semaphore := 0, semX, semY, semZ : Semaphore := 1;

process P
	begin
		...
		wait(sem);
		wait(sem);
		wait(sem);
		...
		signal(semX);
		signal(semY);
		signal(semZ);
	end
end P;

process X 		// ali isto i Y i Z
	begin
		wait(semX);
		...
		signal(sem);
		...
	end
end X;

8. задатак

Поставка

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

Решење

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

9. задатак

Поставка

Да ли је величина фајла ограничена ако је начин алокације блокова за фајлове на диску:

1) уланчани

2) индексирани

Решење

1) не

2) да

10. задатак

Поставка

Неки фајл систем користи индексирани приступ алокацији блокова за фајлове на диску, са комбинованом техником индексирања у једном, два и три нивоа, као код УНИX иноде структуре. Претпостављајући да диск има униформно средње време приступа до било ког блока на диску, да ли је време приступа до различитих делова веома великих фајлова једнако? Ако јесте, прецизно објаснити зашто јесте, а ако није, објаснити како се и зашто разликује.

Решење

Није. Време приступа за блокове ближе крају великог фајла је веће него на почетни део фајла јер се мора пролазити кроз вишеструке индексе.