云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 第2章 进程管理练习答案

第2章 进程管理练习答案

  • 62 次阅读
  • 3 次下载
  • 2025/6/16 0:14:09

A() {

while(true) {

采集一个数据; p(empty1);

将数据存入buf1; v(full1); } } B() {

while(true) {

p(full1);

从buf1中取出数据; v(empty1); 处理数据; p(empty2);

将处理结果存入buf2; v(full2); } } C() {

while(true) {

p(full2);

从buf2中取出结果; v(empty2); 打印输出; } }

10.超市可容纳50人同时购物,入口处有篮子,每个顾客可拿一只篮子入内购物,出口处结账,并归还篮子(出入口禁止多人同时通过)

分析:(1)购物者进超市需要互斥,超市是临界资源(设信号量S=50)

(2) 入口拿篮子以及结账互斥。设mutex=1

购物者i进程: P(S); P(mutex); 从入口拿篮子 V(mutex); 选购商品; P(mutex);

9 / 13

出口结账 V(mutex); 离开超市 V(S);

以上为出入口合一的情况。若出入口分开,如何实现? 设两个互斥信号量:mutex1=1; mutex2=1

若设置一个信号量会怎样?(如果一个结账的话其他顾客无法进入超市)

11.桌上有一个只能盛得下一个水果的空盘子,爸爸放水果,儿子专吃桔子,女儿专吃苹果。 分析:

(1)设互斥信号量empty=1 (2)设同步信号量orange=0 (3) 设同步信号量apple=0 爸爸:(生产者) P(empty);

将水果放入盘中;

若放入的是桔子,则V(orange) 否则V(apple);

儿子(消费者1) P(orange); 取桔子 V(empty); 吃桔子

女儿(消费者2)类似于进程 12.和尚吃水问题

寺庙里住着一群老和尚和一群小和尚,小和尚负责挑水喝。庙里有5个水桶和一个大缸,大缸可盛8桶水。大缸每次只允许一个人使用。请写出他们之间的同步问题。 资源信号量:s1=5;表示水桶的数量 s2=8;表示缸空的数量(水桶) s3=0;表示缸满的数量(水桶)

互斥信号量:mutex=1;用于互斥的使用大缸 小和尚: P(s1); 取水桶; 挑水; P(s2); P(mutex); 往水缸倒水; V(mutex); V(s3); V(s1); 老和尚: P(s3); P(mutex); 吃水;

10 / 13

V(mutex); V(s2);

13.试用信号量机制描述两人下象棋的过程

类似于一个生产者和一个消费者利用单缓冲(棋盘)通信的例子

14.设AB两点之间是一段东西向的单行车道,现在要设计一个AB路段自动管理系统,规则如下:当AB间有车辆在行驶时同方向的车可以驶入,另一方向的车必须在AB段外等待;当AB段之间无车辆行驶时,任一方向到达的车都可驶入,但不能从两个方向同时驶入;当某方向在AB段行驶的车辆驶出了AB段且暂无车辆进入AB段时,应让另一方向等待的车辆进入AB段行驶。试用信号量和P、V操作管理AB路段车辆的行驶

分析:这是读者—写者问题的变形,相当于两组读者(即两个方向的车辆)访问同一个共享文件(即AB路段)的互斥问题。 (1)信号量及其设置

S1、S2初值均为0,分别用于对从A、B点驶入AB的车辆计数

互斥信号量mutex,初值为1,用于实现不同方向的第一辆车互斥驶入AB路段。 互斥信号量ma、mb,初值均为1,分别用于两个方向的车互斥的访问计数器变量。 向西行驶的车辆: P(ma);

If S1=0 then P(mutex); S1++; V(ma);

车辆从A点通过AB路段到达B点 P(ma); S1--;

If S1=0 then V(mutex); V(ma);

向东行驶的车辆: P(mb);

IfS2=0 then P(mutex); S2++; V(mb);

车辆从B点通过AB路段到达A点 P(mb); S2--;

If S2=0 then V(mutex); V(mb);

15.在4×100接力赛中,四个运动员之间存在如下关系:1号传给2号,2号传给3号,3号传给4号,4号跑完全程。试用信号量机制进行描述。 用前驱图描述:

运动员1——运动员2——运动员3——运动员4

信号量 S12 S23 S34 初值均为0 运动员1:

11 / 13

持棒跑100米; 交棒给运动员2; V(S12);

运动员2: P(S12);

持棒跑100米; 交棒给运动员3; V(S23);

运动员3同运动员2

运动员4: P(S34);

持棒跑100米;

16.今有一文件F供A、B两组进程共享,规定同组的进程可以同时读文件F;但当有A组(或B组)的进程在读文件F时就不允许B组(或A组)的进程读文件。

定义整形计数器变量C1和C2,分别记录A组和B组中读文件F的进程数,初值均为0.设置3个初值均为1的信号量S1、S2和SAB。 进程Ai:

_______________; 将C1加1;

若C1=1 则_________________;

_________________; 读文件F;

__________________; 将C1减1;

若C1=0 则________________;

_________________;

进程Bi:

_______________; 将C2加1;

若C2=1 则_________________;

_________________; 读文件F;

__________________;

12 / 13

将C2减1;

若C2=0 则________________;

_________________; 要求:(1)说明信号量S1、S2、SAB的作用;

S1是用于A组进程互斥使用计数器C1的互斥信号量;S2是用于B组进程互斥使用计数器C2的互斥信号量;SAB是用于A、B两组进程互斥访问文件F的互斥信号量 (2)填上合适的P、V操作

P(S1),P(SAB),V(S1),P(S1),V(SAB),V(S1);P(S2),P(SAB),V(S2),P(S2),V(SAB),V(S2) 17. 设有两个进程P、Q;Q的优先级高于P,同时进入就绪队列;各自运行的程序段如下: 进程P: P1 Y=8; P2 Y=A-Y; P3 V(S1); P4 Y=A+X; P5 P(S2); P6 X=Y+A; 进程Q: Q1 X=10; Q2 A=X+A; Q3 P(S1); Q4 X=A+Y; Q5 V(S2); Q6 A=X+Y; 其中S1、S2为信号量,初值为0,已知X、Y、A为共享变量,X、Y的初值为0,A的初值为20,若调度程序执行的策略为抢占方式优先权原则,试问:

(1) 执行序列(用Pi,Qi表示,i=1,。。。6)

变量X、Y、A的运行结果是什么? 解:(1)Q1Q2Q3(Q阻塞)P1P2P3(唤醒Q,P到就绪队列)Q4Q5Q6P4P5P6 (2)X=200;Y=126;A=74 四、填空题

1.并发执行的程序具有下列特征:___,____,_____。(间断性,失去封闭性,不可再现性) 2.一个进程是由__________,__________,__________构成,其中__________是进程存在的唯一标志,系统根据它而感知进程的存在。(程序段,数据段,PCB或进程控制块,PCB) 3.进程具有5个特征,分别是:__________,__________,__________,__________和__________,其中__________是进程最基本的特征。(结构特征,动态性,并发性,独立性,异步性,动态性) 4.进程是进程实体的__________过程,是系统进行__________和__________的一个独立单位。(运行,资源分配,调度)

5.进程的三种基本状态是:__________,__________和__________。(就绪态,执行态,阻塞态) 6.进程同步的主要任务是对多个相关进程在__________上进行协调,以使并发执行的诸进程之间能有效地__________和__________,从而使程序的执行具有__________。(执行次序,共享资源和相互合作,可在现性)

7.并发执行的程序存在着两种形式的制约关系:____和_____。(间接相互制约,直接相互制约) 8.在一段时间内只允许一个进程访问的资源称为__________。(临界资源) 9.每个进程中访问临界资源的那段代码称为__________。(临界区)

10.高级进程通信机制的类型包括:__________,__________和__________。(共享存储器系统,消息传递系统,管道通信) 11.所谓__________,是指用于连接一个读进程和一个写进程以实现它们之间通信的一个共享文件,又名pipe文件。(管道)

13 / 13

搜索更多关于: 第2章 进程管理练习答案 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

A() { while(true) { 采集一个数据; p(empty1); 将数据存入buf1; v(full1); } } B() { while(true) { p(full1); 从buf1中取出数据; v(empty1); 处理数据; p(empty2); 将处理结果存入buf2; v(full2); } } C() { while(true) { p(full2); 从buf2中取出结果; v(empty2); 打印输出; } } 10.超市可容纳50人同时购物,入口处有篮子,每个顾客可拿一只篮子入内购物,出口处结账,并归还篮子(出入口禁止多人同时通过) 分析:(1)购物者进超市需要互斥,超市是临界资源(设

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com