ОС1/Јун 2017

Извор: SI Wiki
< ОС1
Датум измене: 19. јул 2022. у 20:52; аутор: KockaAdmiralac (разговор | доприноси) (Formatiranje; ispravljen 7. zadatak jer je pri određivanju fizičke adrese bila korišćena veličina virtuelnog umesto fizičkog segmenta)
Пређи на навигацију Пређи на претрагу

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

1. задатак

Поставка

Шта је мултипрограмирање, а шта мултипроцесирање?

Решење

Видети задатак из јануарског рока 2014.

2. задатак

Поставка

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

Решење

Видети задатак из фебруарског рока 2014.

3. задатак

Поставка

Коришћењем системског позива цреате_тхреад(воид(*ф)(воид*),воид* п) који креира нит која извршава дату функцију f са датим аргументом p, на језику C написати програм који у н упоредних нити израчунава квадрат сваког елемента неког целобројног низа (а[и]*=а[и]) величине n*k, тако што свака нит обрађује к елеманата (једну партицију низа).

Решење

int n = ...;
int k = ...;
int a[n * k];

void square(void* p) {
    int part = *(int*)(p);
    free(part);
    part *= k;
    for (int i = 0; i < k; i++) {
        a[part + i] *= a[part + i];
    }
}

void main() {
    for (int i = 0; i < n; i++) {
        int* context = malloc(sizeof(int));
        *context = i;
        create_thread(square, context);
    }
}

4. задатак

Поставка

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

Решење

Видети задатак из октобарског рока 2011.

5. задатак

Поставка

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

Решење

Линкер пријављује грешку о недефинисаном симболу main. Када се повезује C/Ц++ програм, листа обј фајлова мора да садржи и обавезно генерише модул који позива функцију main, па је зато и реферише као спољни симбол ког увози, што доводи до грешке ако га нема.

6. задатак

Поставка

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

Решење

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

7. задатак

Поставка

Виртуелни адресни простор је величине 1ГБ, организован је сегментно, са максималном величином сегмента од 4КБ, адресибилна јединица је бајт. Сви сегменти неког процеса су стварне величине од по 2КБ и у физичку меморију смештени су одмах један иза другог, при чему сегмент број 0 почиње од физичке адресе Ф000х. Приказати логичку структуру виртуелне адресе и израчунати у коју физичку адресу се пресликава виртуелна адреса 2564х.

Решење

  • Виртуелни адресни простор је .
  • Сегмент од 4КБ, односно , значи да ће део за померај заузети 12 бита, тако да структура изгледа ВА(30): сегмент(18) оффсет(12).
  • Виртуелна адреса 2564х означава адресу са сегментом 2 и померајем 564х. Ако на Ф000х додамо још 2 пута величину физичког сегмента, што је 2КБ, добијамо физичку адресу 10564х.

8. задатак

Поставка

Објаснити како се знаковно оријентисани секвенцијални улазни уређај може учинити (виртуелно) истим таквим, али са директним приступом?

Решење

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

9. задатак

Поставка

Ако је текући директоријум неког процеса /a/b/c, која је апсолутна стаза до фајла кога овај процес отвара задајући следећу стазу: ../../d/e/../f.txt?

Решење

/a/d/f.txt

10. задатак

Поставка

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

Решење

Да би време приступа блоковима било што краће.