P操作和V操作可表示成如下两个过程: Procedure P(Var S:Semaphore); begin S:=S-1; if S<0 then W(S) end;{P} Procedure V(Var S:Semaphore); beam S:=S+1 if S<=0 then R(S) end ;{V}
其中W(S)表示将调用过程的进程置成等待状态;R(S)表示释放一个等待信号量S的进程。信号量的值应在初始化时确定。
15. 对若干并发进程共享某一变量的相关临界区的管理有三点要求:
(1)一次至多一个进程能够进入临界区,当有进程处于临界区时,其它要进入临界区的进程必须等待。
(2)处于临界区中的进程必须在有限时间内退出。
(3)当有进程退出临界区时,应选择一个等待进入临界区的进程使其进入临界区。
18. 1)若干同学去图书馆借书 进程互斥
2)两队进行篮球比赛 进程互斥
3)流水线生产中的各道工序 进程同步
4)商品生产和社会消费 进程同步
19.通信方式为消息传递。
三.应用题
1.进程 Allocation Need Availabe Avelable+ Allocation No
A B C D A B C D A B C D A B C D
P0 0 0 3 2 0 0 1 2 1 6 2 2 1 6 5 4 1
P1 1 0 0 0 1 7 5 0 1 9 8 6 2 9 8 6 3
P2 1 3 5 4 2 3 5 6 2 9 8 6 3 12 13 10 4
P3 0 3 3 2 0 6 5 2 1 6 5 4 1 9 8 6 2
P4 0 0 1 4 0 6 5 6 3 12 13 10 3 12 14 14 5
可以找到一个安全序列{P0、P3、P1、P2、P4},系统是安全的。
进程P2此时提出资源申请(1,2,2,2), 如系统实施此次分配使系统可用资源减到(0,4,0,0),再也无法满足各进程对资源的需求,系统进入一个不安全状态,系统不能将资源分配给进程P2。
进程 Allocation Need Availabe Avelable+ Allocation No
A B C D A B C D A B C D A B C D
P0 0 0 3 2 0 0 1 2 0 4 0 0
P1 1 0 0 0 1 7 5 0
P2 2 5 7 6 1 1 3 4
P3 0 3 3 2 0 6 5 2
P4 0 0 1 4 0 6 5 6