V(mutex) // 请求互斥访问设备处
P(empty) // 若座位号发放器已无空闲座位,等待
索取座位号并占用座位
V(full) // 座位占用计数器加1
P(mutex) // 释放对设备处的互斥访问
就餐期间
V(mutex) // 请求互斥访问设备处
P(full) // 等待座位号注销
注销座位号并释放座位
V(empty) // 座位占用计数器减1
P(mutex) // 释放对设备处的互斥访问
mutex 确保在同一时刻只有一个顾客能够访问设备处,保证了索取和注销座位号的互斥性。
empty 控制了座位号发放器的可供性,当没有空闲座位时,顾客需要等待。
full 控制了座位号的可注销性,只有在有占用座位时,才能进行注销操作。