1.高级调度与低级调度的主要任务是什么?为什么要引入中级调度?
高级调度(长程调度、作业调度)主要任务是根据某种算法,决定将外存上处于后备队列中的哪几个作业调入内存,为它们创建进程、分配必要的资源,并将它们放入就绪队列。
低级调度(短程调度、进程调度)主要任务是根据某种算法,决定就绪队列中的哪个进程应获得处理机,并由分派程序将处理及分配给被选中的进程。
引入中级调度(内存调度)的目的是,提高内存利用率和系统吞吐量。使那些暂时不能运行的进程不再占用内存资源,将它们调至外存等待,把进程状态改为就绪驻外存状态或挂起状态。
2.何谓静态和动态优先级?确定静态优先级的依据是什么?
静态优先级是在创建进程时确定的,在进程的整个运行期间保持不变。确定进程优先级大小的依据有三个:
进程类型、进程对资源的需求、用户要求。
动态优先级是指在创建进程之初,先赋予其一个优先级,然后其值随进程的推进或等待时间的增加而改变,以便获得更好的调度性能。
3.试比较 FCFS 和 SPF 两种进程调度算法。
相同:两种调度算法都可用于作业调度与进程调度。
不同点:FCFS调度算法每次都从后备队列中选择一个或多个最先进入该队列的作业,将它们调入内存、分配资源、创建进程、插入到就绪队列。该算法有利于长作业进程,不利于短作业进程。
SJF算法每次调度都从后备队列中选择一个或若干个运行时间最短的作业,调入内存中运行。该算法有利于长作业进程,不利于短作业进程。
4.在时间片轮转法中,应如何确定时间片的大小?
略大于一次典型的交互所需要的时间。
5.为什么说多级反馈队列调度算法能较好地满足各方面用户的需求?
(1)终端型用户。由于终端型用户提交的作业多属于交互性作业,通常较小,系统只要能使这些作业在第一队列规定的时间片内完成,便可使终端型用户感到满意。
(2)短批处理作业用户。对于这类作业,如果可在第一队列中执行完成,便可获得与终端型作业一样的响应时间。对于稍长的短作业,也只需在第二和第三队列各执行一时间片完成,其周转时间仍然较短。
(3)长批处理作业用户。对于长作业,它将依次在第1,2,…,n个队列中运行,然后再按轮转方式运行,用户不必担心其作业长期得不到处理。
6.在批处理系统中,通常采用哪几种调度算法?
批处理系统常用调度算法:
①、先来先服务:FCFS
②、最短作业优先
③、最短剩余时间优先
④、响应比最高者优先
7.试说明低级调度的主要功能
保存处理机的现场信息、按某种算法选取进程、把处理器分配给进程
8.按照调度方式可将实时调度算法分为哪几种?
非抢占式和抢占式。非抢占式又分为非抢占式轮转调度算法和非抢占式优先调度算法,抢占式又分为基于时钟中断的抢占式优先级调度算法和立即抢占的优先级调度算法
9.什么是最早截止时间优先调度算法?
根据任务的开始截止时间确定的任务优先级调度算法。截止时间越早则优先级越高。该算法要求在系统中保持一个实时任务就绪队列,该队列按各任务截止时间的先后排序。
10.什么是最低松弛度优先调度算法?举例说明之。
该算法是根据任务的紧急(或松弛)程度,来确定任务的优先级。任务的紧急程度越高,为该任务所赋予的优先级就越高,以使之优先执行。
例如,一个任务在200ms时必须完成,而它本身所需的运行时间就有100ms,因此,调度程序必须在100ms之前调度执行,该任务的紧急程度(松弛程度)为100ms。
又如,另一任务在400ms时必须完成,它本身需要运行150ms,则其松弛程度为250ms。