ОС1/Модификације септембар 2024 — разлика између измена
Ред 16: | Ред 16: | ||
* Metoda se može pozvati proizvoljan broj puta. | * Metoda se može pozvati proizvoljan broj puta. | ||
Takođe obezebediti da svaka korisnička nit ima jedinstveni identifikator, počevši od 1. | Takođe obezebediti da svaka korisnička nit ima jedinstveni identifikator, počevši od 1. ''Nije bilo eksplicitno naglašeno kako ovo uraditi, dok god kod izvršava traženu funckionalnost u skladu sa postavkom projekta i modifikacije.'' | ||
=== Test === | === Test === |
Тренутна верзија на датум 29. септембар 2024. у 16:25
Sledeće modifikacije su se pojavile na odbrani projekta u septembru 2024.
Modifikacija za 20 bodova
Implementirati sve potrebne metode, sistemske pozive za implementaciju sinhronizacije niti uparivanje.
- C++ API:
static void Thread::pair(Thread* t1, Thread* t2)
Ova metoda uparuje niti prosleđene kao paramtere. Pretpostaviti da će svaka nit biti uparena sa tačno jednom niti.
Takođe implementirati nestatičku metodu:
- C++ API:
void Thread::sync()
koja vrši sinhronizaciju niti:
- Ako je jedna nit pozvala ovu metodu, a druga ne, tekuća nit se blokira.
- Kada druga nit pozove ovu metodu, obe niti mogu nastaviti izvršavanje.
- Metoda se može pozvati proizvoljan broj puta.
Takođe obezebediti da svaka korisnička nit ima jedinstveni identifikator, počevši od 1. Nije bilo eksplicitno naglašeno kako ovo uraditi, dok god kod izvršava traženu funckionalnost u skladu sa postavkom projekta i modifikacije.
Test
Bio je dat kostur onoga što nit treba da izvršava, a to je da se niti sinhronizuju u for petlji sa 3 iteracije. Trebalo je, po uzoru na ostale, dodati 8. test koji će imati run metode sa prilagođenim potpisom testa datim u postavci. Test je trebalo da testira samo C++ api.