ОС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
        SHR R1, R0
        PUSH R1
        CALL log
        POP R1
        ADD R0, #1 //zato sto se nakon poziva f-je log, povratna vrednost nalazi u registru R0
        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. Извозе се log и base.
  3. Увози се ln.

6. задатак

Поставка

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

Решење

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

7. задатак

Поставка

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

Решење

Првих 8 бита странице је улаз у ПМТ првог нивоа, а осталих 12 бита је улаз у ПМТ другог нивоа. Дакле, пресликаваће се у улаз 54 ПМТ првог нивоа и улаз 23Д ПМТ другог нивоа.

8. задатак

Поставка

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

Решење

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

9. задатак

Поставка

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

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

Решење

  1. Не
  2. Да

10. задатак

Поставка

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

Решење

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