ОС1/Фебруар 2026
- Овај рок није решен. Помозите СИ Wики тако што ћете га решити.
Фебруар 2026. године одржан је 18.03.2025.
Модификација (20 поена)
Потребно је оеyедити да свака нит може да сачека све друге нити које је корисник експлицитно креирао. Додати функцију барриер као статичку методу у оквиру АПП АПИ-ја у оквиру класе Тхреад. Функција помоћу системског позива треба да сачека док је и све остале нити не позову. Тј. када једна нит позове ову функцију, све остале нити могу да напредују само до позива исте ове функције. Све нити настављају извршавање тек након што и последња нит позове ову функцију. Потпис тражене фунцкје дат је у наставку:
void barrier();
Гарантовано је да ће све нити у систему позвати ову функцију исти број пута.
Тест (20 поена)
Тест пример додати међу јавне тестове као ставку под редним бројем 8. Написати тест пример X нити , где је X број измећу 1 и 10 и задаје се као глобална константа у тесту. Нити се праве помоћу ЦПП АПИ-ја. Све нити се на почетку направе, па се тек онда стартују. Све нити раде исти посао. Посао који обављају је да у три итерације одраде следеће: одраде обраду, позову функцију барриер, и испишу ид нити и број текуће итерације. ид је променљива у којој се налази редни број нити. Првокреирана нит има ид 1, друга 2 итд.
Обрада у нитима треба да буде:
for (int i = 0; i < 1000 * id; i++) {
for (int j = 0; j < 10000; j++);
thread_dispatch();
}
Могуће је користити фунцкије за испит из заглавља принтинг.хпп које је дато у оквиру јавних тестова.