计算机操作系统习题5参考答案.docx
《计算机操作系统习题5参考答案.docx》由会员分享,可在线阅读,更多相关《计算机操作系统习题5参考答案.docx(15页珍藏版)》请在冰豆网上搜索。
计算机操作系统习题5参考答案
计算机操作系统习题5参考答案(总8页)
习题5参考答案
Ⅰ问答题
1.存储管理的主要功能是什么
答:
(1)主存空间的分配与回收。
系统按照一定的算法把某一空闲的存储空间分配给作业或进程;用户不需要时,及时回收,以供其它用户程序使用。
(2)地址转换(地址重定位)。
把作业地址空间中使用的逻辑地址转换成内存空间中的物理地址。
(3)主存空间的共享和保护。
可用的主存空间可由两个或多个进程共享。
同时要保护系统程序区不被用户有意或无意的侵犯,不允许用户程序读写不属于自己地址空间的数据,避免各道程序间相互干扰。
特别是当一道程序发生错误时,不至于影响其它程序的运行。
(4)主存空间的扩充。
使用虚拟存储或自动覆盖技术提供比实际内存更大的空间。
2.指出逻辑地址与物理地址的不同点。
答:
用户的源程序一旦编译之后,每个目标模块都以0为基地址进行编址,这种地址称为逻辑地址或相对地址。
为了便于CPU访问,内存中的每个物理存储单元都有一个编号,这个编号称为内存地址,即物理地址(也称绝对地址)。
3.何谓地址转换(重定位)有哪些方法可以实现地址转换
答:
当作业运行时,不能用逻辑地址在内存中读取信息,必须把作业地址空间中使用的逻辑地址转换成内存空间中的物理地址,这种转换称为地址转换。
实现地址转换的方法有:
静态地址转换和动态地址转换。
4.简述什么是覆盖什么是交换覆盖和交换的区别是什么
答:
覆盖技术主要是指同一主存区可以被不同的程序段重复使用。
交换,就是系统根据需要把主存中暂时不运行的某个(或某些)作业部分或全部移到外存,而把外存中的某个(或某些)作业移到相应的主存区,并使其投入运行。
交换是由操作系统完成,用户并不知道。
操作系统按一定的策略采用“强占”和“礼让”的方法,把内存部分内容暂时放到硬盘交换区中。
覆盖是由用户控制,操作系统提供覆盖机制,用户给出该程序的覆盖结构。
覆盖机构将整个作业分为常驻和覆盖两部分。
子程序不会同时调入内存。
用户只要将最大的子程序作为覆盖区告诉系统即可。
5.简述固定分区存储管理和可变分区存储管理的区别。
固定式分区中可采用哪几种办法使主存空间的利用率得到改善
答:
(1)固定分区存储管理:
分区大小是事先固定的,因而可容纳作业的大小受到限制,而且当用户作业的地址空间小于分区的存储空间时,造成存储空间浪费。
(2)可变分区存储管理:
不是预先将内存划分分区,而是在作业装入内存时建立分区,使分区的大小正好与作业要求的存储空间相等。
这种处理方式使内存分配有较大的灵活性,也提高了内存利用率。
但是随着对内存不断地分配、释放,操作会引起存储碎片的产生。
固定式分区中可采用以下办法使主存空间的利用率得到改善。
(1)划分分区时按分区的大小顺序排列。
(2)根据作业的大小和频繁程度来划分分区。
(3)按照作业对主存空间的需求量排成多个作业队列,规定每个作业队列中的各作业只能依次装入对应的指定分区中。
6.试述可变分区管理中的最先适应算法、最佳适应算法以及最坏适应算法的原理,并比较其优缺点。
答:
①首次(最先)适应分配算法是将未分配分区表按地址递增的顺序排列,每次分配时,从空闲分区表的第一个表目开始顺序查找空闲分区表,找到第一个能满足作业长度要求的空闲区,分割这个空闲区,把能够满足要求的空闲区分配给作业。
该算法简单,尽可能地利用了低地址空间,把较大的空闲分区保留在内存高端,有利于大作业的分配。
但随着低端分区不断地划分而产生过多的小地址碎片,每次分配时查找时间开销会增大,同时降低了主存空间的利用率。
②最佳适应分配算法是将未分配分区表按照分区的大小从小到大进行排列,每次分配时,自表头顺序开始查找到第一个满足要求的空闲分区。
这样可保证不去分割一个更大的区域,使装入大作业时比较容易得到满足。
该算法的特点是可以解决大作业的分配问题;但是容易产生不可利用的小空闲区,降低了主存空间的利用率。
③最差(坏)适应分配算法是将未分配分区表按照分区的大小从大到小进行排列,每次分配时,只要看第一个分区能否满足作业要求,若可以,将该分区分配给作业使用,否则作业不能执行。
该算法的优点是查找效率很高;可使剩下的空闲区不至于太小,对中、小作业有利,对于大作业不利。
7.请比较分页式存储管理和分段式存储管理。
答:
(1)分页是信息的物理单位,与源程序的逻辑结构无关,用户不可见。
分页是为了实现离散的分配方式,以减少主存“碎片”,提高主存的利用率。
分段是信息的逻辑单位,由源程序的逻辑结构所决定,段长是根据用户需要来规定,段起始地址可以从任何主存地址开始。
分段的目的是为了能更好地满足用户的需要。
(2)页的大小固定且由系统确定,把逻辑地址划分为页号和页内地址两部分,是由机器硬件实现的,因而一个系统只能有一种大小的页面。
段的长度却不固定,取决于用户所编写的程序,通常由编译程序在对源程序进行编译时,根据信息的性质来划分。
(3)分页的作业地址空间是一维的,即单一的线性地址空间,程序员只需要利用一个记忆符,即可表示一个地址。
分段的作业地址空间是二维的,程序员在标识一个地址时,既需给出段名(号),又需给出段内地址。
8.分页式存储管理中,决定页面大小的主要因素是什么试分析大页面与小页面各自的优点。
答:
(1)页面大小的设置主要因素是与系统的硬件有关。
(2)如果页面较小,虚存的页面数就增加,页表也随着扩大,占用的空间多,但内碎片小,浪费少;如果页面较大,可以减少页表所耗费的存储空间,有利于提高I/O的效率,但内部碎片大,浪费多。
9.交换扩充了内存,因此,交换也实现了虚拟存储器,这句话是否正确
答:
不对。
交换是把各个进程完整地调入内存,运行一段时间后,再放回磁盘上。
虚拟存储器是使进程在只有一部分在内存的情况下也能运行。
交换是把整个进程换入换出内存。
而虚拟存储器的基本思想是程序的大小可以超过物理内存的大小,操作系统把程序的一部分调入内存运行,而把其它部分保留在磁盘上。
故交换并没有实现虚拟存储器。
10.为什么要采用虚拟存储器管理其工作原理和理论依据又是什么实现虚拟存储器必须要有哪些硬件/软件设施支撑。
答:
(1)采用虚拟存储器是为了解决小主存运行大作业的问题。
(2)根据局部性原理,一个作业在运行之前,仅将当前要运行的那部分页面或段,先装入内存便可启动运行,其余部分暂时留在磁盘上。
程序在运行时如果它所要访问的页(段)已调入内存,便可继续执行下去;但如果程序所要访问的页(段)尚未调入内存,此时利用操作系统所提供的请求调页(段)功能,将它们调入内存,以使进程能继续执行下去。
当调入页(段)时,如果内存已满,无法再装入新的页(段),则还须再利用页(段)的置换功能,将内存中暂时不用的页(段)调出至磁盘上,腾出足够的内存空间后,再将所要访问的页(段)调入内存,使程序继续执行下去。
(3)主要使用请求分页中断和请求分段两种方法实现。
硬件:
请求分页(段)的页(段)表机制;缺页中断机构;地址转换机构等
软件:
请求调页;页面置换
11.什么是请求页式管理试设计和描述一个请求页式管理时的内存页面分配和回收算法(包括缺页处理部分)。
答:
请求分页存储管理把作业分成大小相等的若干页,称为虚页。
把主存分成与页大小相等的若干块,称为实块(物理块)。
对每个作业限定分给它的主存块数。
在进程开始运行之前,不是装入全部作业,而是先把作业的部分页面装入主存就可以开始运行,作业的其它部分被放在外存中等待需要时才被调入内存。
在请求分页系统中,当进程需要访问某条指令或某个数据时,硬件地址转换机构将根据逻辑地址中的页号去检索内存中的页表,并根据相应页表项的状态位来判断该页是否已经在内存中,若已经装入内存,则可从页表项中得到内存块号,并与页内偏移地址组合成该指令或数据的物理地址,同时还需要修改页表项中的访问字段,若是写操作则还需修改页表中的修改字段;若需要的页没有在内存,则还需要缺页中断机构来产生中断,转向缺页中断处理程序。
12.请求页式管理中有哪几种常用的页面置换算法试比较它们的优缺点。
答:
(1)最佳置换算法OPT可保证获得最低的缺页中断率,是一种理想化的置换算法,性能最好。
它要求操作系统能知道进程“将来”页面的使用情况,但这是不可能实现的,因为程序的执行是不可预测的。
(2)先进先出页面置换算法FIFO总是淘汰最先进入内存的页面,该算法实现简单,只需把一个进程已调入内存的页面,按先后次序链接成一个队列,并设置一个指针,称为替换指针,使它总是指向最老页面。
但该算法与进程实际运行的规律不相适应,没有考虑到动态变化情况,对于某一特定的页面走向,先进先出算法会出现缺页中断率随着被分配的内存块增加反而上升的反常现象即Belady现象。
(3)最近最久未使用置换算法是选择最近最久未使用的页面予以淘汰。
LRU算法是一个相当好的页面置换算法。
13.什么是段式管理它与页式管理有何区别
答:
段式管理是:
(1)在段式存储管理方式中,作业的地址空间按照程序的自然逻辑关系分成若干段,每个段定义了一组逻辑信息,各段长度是不等的,每个段都有自己的名字,都是从0开始编址的一段连续的地址空间。
(2)段式系统的逻辑地址由段号s和段内地址d两部分组成的,分段逻辑地址表示为:
[段号,段内地址]。
(3)段式存储管理的实现可以基于可变分区存储管理的原理,以作业的每一个分段分配一个连续的主存空间。
段与段在内存中可以不相邻接,也实现了离散分配。
(4)主存的分配与回收采用动态重定位。
若装入作业的某段信息找不到足够大的空闲区,可采用移动技术,合并分散的空闲区。
分页和分段的区别有:
(1)分页是信息的物理单位,与源程序的逻辑结构无关,用户不可见。
分段是信息的逻辑单位,由源程序的逻辑结构所决定,段长是根据用户需要来规定。
(2)页的大小固定且由系统确定,把逻辑地址划分为页号和页内地址两部分,是由机器硬件实现的。
段的长度不固定,取决于用户所编写的程序,通常由编译程序在对源程序进行编译时,根据信息的性质来划分。
(3)分页的作业地址空间是一维的。
分段的作业地址空间是二维的。
14.列出存储管理中使用的存储保护方法,并说明每种存储管理都使用哪种存储保护法
答:
计算机中使用的存储保护主要有界地址、存储键等保护方式。
(1)常用的界地址保护有两种。
上下界保护,地址检查机构和基址、限长寄存器和动态地址转换机构。
(2)存储键保护。
具体的每种存储管理方式使用的存储保护方法如下图示:
存储管理方式
使用存储保护方法
单一连续
界地址
固定分区
上下界
可变分区
基址、限长寄存器
基本分页
地址越界
请求分页
地址越界
基本分段
地址越界
请求分段
地址越界
15.在段式存储管理中实现程序共享时,共享段的段号是否一定要相同为什么
答:
不用。
几道作业共享的例行程序可放在一个段中,只要让各道作业的共享部分有相同的基址/限长值就行了,共享的段号不一定相同。
16.叙述段页式存储器的主要优缺点。
答:
段页式存储分配方式既照顾到了用户共享和使用方便的需求,又考虑到了主存的利用率,提高了系统的性能。
段页式存储分配方式的空间浪费要比页式管理的多。
作业各段的最后一页都有可能浪费一部分空间。
另外段表和页表占用的空间都比页式和段式的多,这样就增加了系统开销。
17.在请求分页虚拟存储系统中,若已测得时间利用率为:
CPU20%、分页磁盘%、其它外设50%。
试问哪些措施可以改善CPU的利用率
答:
CPU利用率是指系统整个运行时间里CPU有多少时间是真正用于程序的运算。
由于磁盘的利用率已达到%,说明磁盘空间紧张而影响CPU利用率,因此更换大容量磁盘可以提高CPU利用率。
慢速外设往往同快速CPU不匹配,因此提高I/O设备的速度也可以改善CPU的效率。
此外,在内存中适当增加进程数,可使CPU空闲时间减少,也可以在一定程度上提高CPU的利用率。
18.如果主存中某页正在与外围设备交换信息,那么,发生缺页中断时,可以将该页淘汰吗为什么出现这种情况时,你能提出什么样的处理办法
答:
不能。
因为容易造成程序出错或系统崩溃。
若出现这种情况,首先查找系统有没有空闲页面,若有调入所缺的页。
若没有,执行页面置换算法。
19.说明内碎片与外碎片的区别。
答:
内部碎片就是已经被分配出去(能明确指出属于哪个进程)却不能被利用的内存空间;外碎片指的是还没有被分配出去(不属于任何进程),但由于太小以至无法将它分配给申请内存的新进程。
20.为什么页面的大小总是2的幂
答:
因为计算机采用二进制算法工作。
Ⅱ单项选择题
CDCACCAADA
CBCCDDADAA
BA
Ⅲ应用题
1.在可变分区存储管理下,按地址排列的内存空闲区为:
10K、4K、20K、18K、7K、9K、12K和15K。
对于下列的连续存储区的请求:
(1)12K、10K、9K,
(2)12K、10K、15K、18K。
试问:
使用首次适应算法、最佳适应算法、最差适应算法和循环首次适应算法,哪个空闲区被使用
答:
(1)12K、10K、9K
首次适应算法20K,10K,18K
循环首次适应算法20K,18K,9K
最佳适应算法 12K,10K,9K
最差适应算法20K,18K,15K
(2)12K、10K、15K、18K。
首次适应算法20K,10K,18K,无
循环首次适应算法20K,18K,15K,无
最佳适应算法 12K,10K,15K,18K
最差适应算法20K,18K,15K,无
2.设有一页式存储管理系统,向用户提供的逻辑地址空间最大为16页,每页2048字节,内存总共有8个存储块。
试问逻辑地址至少应为多少位内存空间有多大
答:
2的4次方=16,所以页号占4位,页长为2048=2的11次方,所以页内地址占11位,逻辑地址15位。
存储块有8个,每个存储块对应2048B大小的页框,所以主存空间为16KB。
3.在一分页存储管理系统中,逻辑地址长度为16位,页面大小为4096字节,现有一逻辑地址为2F6AH,且第0、1、2页依次存在物理块5、8、11号中,问相应的物理地址为多少
答:
由题目所给条件可知,本页式系统的逻辑地址结构为:
页号P,页内位移W。
页面大小为4096字节,页内地址占12位,页号占4位.
逻辑地址2F6AH的二进制表示如下:
PW
0010
由此可知逻辑地址2F6AH的页号为2,该页存放在第11号物理块中,用十六进制表示志号为B,所以物理地址为BF6AH。
4.在一次请求页式存储管理系统中,进程P共有5页。
访问串为:
3,2,1,0,3,2,4,3,2,1,0,4时,试采用LRU置换算法和FIFO置换算法,计算当分配给该进程的页面分别为3和4时,访问过程中发生的缺页次数和缺页率,比较所得的结果。
答:
FIFO
页面访问次序
3
2
1
0
3
2
4
3
2
1
0
4
内存块数=3
3
2
1
0
3
2
4
4
4
1
0
0
3
2
1
0
3
2
2
2
4
1
1
3
2
1
0
3
3
3
2
4
4
是否缺页
√
√
√
√
√
√
√
√
√
F=9/12=3/4
LRU
页面访问次序
3
2
1
0
3
2
4
3
2
1
0
4
内存块数=3
3
2
1
0
3
2
4
3
2
1
0
4
3
2
1
0
3
2
4
3
2
1
0
3
2
1
0
3
2
4
3
2
1
是否缺页
√
√
√
√
√
√
√
√
√
√
F=10/12=5/6
FIFO
页面访问次序
3
2
1
0
3
2
4
3
2
1
0
4
内存块数=4
3
2
1
0
0
0
4
3
2
1
0
4
3
2
1
1
1
0
4
3
2
1
0
3
2
2
2
1
0
4
3
2
1
3
3
3
2
1
0
4
3
2
是否缺页
√
√
√
√
√
√
√
√
√
√
F=10/12=5/6
LRU
页面访问次序
3
2
1
0
3
2
4
3
2
1
0
4
内存块数=4
3
2
1
0
3
2
4
3
2
1
0
4
3
2
1
0
3
2
4
3
2
1
0
3
2
1
0
3
2
4
3
2
1
3
2
1
0
0
0
4
3
2
是否缺页
√
√
√
√
√
√
√
√
F=8/12=2/3
5.在请求页式存储管理中,进程访问地址序列为:
10,11,104,170,73,305,180,240,244,445,467,366。
试问:
(1)如果页面大小为100,给出页面访问序列。
(2)进程若分得3个页框,采用FIFO和LRU替换算法,求缺页中断率
答:
(1)即页号的访问序列,10在第0页,104在第1页,所以依次为
0-0-1-1-0-3-。
(2)FIFO先进内存的先换出
0(进入)-0-1(进入)-1-0-3(进入)-1-2(0出)-2-4(1出)-4-3
2/12=%
LRU是最近最少访问的页被换出
0(进入)-0-1(进入)-1-0-3(进入)-1-2(3出)-2-4(2出)-4-3(4出)
3/12=25%
6.一个有快表的请页式虚存系统,设内存访问周期为1微秒,内外存传送一个页面的平均时间为5ms。
如果快表命中率为75%,缺页中断率为10%。
忽略快表访问时间,试求内存的有效存取时间。
答:
快表命中率为75%,缺页中断率为10%,所以内存命中率为15%。
故内存的有效存取时间=1×75%+2×15%+(5000+2)×10%=微秒。
7.假设一个任务被划分成4个大小相等的段,每段有8项的页描述符表,若页面大小为2KB。
试问段页式存储系统中:
(1)每段最大尺寸是多少
(2)该任务的逻辑地址空间最大为多少
(3)若该任务访问到逻辑地址空间5ABC中的一个数据,试给出逻辑地址的格式。
答:
段数为22=4,每段有23=8页,页的大小为211=2KB。
(1)每段最大尺寸为214B=16KB
(2)该任务的逻辑地址空间最大为:
4×16KB=64KB
(3)逻辑地址空间5ABCH,其二进制表示为:
0101101010111100
所以,5ABCH逻辑地址表示为:
0101101010111100,即5ABCH逻辑地址表示为第1段,第3页,位移由后11位给出。
8.有一个程序要把100×100的数组的初值置为“0”,现在假定有两个内存块可以用来存放数组信息,每个主存块的大小为可以存放200个数组元素,数组中的元素按行编址。
两个主存块的初始状态都是空,若程序编制如下:
(1)VarA:
Array[1..100]ofArray[1..100]ofinteger;
fori∶=1to100do
forj∶=1to100do
A[i,j]∶=0
(2)VarA:
Array[1..100]ofArray[1..100]ofinteger;
forj∶=1to100do
fori∶=1to100do
A[i,j]∶=0
当采用LRU页面调度算法时
(1)和
(2)两个程序各会产生多少次缺页
答:
(1)此程序按行为元素赋值,每执行200个赋值语句就产生一次中断,故共产生100/2=50次缺页中断。
(2)此程序按列为元素赋值,每执行两次赋值语句就产生一次中断,故共产生(100/2)×100=5000次缺页中断。