ОС1/Јул 2022

Извор: SI Wiki
< ОС1
Датум измене: 4. јул 2022. у 11:53; аутор: Fedja (разговор | доприноси) (dodat jul 2022)
(разл) ← Старија измена | Тренутна верзија (разл) | Новија измена → (разл)
Пређи на навигацију Пређи на претрагу

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

1. задатак

Поставка

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

Функција Опис Садржи сист. позив
void* memcpy(void* dest, const void* src, size_t count)
Копира низ бајтова у меморији са једног места на друго.
void exit (int status)
Завршава извршавање програма.
int getchar(void)
Учитава знак са стандардног улаза.
char* strchr(const char *str, int c)
Тражи прву појаву знака у датом низу знакова.

Решење

Одозго на доле: Не, Да, Да, Не.

2. задатак

Поставка

Прецизно објаснити зашто класичан линкер свој пасао обавља у два пролаза (а не може само у једном). Образложење илустровати примером.

Решење

Видети исти овај задатак из јула 2017.

3. задатак

Поставка

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

Решење

Видети исти овај задатак из августа 2020.

4. задатак

Поставка

Шта је ДЛЛ и чему служи? Објаснити основни мотив за постојање овог концепта.

Решење

Видети исти овај задатак из јуна 2019.

5. задатак

Поставка

Шта ради процесорска инструкција типа тест-анд-сет и за шта се она тачно користи у оперативним системима?

Решење

Видети исти овај задатак из јула 2017.

6. задатак

Поставка

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

Решење

Овај задатак није решен. Помозите СИ Wики тако што ћете га решити.

7. задатак

Поставка

Шта је проблем следеће имплементације критичне секције упосленим чекањем?

shared var flag1 = false, flag2 = false;
process P1
begin
    loop
        flag1 := true;
        while flag2 = true do null end;
        <critical section>
        flag1 := false;
        <non-critical section>
    end
end P1;
process P2
begin
    loop
        flag2 := true;
        while flag1 = true do null end;
        <critical section>
        flag2 := false;
        <non-critical section>
    end
end P1;

Решење

Проблем је у случају да оба процеса поставе своју заставу на труе, јер ће онда непрестано упослено чекати (ливелоцк).

8. задатак

Поставка

<сyнтаxхигхлигхт="ц"> инт фд = опен("./мyдоц.тxт", О_ЦРЕАТ|О_ТРУНЦ|О_WРОНЛY); иф (фд<0) хандле_еррор("Цаннот опен дата филе.");

инт пид = форк (); иф (пид==0) {

   dup2(fd,1);
     execlp("./myprog.a", NULL);
     handle_error("Cannot open exe file.");

} </сyнтаxхигхлигхт>

Решење

Овај задатак није решен. Помозите СИ Wики тако што ћете га решити.

9. задатак

Поставка

Прецизно објаснити шта ради следећа команда: <сyнтаxхигхлигхт="басх">цхмод г=x, у+рwx, о-wx .././фрд</сyнтаxхигхлигхт>

Решење

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

10. задатак

Поставка

Прецизно објаснити шта је и зашто највећи недостатак уланчане организације фајла код произвољног приступа фајлу. Зашто тај проблем не постоји код ФАТ организације?

Решење

Овај задатак није решен. Помозите СИ Wики тако што ћете га решити.