var buffer: array [0..n-1] of item; var in, out: 0..n-1 (* iniciado a 0 *) (* P *) producir nextp; while in+1 mod n = out do no-op; buffer[in] := nextp; in := (in+1) mod n; (* C *) while in = out do no-op; nextc := buffer[out]; out := (out+1) mod n; consumir nextc;Usa solamente posiciones del buffer.