OС1/Фебруар 2026

Извор: SI Wiki
Пређи на навигацију Пређи на претрагу
Овај рок није решен. Помозите SI Wiki тако што ћете га решити.

Februar 2026. godine održan je 18.03.2025.

Modifikacija (20 poena)

Potrebno je oeyediti da svaka nit može da sačeka sve druge niti koje je korisnik eksplicitno kreirao. Dodati funkciju barrier kao statičku metodu u okviru APP API-ja u okviru klase Thread. Funkcija pomoću sistemskog poziva treba da sačeka dok je i sve ostale niti ne pozovu. Tj. kada jedna nit pozove ovu funkciju, sve ostale niti mogu da napreduju samo do poziva iste ove funkcije. Sve niti nastavljaju izvršavanje tek nakon što i poslednja nit pozove ovu funkciju. Potpis tražene funckje dat je u nastavku:

void barrier();

Garantovano je da će sve niti u sistemu pozvati ovu funkciju isti broj puta.

Test (20 poena)

Test primer dodati među javne testove kao stavku pod rednim brojem 8. Napisati test primer X niti , gde je X broj izmeću 1 i 10 i zadaje se kao globalna konstanta u testu. Niti se prave pomoću CPP API-ja. Sve niti se na početku naprave, pa se tek onda startuju. Sve niti rade isti posao. Posao koji obavljaju je da u tri iteracije odrade sledeće: odrade obradu, pozovu funkciju barrier, i ispišu id niti i broj tekuće iteracije. id je promenljiva u kojoj se nalazi redni broj niti. Prvokreirana nit ima id 1, druga 2 itd.

Obrada u nitima treba da bude:

for (int i = 0; i < 1000 * id; i++) {
   for (int j = 0; j < 10000; j++);
   thread_dispatch();
}

Moguće je koristiti funckije za ispit iz zaglavlja printing.hpp koje je dato u okviru javnih testova.