(1) 面向用户准则。首先,对于用户的紧迫性作业,系统能够及时地处理,不至于运行延误。其次,对于批处理系统,还应追求作业的周转时间短;分时系统中作业的响应时间块;实时系统中作业的截止时间有保证。
(2) 面向系统准则。系统的吞吐量高,处理机的利用率高,各类系统资源能够得到平衡利用。
6.批处理系统、分时系统和实时系统中的主要调度算法如下:
(1) 批处理系统中的作业调度算法有先来先服务(FCFS)、短作业优先(SJF)、优先级调度(HPF)和高响应比优先(RF)。批处理系统的进程调度算法有:先进先出(FIFO)、短进程优先(SPF)、优先级调度(PRI)和高响应比优先(RF)。
(2) 分时系统中只设有进程调度(不设作业调度),其进程调度算法只有轮转法(RR)一种。
(3) 实时系统中只设有进程调度(不设作业调度),其进程调度算法有:轮转法、优先级调度算法。前者适用于时间要求不严格的实时系统;后者用于时间要求不严格的实时系统。后者又可细分为:非抢占式优先级调度、抢占式优先级调度、基于时钟中断的抢占式优先级调度。 注意,一个纯粹的实时系统是针对特定应用领域设计的专用系统。作业提交的数量不会超过系统规定的多道程序度,因而可全部进入内存。若将实时系统与批处理系统结合的话,就可以让作业量超过多道程序度,使优先级低的作业呆在外存的后备队列上。
7.多级反馈队列能较好地满足各种用户的需要的原因:
(1) 终端用户的作业一般比较短小精悍,大多数在进入多级队列的第一级队列中后运行一个时间片就可以完成,因而感到满意。
(2) 批处理作业用户,其作业进入多级队列的第一级队列中后,若作业较短,运行一个时间片就可以完成。对于稍长一些的作业,只需在第二或第三队列上各执行一个时间片就可完成,因而感到满意。对于长作业来说,它将依次在第1,2,?,n个队列上运行,不会因作业太长而长期得不到处理。
8.在多用户分时时间片长度的选择上,既要保证交互性,又要保证系统的效率。
(1) 系统对响应时间T的要求(一般应小于等于2~3秒钟); (2) 就绪队列中的进程数目N(N与终端上的用户数目有关);
(3) 系统的处理能力,一个时间片的长度q应能保证用户的大部分常用命令可处理完;
(4) 进程的转换时间p;
(5) 三者的关系可表示为:T=N(q+p)。 9.对实时系统提出了要求如下:
(1) 任务要提供必要的调度信息:主要包括:开工的最后期限或完工的最后期限、处理时间长度、优先级、就绪时间,以及资源需求。
(2) 采用适当的调度方式:如果实时任务的运行长度较长且时间要求严格,那么实时系统应采用抢占式调度;如果所有的实时任务都比较小,且预知任务的开工最后期限,也可以采用非剥夺式调度。
(3) 能够快速响应外部中断:这要求,硬件上要有较高的中断机制,软件上要使“封中”的时间间隔尽量短,以免贻误时机。
(4) 快速的任务分派能力:尽量减少任务切换时间开销,使得一个任务完成后可以较快地切换到下一个任务去。 10.抢占方式和非抢占方式都可以用于实时系统中。能够使用的算法有:轮转算法(RR)和优先级调度算法(HPF);不可以使用的算法有:先进先出(FIFO)和短进程优先算法(SPF)。
11.在多处理机系统中,有代表性的线程调度方式有:
(1) 自调度方式:诸多CPU可以共享同一就绪队列,从中获取就绪线程运行。 (2) 成组调度方式:由系统将若干相关的线程同时分配到多台CPU上运行。线程与CPU一一对应。
(3) 专用处理机分配方式:将若干同属于一个应用程序的线程分配到一组CPU上。让这组CPU专门处理它们。
12.调度方式的比较如下:
- 26 -
(1) 自调度方式中,就绪队列与单机的相同,调度算法也与之相同。系统没有集中调度机制,任何CPU都可调用系统的调度例程去选择一个线程。只要就绪队列不空,就不会有空闲的CPU。它存在的问题是,多CPU共享一个就绪队列将产生瓶颈;各线程在其生命周期中可能要换好几台CPU,每次更换都要将CPU中的高速缓存(Cache)重新拷入现场数据,造成效率低下;由于合作的一组线程很难同时获得CPU,一些运行的线程只好阻塞等待未获得CPU的线程,所以线程切换频繁。
(2) 成组调度中,合作的各线程可以同时获得CPU,减少因同步造成的阻塞,减少了切换次数。同时,也可减少调度的频率。
13.多优先级的抢占式调度,调度的基本单位是线程。优先级分为3类:每一类共细分32级,以31级为最高级。其中:时间紧迫类为最高类,对应的是实时线程及通信管理等;常规类为中档优先类,对应的是一般线程;空闲时间类为较低类,对应的是紧迫度低的线程。
调度算法:在同一类的同一优先级中采用轮转算法。每当运行完一个时间片就检查是否有更高优先级线程到来,若有便抢占CPU。
14.
(1) 死锁是指多个进程因竞争资源而造成的一种僵持状态。若无外力作用,这些进程都将永远处于阻塞状态,不能再运行下去。
(2) 产生死锁的原因有:资源不足资源、进程推进次序不当。
(3) 产生死锁的必要条件有:互斥条件、请求和保持条件、不可剥夺条件、环路等待条件。
15.
(1) 预防死锁方法,主要是破坏产生死锁的必要条件。该方法是最容易实现的,但系统资源利用率较低。
(2) 避免死锁方法,比较实用的有银行家算法(Banker Algorithm)。该算法需要较多的数据结构,实现起来比较困难,但资源利用率最高。
(3)检测死锁方法是基于死锁定理设计的,定期运行该算法对系统的状态进行检测,发现死锁便予以解除。其中,需要比较一下各种死锁解除方案的代价,找到代价最小的方案。该方法最难实现,资源利用率较高。
16.预防死锁方法是破坏产生死锁的必要条件,主要有:
(1) 摈弃请求和保持条件。采用静态分配方案,一次性地分配给进程所请求的全部资源。进程运行过程中不可再请求新资源。
(2) 摈弃不剥夺条件。采用动态分配方案,进程运行中可以请求新资源。若进程请求资源不能满足时,就应使其释放已占有的资源。
(3) 摈弃环路等待条件。采用动态分配方案,要求进程请求资源时,按资源序号递增(或递减)顺序提出。 17.系统的资源数量为:(10,5,7)。经过一段时间的分配后,资源分配与占用情况见下表所示。
进程 P0 P1 P2 P3 P4 MAX A B C 7 5 3 3 2 2 9 0 2 2 2 2 4 3 3 Allocation A B C 0 1 0 2 0 0 3 0 2 2 1 1 0 0 2 Need Available A B C A B C 7 4 3 1 2 2 6 0 0 0 1 1 4 3 1 3 3 2
(1) Request1(1,0,2):P1请求满足后的占用情况如下。
进程 P0 P1 MAX A B C 7 5 3 3 2 2 Allocation A B C 0 1 0 3 0 2 Need Available A B C A B C 7 4 3 0 2 0 2 3 0 - 27 -
P2 P3 P4 9 0 2 2 2 2 4 3 3 3 0 2 2 1 1 0 0 2 6 0 0 0 1 1 4 3 1
(2)检测系统此刻存在一条安全序列{P1,P3,P4,P0,P2}。检测过程为: 1) 资源可用量(230),不能满足P0,可满足P1。 2) 资源可用量(532),不能满足P2,可满足P3。 3) 资源可用量(743),可满足P4。 4) 资源可用量(745),可满足P0。 5) 资源可用量(755),可满足P2。待其完成后使系统的资源可用量达到初始值(10,
5,7)。
(3)Request4(3,3,0):P4的请求超过系统当前的可用量(2,3,0),应推迟分配。 (4)Request0(0,1,0):P0请求满足后的占用情况如下:
进程 P0 P1 P2 P3 P4 MAX A B C 7 5 3 3 2 2 9 0 2 2 2 2 4 3 3 Allocation A B C 0 2 0 3 0 2 3 0 2 2 1 1 0 0 2 Need Available A B C A B C 7 3 3 0 2 0 6 0 0 0 1 1 4 3 1 2 2 0
检测系统此刻存在安全序列{P1,P3,P4,P0,P2}。
1) 资源可用量(220),不能满足P0,可满足P1。 2) 资源可用量(522),不能满足P2,可满足P3。 3) 资源可用量(733),可满足P4。 4) 资源可用量(735),可满足P0。 5) 资源可用量(755),可满足P2。待其完成后使系统的资源可用量达到初始值
(10,5,7)。
- 28 -
第5章 存储器管理
5.3 习题
5.3.1 选择最合适的答案
1.分页存储管理的存储保护是通过( )完成的.
A.页表(页表寄存器) B.快表 C.存储键 D.索引动态重定 2.把作业地址空间中使用的逻辑地址变成内存中物理地址称为( )。 A、加载 B、重定位 C、物理化 D、逻辑化 3.在可变分区存储管理中的紧凑技术可以---------------。 A.集中空闲区 B.增加主存容量 C.缩短访问时间 D.加速地址转换
4.在存储管理中,采用覆盖与交换技术的目的是( )。 A.减少程序占用的主存空间 B.物理上扩充主存容量 C.提高CPU效率 D.代码在主存中共享 5.存储管理方法中,( )中用户可采用覆盖技术。 A.单一连续区 B. 可变分区存储管理 C.段式存储管理 D. 段页式存储管理 6.把逻辑地址转换成物理地址称为( )。
A.地址分配 B.地址映射 C.地址保护 D.地址越界 7.在内存分配的“最佳适应法”中,空闲块是按( )。 A.始地址从小到大排序 B.始地址从大到小排序 C.块的大小从小到大排序 D.块的大小从大到小排序
8.下面最有可能使得高地址空间成为大的空闲区的分配算法是( )。 A.首次适应法 B.最佳适应法 C.最坏适应法 D.循环首次适应法
9.那么虚拟存储器最大实际容量可能是( ) 。 A.1024K B.1024M C.10G D.10G+1M
10.用空白链记录内存空白块的主要缺点是( )。 A.链指针占用了大量的空间
B.分配空间时可能需要一定的拉链时间 C.不好实现“首次适应法” D.不好实现“最佳适应法”
11.一般而言计算机中( )容量(个数)最多.
A.ROM B.RAM C.CPU D.虚拟存储器 12.分区管理和分页管理的主要区别是( )。 A.分区管理中的块比分页管理中的页要小 B.分页管理有地址映射而分区管理没有 C.分页管理有存储保护而分区管理没有
D.分区管理要求一道程序存放在连续的空间内而分页管理没有这种要求。 13.静态重定位的时机是( )。
A.程序编译时 B.程序链接时 C.程序装入时 D.程序运行时
14.通常所说的“存储保护”的基本含义是( )
A.防止存储器硬件受损 B.防止程序在内存丢失 C.防止程序间相互越界访问 D.防止程序被人偷看
15.能够装入内存任何位置的代码程序必须是( )。 A.可重入的 B.可重定位 C.可动态链接 D.可静态链接
- 29 -
16.虚存管理和实存管理的主要区别是( )。
A.虚存区分逻辑地址和物理地址,实存不分;
B.实存要求一程序在内存必须连续,虚存不需要连续的内存; C.实存要求一程序必须全部装入内存才开始运行,虚存允许程序在执行的过程中逐步装入;
D.虚存以逻辑地址执行程序,实存以物理地址执行程序; 17.在下列有关请求分页管理的叙述中,正确的是( )。 A.程序和数据是在开始执行前一次性装入的 B.产生缺页中段一定要淘汰一个页面 C.一个被淘汰的页面一定要写回外存
D.在页表中要有“中段位”.“访问位”和“改变位”等信息 18.LRU置换算法所基于的思想是( )。
A.在最近的过去用得少的在最近的将来也用得少 B.在最近的过去用得多的在最近的将来也用得多 C.在最近的过去很久未使用的在最近的将来会使用
D.在最近的过去很久未使用的在最近的将来也不会使用 19.在下面关于虚拟存储器的叙述中,正确的是( )。
A.要求程序运行前必须全部装入内存且在运行过程中一直驻留在内存 B.要求程序运行前不必全部装入内存且在运行过程中不必一直驻留在内存 C.要求程序运行前不必全部装入内存但是在运行过程中必须一直驻留在内存 D.要求程序运行前必须全部装入内存但在运行过程中不必一直驻留在内存 20.在请求分页系统中,页表中的改变位是供( )参考的。 A.页面置换 B.内存分配 C.页面换出 D.页面调入
21.在请求分页系统中,页表中的访问位是供( )参考的。 A.页面置换 B.内存分配 C.页面换出 D.页面调入
22.在请求分页系统中,页表中的辅存始地址是供( )参考的? A.页面置换 B.内存分配 C.页面换出 D.页面调入 23.适应于请求段的内存分配方法是( )。
A.首次适应和最佳适应 B.固定分区和可变分区 C.首次适应和固定分区 C.最佳适应和可变分区
24.在请求分页管理中,已修改过的页面再次装入时应来自( )。 A.磁盘文件区 B.磁盘对换区 C.后备作业区 D.I/O缓冲池
25.选择在最近的过去使用次数最少的页面予以淘汰的算法称为( )。 A.Opt. B.LRU C.MFU D.LFU
26.选择在最近的过去最久未访问的页面予以淘汰的算法称为( )。 A.Opt. B.LRU C.MFU D.LFU 27.程序动态链接的时刻是( )。
A.编译时 B.装入时 C.调用时 D.紧凑时 28.虚存的可行性基础是( )。
A.程序执行的离散性 B.程序执行的顺序性 C.程序执行的局部性 D.程序执行的并发性 29.虚存最基本的特征是( )。
A.一次性 B.多次性 C.交换性 D.离散性
30.在下列关于虚存实际容量的说法中,正确的是( )。 A.等于外存(磁盘)的容量 B.等于内.外存容量之和
C.等于CPU逻辑地址给出的空间的大小
- 30 -