挑战408——操作系统(16)——进程管理刷题(2)

本节刷题内容:进程管理
题库来源:408真题,王道教材,百度文库
涉及的知识点:

进程与线程
进程状态转换
进程控制
进程通信
进程调度

补充知识点

抽屉原理
桌上有十个苹果,要把这十个苹果放到九个抽屉里,无论怎样放,我们会发现至少会有一个抽屉里面至少放两个苹果。
抽屉原理的一般含义为:“如果每个抽屉代表一个集合,每一个苹果就可以代表一个元素,假如有n+1个元素放到n个集合中去,其中必定有一个集合里至少有两个元素。” 抽屉原理有时也被称为鸽巢原理,这个原理在解决死锁的资源分配问题上有很大的帮助。

分析与计算类

第一题
在这里插入图片描述
分析:周转时间 = 程序运行时间 + 等待时间,因此选B
在这里插入图片描述
第二题
在这里插入图片描述
分析:我们知道,短作业优先,可以降低平均周转时间,而且可以CPU的利用率。于是:
在这里插入图片描述
其中计算繁忙和I/O繁忙已经介绍过了。
第三题
在这里插入图片描述
分析:这道题目涉及的进程比较多,要是一个一个去分析,会晕头转向,首尾难顾的。对于这种4个以上的进程求平均周转时间的,我们通常采用甘特图。先看第一种情况,非抢占式,也就是P1在运行的时候,无论后面的进程运行时间多短,都不会抢夺CPU。直至P1运行完毕或者P1出现异常退出。按照短作业优先,在7时刻,P1进程还没有运行完毕,但是所有进程已经到达,于是执行顺序为:P1 -> P3 -> P5 -> P2 -> P4于是画出它们的运行时间图如下:
在这里插入图片描述
对于P1.没有等待时间,所以就是9. 对于P3,程序P1运行的时候它在等待,加上自己的运行时间,所以是9+1 = 10.但是注意了,这里的10是相当于P1执行完之后,P2紧随其后到达,,但是由题目可以知道,P2是提前到达的,所以很显然要减去它到达的时间。以下的其他进程同样分析。
对于抢占式,原理是这样的:先到的是P1,那么在0.4时刻,运行时间为4的进程P2赶到,剥夺了CPU,那么下次再轮到P1进程运行的时候,P1的时间变为了9 - 0.4(因为在此之前已经运行了0.4)。以此类推
在这里插入图片描述
因为P3,P5都是在其他程序到来的等待时间内完成的,所以它们其实并没有等待。
第四题
在这里插入图片描述
分析:这道题特别容易错选B,正常思维,FCFS,显然0时刻的进程一直得不到执行,排队最久,说明来的早,于是先执行J1,没问题。J4运行时间为1,是四者中最短的,应该是J4。所以误选B。看清楚,题目给的是在T = 2的时刻,这个时候J4还没到,如何调度??,显然应该是J3。正确答案应该是D.
第五题
在这里插入图片描述
分析:这是一类题考的是程序的并发执行过程。这类题用甘特图解决。第一题:
在这里插入图片描述
第二题略有不同,注意题目说了,输入输出是两台不同的设备,因此,I/O操作是不一样的,就是说输入是一个操作,输出是一个操作,在不同机器上工作。所以:
在这里插入图片描述
第六题
在这里插入图片描述
分析:这道题考的是对信号量的理解。我们之前讲过PV操作的原理:P操作意味着释放一个资源,V操作意味着释放一个资源。当s.value <= 0时,其|s.value <= 0|的值代表的是等待队列中等待该资源的进程数。如s.value = -8,那么表示等待队列中有8个进程正在等待这个临界资源,s.value = 0,则表示资源刚好使用完毕。所以当可用资源数为正值得时候。说明该资源可以继续分配给进程,此时没有进程等待该资源的释放(因为本身就有多)。故此时N = 0.M = 1.显然选B
第七题
在这里插入图片描述
分析:先读题,每次只能允许3个进程进入程序段,说明该资源信号量最多可以P操作3次,第四次会因为资源数不足而被挂起,所以信号量的最大值是3.当第四次申请的时候,信号量变成0 - 1 -= -1,所以信号量最小值为-1.所以选C。(当然也可以这样算,最大资源数为3,四个进程依次申请,所需要的资源数为 3 - 4 = -1)。
第八题
在这里插入图片描述
在这里插入图片描述
分析:这也是一类题。资源分配且不出现死锁。这类题常常使用鸽巢原理解决。先看上面的比较简单的。如果题意不好理解,我们换种说法:系统可能发生死锁的K的最小值 > 系统一定不发生死锁的最大值。这样就好理解了。我们知道,程序都是并发执行的,有某个程序执行完毕后,就会释放掉其资源。所以只要其中一个程序能顺利执行且释放的资源可以满足后续的程序使用,就一定不会死锁。所以我们假设一种极端的情况:K个进程,每个进程有2台打印机了,此时只要一个进程再得到一台打印机,那么所有的进程都将可以顺利执行。(是不是很像哲学家拿筷子的操作?)。
所以满足 2K + 1 < = 8 的时候就一定不会发生死锁,反之,满足 2K + 1 > 8 的时候就可能发生死锁,所以其最小值为4。选C
而接下来的题目其实就一样的,只不过可能会问,按照上面的说法,各分配 2, 2,2,此时给第一个进程分配1个设备,其余的也可以顺利进行啊。这个逻辑看起来没有问题,但是注意,题目问的是确保,而这种方法存在一定的风险性,就是程序必须先执行的是第一个进程,而程序是并发的,推进速度谁也不确定,此刻,当第一个运行的进程是后面的任意一个,都会死锁。所以当每个进程都各缺一个设备的时候,是临界条件,即按 2,3,4分配。这个时候人员一个进程得到一个设备都可以继续运行。所以n的值至少为 2 + 3 + 4 + 1 = 10.
第九题
在这里插入图片描述
分析:做银行家算法的题目,有三个关键信息一定要求出来:已分配资源数,最大需求量,剩余资源数。这道题目是直接给了,所以用最大资源分配法(即将所有的可用资源都加上去的方法)对选项逐一验证:
在这里插入图片描述
仿照上面的做法做下面的题目,原理一样:
在这里插入图片描述
在这里插入图片描述

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值