Readers?Writers Problem 3
nech nq je pocet procesov cakajúcich na zápis
Úloha: modifikovat program user tak, aby boli zachované predchádzajúce invarianty a naviac
invariant nq > 0 ? nw = 1 (5)
jednoduchá reštriktívna stratégia: zabránit cítaniu, ak niekto caká na zápis; má však zlozitú distribuovanú implementáciu, musel by totiz poslat poziadavku na zápis všetkým cakatelom
menej prísna stratégia: ak nq ? 0, tak sa niekedy (eventually) zabráni cítaniu (started read)
pouzijeme novú premennú b: boolean
1. b ? niekto caká na zápis
2. ak niekto chce písat, tak zacne alebo b bude platit
3. ak b platí, tak b ostáva platné, az kým sa napokon raz zacne zapisovat
4. ak b platí, nemozno cítat
v nasledujúcom programe nie sú uvedené priradenia zvyšujúce nq, kedze tieto sa nemodifikujú