global buffer op enter(int) op remove() returns int body buffer const int n = 3 int daten [0:n-1] /* Puffer */ int anzahl = 0 int anfang = 0 int ende = 0 process worker { while (true) { in enter(item) st (anzahl < n) -> daten[ende] = item ende = (ende +1) mod n anzahl = anzahl +1 [] remove() returns item st (anzahl > 0) -> item = daten[anfang] anfang = (anfang +1) mod n anzahl = anzahl - 1 ni } } end buffer