OS1/Modifikacije jul 2021

Izvor: SI Wiki
< ОС1
Datum izmene: 12. jul 2021. u 21:01; autor: TopOfKeks (razgovor | doprinosi) (nisam siguran jel sve ovako)
(razl) ← Starija izmena | Trenutna verzija (razl) | Novija izmena → (razl)
Pređi na navigaciju Pređi na pretragu

Sledeće modifikacije su se pojavile na odbrani projekta u julskom roku 2021.

Osnova

  • Treba prošiti klasu IVTEntry tako da može signaluje više događaja u redosledu po prioritetima.
  • Treba izmeniti konstruktor klase Event::Event(IVTNo ivtNo, int priority) tako da prima prioritet po kom će se oslobađati (veći je prioritetniji).

20 poena

  • Napraviti program koji kreira 50 niti koje ciklično čekaju na događaju tastature (9h), pa onda simuliraju rad lokalnim semaforom ili uposlenim čekanjem.
  • Za biranje dužine čekanja koristiti funkciju rand() iz stdlib.h
  • U metodi Event::wait() događaja dodati da se pre blokiranja ispisuje BLOCKED - THREAD ID = x, gde je x ID niti.
  • Nakon oslobađanja događaja treba da se ispiše SIGNALED - THREAD ID = x.

30 poena

  • Napraviti program koji fork()om kreira 50 niti koje ciklično čekaju na događaju tastature (9h), pa onda simuliraju rad lokalnim semaforom ili uposlenim čekanjem.
  • Za biranje dužine čekanja koristiti funkciju rand() iz stdlib.h
  • U metodi Event::wait() događaja dodati da se pre blokiranja ispisuje BLOCKED - THREAD ID = x, gde je x ID niti.
  • Nakon oslobađanja događaja treba da se ispiše SIGNALED - THREAD ID = x, gde je x ID niti.