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

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

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

1. задатак

Поставка

Која је разлика између мултипроцесорских и дистрибуираних рачунарских система?

Решење

Видети први задатак из јулског рока 2012. године.

2. задатак

Поставка

Коришћењем операције yиелд(јмп_буф олд, јмп_буф неw) која чува контекст нити чији је jmp_buf дат као први аргумент, одузима јој процесор и рестаурира контекст нити чији је jmp_buf дат као други аргумент, којој предаје процесор, реализовати операцију Semaphore::wait() у школском језгру.

Решење

Semaphore::wait() {
    lock();
    if (--val < 0) {
        jmp_buf old = Thread::running->context;
        blocked.put(Thread::running);
        Thread::running = Scheduler::get();
        jmp_buf new = Thread::running->context;
        yield(old, new);
    }
    unlock();
}

3. задатак

Поставка

Која је разлика између (тешког) процеса и нити (тхреад)?

Решење

Тешки процес је извршавање једног програма са сопственим адресним простором док се нитима, тј. лаким процесима зове сваки ток контроле који користи тај адресни простор.

4. задатак

Поставка

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

Решење

var mutex : Semaphore := N;

process P:
    begin
        loop
            wait(mutex);
            <critical>
            signal(mutex);
            <non-critical>
        end
    end
end P;

5. задатак

Поставка

Ако током свог првог пролаза линкер у својој табели не пронађе симбол који је дефинисан у текућем фајлу (извози се), да ли ће пријавити грешку? Образложити.

Решење

Не јер ако се не налази у табели симбола значи да симбол није дефинисан и не долази до конфликта имена.

6. задатак

Поставка

Која је разлика између бест фит и wорст фит алгоритма континуалне алокације меморије?

Решење

Бест фит алгоритам има циљ да након алокације остане што мањи слободан фрагмент како би се смањила екстерна фрагментација.

Wорст фит алгоритам има циља да преостали слободан фрагмент буде што употребљивији, односно такав да се повећа шанса да се може употребити за даљу алокацију, тј. оставља највећи слободан фрагмент након алокације.

7. задатак

Поставка

У неком систему са виртуелном меморијом број странице у виртуелној адреси је величине 48 бита. Да би чување ПМТ учинио изводљивим, систем користи хасх табелу са 64К улаза за смешање ПМТ сваког процеса. Хасх функција је проста модуло функција: улаз у табелу одређује се помоћу 16 најнижих бита броја странице. У сваком улазу хасх табеле налази се 64-битна глава уланчане листе записа за алоциране странице које се пресликавају у тај улаз. Сваки запис садржи виших 32 бита броја странице, број оквира у који је та страница пресликана (32 бита, вредност 0 означава да страница не може да се преслика) и показивач на следећи запис (64 бита, вредност 0 означава крај листе). Неки процес је алоцирао 256 најнижих и 256 највиших страница свог виртуелног адресног простора. Колико простора (у бајтовима) укупно заузима ПМТ овог процеса?

Решење

Најнижих 256 ће сви стати у први улаз, тако да они заузимају (32+32+64)*256 + 64 = 32832 бита. Највиши заузимају исто толико, само што сви стају у последњи улаз. Укупно заузима 2*32832 = 65664 бита, то јест 65664/8 = 8208Б

8. задатак

Поставка

У неком систему подржан је само асинхрони излаз на излазни уређај помоћу следеће функције ИОРеqИД оутпут (ИОДевИД девицеИД, ИОРеq* реqуест); која задаје (асинхроно) излазну операцију спецификовану другим аргументом на уређају идентификованом првим аргументом. Ова функција одмах враћа контролу позиваоцу, уз идентификацију задате операције (резултат типа IOReqID је већи од 0 у случају исправно задатог захтева).

Функција воид иоWаит (ИОРеqИД); блокира позивајући процес све док операција идентификована аргументом није завршена у потпуности. Помоћу ових функција реализовати функцију која, у односу на један аргумент, може задати операцију синхроно или асинхроно, према жељи позиваоца.

Решење

IOReqID output_user(IODevID deviceID, IOReq* request, bool synchronous) {
    IOReqID id = output(deviceID, request);
    if (synchronous && id > 0) {
        wait(id);
    }
    return id;
}

9. задатак

Поставка

Шта означава скраћеница ФТП? Укратко објаснити чему служи овај протокол.

Решење

Филе Трансфер Протоцол - у размени фајлова учествују 2 рачунара. Један игра улогу сервера а други улогу клијента. На оба рачунара се извршавају програми који имплементирају овај протокол.

10. задатак

Поставка

Која метода алокације фајлова је ефикаснија за директни приступ, уланчана или индексирана и зашто?

Решење

Ефикаснија је индексирана; код уланчане алокације је ефикасан секвенцијалан приступ, али директни приступ неком блоку н подразумева приступ свим блоковима почев од првог па до њега. Једна од највецих погодности индексне алокације је управо директни приступ, јер индексна алокација подразумева постојање индексног блока у коме се налази списак бројева блокова са садржајем фајла редом, који омогућава врло ефикасан директан приступ.