ОС1/Модификације септембар 2021 — разлика између измена
< ОС1
Пређи на навигацију
Пређи на претрагу
(mod za 30 poena da isto na svakoj iteraciji treba da spava od 50 do 250 ms) |
м (kategorizacija) |
||
| Ред 27: | Ред 27: | ||
** Pravi se 5 niti pomocu <code>int fork_n(int n, int* pids)</code> koje od 3 do 10 puta treba da ispišu '''<code>Thread <threadID> : iter <trenutna iteracija> / <ukupno iteracija></code>''' i pomoću sopstvenog semafora spavaju od 50ms do 250ms izmedju iteracjia. | ** Pravi se 5 niti pomocu <code>int fork_n(int n, int* pids)</code> koje od 3 do 10 puta treba da ispišu '''<code>Thread <threadID> : iter <trenutna iteracija> / <ukupno iteracija></code>''' i pomoću sopstvenog semafora spavaju od 50ms do 250ms izmedju iteracjia. | ||
** Jednom se ispisuju PID-ovi forkovanih niti. | ** Jednom se ispisuju PID-ovi forkovanih niti. | ||
[[Категорија:ОС1]] | |||
[[Категорија:Лабораторијске вежбе]] | |||
Тренутна верзија на датум 31. октобар 2021. у 20:16
Sledeće modifikacije su se pojavile na odbrani projekta u septembarskom roku 2021.
20 poena
- U klasi Thread dodati statičku metodu
void waitForAll()koja blokira pozivajuću nit dok god se sve niti koje su inicijalizovane a nisu startovane ne završe. - Napraviti sledeći test primer:
- Pravi se 10 niti Radnik
- Pravi se nit Šef i startuje se
- Po jedan radnik se startuje signalom dugmeta na tastaturi (jedan se startuje kad se dugme pristisne i još jedan se startuje pri otpuštanju dugmeta)
- Radnik treba da:
- Napiše
Radnik <threadID> started. - 5 puta napiše
Radnik <threadID>i pomoću sopstvenog semafora spava od 50ms do 1000ms izmedju iteracjia. - Napiše
Radnik <threadID> ended.
- Napiše
- Šef treba da:
- Napiše
Sef started. - Pozove metodu
void waitForAll(). - Napiše
Sef ended.
- Napiše
Pravilan ispis treba da ispiše Sef ended tek nakon završetka svih radnika.
30 poena
- U klasi Thread dodati metodu (nije bilo naglašeno da li je statička ili ne)
int fork_n(int n, int* pids)kojafork()uje nitnputa i PID-ove forkovoanih niti smešta upids(povratna vrednost isto nije bila specificirana).
- Napraviti sledeći test primer:
- Pravi se 5 niti pomocu
int fork_n(int n, int* pids)koje od 3 do 10 puta treba da ispišuThread <threadID> : iter <trenutna iteracija> / <ukupno iteracija>i pomoću sopstvenog semafora spavaju od 50ms do 250ms izmedju iteracjia. - Jednom se ispisuju PID-ovi forkovanih niti.
- Pravi se 5 niti pomocu