ОС1/Модификације јул 2021 — разлика између измена
< ОС1
Пређи на навигацију
Пређи на претрагу
м (detalj) |
м (→20 поена: fix) |
||
| Ред 11: | Ред 11: | ||
* За бирање дужине чекања користити функцију <code>rand()</code> из <code>stdlib.h</code> | * За бирање дужине чекања користити функцију <code>rand()</code> из <code>stdlib.h</code> | ||
* У методи <code>Event::wait()</code> догађаја додати да се пре блокирања исписује '''<code>BLOCKED - THREAD ID = x</code>''', где је x ID нити. | * У методи <code>Event::wait()</code> догађаја додати да се пре блокирања исписује '''<code>BLOCKED - THREAD ID = x</code>''', где је x ID нити. | ||
* Након ослобађања догађаја треба да се испише '''<code>SIGNALED - THREAD ID = x</code>'''. | * Након ослобађања догађаја треба да се испише '''<code>SIGNALED - THREAD ID = x</code>''', где је x ID нити. | ||
== 30 поена == | == 30 поена == | ||
* Направити програм који '''<code>fork()</code>ом''' креира 50 нити које циклично чекају на догађају тастатуре (9h), па онда симулирају рад локалним семафором или упосленим чекањем. | * Направити програм који '''<code>fork()</code>ом''' креира 50 нити које циклично чекају на догађају тастатуре (9h), па онда симулирају рад локалним семафором или упосленим чекањем. | ||
Верзија на датум 12. јул 2021. у 21:02
Следеће модификације су се појавиле на одбрани пројекта у јулском року 2021.
Основа
- Треба прошити класу
IVTEntryтако да може сигналује више догађаја у редоследу по приоритетима. - Треба изменити конструктор класе
Event::Event(IVTNo ivtNo, int priority)тако да прима приоритет по ком ће се ослобађати (већи је приоритетнији).
20 поена
- Направити програм који креира 50 нити које циклично чекају на догађају тастатуре (9h), па онда симулирају рад локалним семафором или упосленим чекањем.
- Приоритет догађаја поставити на ID нити.
- За бирање дужине чекања користити функцију
rand()изstdlib.h - У методи
Event::wait()догађаја додати да се пре блокирања исписујеBLOCKED - THREAD ID = x, где је x ID нити. - Након ослобађања догађаја треба да се испише
SIGNALED - THREAD ID = x, где је x ID нити.
30 поена
- Направити програм који
fork()ом креира 50 нити које циклично чекају на догађају тастатуре (9h), па онда симулирају рад локалним семафором или упосленим чекањем. - Приоритет догађаја поставити на ID нити.
- За бирање дужине чекања користити функцију
rand()изstdlib.h - У методи
Event::wait()догађаја додати да се пре блокирања исписујеBLOCKED - THREAD ID = x, где је x ID нити. - Након ослобађања догађаја треба да се испише
SIGNALED - THREAD ID = x, где је x ID нити.