MONITORJI IN KROŽNI MEDPOMNILNIK

Mitja Luštrek

Imamo krožni medpomnilnik z desetimi celicami - ponazarjajo jih modri kvadrati spodaj (svetli za praznega in temni za polnega). Ko podatke vanj dodajamo (z gumbom Dodaj), se zasede celica označeno z Naslednjic dodamo, oznaka pa se premakne za eno celico naprej. Odvzemamo (z gumbom Odvzemi) na enak način iz celice Naslednjic odvzamemo. Očitno pa ne moremo dodajati, če je medpomnilnik poln, in ne odvzemati, če je prazen. Za to skrbi monitor s pogojnima spremenljivkama ni polno in ni prazno - prva mora biti resnična (zelena luč), da lahko dodajamo, druga pa, da lahko odvzemamo. Njuna vrednost se preverja z ukazom wait; če ustrezna spremenljivka ni resnična, se proces, ki želi dodajati ali odvzemati, postavi v čakalno vrsto: dodajajoči v polje pod gumbom Dodaj, kjer svojo navzočnost oznanja z napisom WAIT (ni polno), odvzemajoči pa z napisom WAIT (ni prazno) v polje pod gumbom Odvzemi. Ob uspešnem dodanju ali odvzemu (nanj se zaradi nazornosti počaka z drsnikom Premor nastavljivo dolgo, med tem pa se v kvadratu desno prelivajo barve) se vrednost pogojnih spremenljivk nastavi z ukazom signal, na katerega uporabo pri dodajanju v pomnilnik kaže napis SIGNAL (ni prazno) pod Dodaj, pri odvzemanju pa SIGNAL (ni polno) pod Odvzemi.

 

 

Kako je tale programček napisan, je moč videti tule.