内存管理课后题(汤子赢第三版)

来源:互联网 发布:淘宝电脑产品图大小 编辑:程序博客网 时间:2024/06/06 23:28

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

答:(1)可以是硬件两端都可以并行工作。(2)采用多久存储,使用Cache技术,可以提高操作系统的效率。(3)减轻存储器存取的压力。

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

答:绝对装入技术、可重定位装入技术、运行时动态装入技术

      绝对装入技术一般适用于单道处理系统;

      可重定位装入技术:在多道程序环境下,所得到的目标模块的起始地址通常是从 0 开始的,程序中的其它地址也都是相对于起始地址计算的。此时应采用可重定位装入方式,根据内存的当前情况,将装入模块装入到内存的适当位置。

      运行时动态装入技术:可重定位装入方式可将装入模块装入到内存中任何允许的位置,故可用于多道程序环境;但这种方式并不允许程序运行时在内存中移动位置。因为,程序在内存中的移动,意味着它的物理位置发生了变化, 这时必须对程序和数据的地址(是绝对地址)进行修改后方能运行。然而,实际情况是,在运行过程中它在内存中的位置可能经常要改变,此时就应采用动态运行时装入的方式。 动态运行时的装入程序在把装入模块装入内存后,并不立即把装入模块中的相对地址转换为绝对地址,而是把这种地址转换推迟到程序真正要执行时才进行。

3. 何谓静态链接?何谓装入时动态链接和运行时的动态链接? 

答:静态链接:在程序运行之前,先将各目标模块及它们所需的库函数,链接成一个完整的装配模块,以后不再拆开。我们把这种事先进行链接的方式称为静态链接方式。

     装入时动态链接:这是指将用户源程序编译后所得到的一组目标模块,在装入内存时,采用边装入边链接的链接方式。

     运行时动态链接:这是指对某些目标模块的链接,是在程序执行中需要该(目标)模块时,才对它进行的链接。 

4. 在进行程序链接时,应完成哪些工作? 

答:(1)对相对地址进行修改。(2)变换外部调用符号。

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

答:空闲分区链:分区的状态、指针(指向上一个空闲分区或者下一个空闲分析)等。

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

答:消除小分区的零头。

    硬件支持和"紧凑"方式。 

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

答:内存共享      不确定

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

答:  不会                

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

答:首次适应算法

      下次适应算法

      最佳适用算法

      最差适用算法

10. 在系统中引入对换后可带来哪些好处? 

答:腾出空间供其他进程运行。
11. 为实现对换,系统应具备哪几方面的功能? 

答:硬件方面:支持分页或分段  软件支持:操作系统内存和外存的对换。
12. 在以进程为单位进行对换时,每次是否都将整个进程换出?为什么?

答:不是。进程有数据、代码、PCB控制信息组成。数据和代码有可能是共享的,不能换出。 
13. 为实现分页存储管理,需要哪些硬件支持? 

答:硬件必须有分页机制,可以被分为大小相同的页;地址映射变换机制。
14. 较详细地说明引入分段存储管理是为了满足用户哪几方面的需要。 

答:(1)数据和代码的共享。(2)方便编程。(3)信息保护。(4)动态增长。(5)动态链接。
15. 在具有快表的段页式存储管理方式中,如何实现地址变换? 

答:设一个高速缓冲寄存器(块表)。每次访问它时,都须同时利用段号和页号去检索高速缓存,若找到匹配的表项,便可从中得到相应页的物理块号,用来与页内地址一起形成物理地址;若未找到匹配表项,则仍须再三次访问内存。由于它的基本原理与分页及分段的情况相似,故在此不再赘述。 
16. 为什么说分段系统比分页系统更易于实现信息的共享和保护? 

答:分段系统是二维的用户可以看到的数据,分页对用户是透明的。
17. 分页和分段存储管理有何区别? 

答:(1)  页是信息的物理单位,分页是为实现离散分配方式,以消减内存的外零头,提高内存的利用率。或者说,分页仅仅是由于系统管理的需要而不是用户的需要。段则是信息的逻辑单位,它含有一组其意义相对完整的信息。分段的目的是为了能更好地满足用户的需要。 
(2) 页的大小固定且由系统决定,由系统把逻辑地址划分为页号和页内地址两部分,是由机器硬件实现的,因而在系统中只能有一种大小的页面;而段的长度却不固定,决定于用户所编写的程序,通常由编译程序在对源程序进行编译时,根据信息的性质来划分。 
(3)  分页的作业地址空间是一维的,即单一的线性地址空间,程序员只需利用一个记忆符,即可表示一个地址;而分段的作业地址空间则是二维的,程序员在标识一个地址时,既需给出段名,又需给出段内地址。 
18. 试全面比较连续分配和离散分配方式。 

答:内存分配、用户使用、共享等方面。
19. 虚拟存储器有哪些特征?其中最本质的特征是什么? 

答: 离散性、多次性、虚拟性等                   虚拟性。
20. 实现虚拟存储器需要哪些硬件支持? 

答:分页或者分段的支持、分页(段)中断机制、地址映射机制。
21. 实现虚拟存储器需要哪几个关键技术?

答: 对换技术?  不确定
22. 在请求分页系统中,页表应包括哪些数据项?每项的作用是什么? 

答:页号、物理块号、状态、外存地址
23. 在请求分页系统中,应从何处将所需页面调入内存? 

答:外存
24. 在请求分页系统中,常采用哪几种页面置换算法? 

答:最佳置换算法、先进先出、最近最久未使用算法、时钟置换算法、
25. 在请求分页系统中,通常采用哪种页面分配方式?为什么? 

答:固定分配局部置换、可变分配全局、可变分配局部。
26. 在一个请求分页系统中,采用FIFO 页面置换算法时,假如一个作业的页面走向为
4、3、2、1、4、3、5、4、3、2、1、5,当分配给该作业的物理块数 M 分别为 3 和 4 时,试计算在访问过程中所发生的缺页次数和缺页率,并比较所得结果。 

答:省略。

27. 实现LRU算法所需的硬件支持是什么? 

答:须有两类硬件之一的支持:寄存器或栈。 
28. 试说明改进型Clock置换算法的基本原理。 

答:当采用简单Clock算法时,只需为每页设置一位访问位,再将内存中的所有页面都通过链接指针链接成一个循环队列。当某页被访问时,其访问位被置 1。置换算法在选择一页淘汰时,只需检查页的访问位。如果是 0,就选择该页换出;若为 1,则重新将它置 0,暂不换出,而给该页第二次驻留内存的机会,再按照 FIFO 算法检查下一个页面。当检查到队列中的最后一个页面时,若其访问位仍为 1,则再返回到队首去检查第一个页面。出了该算法的流程和示例。 由于该算法是循环地检查各页面的使用情况, 故称为 Clock算法。但因该算法只有一位访问位,只能用它表示该页是否已经使用过,而置换时是将未使用过的页面换出去,故又把该算法称为最近未用算法NRU(Not Recently Used)。 
29. 说明请求分段系统中的缺页中断处理过程。 

答:在请求分段系统中,每当发现运行进程所要访问的段尚未调入内存时,便由缺段中断机构产生一缺段中断信号,进入 OS 后由缺段中断处理程序将所需的段调入内存。缺段中断机构与缺页中断机构类似,它同样需要在一条指令的执行期间,产生和处理中断,以及在一条指令执行期间,可能产生多次缺段中断。但由于分段是信息的逻辑单位,因而不可能出现一条指令被分割在两个分段中和一组信息被分割在两个分段中的情况。缺段中断的处理过程。由于段不是定长的,这使对缺段中断的处理要比对缺页中断的处理复杂。 
30. 如何实现分段共享? 

答:共享段表


     不保证完全正确,如有疑问请自己确认。