学历改变命运
24小时客服:4008135555/010-82335555
当前位置:首页> 理学 > “操作系统概论”习题解答之存储管理

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

2007年04月27日    来源:   字体:   打印
查分预约

  第3章 习题解答

  1.解释下列术语

  逻辑地址;绝对地址;地址转换

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

  绝对地址:主存也被按照连续的存储单元进行编号,绝对地址空间就是主存中一系列连续存储信息的物理单元的集合,也称绝对地址空间为存储地址空间或物理地址空间。绝对地址空间中物理单元的编号称为绝对地址。   地址转换:由于一个作业装入到与其逻辑地址空间不一致的绝对地址空间,使得逻辑地址与绝对地址不同,而引起的对有关地址部分的调整,即逻辑地址转换成绝对地址的过程称为重定位,也称为地址转换。

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

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

  3.什么叫重定位?重定位的方式有哪两种?比较它们的不同。

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

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

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

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

  静态重定位和动态重定位的不同在于:①静态重定位是在作业装入的时候一次完成,动态重定位是在作业执行时再实现的。②静态重定位是软件支持的,动态重定位是硬件和软件合作实现的。③静态重定位不能实现主存的移动,而动态重定位可以。④动态重定位还可能提供虚拟存储空间。

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

  答:固定分区优点:

  ①能支持多道程序设计。

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

  缺点:

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

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

  ③不具备虚拟存储能力。

  可变分区优点:

  ①支持多道程序设计。

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

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

  缺点:

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

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

  ③移动技术开销很大。

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

  ⑤不具备虚拟存储能力。

  页式存储管理优点:

  ①支持多道程序设计

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

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

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

  缺点:

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

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

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

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

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

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

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

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

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

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

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

  9.什么叫虚拟存储器?

  答:根据程序执行的互斥性和局部性两个特点,我们允许作业装入的时候只装入一部分,另一部分放在磁盘上,当需要的时候再装入到主存,这样以来,在一个小的主存空间就可以运行一个比它大的作业。同时,用户编程的时候也摆脱了一定要编写小于主存容量的作业的限制。也就是说,用户的逻辑地址空间可以比主存的绝对地址空间要大。对用户来说,好象计算机系统具有一个容量很大的主存储器,称为“虚拟存储器”。

  10.叙述页式存储管理实现虚拟存储器的基本思想。

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

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

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

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

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

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

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

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

  ②J3向下移动2K.

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

  14.某采用页式存储管理的系统,接收了一共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.

  15.某采用页式存储管理的系统,把主页分成大小为128的相等长度的块。有一个用户要把一个 128 × 128的数组置成初值“0”,在分页时把数组中的元素每一行放在一页中,假定分给用户可用来存放数组信息的工作区只有一块(既只能放数组中的一行元素)。用户编制了如下两个不同的程序来实现数组的初始化:

  l)var A:array[ 1.。128]of array[l.。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 128

  do for j:=1 to 128

  do A[j]:=0;

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

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

新人有礼
关闭