编辑: yyy888555 | 2019-07-02 |
如果没有A,B最多只能M个. 进程管理习题 一座小桥(最多只能承重两个人)横跨南北两岸,任意时刻同一方向只允许一人过桥,南侧桥段和北侧桥段较窄只能通过一人,桥中央一处宽敞,允许两个人通过或歇息.试用信号量和P、V操作写出南、北两岸过桥的同步算法. 进程管理习题 load控制桥上人数,north控制北段的互斥使用,south控制南段互斥使用初始值:load=2, north=1, south=1 To 南: P(load);
P(north);
过北桥段;
到桥中间;
V(north);
P(south);
过南桥段;
到达南岸;
V(south);
V(load);
To 北: P(load);
P(south);
过南桥段;
到桥中间;
V(south);
P(north);
过北桥段;
到达北岸;
V(north);
V(load);
进程管理习题 某银行提供一个服务窗口和10个供顾客等待的座位.顾客到达银行时,若有空座位,则到取号机上领取一个号.等待叫号.取号机每次仅允许一位顾客使用.当营业员空闲时,通过叫号选取一位顾客,并为其服务.顾客和营业员的活动过程描述为:请添加必要的信号量和P、V(或wait()、signal())操作,实现上述过程的的互斥与同步.要求写出完整的过程,说明信号量的含义并赋初值. Cobegin{ process 顾客 {从取号机获得一个号码;
等待叫号;
获得服务;
} process 营业员 { while (TRUE)叫号;
为顾客服务;
coend 进程管理习题 互斥资源:取号机(一次只允许一位顾客领号),因此,设一个互斥信号量mutex;
同步问题顾客需要获得空座位等待叫号,当营业员空闲时,将选取一位顾客并为其服务.空座位的有、无影响等待顾客数量,顾客的有、无决定了营业员是否能开始服务,故分别设置信号量empty和full来实现这一同步关系;
顾客获得空座位后,需要等待叫号和被服务.这样,顾客与营业员就服务何时开始又构成了一个同步关系,定义信号量service来完成这一同步过程. 进程管理习题 semaphore mutex=1;
互斥使用取号机semaphore empty=10;
//空座位的数量semaphore full=0;
已占座位的数量semaphore service=0;
//等待叫号cobegin{ process 顾客 process 营业员 P(empty)while(TRUE) P(mutex)从取号机获得一个号;
P(full);
V(mutex)V(empty);
V(full)V(service)叫号 P(service)等待叫号 为顾客服务;
获得服务;
coend 进程管理习题 评分说明①能正确给出互斥信号量定义、含义及初值,给1分.②能正确给出3个同步信号量定义、含义及初值,给2分.③营业员进程描述正确的,给2分.④顾客进程描述中,互斥描述正确的,给1分;
同步描述正确的,给2分;
共3分.⑤其他正确解答,参照①- ④的标准给分. 进程管理习题 某系统有R
1、R2和R3共3种资源,在T0时刻P
1、P
2、P3和P4这4个进程对资源的占用和需求情况见下页表,此时系统的可用资源向量为 (2, 1, 2),问题:将系统各种资源总数和此刻各进程对资源的需求数目用向量或矩阵表示出来;
如果此时P1和P2均发出资源请求向量Request (1,0,1),为保证系统的安全性,应如何分配资源给这两个进程?说明采用策略的原因. 进程管理习题 Max Used (Allocation) R1 R2 R3 R1 R2 R3 P1
3 2
2 1
0 0 P2
6 1
3 4
1 1 P3
3 1
4 2
1 1 P4
4 2
2 0
0 2 Need=
3 2
26 1
33 1
44 2
2 1
0 04
1 12
1 10
0 2
2 2
22 0
21 0
34 2
0 - = ① 资源总量 (2,1,2)+(1,0,0)+(4,1,1)+(2,1,1)+(0,0,2)=(9,3,6) 进程管理习题 Max Used (Allocation) Need R1 R2 R3 R1 R2 R3 R1 R2 R3 P1