有关pv操作类的题目
更新时间:2023-12-23 03:41:01 阅读量: 教育文库 文档下载
有关pv操作类的题目
1、假定系统有三个并发进程read, move和print共享缓冲器B1和B2。进程read负责从输入设备上读信息,每读出一个记录后把它存放到缓冲器B1中。进程move从缓冲器B1中取出一记录,加工后存入缓冲器B2。进程print将B2中的记录取出打印输出。缓冲器B1和B2每次只能存放一个记录。要求三个进程协调完成任务,使打印出来的与读入的记录的个数,次序完全一样。 请用PV操作,写出它们的并发程序。
解:begin
emptyB1 , fullB1, emptyB2, fullB2 : semaphore B1,B2 : record
emptyB1 := 1,fullB1:=0,emptyB2:=1,fullB2:=0 cobegin process read X : record;
begin R: 接收来自输入设备上一个记录 X:=接收的一个记录; P(emptyB1); B1:=X; V(fullB1); goto R; end;
Process move Y:record; begin
M:P(fullB1); Y:=B1; V(emptyB1)
1
加工 Y P(emptyB2); B2:=Y; V(fullB2); goto M; end; Process print Z:record; begin P:P(fullB2); Z:=B2; V(emptyB2) 打印Z goto P; end; coend; end;
2、用PV操作解决读者写者问题的正确程序如下:begin S, Sr: Semaphore; rc: integer; S:=1; Sr:=1; rc:=0;
cobegin PROCESS Reader i ( i=1,2…)
2
begin ( P(S5)) P(Sr) rc:=rc+1; if rc=1 then P(S); V(Sr); read file; P(Sr); rc:=rc-1 if rc=0 thenV(S); V(Sr); ( V(S5) ) end ;
PROCESS Writer j (j=1,2…) begin P(S); Write file; V(S) end; coend ; end;
请回答:(1)信号量 Sr的作用;(2)程序中什么语句用于读写互斥,写写互斥;(3)若规定仅允许5个进程同时读怎样修改程序? 解:(1)Sr用于读者计数变量rc的互斥信号量;
3
(2)if rc=1 then P(S)中的P(S)用于读写互斥;写者进程中的P(S)用于写写互斥,读写互斥。
(3)程序中增加一个信号量S5,初值为5,P(S5)语句加在读者进程P(Sr)之前,V(S5)语句加在读者进程第2个V(Sr)之后。 3、某车站售票厅,任何时刻最多可容纳20名购票者进入,当售票厅中少于20名购票者时,则厅外的购票者可立即进入,否则需在外面等待。若把一个购票者看作一个进程,请回答下列问题:
(1)用PV操作管理这些并发进程时,应怎样定义信号量,写出信号量的初值以及信号量各种取值的含义。
(2)根据所定义的信号量,把应执行的PV操作填入下述方框中,以保证进程能够正确地并发执行。
COBEGIN PROCESS Pi(i=1,2,……) Begin [P(s)] 进入售票厅; 购票; 退出; [V(s) ] end; COEND
(3)若欲购票者最多为n个人,写出信号量可能的变化范围(最大值和最小值)。
解:(1)定义一信号量S,初始值为20。
4
意义:S>0 S的值表示可继续进入售票厅的人数 S=0 表示售票厅中已有20名顾客(购票者) S<0 |S|的值为等待进入售票厅的人数 (2) 上框为P(S) 下框为V(S) (3) S的最大值为20 S的最小值为20-n
4、有三个并发进程A,B和C,共享一个缓冲器F。F中每次只能存放一个数。进程A每次产生一个随机数R,将其存入F中。若存放到F中的数是5的倍数,则由进程B将其取出并打印,否则由进程C将被5除后的余数打印出来。为防止数的丢失和重复取同一个数,现用PV操作进行管理以达到上述要求。 Begin s1:=1,s2:=0,s3:=0 : semaphore; F,R,x,y: integer; Process A begin
L1: 产生随机数R; P(s1);
将R放入F中; if R mod 5 = 0 then V(s2); else V( s3);
5
goto L1; end; Process B begin L2: P(s2); x:=R; V(s1); print x; goto L2; end; Process C begin L3: P(s3); y:=R mod 5; V(s1); print y; goto L3; end;
5、有一家4口在吃水果,共用一个水果盘,并且该盘一次只能放一个水果,妈妈只往里边放苹果,爸爸只往里边放橘子,而女儿只吃苹果,儿子只吃橘子,试用P、V操作实现这一过程。
6
Begin mutex:=1,orange:=0,apple:=0 :semaphore; Mather( ) repeat { P(mutex); 放入苹果; V(apple); } end; Father ( ) repeat { P(mutex); 放入橘子; V(orange); } end;
Daughter ( ) repeat { P(apple); 取走苹果; V(mutex); 吃苹果; }
7
end; Son( ) repeat { P( orange); 取走橘子; V(mutex); 吃橘子; } end;
6、有一个阅览室,共有100个座位,读者进入时必须先在一张登记表上登记,该表为每一座位列一表目,包括座号和读者姓名等,读者离开时要消掉登记的信息,试问:
(1)为描述读者的动作,应编写几个程序(设置几个进程) ? (2)试用PV操作描述读者进程之间的同步关系。
解:读者的动作有两个,一是填表进入阅览室,这时要考虑阅览室里是否有座位;一是读者阅读完毕,离开阅览室。读者在阅览室读书时,由于没有引起资源的变动,不算动作变化。
算法的信号量有三个:seats——表示阅览室是否有座位(初值为100,代表阅览室的空座位数);readers——表示阅览室里的读者数,初值为0;用于互斥的mutex,初值为1。 读者进入阅览室的动作描述 getin:
8
while(TRUE){
P (seats); P(mutex) 填写登记表; 进入阅览室读书;
V(mutex) V(readers) }
读者离开阅览室的动作描述 getout: while(TRUE) {
P(readers) P(mutex) 消掉登记;
离开阅览室; V(mutex) V(seats) }
7、现有4个进程:R1,R2,W1,和W2,
它们共向只能存放一个数据的
9
缓冲区B,进程R1每次把从磁盘上读的一个数据放入B中,供进程W1打印输出,进程R2每次把从磁盘上读的一个数据放入B中,供进程W2打印输出,试用P、V操作协调4个进程的并发执行。 同第5题。
8、设有3个并发执行的进程:输入进程Pi, 计算进程Pc, 输出进程Po.其中进程Pi不断地从键盘上读入整数,放入缓冲区Buf1中,Pc按输入顺序从Buf1中取数据,每次取出两个整数并计算其和,将结果缓冲区Buf2中,。Po负责将Buf2中的数据按顺序输出,若Buf1和Buf2中可以存放的数据分别是m,n ( m、n>0),试用P、V操作写出Pi,Pc,Po 的算法。
解:设4个信号量e1:=m, f1:=0, e2:=n, f2:=0; Pi begin
L1: 从键盘上读取一个数据; P(e1);
把数据放入缓冲区1中; V(f1); Goto L1; end Pc
10
begin L2: P(f1);
X:=从缓冲区1中读一个数据; V(e1); P(f1);
Y:= 从缓冲区1中读一个数据; V(e1) ; Z:=x+y; P(e2);
将z放入缓冲区2中; V(f2); Goto L2; end; Po begin L3: P(f2)
W:=从缓冲区2中一个数据; V(e2); 打印W; Goto L3; end;
11
9、设有三个并发进程R,M,P, 它们共享一个缓冲区B。进程R负责向B中输入数据;进程R每输入一个数据,进程M 负责对其加工;进程M加工完成后,进程P负责打印输出。缓冲器B中每次只能存放一个数据,数据一旦被打印,进程R又可以存放下一个数据,试用P、V操作来实现这三个进程之间的关系。 解:设3个信号量e:=1,f1:=0,f2:=0; PR begin
L1: 生产了一个数据; P(e);
将数据放入缓冲区中; V(f1); Goto L1; end PM begin L2:P(f2);
加工缓冲区中的数据; V(f2); Goto L2; end;
12
PP begin L3: P(f2);
打印缓冲区B中的数据; V(e) end;
10、在测量控制系统中,数据采样任务和数据计算任务是互相制约的,设某个系统中有一个缓冲单元存储采样数据,并利用信号量S的P、V操作实现这种制约,下面是完成该任务的框图,其中S1时空缓冲单元的个数,S2是已用缓存单元的个数,利用S3防止两个任务同时访问缓冲区,S1的初值时N(N>0), S2得出知识0,S3的初值是1,在下列框图中填上适当的P、V 操作以实现该算法。
11、设系统中有两类生产进程和两类消费进程:
生产进程生产的数据为AB行,只能供应消费者B使用; 生产进程P生产的数据为PQ型,只能供消费者Q使用,并且B不能使用PQ型的数据,Q不能使用AB型数据。若这4个进程共同使用一个公共的缓冲区来传送数据,并且该缓冲区仅能容纳一个AB型或PQ型数据。若系统中有多个A类和多个P类生产进程,以及多个B类和多个Q类消费进程,试用P、V操作描述这4类进程的算法。
要求:由于系统中的两类生产进程和两类消费进程都异常活跃,而唯一的公共缓冲区可能会成为瓶颈,因此算法应该避免类似下述情况发
13
生,即:当某个生产者A将生产的数据放入缓冲区后,由于所有的消费者B都忙于消费先前得到的数据而无法立即将数据从缓冲区中取走,从而导致缓冲区长期被占用,使得一个空闲消费则Q无法收到生产者P已经生产的数据。
12、某寺庙,有小、老和尚若干,有一水缸,有小和尚提水入缸供老和尚用。水缸可容10桶水,水取自同一个水井中,水井径窄,每次只能容一个水桶取水,水桶数量不限,每次入缸取水只为一桶水,且不可同时进行,试给出有关入井取水和入缸取水的算法描述。 3、设公共汽车上,司机和售票员的活动分别是: 司机: 启动车辆 售票员: 上乘客 正常启动 关车门 到站停车 售票 开车门 下乘客
在汽车不断到站、停车、行驶过程中,这两个活动有什么同步关系?并用wait和sigal原语操作实现它们的同步。
14
正在阅读:
有关pv操作类的题目12-23
局部通风机无计划停电停风安全技术措施范本10-11
湖南省张家界市2020学年高一数学上学期期末考试试题(无答案)05-05
顶管施工顶进安全技术交底03-23
统计学练习题04-06
测控电路考试试题一答案03-03
FORTRAN90第二次实验10-17
背影作文550字07-07
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 题目
- 有关
- 操作
- (浙江选考)2020版高考政治一轮复习文化生活第二单元文化传承与创新第二十二课时文化的继承性与文化发
- 最新-社区国庆节活动总结报告 精品
- 五四表彰通知 - 图文
- 小学数学第三册第三单元试卷(5)
- 文学概论复习资料(全面)汇总
- 辛弃疾词作中的意境美阐微
- 公司法论述题
- 浙江省第六届纵横汉字输入比赛获奖名单
- 岚山船代外勤流程
- 中学物理教学中培养学生创新能力的探究与实践
- 实验报告2 - 图文
- 纯真年代作文
- 概率论与数理统计(理工类 - 第四版)吴赣昌主编课后习题答案第五章
- 中埋式及外贴式止水带施工技术交底(待修改)
- 应用化学专业 化学工艺学课程设计
- 小学六年级一班语文期中质量分析
- 老会计经验增值税专用发票异常情况如何处理
- 2009-2010年度第一学期学校教学工作总结
- 安全基础管理工作
- 保安管理制度