Decode360's Blog

业精于勤而荒于嬉 QQ:150355677 MSN:decode360@hotmail.com

  BlogJava :: 首页 :: 新随笔 :: 联系 ::  :: 管理 ::
  302 随笔 :: 26 文章 :: 82 评论 :: 0 Trackbacks
    了解了存储管理的基础知识和原理,但是对于具体的一些情况还是知之甚少,于是又在网上翻了翻资料,发现下面这几道课后问答题很是能够加深对存储管理这块内容的理解,特意转载过来。
 
转载地址:
http://assflyp.blog.ccidnet.com/blog-htm-do-showone-uid-40237-itemid-149984-type-blog.html
 
 
第六章 存储管理课后习题答案
 
1考虑下述存储管理方式中,进程空间和逻辑空间的编址情况:
(1)界地址存储管理方式,进程空间的首地址;
(2)页式存储管理,进程空间的首地址;
(3)段式存储管理,进程空间各段的首地址;
(4)段页式存储管理,进程空间各段的起始地址.
 
:(1)界地址存储管理方式,进程空间的首地址从0开始编址;
  (2)页式存储管理,进程空间的首地址从0开始编址,而逻辑空间划分为若干个页面, 每个页面的起始地址是逻辑页号乘以页面大小;
  (3)段式存储管理,进程空间各段的首地址从0开始编址;
  (4)段页式存储管理,进程空间各段的起始地址从0开始编址.
 
 
2对于如下存储管理方式来说,进程地址空间各是几维的?
(1)页式;(2)段式;(3)段页式
 
答:(1)页式的进程地址空间是一维的
   (2)段式的进程地址空间是二维的
   (3)段页式的进程地址空间是二维的
 
 
3、在页式存储管理中,页的划分对用户是否可见?在段式样存储管理中,段的划分对用户是否可见?在段页式存储管理中,段的划分对用户是否可见?段内页的划分对用户是否可见?
 
(1)在页式存储管理中,分页对于用户是透明的,一个进程由若干个页构成,所有页的长度相同;
   (2)在段式存储管理中,分段对于用户是可见的,一个进程由若干个段构成,各个段的长度可以不同,一个段恰好对应一个程序单位。
   (3)在段页式存储管理中,段的划分对用户是可见的,段内页的划分对用户是透明的,一个段由若干个页构成,所有页的长度相同。
 
 
4为什么空闲页面链适合管理内存空间,而不适合管理外存空间?
 
答:空闲页面链是将所有的空闲页面连成一个链,分配时可取链头的页面,去配时可将被释放的页面连入链头。此种方法适用于内存页面的分配,但对于外存页面的分配因分配和去配均需执行一次I/O传输,速度较慢。特别是当要申请多个页面时,需要进行多次I/O传输,分配效率太低。
 
 
5、在某些虚拟页式存储管理系统中,内存永远保持一个空闲页面,这样做有什么好处?
 
答:在内存没有空闲页架的情况下,需要按照置换算法淘汰一个内存页架,然后读入所缺页面,缺页进程一般需要等待两次I/O传输时间。若内存总保持一个空闲页架,当发生页故障时,所缺页面可以被立即调入内存,缺页进程只需等待一次I/O传输时间。读入后立即淘汰一个内存页面,此时可能也需执行一次I/O传输,但对缺页进程来说不需等待,因而提高了响应速度。
 
 
6为何引入多级页表?多级页表是否影响速度?
 
答:随着内存空间和进程空间的快速增长,页表越来越大,单级页表的存放遇到困难,为此常将页表分为多级存放,即引入多级页表。多级页表会降低地址映射的速度,但通过快表可以将效率保持在合理的范畴内。
 
 
7、与传统页表相比,倒置页表有什么优势?
 
答:传统页表是面向进程虚拟空间的,即对应进程的每个逻辑页面设置一个表项,当进程的地址空间很大时,页表需占用很多的存储空间,造成浪费.与经典页表不同,反置页表是面向内存物理页架的,即对应内存的每个物理架设置一个表项,表项的序号就是物理页架号f,表项的内容则为进程标识pid与逻辑页号p的有序对.系统只需设置一个反置页表,为所有进程所共用.
 
 
8允许进程空间逻辑页号不连续带来的好处是什么?
 
答:可以给同一进程内的多个线程预留足够的栈空间,而又不浪费实际内存页架。
 
 
9、比较段式存储管理与页式存储管理的优点和缺点.
 
答:页式存储管理优缺点:(1)静态等长存储分配简单,有效地解决了内存碎片问题;(2)共享和保护不够方便。
    段式存储管理优缺点:(1)动态异长存储分配复杂,存在碎片问题;(2)共享与保护方便;(3)可以实现动态链接和动态扩展。
 
 
10举例说明段长动态增长的实际意义.
 
答:允许段长动态增长对于那些需要不断增加或改变新数据或子程序的段来说很有好处。例如,分配给进程的栈空间大小,通常预先无法准确估计,若分配过少可能不够用,分配过多则造成浪费。在栈可以动态增长的情况下,系统开始可以为进程分配一个基本长度的栈空间,这个长度浪费很小。若进程运行时发生栈溢出,通过中断可以进行动态扩展。
 
 
11、在段式存储管理中,段的长度可否大于内存的长度?在段页式存储管理中呢?
 
答:在段式存储管理中,段的长度不能大于内存的长度,因为一个独立的段占用一段连续的内存空间,内存分配是以段为单位进行的,如果一个段的长度大于内存的长度,那么该段将无法调入内存。在段页式存储管理中,段的长度可以大于内存的长度。因为内存分配的单位是页,一个段内逻辑上连续的页面,可以分配到不连续的内存页面中,不要求一个段的所有逻辑页都进入内存。
 
 
12共享段表的用途何在?
 
答:共享段表的用途主要有如下两个:(1)用来寻找共享段:根据进程首次访问某段的名称在共享段表中查找,可以得知该段是否已在内存;(2)确保一个共享段只有一组描述信息:共享段的地址、长度等信息在共享段表中仅记录一次,防止在多个进程段表中重复登记所带来的维护困难。共享段表用来实现段的共享和保护,该表中记录所有共享段。多个进程共享同一段时,这些进程段表中的相应表目指向共享段表中的同一个表目。
 
 
13、具有两级页表的页式存储管理与段页式存储管理有何差别?
 
答:具有两级页表的页式存储管理的地址空间依然是一维的,页的划分对于进程来说是透明的。而段页式存储管理的地址空间是二维的,段的划分用户能感觉到。
 
 
15、段的动态连接给共享带来什么问题?如何解决?
 
答:动态连接提高了系统的效率,但也带来一些问题,主要是对于段共享的影响。代码段共享的必要条件是该段在运行过程中不修改自身,即要求是“纯代码”(pure code),而动态连接需要修改连接字,这与共享的要求相矛盾。解决这个问题的一种方法是将代码段分为“纯段”和“杂段”两个部分,即将连接字等可修改的内容存放在“杂段”中,而将其它内容放在“纯段”中。“杂段”不共享,“纯段”可共享。
 
 
16、在虚拟段页式存储管理中,考虑段的共享与段长度的动态变化,连接中断如何处理?
 
答:由段名查本进程的段名—段号对照表及共享段表,经判断可分为如下三种情形:
(1) 所有进程都未连接过(共享段表、段名-段号对照表均无): 查文件目录找到该段; 为该段建立页表,将该段由文件全部读入swap空间,部分读入内存,填写页表;为该段分配段号,填写段名-段号对照表;如该段可共享,填写共享段表,共享记数置1;填写段表;根据段号及段内地址形成无障碍指示位的一般间接地址。
(2) 其它进程连接过但本进程未连接过(共享段表有,段名-段号对照表无): 为该段分配段号;填写段名-段号对照表,填写段表(指向共享段表),共享段表中共享记数加1;根据段号及段内地址形成无障碍指示位的一般间接地址。
(3) 本进程已连接过(共享段表无,段名-段号对照表有): 根据段号及段内地址形成无障碍指示位的一般间接地址。这里,段内地址由两部分构成,即逻辑页号和页内地址。
 




-The End-

posted on 2009-04-26 21:49 decode360-3 阅读(370) 评论(0)  编辑  收藏 所属分类: Exam

只有注册用户登录后才能发表评论。


网站导航: