ОС1/Јун 2024

Извор: SI Wiki
Пређи на навигацију Пређи на претрагу

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

1. задатак

Поставка

Написати Униx командну линију која покреће процесе над системским програмима cat и less, тако да први процес знакове са свог стандардног улаза добија из фајла text, а знакове свог стандардног излаза прослеђује на станадардни улаз другог процеса. Фајл text се налази у поддиректоријуму docs родитељског директоријума текућег директоријума интерпретера командне линије.

Решење

cat < ../docs/text | less

2. задатак

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

Поставка

На асемблеру 32-битног процесора пицоРИСЦ написати наредбу тела дате функције f која у регистар r1 учитава вредност аргумента z. Употребити симболичку константу, а њену вредност претходно дефинисати директивом def. Аргументи се на стек смештају здесна налево, стек расте ка нижим адресама, СП указује на последњу попуњену локацију, повратна адреса је 32-битна и само она се, осим аргумената, ставља на стек при позиву потпрограма, адресиблина јединица је бајт, а тип int је 32-битни. void f (int x, int y, int z);

Решење

3. задатак

Поставка

а) Шта је екстерна фрагментација? б) Да ли се она јавља код континуалне организације меморије, а да ли се јавља код сегментно-страничне организације меморије? ц) Навести само назив технике којом се решава екстерна фрагментација без промене начина организације меморије.

Решење

  1. Екстерна фрагментација је ситуација у којој је слободна меморија издељена међу меморијом алоцираном за процесе. Фрагментација је у том случају екстерна јер се налази ван простора алоцираног за процесе. При екстерној фрагментацији може доћи до ситуације да у систему има довољно слободне меморије, али да се неко парче због своје величине не може алоцирати у континуитету.
  2. Екстерна фрагментација се јавља код континуалне организације меморије, али не и код сегментно-страничне.
  3. компакција

4. задатак

Поставка

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

Решење

  1. копирање на упис (енгл. цопy-он-wрите)
  2. Потребно је да процесор подржава виртуелизацију меморије, то јест да има ММУ, као и да десктиптори страница имају битове за дозволу уписа, како би могло да дође до одређеног изузетка када би се странице ископирале.

5. задатак

Поставка

Написати део C кода којим текући Униx процес чека да му се заврши процес дете са пид датим у променљивој cpid, а повратни статус тог процеса детета уписује у променљиву stat.

Решење

...
waitpid(cpid, &stat);
...

6. задатак

Поставка

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

Решење

  1. Спољашњи хардверски прекиди.
  2. Тајмери.

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 P2;

Решење

Проблем датог решења је могићи ливелоцк. Ако би један процес изгубио процесор након своје flagx := true линије, дошло би до ливелоцка-а.

8. задатак

Поставка

Прецизно објаснити шта ради следећи фрагмент програма:

int fd = open("./log",O_CREAT|O_TRUNC|O_WRONLY);
if (fd<0) handle_error("Cannot open log file.");
int pid = fork ();
if (pid==0) {
    dup2(fd,2);
    execlp("./myprog.a",NULL);
    handle_error("Cannot open exe file.");
}

Решење

Процес отвара фајл log за уписивање и празни га. Уколико не постоји, биће направљен. Затим прави дете процес који преусмерава свој излаз за грешке на дати фајл, и на крају покреће програм myprog.a. Уколико покретање програма не буде успешно, исписаће поруку о грешци.

Укратко: Покреће процес-дете над myprog.a, чији ће се излаз за грешке уписати у фајл log.

9. задатак

Поставка

Како се зове једноставан и један од најстаријих стандардних протокола за пренос фајлова између удаљених рачунара по принципу клијент-сервер (дати пун назив и акроним)?

Решење

ФТП, Филе Трансфер Протоцол.

10. задатак

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

Поставка

Шта представља структура под називом дентрy цацхе у имплементацији фајл система и чему служи? Навести кратак пример употребе те структуре.

Решење