计算机操作系统|汤小丹|第四版|习题答案(四)

1.为什么要配置层次存储器?

(1)设置多个存储器可以使存储器两端的硬件能并行工作。
(2)采用多级存储系统,特别是Cache技术,这是一种减轻存储器带宽对系统性能影响的最佳结构方案。
(3)在微处理机内部设置各种缓冲存储器,以减轻对存储器存取的压力。增加CPU中寄存器的数量,也可大大缓解对存储器的压力。

2.可采用哪几种方式将程序装入内存?它们分别适用于何种场合?

(1)首先由编译程序将用户源代码编译成若干目标模块,再由链接程序将编译后形成的目标模块和所需的库函数链接在一起,组成一个装入模块,再由装入程序将装入模块装入内存;
(2)装入模块的方式有:绝对装入方式,可重定位方式和动态运行时装入方式;
(3)绝对装入方式适用于单道程序环境下;
(4)可重定位方式适用于多道程序环境下;
(5)动态运行时装入方式也适用于到多道程序环境下。

3.何谓静态链接?静态链接时需要解决两个什么问题?

在程序运行之前,先将各目标模块及它们所需的库函数连接成一个完整的装配模块,以后不再拆开。这种事先进行连接的方式称为静态链接方式。
要解决两个问题:对相对地址进行修改;变换外部调用符号

4.何谓装入时动态链接?装入时动态链接方式有何优点?

这是指将用户源程序编译后所得到的一组目标模块,在装入内存时,采用边装入边链接的链接方式。
优点:便于修改和更新;便于实现对目标模块的共享。

5.何谓运行时动态链接?运行时动态链接方式有何优点?

将某些模块的链接推迟到程序执行时才进行。
优点:加快程序的装入过程;节省大量的内存空间。

6.在动态分配方式中,应如何将各空闲分区链接成空闲分区链?

为了实现对空闲分区的分配和链接,在每个分区的起始部分设置一些用于控制分区分配的信息,以及用于链接各分区所用的前向指针,在分区尾部则设置一后向指针。通过前、后向链接指针,可将所有的空闲分区链接成一个双向链。

7.为什么要引入动态重定位?如何实现?

在动态运行时转入的方式中,作业装入内存后的所有地址仍然都是相对逻辑地址。而将相对地址转换为绝对(物理)地址的工作被推迟到程序指令要真正执行时进行。为使地址的转换不会影响到指令的执行速度,必须有硬件地址变换机构的支持,程序在执行时,真正访问的内存地址是相对地址与重定位寄存器中的地址相加而形成的。
地址变换过程是在程序执行期间,随着对每条指令或数据的访问自动进行的,故称为动态重定位。当系统对内存进行了“紧凑”,而使若干程序从内存的某处移至另一处时,不需对程序做任何修改,只要用该程序在内存的新起始地址去置换原来的起始地址即可。

8.什么是基于顺序搜索的动态分区分配算法?它可分为哪几种?

依次搜索空闲分配分区链上的空闲分区,去寻找一个其大小能满足要求的分区,就是基于顺序搜索的动态分区分配算法。
分为四种:首次适应算法、循环首次适应算法、最佳适应算法、最坏适应算法。

9.在采用首次适应算法回收内存中,可能出现哪几种情况?应怎样处理这些情况?

1、回收区与插入点的前一个空闲分区F1相邻接,此时应将回收区与插入点的前一分区合并,不必为回收分区分配新表项,而只须修改其前一分区F1的大小。
2、回收区与插入点的后一个空闲分区F2相邻接,此时应将两分区合并,形成新的空闲分区,但用回收区的首址作为新空闲分区的首址,大小为两者之和。
3、回收区同时与插入点的前、后两个分区邻接,此时将三个分区合并,使用F1的表项和F1的首址,取消F2的表项,大小为三者之和。
4、回收区既不与F1邻接,又不与F2邻接。这时应为回收区单独建立一新表项,添写回收区的首址和大小,并根据其首址插入到空闲链中的适当位置。

10.什么是基于索引搜索的动态分区分配算法?它可分为哪几种?

我们把空闲分区按照某种属性(通常是大小)分类,把每一类都链接起来形成一个链表,建立一个表把每类链表的相关信息写进去以供索引,按照这个数据分配空闲分区的算法叫做基于索引搜索的动态分区分配算法。
它分为快速适应算法、伙伴系统、哈希算法。

11.令buddyk(x)为大小2k、地址为x的块的伙伴系统地址,试写出buddyk(x)的通用表达式。

P132

12.分区存储管理中常用哪些分配策略?比较它们的优缺点。

固定分区存储管理:
其基本思想是将内存划分为若干固定大小的分区每个分区中最多只能装入一个作业。当作业申请内存时系统按一定的算法为其选择一个适当的分区并装入内存运行。由于分区大小是事先固定的因而可容纳作业的大小受到限制而且当用户作业的地址空间小于分区的存储空间时造成存储空间浪费。
可变分区存储管理:
可变分区存储管理不是预先将内存划分分区而是在作业装入内存时建立分区使分区大小正好与作业要求的存储空间相等。这种处理方式使内存分配有较大的灵活性也提高了内存利用率。但是随着对内存不断地分配、释放操作会引起存储碎片的产生。

13.为什么要引入对换?对换可分为哪几种类型?

一方面,在内存中的某些进程由于事情尚未发生而被阻塞运行,但它却占用了大量的内存空间,甚至有可能出现内存中所有进程都被阻塞,而无可运行之进程,迫使CPU停止下来等待的情况;另一方面,却又有着许多作业,因内存空间不足,一直驻留在外存上,而不能进入内存运行。为此引入对换。
整体对换和页面(分段)对换。

14.对文件管理区的目标和对对换空间管理的目标有何不同?

对文件管理区的主要目标是提高文件存储空间的利用率,然后才是提高对文件的访问速度。
对对换空间管理的主要目标,是提高进程换入和换出的速度,然后才是提高文件存储空间的利用率。

15.为实现对换,系统应具备哪几方面的功能?

对对换空间的管理、进程的换入、进程的换出

16.在以进程为单位进行对换时,每次是否都将整个进程换出?为什么?

在选择换出进程后,在对进程换出时,只能换出非共享的程序和数据段,而对于那些共享的程序和数据段,只要还有进程需要它,就不能被换出。

17.基于离散分配时所用的基本单位不同,可将离散分配分为哪几种?

分页存储管理方式、分段存储管理方式、段页式存储管理方式。

18.什么是页面?什么是物理块?页面的大小应如何确定?

将用户程序的地址空间分为若干个固定大小的区域,称为“页”或“页面”。

19.什么是页表?页表的作用是什么?

在分页系统中,允许将进程的各个页离散地存储在内存的任一物理块中,为保证进程仍然能够正确地运行,即能在内存中找到每个页面所对应的物理块,系统又为每个进程建立了一张页面映像表,简称页表。
页表的作用是实现从页号到物理块号的地址映射。

20.为实现分页存储管理,需要哪些硬件支持?

地址变换机构。

21.在分页系统中是如何实现地址变换的?

利用地址变换机构实现从逻辑地址到物理地址的转变换,通过页表来实现从页号到物理块号的变换,将逻辑地址中的页号转换为内存中的物理块号。

22.具有快表时是如何实现地址变换的?

在CPU给出有效地址后,由地址变换机构自动地将页号P送入高速缓冲寄存器,并将此页号与高速缓存中的所有页号进行比较,若其中有与此所对应的物理块号,便表示索要访问的页表项在快表中。于是,可直接从快表中独处改也所对应的物理块号,并送到物理地址寄存器中。如在快表中未找到对应的页表项,则还需再访问内存中的页表,找到后,把从页表项中独处的物理块号送往地址寄存器;同时,再将此页表项存入快表的一个寄存器单元中,亦即,重新修改快表。但如果联想寄存器已满,则OS必须找到一个老的且已被认为是不再需要的页表项,将它换出。

23.较详细地说明引入分段存储管理是为了满足用户哪几方面的需要?

方便编程、信息共享、信息保护、动态增长、动态链接。

24.在具有快表的段页式存储管理中,如何实现地址变换?

P151

25.为什么说分段系统比分页系统更易于实现信息的共享和保护?

分页系统的每个页面是分散存储的,为了实现信息共享和保护,页面之间需要一一对应,为此需要建立大量的页表项;而分段系统的每个段都从0编址,并采用一段连续的地址空间,在实现共享和保护时,只需为要共享和保护的程序设置一个段表项,将其中的基址与内存地址一一对应就能够实现。

26.分页和分段存储管理有何区别?

(1)页是信息的物理单位,分页是为了实现离散分配方式,以削减内存的外部零头,提高内存的利用率。段则是信息的逻辑单位,它含有一组相对完整的信息。
(2)页的大小固定且由系统决定,由系统把逻辑地址划分为页号和页内地址两部分,是由机械硬件实现的,因而在系统中只能有一种大小的页面;而段的长度却不固定,决定于用户所编写的程序,通常由编译程序在对原程序进行编译时,根据信息的性质来划分。
(3)分页的作业地址空间是一维的,而分段作业地址空间则是二维的。

27.试全面比较连续分配和离散分配方式。

(1)连续分配是指为一个用户程序分配一个连续的地址空间,包括单一和分区两种分配方式。单一方式将内存分为系统区和用户区,最简单,只用于单用户单任务操作系统;分区方式分固定和动态分区。
(2)离散分配方式分为分页、分段和段页式存储管理。分页式存储管理旨在提高内存利用率,分段式存储管理旨在满足用户(程序员)的需要,段页式存储管理则将两者结合起来,具有分段系统便于实现、可共享、易于保护和动态链接等优点,又能像分页系统很好解决外部碎片及为各段可离散分配内存等问题,是比较有效的存储管理方式。

你可能感兴趣的:(操作系统,操作系统)