折叠 编辑本段 基本初境其洋愿始至衣拿缺个简介
信号量S是一个整数,S大于等于零是代显表可供并发进程使用的资源实体数,当S小于零时则表示正在等待使用临界区的进程数脚敌。
Dijkstra同时提出了对信号量操作的门呀延低判底基PV原语。
P原语操作的动作是:
(1)S减1;
(2)若S减1后仍大于或等于零,则进程继续执行;
(3)若S减1报世后小于零,则该进程被阻塞后进入与该信号相对应的队列中,然后转进程调度。
V原语操作的动作是:
(1)S加1;
(2)若相加结果大于零,则固积苦罪轻面原以扩黄一进程继续执行;
(3)若相加结果小于或等于零,则从该信号的等待队列中唤醒一等待进程,然后再返回原进程继续执行或转进程调度。
PV操作对于每一个进程来说,都只能进行一次,而且必须成对使用。在PV原语执行期间不允许有中断的发定生。
信号量机制分 整型信号量机制、记录型信号量机制、and型信号量机制、信号量集。
整型信号量是一种为巴品职盾最最简单的信号量,主要用于解决并发程序互斥访问临界资源问题。
记号信号量在整型信号量的举出上进行了改进,让不能进入临界区的进程"让权等待",即进程状态由运行转换为阻塞状态,进程进入阻塞队列中等待。