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

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

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

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;

5. задатак

Поставка

float base = 2.0; 
float log(float); 
float ln(float);
float log(float x) {
  return ln(x)/ln(base); 
}
  1. Колико неразрешених адресних поља инструкција преводилац оставља у овом фајлу?
  2. Које симболе извози овај фајл?
  3. Које симболе увози овај фајл?

Решење

  1. Преводилац оставља 2 неразрешена поља, јер се два пута позива функција лн, па ће се у асемблерском коду два пута наћи ред цалл ?.
  2. Извозе се лог и басе.
  3. Увози се лн.

6. задатак

Поставка

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

Решење

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

7. задатак

Поставка

Виртуелна меморија организована је странично, а адресибилна јединица је бајт. Виртуелна адреса је 32-битна, страница је величине 4КБ, дескриптор странице је 32-битни, а ПМТ је организована у два нивоа, при чему је поље за страничење првог нивоа величине 8 бита. У које улазе ПМТ првог нивоа и другог нивоа се пресликава страница број 5423Дх?

Решење

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


8. задатак

Поставка

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

Решење

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

9. задатак

Поставка

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

  1. уланчани
  2. индексирани

Решење

  1. не
  2. да

10. задатак

Поставка

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

Решење

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