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

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

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

1. задатак

Поставка

Укратко објаснити основни мотив увођења расподеле времена (тиме схаринг) у мултипрограмирање.

Решење

У зависности од тога у ком хронолошком поретку су се догодиле акције корисника, што је потпуно произвољно, корисници би добијали одзиве након различитог времена и зависили би од броја и активности других корисника, те би корисници имали осећај да сметају једни другима. Механизмом расподеле времена кориснику се одаје утисак да рачунар ради само за њега са довољно добрим и уједначеним временом одзива, иако опслужује више корисника истовремено.

2. задатак

Поставка

На асемблеру неког замишљеног РИСЦ процесора са ЛОАД/СТОРЕ архитектуром написати програм који врши учитавање блока података са улазног уређаја техником програмираног улаза коришћењем прекида. Самостално усвојити потребне детаљне претпоставке.

Решење

main:   LD R1, blockAddr
        LD R2, count
        LD R3, #0
        ST [ctrl], #00..01
wait:   CMP R3, #1
        JNZ wait
        HALT

intr:   LD R0, [data]
        ST [R1], R0
        INC R1
        DEC R2
        JNZ ret
        LD R3, #1
        ST [ctrl], #0
ret:    RTI

3. задатак

Поставка

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

Решење

  1. Експлицитним захтевом за промену контекста - диспатцх, yиелд - синхроно.
  2. Истекло је додељено ЦПУ време - тиме еxцеедед - асинхроно.
  3. Прекид - маскирајући или немаскирајући - асинхроно.
  4. Због операције на некој синхронизационој примитиви тј. семафору или догађају - синхроно.

4. задатак

Поставка

Коришћењем стандардних бројачких семафора у школском језгру, на језику C++ у потпуности реализовати класу за ограничени бафер (боундед буффер).

Решење

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

5. задатак

Поставка

Дати пример делова кода два фајла са изворним C/Ц++ кодом за које ће линкер генерисати грешку типа вишеструких симбола и недефинсаних симбола, под претпоставком да су то једина два фајла која се линкују.

Решење

// a.c
#include <stdio.h>

int a;
extern int b;

int main(void) {
    printf("%d", b);
    return 0;
}

// b.c
double a;

6. задатак

Поставка

Виртуелна меморија неког рачунара организована је странично. Величина виртуелног адресног простора је 2 МБ, адресибилна јединица је 16-битна реч, а величина странице је 128 КБ. Величина физичког адресног простора је 32 МБ. Оперативни систем учитава странице на захтев, тако што се страница учитава у први слободни оквир физичке меморије када јој се приступи. Када се креира процес, ни једна његова страница се не учитава одмах, већ тек кад јој се први пут приступи. У почетном тренутку, слободни оквири физичке меморије су оквири почев од 10х закључно са 1Фх. Неки процес генерише следећу секвенцу виртуелних адреса током свог извршавања (све вредности су хексадецималне):

30Ф00, 30Ф02, 30Ф04, 922Ф0, 922Ф2, 322Ф0, 322Ф2, 322Ф4, 522Ф0, 522Ф2, 402Ф0, 402Ф2

Приказати изглед целе табеле пресликавања страница (ПМТ) за овај процес након извршавања ове секвенце. За сваки улаз у ПМТ приказати индикатор присутности странице у физичкој меморији (0 или 1) и број оквира у физичкој меморији у који се страница пресликава, уколико је страница учитана; уколико није, приказати само овај индикатор.

Решење

  • ВАС: 2МБ = 2^21Б -> ВА: 20б
  • паге = 128КБ = 64К АУ -> 16б
  • ВА: паге(4) : оффсет(16)

7. задатак

Поставка

Навести типичне операције апстракције блоковски оријентисаног улазно/излазног уређаја са директним приступом.

Решење

Типичне операције су:

  • инт реадБлоцк(БлоцкНо блоцк, воид* буффер);
  • инт wритеБлоцк(БлоцкНо блоцк, воид* буффер);

8. задатак

Поставка

Неки процес извршава системски позив за упис у фајл који је претходно успешно отворио и систем му то не дозвољава, са поруком да том процесу није дозвољена та операција, иако је кориснику у чије име се тај процес извршава дозвољена операција уписа у тај фајл. Објасните зашто се ово догодило.

Решење

Фајл је отворен у режиму читања.

9. задатак

Поставка

Шта значи термин „пресна партиција“ (раw партитион)?

Решење

Пресна партиција је партиција која није форматизована, на њој није организован фајл систем. Може се употребљавати за посебне намене, нпр. за замену страница.

10. задатак

Поставка

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

  1. уланчана листа,
  2. континуална

Решење

  1. н
  2. 1