ОС1/Модификације септембар 2024 — разлика између измена

Извор: SI Wiki
Пређи на навигацију Пређи на претрагу
 
Ред 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.

Modifikacija za 30 bodova