四、进程的互斥( 综合应用 )
1、 进程互斥 的含义:进程的互斥是指当有若干进程都要使用某一共享资源时,任何时刻最多只允许一个进程去使用,其他要使用该资源的进程必须等待,直到占用资源者释放了该资源。 PV操作是两个过程,由他们两个来控制一个信号S,假设S是红灯的个数。
每个进程进入临界区前都要先执行P操作。退出临界区时执行V操作。用下面的比喻很容易理解:
临界区门前有棵树(S)
用来挂红灯
进程想进CPU的门
先得上树取盏灯(调用一次P操作)
取下一个去敲门(S=S-1)
如果树上没灯取(S≤0)
树说欠你一盏灯(S为负时)
没辙只好外边排队等( W ait (S))
得灯进程续运行
运行完了要出门(调用一次V操作)
马上还回一盏灯(S=S+1)
若有进程在催债(S≤0)
放个进去事完成( R elease (S))
2、实现进程互斥的工具——PV操作。
PV操作 是由两个操作,即P操作和V操作组成。P操作和V操作是两个在信号量上进行操作的过程。假定用S表示信号量则把这两个过程记作P(S)和V(S),它们的定义如下: Procedue P(Var S: Semaphore); begin S:=S-1; if S<0 then W(S) end; {P} Procedue V(Var S: Semaphore); begin S:=S+1; if S<=0 then R(S) end; {V}
为了确保PV操作自身的正确执行,因此P(S)和V(S)操作中不可中断,这种 不可被中断的过程称为“原语 ”。
3、用PV操作管理相关临界区的一般形式
一个信号量与一组涉及共享变量的相关临界区联系起来,信号量的初值定为“1”
任何一个进程要进入临界区前先调用P操作,执行临界区的操作后,退出临界区时调用V操作。
由于信号量的初值为“1”,P操作起到了限制一次只有一个进程进入临界区的作用,其余进程欲进入临界区必须符合对临界区管理的第一个要求,即一次最多让一个进程在临界区执行。进程退出后执行V操作,若有进程在等待则释放一个进程,这样就达到了对临界区管理的第二个和第三个要求(即不能无限逗留也不能无限等待)。
4、分析进程互斥问题并用PV操作实现进程互斥。
相关推荐:2010年自考工学类“操作系统原理”复习资料汇总