- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
4章 存储管理
第4章 存储管理 目录 4.1 存储管理的目的和功能 4.2 存储分配 4. 3 重定位 4.4 实存管理技术 4.5 虚存管理技术 存储器是计算机系统的重要资源之一。计算机系统的存储器可以分成两类:主存储器(简称主存或内存)和辅助存储器(简称辅存或外存)。计算机的中央处理器可以直接从主存中存取指令和数据,主存容量的大小是计算机系统的一个重要性能指标。 4.1 存储管理的目的和功能 主存空间分为两部分:系统区和用户区。系统区用来存放操作系统与硬件的接口信息(例如,新旧处理机状态字、定时时间、外围设备的工作情况等)、操作系统的管理信息(例如,进程的PCB)和程序、标准子程序等。其余的存储空间都属于用户区,用来存放用户的程序和数据。存储管理就是对主存空间的用户区进行管理,其目的和功能如下: (1) 对主存空间进行分配和管理 (2)提高主存的利用率 (3) “扩充”主存容量 (4) 实现地址的变换 4.2 存储分配 所谓存储分配就是要解决多道作业之间划分主存空间的问题。通常将存储器分为两级,即主存和辅存。因此,存储分配要确定在什么时候把哪些信息放在哪一级存储器上,而这些对用户来讲都是“透明”的(即不需要用户知道)。系统中有一个存储分配程序,它依照一定的算法实现内存分配。 常用的主存分配有三种方式 : 静态分配 直接方式 动态分配 直接方式 直接方式是早期的计算机所使用的一种方式。当时多道程序技术还没有出现,存储器的可用空间一般是给定的。那时程序员在编程序时或编译程序对源程序进行编译时,使用实际的存储器地址,这种分配方式使用户与计算机内存直接打交道,系统资源在某一时刻为一个用户所独占。 静态分配 静态分配是在装入程序把一个或一组目标模块进行链接装入内存时就确定它们在主存的相对位置。作业一旦进入主存后,在运行过程中就不能在主存空间中“搬家”(或移动)。 动态分配 作业在存储空间的位置也是装入时确定的,但在作业运行的过程中,允许它在存储空间中“搬家”(也称为允许浮动或移动),而且也允许作业临时申请附加的存储空间。 目前绝大多数计算机系统采用动态或静态存储分配策略,这是由于计算机硬件和程序设计技术的发展等方面的原因。 4. 3 重定位 在多道程序环境中,各用户作业独立编程,单独编译,它们装入系统的时间也不同,因此,只有在装入时才确定存储分配问题,而在编译时是不需要考虑的,即采用动态分配或静态分配方式。为了实现这两种分配策略,则必须把逻辑地址与物理地址分开,对逻辑地址采用地址重定位技术。 名字空间 当用户在使用汇编语言或高级语言编写程序时,是通过符号名来访问子程序和数据的。我们把程序中符号名的集合称为“符号名空间”或“名空间”。符号名空间是用户所编写的源程序所限定的空间,源程序存在的地址范围称之为名字空间。 地址空间 汇编语言源程序经过汇编,或者高级语言源程序经过编译所得到的目标程序是以“0”作为参考(或相对)地址的程序。这个相对地址的目标程序是由多个目标模块由链接程序链接而成的一个具有统一地址的装配模块,以便最后装入内存运行。我们把目标模块中的地址称为逻辑地址,而把逻辑地址的集合称为地址空间。地址空间是一个目标程序所限定的地址范围。 存储空间 主存中一系列存储信息的物理单元的集合称为存储空间。单元编号称为物理地址或绝对地址。一个计算机系统的存储空间的大小是由主存实际容量决定的。所以说:地址空间是逻辑地址的集合,存储空间是物理地址的集合,前者是“虚”的概念;后者是“实”的物体。 一个编译好的程序存在于它自己的地址空间中,当它要被运行时才装入到存储空间。程序的名字空间、地址空间、和存储空间是三个很重要的概念,理解他们对于理解下面的重定位很有帮助。 地址重定位 一个编译好的程序要在计算机上运行时,首先应将其指令和数据装入主存的某个区域或某几个区域,也就是说要进行存储分配。一般情况下,作业分配到的存储空间和它的地址空间是不一致的。当一个作业分配到的存储空间和它的地址空间不一致时,引起对有关地址部分的调整过程称之为“地址重定位”。或也称为“地址变换”,它是将一个作业在地址空间中使用的逻辑地址变换成主存中的物理地址的过程(有的也称为“地址映射”)。 假设用户作业的逻辑地址空间从0到600字节,其中在第100字节处有一条“装入”指令,该指令要求从第500字节处取出操作数12345,并装入第1号寄存器中。如果存储管理为该作业分配的主存区域是从1000字节开始,那么,逻辑地址第100字节的指令被放在主存中的对应位置是1100字节的位置,逻辑地址第500字节中的数据就被放在主存的1500字节处。见下图(a)所示。如果不修改上述“装入”指令中的操作数地址500,则处理器执行该指令时将从主存的500字节中去取操作数,这显
文档评论(0)