|
知识路径: > 计算机系统基础知识 > 计算机软件基础知识 > 操作系统基础知识 > 处理机管理 > 进程管理 > 进程间的通信 > 信号量机制 >
|
相关知识点:3个
|
|
|
|
信号量是一个整型变量,根据控制对象的不同被赋予不同的值。信号量分为如下两类:
|
|
|
(1)公用信号量。实现进程间的互斥,初值为1或资源的数目。
|
|
|
(2)私用信号量。实现进程间的同步,初值为0或某个正整数。
|
|
|
信号量S的物理意义:S≥0表示某资源的可用数,若S<0,则其绝对值表示阻塞队列中等待该资源的进程数。
|
|
|
对于系统中的每个进程,其工作的正确与否不仅取决于它自身的正确性,而且与它在执行中能否与其他相关进程正确地实施同步互斥有关。PV操作是实现进程同步与互斥的常用方法。P操作和V操作是低级通信原语,在执行期间不可分割。其中,P操作表示申请一个资源,V操作表示释放一个资源。
|
|
|
P操作的定义:S:=S-1。若S≥0,则执行P操作的进程继续执行;若S<0,则将该进程置为阻塞状态(因为无可用资源),并将其插入阻塞队列。
|
|
|
P操作可用如下过程表示,其中,Semaphore表示所定义的变量是信号量。
|
|
|
|
V操作定义:S:=S+1。若S>0,则执行V操作的进程继续执行;若S≤0,则从阻塞状态唤醒一个进程,并将其插入就绪队列,然后执行V操作的进程继续。
|
|
|
|
|