作业三(进程管理) - 图文(3)

2020-04-15 05:25

司机的活动 P1:do { 启动车辆; 正常行驶; 到站停车; } while(1) 前门售票员的活动 P2:do { 关前门; 售票; 开前门; } while(1) 后门售票员的活动 P3:do { 关后门; 售票; 开后门; } while(1)

为了安全起见,显然要求 : (1)关前后车门后方能启动车辆; (2)到站停车后方能开车门。试用信号灯与 PV 操作实现司机与售票员之间的同步问题。

这个没有具体的答案。

5.假定系统有三个并发进程read, move和print共享缓冲器B1和B2。进程read负责从输入设备上读信息,每读出一个记录后把它存放到缓冲器B1中。进程move从缓冲器B1中取出一记录,加工后存入缓冲器B2。进程print将B2中的记录取出打印输出。缓冲器B1和B2每次只能存放一个记录。要求三个进程协调完成任务,使打印出来的与读入的记录的个数,次序完全一样。请用PV操作,写出它们的并发程序代码。

empty1表示缓冲区B1是否为空full1表示缓冲区B1是否未满 empty2表示缓冲区B2是否为空full2表示缓冲区B2是否未满 int empty 1=1 full1=0 empty2=1 full2=0 parbegin read

{p(empty1) ; 读入B1 V(full1) } MOVE {

p(full1);取出 V(empty1);释放B1 P(empty2);放入B2 V(full2); } PTINENT {

P(full2);取出打印 V(empty2);释放B2

11

} parend

6.设有A、B、C三组进程, 它们互斥地使用某一独占型资源R, 使用前申请, 使用后释放. 资源分配原则如下:

(1) 当只有一组申请进程时, 该组申请进程依次获得R;

(2) 当有两组申请进程时, 各组申请进程交替获得R, 组内申请进程交替获得R; (3) 当有三组申请进程时, 各组申请进程轮流获得R, 组内申请进程交替获得R. 试用信号灯和PV操作分别给出各组进程的申请活动程序段和释放活动程序段。 解:

int free=1;//设备状态标志 semaphore mutex=1; semaphore qa=qb=qc=0; //各组等待队列

int counta=countb=countc=0;//等待队列长度 A组申

请: P(mutex); if(free==1){ free=0; V(mutex); } else{ counta++; V(mutex); P(qa); } A组释

放: P(mutex); if(countb>0){ countb--; V(qb); }else{ if(countc>0){ countc--; V(qc); }else{ if(counta>0){

counta-- V(qa); }else{ free=1; } } } }

7.设自行车生产线上有一只箱子, 其中有N个位置(N≥3), 每个位置可存放一个车架或一个车轮; 又设有三个工人, 其活动分别为:

工人1活动: 工人2活动: 工人3活动: do { do { do { 加工一个车架; 加工一个车轮; 箱中取一车架; 车架放入箱中; 车轮放入箱中; 箱中取二车轮; }while(1) }while(1) 组装为一台车;

}while(1)

试分别用信号灯与PV操作实现三个工人的合作(要求解中不含死锁)。 为防止死锁的发生,箱中车架的数量不可超过N-2,车轮的数量不可超过N-1,这些限制可以用两个信号灯来表达。 semaphore s1=N-2; semaphore s2=N-1;

如此,可以给出不含死锁的完整解法如下:

工人1活动:

12

do {

加工一个车架; P(s1); P(empty); 车架放入箱中; V(frame); }while(1) 工人2活动: do {

加工一个车轮; P(s2); P(empty); 车轮放入箱中; V(wheel); }while(1) 工人3活动: do { P(frame); 箱中取一车架; V(empty); V(s1); P(wheel); P(wheel); 箱中取二车轮; V(empty); V(empty); V(s2); V(s2); 组装为一台车; }while(1)

8.进程及状态转化如下图,试回答下列问题: (1)说明引起每种状态转化的原因。

(2)下述情况能否发生?若能发生,试说明是在什么情况下发生的: a. 由于状态转化为2,而引起状态转化为1;

运行态 b. 由于状态转化为3,而引起状态转化为1; c. 由于状态转化为3,而引起状态转化为2; 2

13

1 4 3 就绪态 等待态 d. 由于状态转化为3,而引起状态转化为4; e. 由于状态转化为4,而引起状态转化为1。

这个也没有搜索到答案

9.某系统有P0~P4共5个进程及A,B,C,D四类资源,在T0时刻资源的分配情况如下表所示:

Max Allocation Available 进程 A B C D A B C D A B C D P0 P1 P2 P3 P4 0 0 4 4 2 7 5 0 3 6 10 10 0 9 8 4 1 6 6 10 0 0 3 2 1 0 0 0 1 3 5 4 0 3 3 2 1 0 1 4 1 6 2 2 试问:(1)此状态是否为安全状态,如果安全, 给出安全序列。

(2)在此基础上,P0 申请(0,0,2,2)能否分配?为什么? P2 申请(1,2,2,2)能否分配?为什么? P3 申请(0,3,0,0)能否分配?为什么?

这个,也没有答案,(数值变化很大,却少了D,只有ABC,而且,最后的问

题,也都不一样,且,中间的图片,也是不同的,所以,没有粘贴。)

10.在银行家算法中,若出现如下资源分配情况:

Allocation Need Available A B C D A B C D A B C D P0: 0 0 3 2 0 0 1 2 1 6 2 3 P1: 1 0 0 0 1 7 5 0 P2: 1 3 5 4 2 3 5 6 P3: 0 3 3 2 0 6 5 2 P4: 0 0 1 4 0 6 5 6

试问:(1)当前状态是否安全?

14

最后一个数值不对,题目是1623,这上面是1622

(2)如果进程P2提出安全请求Request[2]=(1,2,2,2),系统能否将资源分配给它?说

明原因。

15


作业三(进程管理) - 图文(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:大学物理I(1)A李学22民

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: