ОС1/Модификације септембар 2021

Извор: SI Wiki
< ОС1
Датум измене: 29. септембар 2021. у 19:53; аутор: Renatus (разговор | доприноси) (os1 septembar` https://cdn.discordapp.com/attachments/640937104712663047/892830623339790336/thumb_4451-0-5160.png d)
(разл) ← Старија измена | Тренутна верзија (разл) | Новија измена → (разл)
Пређи на навигацију Пређи на претрагу

Следеће модификације су се појавиле на одбрани пројекта у септембарском року 2021.

20 поена

  • У класи Тхреад додати статичку методу void waitForAll() која блокира позивајућу нит док год се све нити које су иницијализоване а нису стартоване не заврше.
  • Направити следећи тест пример:
    • Прави се 10 нити Радник
    • Прави се нит Шеф и стартује се
    • По један радник се стартује сигналом дугмета на тастатури (један се стартује кад се дугме пристисне и још један се стартује при отпуштању дугмета)
  • Радник треба да:
    • Напише Radnik <threadID> started.
    • 5 пута напише Radnik <threadID> и помоћу сопственог семафора спава од 50мс до 1000мс измедју итерацјиа.
    • Напише Radnik <threadID> ended.
  • Шеф треба да:
    • Напише Sef started.
    • Позове методу void waitForAll().
    • Напише Sef ended.

Правилан испис треба да испише Sef ended тек након завршетка свих радника.

30 поена

  • У класи Тхреад додати методу (није било наглашено да ли је статичка или не) int fork_n(int n, int* pids) која fork()ује нит n пута и ПИД-ове форковоаних нити смешта у pids (повратна вредност исто није била специфицирана).
  • Направити следећи тест пример:
    • Прави се 5 нити помоцу int fork_n(int n, int* pids) које од 3 до 10 пута треба да испишу Thread <threadID> : iter <trenutna iteracija> / <ukupno iteracija>/
    • Једном се исписују ПИД-ови форкованих нити.