ОС1/Јун 2014

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

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

1. задатак

Поставка

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

Решење

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

2. задатак

Поставка

Коришћењем стандардних библиотечних функција setjmp() и longjmp() имплементирати функцију воид yиелд(јмп_буф олд, јмп_буф неw) која врши промену контекста процесора.

Решење

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

3. задатак

Поставка

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

Решење

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. задатак

Поставка

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

Решење

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

6. задатак

Поставка

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

Решење

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

7. задатак

Поставка

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

Решење

8. задатак

Поставка

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

Решење

Користи се код спреге уређаја или токова контроле који су јако различити по брзини трансфера или јединици преноса. Уводе се 2 бафера.

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

9. задатак

Поставка

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

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

Решење

Операција 2. ће се извршити неуспешно, а остале успешно.

10. задатак

Поставка

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

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

Решење

  1. 3
  2. н