第三章 存储管理

更新时间:2024-04-18 03:41:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

“操作系统概论”习题解答之存储管理

第3章 习题解答

1、解释以下术语:逻辑地址;绝对地址;地址转换

答:逻辑地址:对于用户来说,无须知道自己的作业是在主存的什么位置,可以认为自己的程序和数据就是放在从0地址开始一组连续的地址空间中,这个地址空间是程序用来访问信息所用的一系列连续地址单元的集合,该地址空间就是逻辑地址空间。逻辑地址空间中地址单元的编号称为逻辑地址。

绝对地址:主存按连续的存储单元进行编号,绝对地址空间就是主存中一系列连续存储信息的物理单元的集合,也称存储地址空间或物理地址空间。绝对地址空间中物理单元的编号称为绝对地址。

地址转换:由于一个作业装入到与其逻辑地址空间不一致的绝对地址空间,使得逻辑地址与绝对地址不同,而引起的对有关地址部分的调整,即逻辑地址转换成绝对地址的过程称为重定位,也称为地址转换。

2、存储保护的目的是什么?怎样实现存储保护?

答:存储保护的目的就是为了保护主存中各区域内的信息不被破坏,它包括存储的权限,存储不可跨越区域等等。为实现存储保护,必须由硬件和软件配合实现。例如在页式管理中,要由操作系统提供页表,硬件机构确定页的使用必须是安全的,如不能访问不属于自己的页等。

3、什么叫重定位?重定位的方式有哪两种?

答:由于一个作业装入到与其逻辑地址空间不一致的绝对地址空间,使得逻辑地址与绝对地址不同,而引起的对有关地址部分的调整,即逻辑地址转换成绝对地址的过程称为重定位,也称为地址转换。

重定位有静态和动态两种情况。

静态重定位是在装入一个作业的时候,把作业中的指令地址和数据地址全部一次性地转换成绝对地址。

动态重定位是由软件和硬件相配合来实现的。地址重定位不是装入的时候一次完成,而是设置一个基址寄存器,装入作业的时候,将作业在主存区域的首地址放入到基址寄存器中。作业执行的时候,由硬件的地址转换机构动态地对地址进行转换,执行指令的时候,只要将逻辑地址加上基址寄存器的内容,就得到了绝对地址。

静态重定位和动态重定位的不同在于:

①、静态重定位是在作业装入的时间一次搞定,动态重定位是在作业执行时再实现的。

②、静态重定位是软件支持的,动态重定位是硬件和软件合作实现的。 ③、静态重定位不能实现主存的移动,而动态重定位可以。 ④、动态重定位还可能提供虚拟存储空间。

4、比较固定分区、可变分区和页式存储管理的优缺点。

答:固定分区优点:

①、能支持多道程序设计。

②、无需专门的硬件地址转换机构。

缺点:

①、主存利用率不算太高,分配中出现内部零头问题。

②、分区大小固定不灵活,不能为程序动态申请内存。

③、不具备虚拟存储能力。

可变分区优点:

①、支持多道程序设计。

②、没有内部零头问题,主存利用率比固定分区高。

③、采用移动技术后可以满足正在执行的作业的主存扩充的要求。

缺点:

①、动态重定位和保护措施需要硬件机构支持,成本高。

②、因为有外部零头,所以主存利用率依然不算很高。

③、移动技术开销很大。

④、每次必须将作业完整调入并连续存放,主存利用率不高。

⑤不具备虚拟存储能力。

页式存储管理优点:

①、支持多道程序设计。

②、解决了外部零头问题,内部零头大大减少(一个作业平均只要50%页面大小的内部零头)主存利用率比较高。

③、用户作业无需在主存中连续存放,提高主存的利用率。

④、如果是分页虚拟存储管理,能够提供大容量的多个虚拟存储器,主存利用率更高。

缺点:

①、动态重定位和保护措施需要硬件机构支持,成本高。

②、采用页表,占用了一部分主存空间和处理器时间。

③、分页虚拟存储管理中,增加了缺页中断的处理,增加了系统开销。

5、采用可变分区方式管理主存时,为什么要引入移动技术?

答:采用移动技术可以使分散的主存空闲区集中以满足分配要求,采用移动技术后可允许作业执行时动态扩充主存区域。

6、页式存储管理中为什么要设置页表?

答:因为页式管理时把作业分散在主存中的不连续块中存放,必须通过页表来建立逻辑地址中的页号到绝对地址中的块号的映射,作为硬件进行地址转换的依据。

7、页式存储管理中页面大小是根据什么决定的?页表的长度又

是根据什么决定的?

答:页面的大小是由地址结构决定的。 页表的长度是由作业的信息量决定的,作业有多少页,页表中就有多少个记录项。

8、假定某计算机系统配置的主存储器容量为1M,当采用页式虚拟存储管理时提供给用户使用的逻辑地址空间为4M,主存储器被分成长度为4K的等长块,请回答下列问题: (1)、主存储器一共被划分成多少块? (2)、用户作业最多可以有多少页? (3)、画出该系统的地址结构示意图。

答:(1)、主存一共被划分为256块。

(1M=1024K) 1024k÷4k=256块

(2)、用户作业最多可以有1024页。

(4M=4096K) 4096k÷4k=1024页

(3)、

0 910 21 页号 页内地址

9、叙述页式存储管理中地址转换过程。

答:首先,操作系统为每个作业创建一张页表,它建立了逻辑地址中的页号到绝对地址中的块号的映射。然后,借助于硬件地址转换机构,在作业执行过程中,每执行一条指令时,按逻辑地址中的页号查页表得到对应的块号,再根据公式“绝对地址=块号×块长+页内地址”换算出欲访问的主存单元的绝对地址。

10、什么叫虚拟存储器?

答:根据程序执行的互斥性和局部性两个特点,允许作业装入的时候只装入一部分,另一部分放在磁盘上,当需要的时候再装入到主存。这样以来,在一个

小的主存空间就可以运行一个比它大的作业。同时,用户编程的时候也摆脱了一定要编写小于主存容量的作业的限制。也就是说,用户的逻辑地址空间可以比主存的绝对地址空间要大。对用户来说,好像计算机系统具有一个容量很大的主存储器,称为“虚拟存储器”。

11、叙述页式存储管理实现虚拟存储器的基本原理。

答:只需将作业的全部信息作为副本存放在磁盘上,作业被调度投入到运行时,至少把第一页信息装入主存储器,在作业执行过程中访问到不在主存储器的页的时候,再把它们装入到主存。

12、采用可变分区方式管理主存时,能实现虚拟存储器吗?为什么?

答:不可以,因为可变分区每次必须将作业完整调入并连续存放,这不适合虚拟存储的要求。同时,可变分区的硬件地址转换机构把绝对地址超出限定范围时作地址错处理,而不是产生“缺分区中断”。

13、什么叫“抖动”?怎样衡量页面调度算法的好坏?

答:如果选用了一个不合适的调度算法,就会出现这样的现象:刚被淘汰了的页面又立即要用,又要把它调入进来,而调入不久又被调出,调出不久再次被调入,这样反复,使得调度非常频繁,以至于大部分时间都花费在来回调度上。这种现象叫“抖动”。一个好的调度算法应减少和避免抖动现象。

14、假定某计算机系统的主存容量为32K,对主存采用动态定位可变分区分配算法。目前已经有3个作业在主存储器中(如图),当作业J2执行时,要求扩充3K作业,为了满足作业J2这一要求,应移动几道作业的信息?写出它们的次序、方向和距离。

答:因为采用可变分区的管理方式,要求作业的逻辑地址空间是连续的,而且主存空间也是连续的。因此,作业J2要求扩充的主存区域应当在原占有区域之后,于是必须通过移动来集中空闲区以供J2扩充之需。移动的技巧有两种:

①先把J1向上移动1K再把J2向上移动2K.

②J3向下移动2K.

显然,第二种技巧只要进行一次移动,明显比第一种技巧好。

15、某采用页式存储管理的系统接收了一共7页的作业,作业执行时依次访问的页为:l、2、3、4、2、1、5、6、2、1、2、3、7。若把开始4页先装入主存,当分别用先进先出(FIFO)调度算法和最近最久未使用(LRU)调度算法时,作业执行过程中会产生多少次缺页中断?写出依次产生缺页中断后应淘汰的页。

答:采用先进先出调度算法会产生 6次缺页中断,依次淘汰的页是 1、2、3、4、5、6。

采用最近最久未使用调度算法会产生4次缺页中断,依次淘汰的页是3、4、5、6。

16、在一个采用页式虚拟存储管理的系统中,有一用户依次要访问的字地址序列是:115,228,120,88,446,102,321,432,260,167。若该作业的第0页已经装入主存,现分配给该作业的主存共300字,页的大小为100字,则当页面调度算法采用先进先出(FIFO)调度算法时将产生多少次缺页中断?缺页中断率是多少?

答:采用先进先出调度算法会产生 5次缺页中断,缺页中断率为50%。

17、某采用页式存储管理的系统,把主页分成大小为128的相等长度的块。有一个用户要把一个 128 × 128的数组置成初值“0”,在分页时把数组中的元素每一行放在一页中,假定分给用户可用来存放数组信息的工作区只要一块(既只能放数组中的一

行元素)。用户编制了如下两个不同的程序来实现数组的初始化:

l)var A:array[ 1..128]of array[1..128」of integer;

for j :=1 to 128

do for i:=1 to 128

do A[j:]=0;

2)var A:array[1.。128」of array[1.。128」Of integer;

for i:=1 to 128do for j:=1 to 128

do A[j]:=0;

当分别运行这两个程序时,在实现数组初始化的过程中各会产生多少次缺页中断?

答:假定数组的第一行元素已经存放在了一个主存块中,由于分页时把数组中的元素每一行放在一页中,所以每次i+1的时间都会产生缺页中断。这样一来,按(1)编制的程序,每执行一次A[i][j]:=0 就要产生一次缺页中 断,于是总共产生(128×128-1)次缺页中断。而(2)编制的程序执行时产生(128-1)次缺页中断。

本文来源:https://www.bwwdw.com/article/ruip.html

Top