- 1、本文档共164页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[信息与通信]OS第5章新
第5章 存储管理 5.1 存储管理的功能 5.2 分区存储管理 5.3 覆盖与交换技术 5.4 页式管理 5.5 段式与段页式管理 5.6 局部性原理和抖动问题 本章小结 习题 5.1 存储管理的功能 存储器是计算机系统的重要资源之一。 任何程序和数据以及各种控制用的数据结构都必须占用一定的存储空间. 存储器由内存(primary storage)和外存(secondary storage)组成。 内存由顺序编址的块组成,每块包含相应的物理单元。CPU 要通过启动相应的输入输出设备后才能使外存与内存交换信息。 5.1.1 虚拟存储器 虚拟存储器是存储管理的核心概念。 物理存储器 内存(昂贵,小) 外存(速度较慢.便宜) 从源程序到程序执行 地址空间的概念 重定位的概念 程序的装入 程序的链接 虚拟存储器:进程中的目标代码、数据等的虚拟地址组成的虚拟空间。 虚拟存储器不考虑物理存储器的大小和信息存放的实际位置,只规定每个进程中互相关连的信息的相对位置。 每个进程都拥有自己的虚拟存储器,且虚拟存储器的容量是由计算机的地址结构和寻址方式确定的。 例如,直接寻址时,如果CPU 的有效地址长度为16位,则其寻址范围为 0到64K。 虚拟存储器到物理存储器需要变换。 由于每个进程都拥有自己的虚存,且每个虚存的大小不受实际物理存储器的限制, 系统不能提供足够大的内存来存放所有进程的内容。 内存中存放那些经常被访问的程序和数据段等。 利用外部存储器,以存储那些不经常被访问或在某一段时间内不会被访问的信息。待到进程执行过程中需要这些信息时,再从外存中自动调入主存。 5.1.2 地址变换 内存空间或物理地址空间中,每一个存储单元都与相应的称为内存地址的编号相对应。 内存空间是一维线性空间。 虚拟空间的划分。例如进程的正文段和数据段应该放置在虚拟空间的什么地方。虚拟空间的划分使得编译链接程序可以把不同的程序模块(它们可能是用不同的高级语言编写的),链接到一个统一的虚拟空间中去。 VAX-11机的虚拟空间结构如图5.2。 如何把虚拟空间中已链接和划分好的内容装入内存,并将虚拟地址映射为内存地址? 地址重定位或地址映射: 虚拟地址 内存地址 1. 静态地址重定位 静态地址重定位(static address relocation)是在虚拟空间程序执行之前由装配程序完成地址映射工作。 虚地址 物理地址 优点:不需要硬件支持。 缺点: 1.使用静态重定位方法进行地址变换无法实现虚拟存储器。 静态重定位方法将程序一旦装入内存之后就不能再移动,并且必须在程序执行之前将有关部分全部装入。 2.静态重定位方法必须占用连续的内存空间,这就难以做到程序和数据的共享。 2. 动态地址重定位(dynamic address relocation) 在程序执行过程中,在CPU访问内存之前,将要访问的程序或数据地址转换成内存地址。 依靠硬件地址变换机构完成: 一个(或多个)基地址寄存器BR 一个(或多个)程序虚拟地址寄存器VR。 指令或数据的内存地址MA与虚拟地址的关系为: MA=(BR)+ (VR) 图5.3 动态地址重定位 其具体过程是: (1) 设置基地址寄存器BR,虚拟地址寄存器VR。 (2) 将程序段装入内存,且将其占用的内存区首地址送BR中。例如,在图5.3中,(BR)=1000。 (3) 在程序执行过程中,将所要访问的虚拟地址送入VR中,例如在图5.3中执行LOAD A 500语句时 ,将所要访问的虚拟地址500放入VR中。 (4) 地址变换机构把VR和BR的内容相加,得到实际访问的物理地址。 优点: (1)可以对内存进行非连续分配。 (2)动态重定位提供了实现虚拟存储器的基础。 可以部分地、动态地分配内存。 在动态重定位的基础上,在执行期间采用请求方式为那些不在内存中的程序段分配内存,以达到内存扩充的目的。 (3) 有利于程序段的共享。 5.1.3 内外存数据传输的控制 1.用户程序自己控制,用户程序自己控制内外存之间的数据交换的例子是覆盖。覆盖技术要求用户清楚地了解程序的结构,并指定各程序段调入内存的先后次序。 覆盖技术不能实现虚拟存储器。 2.操作系统控制。 操作系统控制方式有 交换(swapping)方式: 操作系统把那些在内存中处于等待状态的进程换出内存,而把那些等待事件已经发生、处于就绪态的进程换入内存。 请求调入(on demand)方式和预调入(on prefetch)方式: 请
文档评论(0)