ОС1/Јун 2020

Извор: SI Wiki
< ОС1
Датум измене: 6. јул 2021. у 22:42; аутор: KockaAdmiralac (разговор | доприноси) (Moja rešenja junskog roka 2020)
(разл) ← Старија измена | Тренутна верзија (разл) | Новија измена → (разл)
Пређи на навигацију Пређи на претрагу

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

1. задатак

Поставка

Ако се над следећим програмом креира један процес, колико ће укупно процеса бити креирано (укључујући и тај један почетни) у функцији Н, под претпоставком да су сви системски позиви успели?

const unsigned N = ...;
void f (unsigned n) {
    if (n==0) return;
    if (n%2) f(n-1);
    else if (!fork()) f(n-1);
}
void main { f(N); }

Решење

Ова функција зове саму себе уколико је аргумент непаран број, а прави нови процес (а тренутни се завршава) ако је паран. Овај процес се наставља све док аргумент не достигне 0, а аргумент се смањује сваког позива за 1. То значи да ће сваког, осим првог, непарног позива бити направљен нови процес, па се укупан број направљених процеса може израчунати као .

2. задатак

Поставка

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

shared var flag1, flag2 : boolean = false;
process P1
begin
    loop
        while flag2 = true do null end;
        flag1 := true;
        <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 P2;

Решење

Може да се деси следећа ситуација:

  1. П1 уради проверу за flag2, види да је false, прође проверу и промени се контекст
  2. П2 постави flag2 на true очекујући како је закључао секцију од П1, уради проверу за flag1, види да је false, прође проверу, уђе у критичну секцију и промени се контекст док је у критичној секцији
  3. П1 постави flag1 на true (али са закашњењем, јер је П2 већ ушао у критичну секцију) и уђе у критичну секцију
  4. Сада су оба процеса у критичној секцији

3. задатак

Поставка

Шта је основна разлика између технике динамичког учитавања и технике преклопа (оверлаyс)?

Решење

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

4. задатак

Поставка

Виртуелни адресни простор је величине 1МБ и организован је странично, адресибилна јединица је бајт, а величина странице је 256Б. Неки процес је алоцирао два логичка сегмента, оба су величине по 16 страница, један заузима најниже, а други највише адресе у адресном простуру. Странице се учитавају на захтев, а тренутно није учитана ниједна страница овог процеса. Посматрају се три дате виртуелне адресе независно (свака за себе као да се изврши сама у описаном стрању); хардвер је приликом пресликавања адресе генерисао изузетак због немогућности пресликавања (паге фаулт). Навести како ће оперативни систем обрадити сваки од ових изузетака.

Виртуелна адреса (хеx) Начин обраде
004CA
FF745
F0745

Решење

Виртуелна адреса има 20 бита, од којих је виших 12 за адресирање странице а нижих 8 за оффсет. Заузете странице су онда од 000 до 00F и од FF0 до FFF.

Виртуелна адреса (хеx) Начин обраде
004CA Учитаће страницу 004 нижег логичког сегмента.
FF745 Учитаће страницу FF7 вишег логичког сегмента.
F0745 Генерисаће грешку у приступу меморији јер страница F07 није алоцирана.

5. задатак

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

6. задатак

Поставка

Дат је резултат команде лс за неки директоријум на неком систему налик систему Униx. Корисник Jane који припада групи staff извршава процес који отвара фајл WideTable.pdf за упис. Да ли ће тај процес моћи да отвори овај фајл?

$ ls -l
-rw-r--rw- 1 JohnDoe staff 549387 Jul 8 2019 WideTable.pdf

Решење

Неће, јер група корисника Jane нема приступ фајлу.

7. задатак

Поставка

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

Решење

За мањи фајл се употребљава мањи кластер а за већи фајл већи кластер па је мања интерна фрагментација.