Neka proizvođači i potrošači
komuniciraju preko ograničenog spremnika kapaciteta jedne poruka veličine jedan
znak.
Proizvođači proizvode poruke, svakoj poruci dodaju oznaku (tip poruke) prema
kojoj nasumično određuju kojem potrošaču je poruka namijenjena te ju šalju u red
poruka.
Potrošači čitaju samo poruke koje su namijenjene njima.
Sinkronizirati 2 procesa proizvođača i 3 procesa potrošača koristeći za međusobno isključivanje:
- raspodijeljeni centralizirani protokol gdje je jedan od procesa
proizvođača
centralni čvor (rješavaju studenti čija je zadnja
znamenka JMBAG parna) ili
- protokol s putujućom značkom (rješavaju studenti čija je zadnja
znamenka JMBAG neparna).
Svi procesi ispisuju poruku koju šalju i
poruku koju primaju. Poruka koja se stavlja u red poruka je veličine jedan znak.
Proces proizvođač ispisuje osim slučajno generirane poruke i kome je poruka
namijenjena.
Poruke proizvoljne duljine proizvođači mogu generirati nasumično ili se
one zadaju iz komandne linije prilikom pokretanja programa ili program
proizvođač čeka da korisnik unese poruku ili iz datoteke i sl. Ako se zadana
poruka sastoji od više znakova (npr. "Danas je lijep dan"), šalje se u red
poruka redom znak po znak uvijek istom potrošaču. Kako bi potrošač znao da je
primio cijelu poruku, na kraju poruke treba dodati oznaku za kraj poruke npr. 0.
Potrošači ispisuju svaku poruku koju prime (znak po znak, pa i oznaku za kraj
poruke), a kada prime oznaku za kraj poruke, ispisuju cijelu poruku, tj. niz
primljenih znakova.
Sve što u zadatku nije zadano, riješiti na proizvoljan način.