OS1/Modifikacije septembar 2024

Izvor: SI Wiki
Pređi na navigaciju Pređi na pretragu

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.

Modifikacija za 30 bodova