ОС1/Модификације август 2023
Следеће модификације су се појавиле на одбрани пројекта у августу 2023.
Модификација за 20 бодова
Потребно је просирити услуге класе Тхреад тако да задовољава следеце услове
Додати статицку методу SetMaximumThreads(int num_of_threads) коју корисник позива на поцетку програма. Ова метода поставља ограницење на максималан број корисницнцких нити.
Након постављања максималног броја нити, слободно је могуце креирати дати број нити, након тога све новокреиране нити се блокирају. Када једна од креираних корисницких нити заврси своје изврсавање она одблокира једну од претходно блокираних нити у редоследу којем су блокиране.
Тест
Потребно је ставити максималан број нити на 3 и креирати 20 нити. Свака нит треба да исписе своје име + ИД нити цилицно 5 пута. Наког тога треба да симулира спавање семафором или бусy wаит-ом који је у линеарној корелацијаи са ИД-ом дате нити.
Модификација за 30 бодова
Додати статицку методу SetMaximumThreads(int num_of_threads, int max_time, int interval_time) коју корисник позива на поцетку програма. Ова метода поставља ограницење на максималан број корисницнцких нити.
Након позивања методе SetMaximumThreads(int num_of_threads, int max_time, int interval_time) могуце је креирати слободно креирати нум_оф_тхреадс нити. Након тога наредне нити се блокирају. Када нит заврси своје изврсавање она престаје са радом (ове нити не треба да деблокирају претходно блокиране нити). Након истека маx_тиме времена потребно је исписати Wаитинг доне: , и затим одблокирати нити једну за другом онако како се блокиране притом да се измедју 2 деблокирања цека интервал_тиме времена. После сваког деблокирања нити треба исписати Интервал тиме елапсед .
Тест
Потребно је позвати SetMaximumThreads(3 20, 10) и креирати 20 нити. Свака нит треба да исписе своје име + ИД. Након тога треба нит да позове thread_sleep(10). Ово се понавља док све нити не заврсе.