ОС1/Фебруар 2015
1. задатак
Поставка
Шта је био основни мотив за увођење мултипрограмирања у рачунарске системе?
Решење
Видети задатак из септембарског рока 2011.
2. задатак
Поставка
На асемблеру неког замишљеног двоадресног РИСЦ процесора са лоад/сторе архитектуром написати програм који врши пренос блока података из меморије на излазни уређај техником програмираног излаза коришћењем прекида. Самостално усвојити потребне детаљне претпоставке.
Решење
main: LD R1, blockAddr
LD R2, cnt
LD R3, #0
ST [ctrl], #0..1
wait: CMP R3, #1
JNZ wait
intr: LD R0, [R1]
ST [data], R0
INC R1
DEC R2
JNZ ret
ST R3, #1
ST [ctrl], #0
ret: RTI
3. задатак
Поставка
Коришћењем Униx системских позива fork()
и execlp()
написати програм који прима један целобројни аргумент и који, уколико се процес покрене са параметром -ц, креира још један исти такав процес, само без параметра, а у супротном се само завршава. Системски позив execlp
прима аргументе командне линије:
int execlp(char const *file, char const *arg0, ...)
Решење
int main(int argc, char* argv) {
if (argc < 2) {
return -1;
}
if (argv[2][1] == 'c') {
int pid = fork();
if (pid < 0) {
return -1;
} else if (pid == 0) {
execlp(argv[0], 0);
} else {
wait(0);
}
}
return 0;
}
4. задатак
Поставка
Написати код за међусобно искључење критичне секције коришћењем бинарних семафора.
Решење
var mutex : Semaphore := 1;
process P
begin
loop
wait(mutex);
<critical>
signal(mutex);
<non-critical>
end
end P;
5. задатак
Поставка
Објаснити зашто линкеру не представља никакав проблем приликом повезивања то што фајл а.обј увози симбол који је дефинисан у б.обј, а б.обј увози симбол који је дефинисан у а.обј. Како се ова ситуација решава?
Решење
У првом пролазу ће се направити табеле симбола, а у другом пролазу разрешити вредности тих променљивих на местима коришћења.
6. задатак
Поставка
У неком систему примењује се бест-фит алгоритам континуалне алокације меморије. Иницијално је простор величине 512КБ потпуно слободан за алокацију корисничких процеса. Потом су различити процеси задавали следеће захтеве (словна ознака означава процес који је поставио захтев, бројна ознака означава величину алоцираног простора у КБ, а минус означава гашење процеса и ослобађање његове меморије)
А128, Б32, Ц256, Д64, А-, Е16, Ф64, Б-
Одговорити на следећа питања која се односе на стање меморије након ове секвенце захтева:
- Колико је укупно слободних фрагмената?
- Колика је величина најмањег слободног фрагмента?
- Колика је величина највећег слободног фрагмента?
Решење
- 2
- 16КБ
- 96КБ
7. задатак
Поставка
Виртуелна меморија организована је странично, а адресибилна јединица је бајт. Виртуелна адреса је 32-битна, страница је величине 4КБ, дескриптор странице је 32-битни, а ПМТ је организована у два нивоа, при чему је поље за страничење првог нивоа величине 8 бита. Колики простор би укупно заузимала ПМТ неког процеса када би:
- процес користио цео свој виртуелни адресни простор?
- процес користио само две странице, прву и последњу у адр. простору?
Решење
Страница је 4КБ, тако да јој је потребно 12 бита за адресирање бајтова, односно померај. Поље за страничење првог нивоа је 8 бита, тако да је структура адресе ВА(32): паге1(8) паге2(12) оффсет(12).
- цео простор:
- прва и последња страница у виртуелном адресном простору:
8. задатак
Поставка
Уместо технике споолинг, приступ упоредних процеса штампачу у неком систему омогућује се међусобним искључењем помоћу операције резервације: сваки процес, пре него што затражи било коју операцију са штампачем, мора да га резервише, а ту резервацију отпушта тек када заврши са целим једним послом штампе. Поред евентуалног спречавања мртве блокаде, о чему још мора да води рачуна оперативни систем да се не би дешавало неограничено заузеће штампача.
Решење
Треба водити рачуна и о томе да ли је процес који тренутно користи уређај "отказао" или постао трајно суспендован без ослобађања уређаја.
9. задатак
Поставка
Извод из једног упутства за Униx фајл систем и доделу права приступа фајлу из командне линије:
То цханге тхе моде оф а филе, усе тхе цхмод цомманд. Тхе генерал форм ис цхмод X@Y филе1 филе2 ... wхере: X ис анy цомбинатион оф тхе леттерс 'у' (фор оwнер), 'г' (фор гроуп), 'о' (фор отхерс), 'а' (фор алл; тхат ис, фор 'уго'); @ ис еитхер '+' то адд пермиссионс, '-' то ремове пермиссионс, ор '=' то ассигн пермиссионс абсолутелy; анд Y ис анy цомбинатион оф 'р', 'w', 'x'.
На пример, команда chmod u=rx file
даје власнику права рx, али не и право w.
Написати команде које за дати фајл постављају права на следећи начин:
- групи и осталима одузимају права на рx, али не и на w
- свима додају право на извршавање
Решење
chmod go-rx file
chmod a+x file
10. задатак
Поставка
Неки фајл систем подржава комбиновано индексиран приступ алокацији фајлова, при чему ФЦБ садржи 256 улаза са директним индексом (садрже бројеве блокова за податке). Ако садржај фајла прерасте величину коју подржава овај индекс нултог нивоа, за блокове преко те величине постоји индекс првог нивоа са 256 улаза у ФЦБ; сваки од тих улаза садржи показивач на индекс другог нивоа у коме је по 256 улаза са показивачима на блокове са садржајем. Колики је максимални капацитет фајла у блоковима? (Одговор дати као израз.)
Решење