- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第5章 存储器管理
5.2 例题解析
例5.2.1 为什么要引入逻辑地址?
解 引入逻辑地址有如下原因:
物理地址的程序只有装入程序所规定的内存空间上才能正确执行,如果程序所规定内存空间不空闲或不存在,程序都无法执行;
使用物理地址编程意味着由程序员分配内存空间,这在多道程序系统中,势必造成程序所占内存空间的相互冲突;
在多道程序系统中,程序员门无法事先协商每个程序所应占的内存空间的位置,系统也无法保证程序执行时,它所需的内存空间都空闲。
基于上述原因,必须引入一个统一的、在编程时使用的地址,它能够在程序执行时根据所分配的内存空间将其转换为对应的物理地址,这个地址就是逻辑地址。
逻辑地址的引入为内存的共享、保护和扩充提供方便。
例5.2.2 静态重定位的特点有哪些?
实现容易,无需增加硬件地址变换机构;
一般要求为每个程序分配一个连续的存储区;
在重定位过程中,装入内存的代码发生了改变;
在程序执行期间不在发生地址的变换;
在程序执行期间不能移动,且难以做到程序和数据的共享,其内存利用率低。
例5.2.3 动态重定位的特点有哪些?
动态重定位的实现要依靠硬件地址变换机构,且存储管理的软件算法比较复杂;
程序代码是按原样装入内存的,在重定位的过程中也不发生变化,重定位产生的物理地址存放在内存地址寄存器中,因此不会改变代码;
同一代码中的同一逻辑地址,每执行一次都需要重位一次;
只要改变基地址,就可以很容易地实现代码在内存中的移动;
动态重定位可以将程序分配到不连续的存储区中;
实现虚拟存储器需要动态重定位技术的支持;
尽管动态重定位需要硬件支持,但他支持程序浮动,便于利用零散的内存空间,利于实现信息共享和虚拟存储,所以现代计算机大都采用动态重定位。
例5.2.4 装入时动态链接的优点有哪些?
(1)便于软件版本的修改和更新
在采用装入时动态链接方式时,要修改或更新各个目标模块,是件非常容易的事,但对于经静态链接以装配在一起的装入模块,如果要修改或更新其中的某个目标模块时,则要求重新打开装入模块,这不仅是低效的,而且对于普通用户是不可能的。
(2)便于实现目标模块共享
若采用装入时动态链接方式,OS能够将一个目标模块链接到几个应用程序中去。即实现多个应用程序对该模块的共享;然而,采用静态链接方式时每个应用模块都必须含有该目标模块的拷贝,则无法实现共享。
例5.2.5 覆盖技术与虚拟存储技术有何本质不同?交换技术与虚存中使用的调入调出技术有何相同和不同之处?
解 覆盖技术与虚拟存储技术的本质不同是:
虚拟存储器对于程序员时透明的,不需要程序员了解程序结构、覆盖的区域、时机,不需要精心的设计程序及其数据结构,所有的操作由操作系统自动完成。
覆盖的程序段的最大长度要受到物理内存容量的限制,而虚拟存储器的最大长度不受物理内存容量的限制,只受计算机地址结构的限制。
交换技术与虚存中使用的调入调出技术相同和不同之处:
主要相同点是都要在内存与外存之间交换信息;
主要区别在于交换技术换出换进一般是整个进程(proc结构和共享正文段除外),因此一个进程的大小受物理存储器的限制;而虚存中使用的调入调出技术在内存与外存之间来回传递的是存储页或存储段,而不是整个进程,从而使得进程映射具有了更大的灵活性,且允许进程的大小比可用的物理存储空间大的多。
例5.2.7 有一计算机系统,内存容量为512K,辅存容量为2G,逻辑地址形式如下:
段号 段内地址 29 20 19 0
求其虚拟存储器的实际容量?
解 虚拟内存的实际大小由系统的逻辑地址结构、主存辅存容量共同决定。虚拟内存容量的理论值是210 *220=1G;最大段内地址为220=1M,远大于内存容量,其段长超过512K的内存容量,故最大实际段长为512k而不是1M。
所以可计算虚拟存储容量为210 *512K =210 *0.5M=0.5G。 0.5G2G,因此虚拟存储器的实际容量是0.5G。
例5.2.8 段页式存储系统中,为了获得一条指令或数据,需几次访问内存?
解 在段页式系统中,为了获得一条指令或数据,需三次访问内存。第一次访问,是访问内存中的段表,从中取得页表始址;第二次访问,是访问内存中的页表,从中取出逻辑页面对应的内存物理块号,并将该块号与页内地址一起形成指令或数据的物理地址;第三次访问,才是真正从第二次访问所得的地址中,取出指令或数据。
例5.2.9 在实存管理上,管理方法主要分成哪两种类型?
解 实存管理的方法主要分成:
用户程序需要占用连续的内存空间,如分区存储管理;
用户程序不需要占用连续的内存空间,如分页、分段、段页等管理,一个用户程序在内存可能是不连续的,如果它有不只一页或一段的话。
例5.2.10 解释静态链接、装入时动态链接和执行时动
文档评论(0)