ОС1/Модификације септембар 2024 — разлика између измена
< ОС1
Пређи на навигацију
Пређи на претрагу
| Ред 11: | Ред 11: | ||
* C++ API: <code>void Thread::sync()</code> | * C++ API: <code>void Thread::sync()</code> | ||
koja vrši sinhronizaciju niti: | 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. | Takođe obezebediti da svaka korisnička nit ima jedinstveni identifikator, počevši od 1. | ||
Верзија на датум 29. септембар 2024. у 17:24
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.
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.