处理机调度与死锁-----计算机操作系统

一.简答题

1.高级调度和低级调度的主要任务是什么?为什么要引入中级调度

高级调度的主要任务:用于决定把外存上处于后备队列中的哪些作业调入内存,并为它们创建进程分配必要的资源,然后再将新创建的进程插入就绪队列上准备执行。

低级调度的主要任务:用于决定就绪队列中的哪个进程应获得处理机,然后再由分派程序执行将处理机分配给该进程的具体操作。

引入中级调度的主要目的:是为了提高系统资源的利用率和系统吞吐量。

2.何谓作业和JCB?

作业是一组程序与数据和作业说明书,是高级调度的基本单位。
JCB是作业控制块,是作业存在的表示,包含管理,调度所需的全部信息。

tips:(对作业的控制是JCB和作业说明书一起的) 
	  
3.在什么情况下需要使用JCB?JCB通常包含了哪些内容?  
(1)作业进入系统。 
(2)包含系统对作业调度,管理的全部信息。

4.在作业调度中应如何确定接纳多少作业和接纳哪些作业?

根据系统规模,运行速度,作业大小以及能否获得较好的系统性能等情况决定接纳多少个作业
根据调度算法决定接纳哪些作业

  1. 试说明低级调度的主要功能?

低级调度又称为进程调度,用来决定就绪队列中哪个进程先获得处理机,并将处理机分配给选中的进程,然他投入执行。

6.简述引起进程调度的原因?【考研真题】

1.正在执行的进程执行完毕或因发生某事件而不能再继续执行; 【运行完了】【阻塞了】
2.执行中的进程因提出I/O请求而暂停执行; 【阻塞了】
3.在进程通信或同步过程中执行了某种原语操作如P操作、阻塞、挂起原语等; 【阻塞了】
4.在可剥夺式调度中,有比当前进程优先权更高的进程进入就绪队列; 【被抢占了】
5.在时间片轮转法中,时间片完; 【时间片完了】

7.在抢占式调度算法中,应遵循的原则?

①时间片原则。各进程按系统分配给的一个时间片运行,当该时间片用完或由于该进程等待某事件发生而被阻塞时,系统就停止该进程的执行而重新进行调度。时间片原则适用于分时系统和大多数实时信息处理系统。
②优先级原则。每个进程均赋于一个调度优先级,当一个新的紧迫进程到达时,或者一个优先级高的进程从阻塞状态变成就绪状态的时,如果该进程的优先级比当前进程的优先级高,OS就停止当前进程的执行,将处理机分配给该优先级高的进程,使之执行。
③短进程优先原则。当新到达的作业对应的进程比正在执行的作业对应进程的运行时间明显短时,系统剥夺当前进程的执行,而将处理机分配给新的短进程,使之优先执行。
抢占调度方式适用于分时系统和大多数实时系统。

8.在选择调度算法时应该遵循哪些规则?

公平性、资源利用率、平衡性、强制执行

9.何谓静态优先级?何谓动态优先级?确定优先级的依据是什么?

(1)静态优先级创建进程时就确定,动态优先级随着时间与环境变化而改变。
(2)用户要求,进程对cpu io等资源的要求, 进程类型。

10.试比较FCFS【先来先服务】和SJF【短进程优先】两种调度算法。

先来先服务周转时间长,对短进程不利,不能实现交互,紧急作业得不到处理但进程无饿死。
短进程优先要先知道作业运行时间,且对长进程不利,没有考虑进程的紧迫性,并且容易饿死。

11.在基于时间片的轮转调度算法中,应如何确定时间片大小?

一次时间片的大小要略大于一次典型交汇所需的时间。

12.为什么说多级反馈队列能较好的满足各方面用户的需求?

多级反馈队列算法每个队列可以设置不同的调度算法,使得短进程在第一队列完成,而长队列也得到了处理,不会出现长时间得不到处理现象。

13.为什么实时系统需要系统有较强的处理能力?

在实时系统中,若同一时间段要完成的任务多,就会造成处理机来不及处理,任务完不成造成灾难性后果。

  1. 按照调度方式可将实时性调度算法分为哪几种?

抢占式和非抢占式。

15.实时系统常用的调度算法有哪些?分别介绍他们。

最早截止时间:截止时间越早,优先级越高,可以是抢占式,也可以是非抢占式。
最低松弛度优先:截止时间减去当前时间,减去所需时间为松弛度,松弛度越低优先级越高,松弛度为0,优先级最高。

16.在批处理系统,分时系统和实时系统,分别采用哪几种进程调度算法?

批处理系统:先来先服务,短进程优先,优先级调度。

tips:没有轮转和多级反馈队列算法。
tips:高响应比优先是一种优先级调度算法。 分时系统:只有轮转。 实时系统:轮转和优先级调度算法。

17.什么是死锁?产生死锁的原因和必要条件是什么?如何预防死锁?【考研真题】

(1)死锁是多个进程持有别的进程需要的资源而自己无法获得需要的资源而处于僵持阻塞状态。
(2)不可剥夺,请求与保持,互斥访问,循环等待。
(3)破坏死锁产生的四个条件。

18.在解决死锁问题的几个方法中,哪个方法最容易实现?哪个方法可使资源利用率最高?

解决死锁可归纳为四种方法:预防死锁,避免死锁,检测死锁和解除死锁。
其中,预防死锁是最容易实现的。
避免死锁使资源的利用率最高。

二.计算题

19.【考研真题】

19
在这里插入图片描述

20.【考研真题】

20
20
20

21.【考研真题】

在这里插入图片描述
在这里插入图片描述

22.

在这里插入图片描述
(1)安全状态
(2)非安全状态
(3)非安全状态
(4)非安全状态

三.综合应用题

23.【考研真题】

在这里插入图片描述
(1)题中给出的3种方法中,检测死锁能允许更多的进程无须等待地向前推进并发性最大,因为该方法允许进程最大限度地申请并分配资源,直至出现死锁,再由系统解决死锁。
(2)银行家算法允许进程自由申请资源,只是在某个进程申请资源时会检查系统是否处于安全状态,若是,则可立即分配;若不是,则拒绝。其并发性的大小次于检测死锁这一方法。
(3)最后是资源预分配,因为此方法要求进程在运行之前申请所需的全部资源,这会使许多进程因申请不到全部资源而无法开始,得到部分资源的进程也会因未得到全部资源而不释放已占用的资源,所以此方法会导致资源浪费。因此,上述3种方法按并发性从大到小排序为:检测死锁、银行家算法,资源预分配。

24.【考研真题】

在这里插入图片描述
(1)系统会发生死锁。原因如下:假如两个账号A和B有两个转账业务,分别是从A转入B和从B转人A。这两个业务在执行时可能会发生以下情况:一个业务锁定A账户,试图锁定B账户失败而等待;另一个业务锁定B账户,试图锁定A账户失败,也在等待,进而即会导致系统处于死锁状态。
(2)为了避免死锁,可采用两阶段加锁方法,即为每个账户设定一个唯一的账号,在业务执行前,必须按照账号的大小顺序依次获得所有账户的锁,业务完成后再依次按照锁定的先后次序将后锁定的账户先解锁。

25.【考研真题】

在这里插入图片描述
<一>这两个进程在不同的推进速度下,可能会产生死锁。比如:进程P1先申请资源R1,P1得到R1后进程P1申请R2;P2得到R2后,P2又申请资源R1,此时则因R1已分配,故P2阳塞。P1和P2,两个进程因申请不到所需资源而形成死锁。如果改变进程的运行顺序,则这两个进程可能又不会发生死锁。因此,产生死锁的原因可归结为两点:1.竞争资源,2进程推进顺序非法。产生死锁的必要条件:1.互斥条件;2请求和保持条件;3不可抢占条件,4.循环等待条件

<二>会发生死锁
原因:当p1 和p2都运行了第一步,则会相互阻塞
必要条件:互斥,请求与保持,循环等待,不可剥夺。

猜你喜欢

转载自blog.csdn.net/m0_46222433/article/details/129592108