不同点: FCFS 调度算法每次都从后备队列中选择一个或多个最先进入该队列的作业,
将它
们调入内存、分配资源、创建进程、插入到就绪队列。该算法有利于长作业
/进程,不利于
短作业 /进程。 SPF 算法每次调度都从后备队列中选择一个或若干个估计运行时间最短的作 业,调入内存中运行。该算法有利于短作业
/进程,不利于长作业 /进程。
11 .在时间片轮转法中,应如何确定时间片的大小? 答:时间片应略大于一次典型的交互需要的时间。 一般应考虑三个因素:
要求、就绪队列中进程的数目和系统的处理能力。
12 .通过一个例子来说明通常的优先级调度算法不能适用于实时系统?
系统对相应时间的
答:实时系统的调度算法很多,主要是基于任务的开始截止时间和任务紧急
/松弛程度的任
务优先级调度算法,通常的优先级调度算法不能满足实时系统的调度实时性要求而不适用。
13 .为什么说多级反馈队列调度算法能较好地满足各方面用户的需求?
答:( 1)终端型作业用户提交的作业大多属于较小的交互型作业,系统只要使这些作业在
第一队列规定的时间片内完成,终端作业用户就会感到满足。
( 2 )短批处理作业用户,开始时像终端型作业一样,如果在第一队列中执行一个时间片段
即可完成, 便可获得与终端作业一样的响应时间。
对于稍长作业, 通常只需在第二和第三队
列各执行一时间片即可完成,其周转时间仍然较短。
( 3 )长批处理作业,它将依次在第
1 , 2 , , n 个队列中运行,然后再按轮转方式运行,
用户不必担心其作业长期得不到处理。所以,多级反馈队列调度算法能满足多用户需求。 14 .为什么在实时系统中,要求系统(尤其是
CPU )具有较强的处理能力?
若处理机的处理能力不够强,
有可能因为处理机忙
答:实时系统中通常有着多个实时任务。
不过来而使某些实时任务得不到及时处理,导致发生难以预料的后果。 15 .按照调度方式可将实时调度算法分为哪几种? 答:可分为非抢占式和抢占式两种算法。
而非抢占式算法又分为非抢占式轮转和优先调度算
法;抢占式调度算法又分为基于时钟中断的抢占式优先权和立即抢占式优先权调度算法。 16 .什么是最早截止时间优先调度算法?举例说明。 答:根据任务的开始截止时间确定的任务优先级调度算法。
截止时间越早则优先级越高。 该
算法要求在系统中保持一个实时任务就绪队列,该队列按各任务截止时间的先后排序。 举例:非抢占式调度方式用于非周期实时任务。
图 3-9 是将该算法用于非抢占调度方式之例。
该例中具有四个非周期任务,它们先后到达。系统首先调度任务
1 执行,在任务 1 执行期
1 后将
3
间,任务
2、 3 又先后到达。由于任务 3 执行。在此期间又到达作业
3 的开始截止时间早于任务 2 ,故系统在任务
调度任务
4 ,其开始截止时间仍是早于任务
2 执行。
2 的,故在任务
执行完后,系统又调度任务 4 执行,最后才调度任务
图 3-9 EDF 算法用于非抢占调度的调度方式
17 .什么是最低松弛度优先调度算法?举例说明之。
答:该算法是根据任务紧急
( 或松弛
)的程度,来确定任务的优先级。任务的紧急程度愈高,
为该任务所赋予的优先级就愈高,以使之优先执行。例如,一个任务在
200 ms
时必须完
成,而它本身所需的运行时间就有
100 ms ,因此,调度程序必须在
100 ms
之前调度执行,
该任务的紧急程度
(松弛程度 ) 为 100 ms 。又如,另一任务在
400 ms
需要运行
150 ms ,则其松弛程度为 250 ms 。
18 .何谓死锁?产生死锁的原因和必要条件是什么?
答:死锁是指多个进程在运行过程中因争夺资源而造成的一种僵局,
态时,若无外力作用,它们都将无法再向前推进。
时必须完成,它本身
当进程处于这种僵持状产生死锁的原因为竞争资源和进程间推进顺序非法。其必要条件是:互斥条件、请求和
保持条件、不剥夺条件、环路等待条件。
19 .在解决死锁问题的几个方法中,哪种方法最易于实现?哪种方法使资源利用率最高?答:解决死锁的四种方法即预防、避免、检测和解除死锁中,预防死锁最容易实现;
避免死锁使资源的利用率最高。
20 .请详细说明可通过哪些途径预防死锁。
答:( 1)摈弃 “请求和保持 ”条件,就是如果系统有足够资源,便一次性把进程需要的所
有资源分配给它;
( 2 )摈弃 “不剥夺 ”条件,就是已经拥有资源的进程,当它提出新资源请求而不能立即满
足时,必须释放它已保持的所有资源,待以后需要时再重新申请;
( 3 )摈弃 “环路等待 ”条件,就是将所有资源按类型排序标号,所有进程对资源的请求
必须严格按序号递增的次序提出。
Request(0,2,0)
21 .在银行家算法的例子中,
如果 P0 发出请求向量由
改为 Request(0,1,0)
问系统可否将资源分配给它?
( 此答案有点问题,需重新考虑
)
答:( 1)可以。银行家算法各种资源数量分别为
10 、 5、 7 ,在 T0 时刻的资源分配如图所
示:
( 2 )具体分析如下:
① Requst0(0,1,0)<=Need0(7,4,3);
② Requst0(0,1,0)<=Available(2,3,0);
系统先假定可为
P0 分配资源,并修改
Available 0 , Allocation 0 和 Need 0 向量,由此形成
的资源变化情况如下图所示:
(3) ) P0 请求资源: P0 发出请求向量 Requst0(0,1,0),
系统按银行家算法进行检查:
① Requst0(0,1,0)<=Need0(7,4,3);
,
② Requst0(0,1,0)<=Available(2,3,0);
③ 系统暂时先假定可为
P0 分配资源,并修改 有关数据,如下图所示
综上所述系统可以将资源分配给它。
22 .银行家算法中出现以下资源分配,试问( 1)该状态是否安全?( 2)若进程 P2 提出 Request(1,2,2,2) 后,系统能否将资源分配给它?
试问:( 2)若进程错 )
( 1)该状态是否安全?
P2 提出请求 Request
1,2,2,2
(参考答案有
( )后,系统能否将资源分配给它?