30 likes | 169 Views
P(e). < muuttujien (nr, nw, dr, dw) testaus ja asetus>. Kriittinen alue. Lukija: Kirjoittaja:. nw = 0?. nw = 0 ja n r= 0?. ei ole!. on!!. ei ole!. V(e). V(e). Signalnext r:. Signalnext w:. dr>0. ei. on. Odottavat kirjoittajat. Odottavat lukijat. V(e). V(e). V(r).
E N D
P(e) <muuttujien (nr, nw, dr, dw) testaus ja asetus> Kriittinen alue Lukija: Kirjoittaja: nw = 0? nw = 0 ja n r= 0? ei ole! on!! ei ole! V(e) V(e) Signalnext r: Signalnext w: dr>0 ei on Odottavat kirjoittajat Odottavat lukijat V(e) V(e) V(r) P(r) P(w) DB lue/kirjoita Kirjoittaja kirjoittamassa tietokantaan
P(e) <muuttujien (nr, nw, dr, dw) testaus ja asetus> Kriittinen alue Lukija: Kirjoittaja: nw = 0? nw = 0 ja n r= 0? ei ole! on!! ei ole! V(e) V(e) Signalnext r: Signalnext w: dr>0 ei on Odottavat kirjoittajat Odottavat lukijat V(e) V(e) V(r) P(r) P(w) DB lue/kirjoita Lukija lukemassa tietokantaa.
DB lue/kirjoita nr == 0 ja dw >0 ? on ei V(w) V(e) P(e) Kriittinen alue Lukija: nr = nr-1 Signal r: Odottavat lukijat Odottavat kirjoittajat P(r) P(w) Viimeinen lukija herättää odottavan kirjoittajan.