ОС1/Модификације јул 2021

Извор: SI Wiki
< ОС1
Датум измене: 12. јул 2021. у 20:01; аутор: TopOfKeks (разговор | доприноси) (nisam siguran jel sve ovako)
(разл) ← Старија измена | Тренутна верзија (разл) | Новија измена → (разл)
Пређи на навигацију Пређи на претрагу

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

Основа

  • Треба прошити класу IVTEntry тако да може сигналује више догађаја у редоследу по приоритетима.
  • Треба изменити конструктор класе Event::Event(IVTNo ivtNo, int priority) тако да прима приоритет по ком ће се ослобађати (већи је приоритетнији).

20 поена

  • Направити програм који креира 50 нити које циклично чекају на догађају тастатуре (9h), па онда симулирају рад локалним семафором или упосленим чекањем.
  • За бирање дужине чекања користити функцију rand() из stdlib.h
  • У методи Event::wait() догађаја додати да се пре блокирања исписује BLOCKED - THREAD ID = x, где је x ID нити.
  • Након ослобађања догађаја треба да се испише SIGNALED - THREAD ID = x.

30 поена

  • Направити програм који fork()ом креира 50 нити које циклично чекају на догађају тастатуре (9h), па онда симулирају рад локалним семафором или упосленим чекањем.
  • За бирање дужине чекања користити функцију rand() из stdlib.h
  • У методи Event::wait() догађаја додати да се пре блокирања исписује BLOCKED - THREAD ID = x, где је x ID нити.
  • Након ослобађања догађаја треба да се испише SIGNALED - THREAD ID = x, где је x ID нити.