收藏 分享(赏)

有关进程的练习题.doc

上传人:jinchen 文档编号:7138930 上传时间:2019-05-07 格式:DOC 页数:30 大小:400KB
下载 相关 举报
有关进程的练习题.doc_第1页
第1页 / 共30页
有关进程的练习题.doc_第2页
第2页 / 共30页
有关进程的练习题.doc_第3页
第3页 / 共30页
有关进程的练习题.doc_第4页
第4页 / 共30页
有关进程的练习题.doc_第5页
第5页 / 共30页
点击查看更多>>
资源描述

1、练习题收集(一) 选择题1.临界区是指( )。A.并发进程中用于实现进程互斥的程序段 B并发进程中用于实现进程同步的程序段 C并发进程中用户实现进程通信的程序段 D并发进程中与共享变量有关的程序段2相关临界区是指( )。A.一个独占资源 B并发进程中与共享变量有关的程序段 c一个共享资源 D并发进程中涉及相同变量的那些程序段4、( )是只能由 P 和 v 操作所改变的整型变量。A 共享变量 B锁 c 整型信号量 D记录型信号量5对于整型信号量,在执行一次 P 操作时,信号量的值应( )。 A不变 B加 1 C 减 1 D减指定数值6在执行 v 操作时,当信号量的值( )时,应释放一个等待该信号

2、量的进程。A0 B.=0 D.0 B. S=0 C. S0 S 的值表示可继续进入售票厅的人数 S=0 表示售票厅中已有 20 名顾客 ( 购票者 ) S0)countb-;V(qb);elseif(countc0)countc-;V(qc);elseif(counta0)counta-V(qa);else free=1;A 组进程活动可以给出 B 组和 C 组进程活动。14. 设有一个可以装 A、B 两种物品的仓库,其容量无限大,但要求仓库中 A、B 两种物品的数量满足下述不等式:-MA 物品数量B 物品数量 N其中 M 和 N 为正整数。 试用信号量和 PV 操作描述 A、B 两种物品的入

3、库过程。答:已知条件 - MA 物品数量B 物品数量 N 可以拆成两个不等式,即A 物品数量B 物品数量 N,B 物品数量A 物品数量 M。这两个不等式的含义是:仓库中 A 物品可以比 B 物品多,但不能超过 N 个;物品可以比A 物品多,但不能超过 M 个。semaphore a=n;semaphore b=m;void main()createprocess(A,);createprocess(B,);A 物品入库:while(1)P(a);A 物品入库;V(b);B 物品入库:while(1)P(b);B 物品入库;V(a);15. 设系统中有 5 台类型相同的打印机,依次编号为 15。

4、 又设系统中有 n 个使用打印机的进程,使用前申请,使用后释放。 每个进程有一个进程标识,用于区别不同的进程。 每个进程还有一个优先数,不同进程的优先数各异。当有多个进程同时申请时,按照进程优先数由高到低的次序实施分配。 试用信号量和 PV 操作实现对于打印机资源的管理,即要求编写如下函数和过程:(1) 函数 require(pid,pri): 申请一台打印机。参数 pid 为进程标识,其值为 1 到 n 的整数; pri 为进程优先数,其值为正整数; 函数返回值为所申请到打印机的编号,其值为1 到 5 的整数;(2) 过程 return(prnt): 释放一台打印机。参数 prnt 为所释放

5、打印机的编号,其值为 1到 5 的整数。解:#define N 5bool flagN+1;/flag0表示可用打印机数,/flagi表示第 i 号打印机的状态(10)flag0-;for(int i=1;iN+1;i+)if(flagi=1)flagi=0;break;V(mutex_flag);return i;elseV(mutex_flag);p(mutex_queue);将进程 pid 按其优先数插入到等待队列 queue 中;V(mutex_queue);return(int print)P(mutex_flag);if(queue=NULL)flag0+;flagprint=1;

6、V(mutex_flag);elseV(mutex_flag);p(mutex_queue);将 print 分配给 queue 队首进程;queue 下移;V(mutex_queue);16.银行家算法中,若出现以下资源分配情况:资源进程最大需求量R1 R2 R3 已分配资源量R1 R2 R3 剩余资源量R1 R2 R3P0P1P2P3P47 5 3 3 2 29 0 22 2 24 3 30 1 0 2 0 03 0 2 2 1 1 0 0 2 3 3 2试问:(1)该系统状态是安全的吗?请说明原因。(2)如果进程依次有如下资源请求,系统将怎样进行资源分配?P1:(1,0,2)P4:(3,

7、3,0)P0:(0,2,0)某系统中有四类资源,五个进程。当前资源分配情况如下:Allocation Need Available A B C D A B C D A B C DP0: 0 0 3 2 0 0 1 2 1 6 2 3P1: 1 0 0 0 1 7 5 0P2: 1 3 5 4 2 3 5 6P3: 0 3 3 2 0 6 5 2P4: 0 0 1 4 0 6 5 6试问:(1) 当前状态是否安全?若是安全状态,请给出进程安全序列。(2) 如果进程 P2提出请求 Request2=(1,2,2,2) ,系统能否将资源分配给它?说明原因解答:(1)当前状态是安全的。找出进程安全序列

8、的分析过程如下:Pi P0 P3 P1 P4 P2A B C D A B C D A B C D A B C D A B C DNeedi 0 0 1 2 0 6 5 2 1 7 5 0 0 6 5 6 2 3 5 6Available 1 6 2 3 1 6 5 5 1 9 8 7 2 9 8 7 2 9 9 11从分析过程,可得出进程安全序列是: P 0,P 3,P 1,P 4,P 2。(2)按照银行家算法, 因 Request2(1, 2,2,2) Need 2(2,3,5,6),且 Request2(1, 2,2,2) Available(1,6,3,2),试探性地将请求的资源分给进程

9、 P2,并修改有关数据结构的数值:Available= Available(1,6,3,2)- Request 2(1, 2,2,2)= Available(0,4,1,0)Need2= Need2(2,3,5,6)-Request 2(1, 2,2,2)=Need 2(1,1,3,4)Allocation2= Allocation2(1,3,5,4)+ Request 2(1, 2,2,2)= Allocation2(2,5,7,6)此时系统可用资源 Available(0,4,1,0)均不能满足这五个进程还需要的资源数量,分别是(0,0,1,2)、(1,7,5,0)、(1,1,3,4)、(

10、0,6,5,2)和(0,6,5,6)。系统将进入不安全状态,恢复 Need2、 Allocation2及 Available 原来的值。结论是:对进程P2的请求不予分配,进程 P2阻塞等待。. (见习题 15)关于读者/写者问题,有人给出如下改进解法:semaphore r_w_w, mutex, s; (初值均为 1)int count; (初值为 0)读者活动:P(s);P(mutex);count+;if (count= =1)P(r_w_w);V(mutex);V(s);读操作P(mutex);count-;If (count= =0)V(r_w_w);V(mutex);写者活动:P(s);P(r_w_w);写操作V(r_w_w);V(s);分析上述改进算法的调度效果。答:由于 s 以及读者和写者对 s 的操作,读者和写者都不会无限等待,因而算法不会出现饿死现象,是一个公平的解法考研题库: http:/

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报