操作系统第四章答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第四章存储器管理
1. 为什么要配置层次式存储器?
答:这是因为:a.设置多个存储器可以使存储器两端的硬件能并行工作。
b.采用多级存储系统,特别是Cache 技术,这是一种减轻存储器带宽对系统性能影响的最佳结构方案。
c.在微处理机内部设置各种缓冲存储器,以减轻对存储器存取的压力。
增加CPU 中寄存器的数量,也可大大缓解对存储器的压力。
2、可采用哪几种方式将程序装入内存?它们分别适用于何种场合?P119
答:(1)绝对装入方式:绝对装入方式只能将目标模块装入到内存中事先指定的位置。
在多道程序环境下,编译程序不可能预知所编译的目标模块应放在内存的何处,困此,绝对装入方式只适用于单道程序环境。
(2)可重定位装入方式:在多道程序环境下,所得到的目标模块的起始地址通常是从0 开始的,程序中的其它地址也都是相对于起始地址计算的。
此时应采用可重定位装入方式,根据内存的当前情况,将装入模块装入到内存的适当位置。
(3)动态运行时装入方式:可重定位装入方式可将装入模块装入到内存中任何允许的位置,故可用于多道程序环境;但这种方式并不允许程序运行时在内存中移动位置。
3、何谓静态链接?何谓装入时动太链接和运行时的动态链接?P120
答:1、静态链接:在程序运行之前,先将各目标模块及它们所需的库函数,链接成一个完整的装配模块,以后不再拆开,我们把这种事先进行链接的方式称为静态链接方式.2、装入时动态链接:这是指将用户源程序编译后所得到的一组目标模块,在装入内存时,采用边装入边链接的链接方式。
3、运行时动态链接:这是指对某些目标模块的链接,是在程序执行中需要该(目标)模块时,才对它进行的链接。
4、在进行程序链接时,应完成哪些工作?p120
答:静态链接、装入时动态链接、运行时动态链接;
5、在动态分区分配方式中,应如何将各空闲分区链接成空闲分区链?P123 答:为了实现对空闲分区的分配和链接,在每个分区的起始部分,设置一些用于控制分区分配的信息,以及用于链接各分区所用的前向指针;在分区尾部则设置一后向指针,通过前、后向链接指针,可将所有的空闲分区链接成一个双向链,为了检索方便,在分区尾部重复设置状态位和分区大小表目。
当分区被分配出去以后,把状态位由“0”改为“1”,此时,前、后向指针已无意义。
6、为什么要引入动态重定位?如何实现?P127 P128
答:a. 为了在程序执行过程中,每当访问指令或数据时,将要访问的程序或数据的逻辑地址转换成物理地址,引入了动态重定位.
b. 可在系统中增加一个重定位寄存器,用它来装入(存放)程序在内存中的起始地址,程序在执行时,真正访问的内存地址是相对地址与重定位寄存器中的地址相加而形成的,从而实现动态重定位.
7、在采用首次适应算法回收内存时,可能出现哪几种情况?应怎样处理这些情况?P125
答:1、回收区与插入点的前一个空闲区相邻接,此时应将回收区与插入点的前一分区合并,不必为回收区分配新表项,而只需修改其前一分区的大小。
2、回收区与插入点的后一个空闲区相邻接,此时可将两分区合并,形成新的空闲区,但用回收区的首址作为新空闲区的首址,大小为两者之和。
3、回收区同时与插入点的前、后两个空闲区邻接,此时可将三个分区合并,使用前一个分区的表项和首址,取消后一个分区的表项,大小为三者之和。
4、回收区既不与前一个分区相邻接,也不与后一个分区相邻接,这时应为回收区单独建立一新表项,填写回收区的首址和大小,并根据其首址插入到空闲链中的适应位置。
9. 分区存储管理中常采用哪些分配策略?比较它们的优缺点。
P123
答:分区存储管理中常采用的分配策略有:首次适应算法、循环首次适应算法、最佳适应算法、最坏适应算法。
a.首次适应算法的优缺点:保留了高址部分的大空闲区,有利于后到来的大型作业的分配;低址部分不断被划分,留下许多难以利用的、小的空闲区,且每次分区分配查找时都是从低址部分开始,会增加查找时的系统开销。
b.循环首次适应算法的优缺点:使内存中的空闲分区分布得更为均匀,减少了查找时的系统开销;缺乏大的空闲分区,从而导致不能装入大型作业。
c.最佳适应算法的优缺点:每次分配给文件的都是最适合该文件大小的分区;内存中留下许多难以利用的小的空闲区。
d.最坏适应算法的优缺点:给文件分配分区后剩下的的空闲区不至于太小,产生碎片的几率最小,对中小型文件分配分区操作有利;使存储器中缺乏大的空闲区,对大型文件的分区分配不利。
10. 在系统中引入对换后可带来哪些好处?p129
答:能将内存中暂时不运行的进程或暂时不用的程序和数据,换到外存上,以腾出足够的内存空间,把已具备运行条件的进程或进程所需的程序和数据换入内存,从而大大地提高了内存的利用率。
11、为实现对换,系统应具备哪几方面的功能?P129
答:兑换空间的管理,进程的换出,进程的换入。
12、在以进程为单位进行对换时,每次是否都将整个进程换出?为什么?P129 答:a. 以进程为单位进行对换时,每次都将整个进程换出;
b. 目的为了解决内存紧张的问题,提高内存的利用率.
13、为实现分页存储管理,需要哪些硬件支持?P144
答:需要一台具有一定容量的内存及外存的计算机系统外,页表机制、缺页中断机构以及地址变换机构。
14、较详细地说明引入分段存储管理是为了满足用户哪几方面的需要。
P136 答:方便编程、信息共享、信息保护、动态增长、动态链接。
15、在具有快表的段页式存储管理方式中,如何实现地址变换?
答:物理地址=该段在主存的起始地址+页框号*大小+页内地址。
16. 为什么说分段系统较之分页系统更易于实现信息共享和保护?
答:a.对于分页系统,每个页面是分散存储的,为了实现信息共享和保护,则页面之间需要一一对应起来,为此需要建立大量的页表项;
b.而对于分段系统,每个段都从0 开始编址,并采用一段连续的地址空间,这样在实现共享和保护时,只需为所要共享和保护的程序设置一个段表项,将其中的基址与内存地址一一对应起来即可。
17、分页和分段存储管理有何区别?P138
答:主要表现在(1)页是信息的物理单位,分页是为实现离散分配方式,以消减内存的外零头,提高内存的利用率。
或者说,分页仅仅是由于系统管理的需要而不是用户的需要。
段则是信息的逻辑单位,它含有一组其意义相对完整的信息。
分段的目的是为了能更好地满足用户的需要。
(2)页的大小固定且由系统决定,由系统把逻辑地址划分为页号和页内地址两部分,是由机器硬件实现的,因而在系统中只能有一种大小的页面;根据信息的性质来划分。
(3)分页的作业地址空间是一维的,即单一的线性地址空间,程序员只需利用一个记忆符,即可表示一个地址;而分段的作业地址空间则是二维的,程序员在标识一个地址时,即需给出段名,又需给出段内地址。
18. 试全面比较连续分配和离散分配方式。
P130
答:(1)连续分配是指为一个用户程序分配一个连续的地址空间,包括单一连续分配方式和分区式分配方式,前者将内存分为系统区和用户区,系统区供操作系统使用,用户区供用户使用,是最简单的一种存储方式,但只能用于单用户单任务的操作系统中;分区式分配方式分为固定分区和动态分区,固定分区是最简单的多道程序的存储管理方式,由于每个分区的大小固定,必然会造成存储空间的浪费;动态分区是根据进程的实际需要,动态地为之分配连续的内存空间,常用三种分配算法: 首次适应算法,该法容易留下许多难以利用的小空闲分区,加大查找开销;循环首次适应算法,该算法能使内存中的空闲分区分布均匀,但会致使缺少大的空闲分区;最佳适应算法,该算法也易留下许多难以利用的小空闲区;(2)离散分配方式基于将一个进程直接分散地分配到许多不相邻的分区中的思想,分为分页式存储管理,分段存储管理和段页式存储管理. 分页式存储管理旨在提高内存利用率,满足系统管理的需要,分段式存储管理则旨在满足用户(程序员)的需要,在实现共享和保护方面优于分页式存储管理,而段页式存储管理则是将两者结合起来,取长补短,即具有分段系统便于实现,可共享,易于保护,可动态链接等优点,又能像分页系统那样很好的解决外部碎片的问题,以及为各个分段可离散分配内存等问题,显然是一种比较有效的存储管理方式;19、虚拟存储器有哪些特征?其中最本质的特征是什么?P144
答:多次性、对换性、虚拟性;值得说明的是,虚拟性是以多次性和对换性为基础的,或者说,仅当系统允许将作业分多次调入内存,并能将内存中暂时不运行的程序和数据换至盘上时,才有可能实现虚拟存储器;而多次性和对换性又必须建立在离散分配的基础上。
20. 实现虚拟存储器需要哪些硬件支持?p143
答:(1)对于为实现请求分页存储管理方式的系统,除了需要一台具有一定容量的内存及外存的计算机外,还需要有页表机制,缺页中断机构以及地址变换机构;(2)对于为实现请求分段存储管理方式的系统,除了需要一台具有一定容量的内存及外存的计算机外,还需要有段表机制,缺段中断机构以及地址变换机构;
21、实现虚拟存储器需要几个关键技术?P143
答:1、分页请求系统 2、请求分段系统
22、在请求分页系统中,页表应包括哪些数据项?每项的作用是什么?P145 答:1、页号:将一个进程的逻辑地址空间分成若干个大小相等的片,成为页面或页,并对各页加以编号。
2、物理块号:内存空间分成与页大小相等的物理块,对物理块进行编号。
3、状态位:用于指示该页是否已调入内存,供程序访问时参考。
4、访问字段:用于记录本页在一段时间内被访问的次数,或记录本页最近已有多长时间未被访问。
5、修改位:表示该页调入内存是否被修改过。
6、外存地址:用于指示该页在外存上的地址,通常是物理块号,供调入该页时参考。
23、在请求分页系统中,应从何处将所需页面调入内存?P149
答:外存。
24、在请求分页系统中,常采用哪几种页面置换算法?P150
答:先来先服务,最近最久未使用,最佳置换算法。
25. 在请求分页系统中,通常采用哪种页面分配方式?p147
答:三种分配方式:固定分配局部置换、可变分配全局置换、可变分配局部置换。
26. 在一个请求分页系统中,采用FIFO页面置换算法时,假如一个作业的页面走向为4、3、2、1、4、3、5、4、3、2、1、5,当分配给该作业的物理块数M分别为3 和4时,试计算在访问过程中所发生的缺页次数和缺页率,并比较所得结果。
答:4 3 2 1 4 3 5 4 3 2 1 5
M=3 4 4 4 1 1 1 5 5 5
3 3 3
4 4 4 2 2
2 2 2
3 3 3 1
M=4 4 4 4 4 5 5 5 5 1 1
3 3 3 3
4 4 4 4 5
2 2 2 2
3 3 3 3
1 1 1 1
2 2 2
M=3 时,采用FIFO 页面置换算法的缺页次数为9 次,缺页率为75%;
M=4 时,采用FIFO 页面置换算法的缺页次数为10 次,缺页率为83%。
由此可见,增加分配给作业的内存块数,反而增加了缺页次数,提高了缺页率,这种现象被称为是Belady 现象。
27、实现LRU算法所需要的硬件支持是什么?P152
答:寄存器、栈。
28. 试说明改进型Clock 置换算法的基本原理。
P153
答:基本原理:在将一个页面换出时,如果该页已被修改过,便须将该页重新写回到磁盘上;但如果该页未被修改过,则不必将它写回磁盘上。
在改进型算法中,除需考虑页面的使用情况外,还须再增加一个因素,即置换代价,这样,选择页面换出时,既要是未使用过的页面,又要是未被修改过的页面。
29、说明请求分段系统中的缺页中断处理过程?P156
答:在请求分段系统中,每当发现运行进程所要访问的段尚未调入内存时,便由缺段中断机构产生一缺段中断信号,进入操作系统后由缺段中断处理程序将所需的段调入内存。
缺段中断机构与缺页中断机构类似,它同样需要在一条指令的执行期间,产生和处理中断,以及在一条指令执行期间,可能产生多次缺段中断。
缺段中断的处理过程如图4-32所示。
30、如何实现分段共享?P157
答:对于一个共享段,不同的进程可以各用不同的段号去共享该段。