Producer States

Consumer States

Simulation

01234567inout

Operation Log

Process States

Producer: idle → wait(empty) → wait(mutex) → add_item → signal(mutex) → signal(full)

Consumer: idle → wait(full) → wait(mutex) → remove_item → signal(mutex) → signal(empty)

Current State

Producer: idle

Consumer: idle

Buffer: Empty

Buffer Lock: Unlocked

Semaphore Values

mutex: 1 (Controls buffer access)

empty: 8 (Available slots)

full: 0 (Occupied slots)

Simulation Controls

Legend

Buffer Slot
Item
Locked Buffer
Producer Position (in)
Consumer Position (out)