ОС1/Септембар 2013
1. задатак
Поставка
Шта је био основни мотив увођења мултипрограмирања у до тада пакетне рачунарске системе?
Решење
Видети први задатак са септембарског рока 2011. године.
2. задатак
Поставка
Коришћењем стандардних библиотечних функција setjmp() и longjmp(), реализовати операцију воид yиелд(јмп_буф олд, јмп_буф неw); која чува контекст нити чији је jmp_buf дат као први аргумент, одузима јој процесор и рестаурира контекст нити чији је jmp_buf дат као други аргумент, којој предаје процесор.
Решење
void yield(jmp_buf oldBuf, jmp_buf newBuf) {
if (setjmp(oldBuf) == 0) {
longjmp(newBuf, 1);
}
}
3. задатак
Поставка
Коришћењем системских позива fork() и execlp() написати програм run који, када се покрене као процес, креира процесе-децу над свим програмима који се налазе у фајловима чија су имена дата аргументима програма run (нпр. run p1.exe p2.exe p3.exe).
Решење
int main(int argc, char* argv[]) {
for (int i = 1; i < argc; i++) {
int pid = fork();
if (pid == 0) {
execlp(argv[i]);
return -1;
} else if (pid < 0) {
return -2;
}
}
return 0;
}
4. задатак
Поставка
Коришћењем стандардних бројачких семафора, написати код за иницијализацију и потребну синхронизацију између два процеса који у своје критичне секције треба да улазе строго наизменичн
Решење
var semA : Semaphore := 1;
semB : Semaphore := 0;
process A:
begin
loop
wait(semA);
<critical>
signal(semB);
<non-critical>
end
end
end A;
process B:
begin
loop
wait(semB);
<critical>
signal(semA);
<non-critical>
end
end
end B;
5. задатак
Поставка
Коју услугу оперативни систем треба да обезбеди процесима да би они користили преклопе (оверлаyс)?
Решење
Видети решење 5. задатка из јула 2013. године.
6. задатак
Поставка
Ако је учестаност поготка у ТЛБ 90%, а време приступа ТЛБ износи 20% од времена приступа физичкој меморији, колико (процентуално) је дуже ефективно време приступа виртуелној меморији у односу на приступ физичкој меморији код страничења у два нивоа?
Решење
Однос: 40%
7. задатак
Поставка
Шта је сврха технике цопy-он-wрите код страничне организације виртуелне меморије?
Решење
Служи са уштеду меморије која би се беспотребно трошила све док један од процеса не затражи промену те странице када се алоцира нова страница и копира се садржај. Уколико више процеса деле исту страницу, само ће онај који је направио измену добити нову страницу док ће остали наставити да деле исту страницу.
8. задатак
Поставка
Која је разлика између синхроног и асинхроног слања података на излазни уређај?
Решење
Синхроним слањем података процес задаје операцију и по потреби се суспендује и наставља тек када се захтевана операција заврши. Код асинхроног позива позивајући процес само задаје операцију и наставља извршавање.
9. задатак
Поставка
У неком фајл систему у системском позиву за отварање фајла процес наводи да ли ће фајл само читати или га и на било који начин мењати. У зависности од тога, тај системски позив закључава фајл са једним од две врсте кључа. Ако се фајл отвара само за читање, фајл се закључава дељеним кључем; ако се фајл отвара за измену, закључава се ексклузивним кључем. Уколико позив не може да се изврши због тога што кључ не може да се добије, позив се отказује без измена у фајл систему и враћа се грешка.
Процеси А, Б, C и D извршавају системске позиве отварања и затварања истог фајла у следећем редоследу (неки процес извршава позив затварања фајла само ако га је успешно отворио):
- А: опен(РЕАД)
- Б: опен(WРИТЕ)
- C: опен(РЕАД)
- А: цлосе
- C: цлосе
- D: опен(WРИТЕ)
Решење
- Успешно: 1, 3, 4, 5, 6
- Неуспешно: 2
10. задатак
Поставка
Шта је највећи недостатак организације фајл система помоћу ФАТ?
Решење
Веома велика осетљивост на отказе. Било какво оштећење у ФАТ узрокује штету. Могуће је уништити цео фајлсистем.