1965年,荷兰学者Dijkstra提出的信号量(Semaphores)机制是一种卓有成效的进程同步工具。在长期且广泛的应用中,信号量机制又得到了很大的发展,它从整型信号量经记录型信号量,进而发展为“信号量集”机制。现在,信号量机制已经被广泛地应用于单处理机和多处理机系统以及计算机网络中。
信号量S是一个整数,S大于等于零是代表可供并发进程使用的资源实体数,当S小于零时则表示正在等待使用
临界区的进程数。
(3)若S减1后小于零,则该进程被阻塞后进入与该信号相对应的队列中,然后转
进程调度。
(3)若相加结果小于或等于零,则从该信号的等待队列中唤醒一等待进程,然后再返回原进程继续执行或转
进程调度。
PV操作对于每一个进程来说,都只能进行一次,而且必须成对使用。在
PV原语执行期间不允许有中断的发生。
信号量机制分
整型信号量机制、记录型信号量机制、and型信号量机制、
信号量集。
AND型
信号量集是将进程在运行中所需要的
临界资源全部一次性分配给进程,等进程用完后再全部一次释放。
2.用d1、d2、...dn分别表示进程需要的每类
临界资源个数;