PV操作与信号灯的处理相关,P表示通过的意思,V表示释放的意思。所谓信号灯即信号量,实际上就是用来控制进程状态的一个代表某一资源的存储单元。信号量sem是一整数,sem大于等于零时代表可供并发进程使用的资源实体数,但sem小于零时则表示正在等待使用临界区的进程数。
一般需要设置信号量的"事物"是公共资源与事件参与者,如生产消费者问题中的"缓冲区"就是公共资源,"生产者"和消费者"是事件参与者;理发师问题中一个房间的坐椅就是公共资源,理发人和理发
一般需要设置信号量的"事物"是公共资源与事件参与者,如生产消费者问题中的"缓冲区"就是公共资源,"生产者"和消费者"是事件参与者;理发师问题中一个房间的坐椅就是公共资源,理发人和理发
师就是事件参与者.
设置信号量方面的规律:
第一步:确定进程间的关系。进程间的关系有同步关系和互斥关系,则可设置公有信号量和私有信号量,判断进程间是否互斥,关键是看进程间是否共享某一公有资源.
第二步:确定信号量及其值。一般会对公用的资源数设置一个信号量即公用信号量;对各自在公共资源区存有的数量设置为私有信号量;一个公有资源与一个信号量相对应即公有信号量的数量就是资源实体数,公有信号量的值就是公用资源实体数.私有信号量的数量与并发进程的数量对应,然后赋初值.
个人知识点补充:
单缓冲区的生产者消费者问题:可用两个信号量.