计算机操作系统chap存储器管理(新)精要.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
计算机操作系统chap存储器管理(新)精要.ppt

存储管理研究的课题 (1) 存储分配问题。 重点是研究存储共享和各种分配算法。 (2) 地址再定位问题。 研究各种地址变换机构, 以及静态和动态再定位方法。 (3) 存储保护问题。 研究保护各类程序、 数据区的方法。 (4) 存储扩充问题。 主要研究虚拟存储器问题及其各种调度算法 4.1存储器的层次结构 1.目标程序装入内存的方式 (1)绝对装入方式 在编译时,如果知道程序将驻留在内存什么位置,那么编译程序将产生绝对地址的目标代码。 (2)可重定位装入方式 又称静态重定位。 一般用于多道程序环境中,编译程序不能预知所编译的目标模块在内存什么地方。重定位程序根据装入程序的内存起始地址,直接修改所涉及到的逻辑地址,将内存的起始地址加上逻辑地址得到正确的内存地址。 (3)动态运行时的装入方式 又称动态重定位。是在程序执行期间进行的。 一般说来,这种转换有专门的硬件机构来完成,通常采用一个重定位寄存器 ,每次进行存储访问时,对取出的逻辑地址加上重定位寄存器的内容,形成正确的内存地址。如图4.4所示. 4.2.2.目标程序链接 链接程序的功能,是将经过编译或汇编后得到的一组目标模块以及它们所需要的库函数,装配成一个完整的装入模块。 (1)静态链接 设编译后得到的三个目标模块A、B、C,它们的长度分别为L、M和N。 程序链接示意图如图4.5所示。 (2)装入时动态链接 用户源程序经编译后得到目标模块,是在装入内存时边装入边链接的。即在装入一个目标模块时,若发生一个外部模块调用时,将引起装入程序去找相应的外部目标模块,并将它装入内存。 装入时动态链接方式有以下优点:  (1)便于修改和更新。 (2) 便于实现对目标模块的共享。 (3)运行时动态链接 这种链接方式是将对某些模块的链接推迟到执行时才执行,亦即,在执行过程中,当发现一个被调用模块尚未装入内存时,立即由OS去找到该模块并将之装入内存, 把它链接到调用者模块上。凡在执行过程中未被用到的目标模块,都不会被调入内存和被链接到装入模块上,这样不仅可加快程序的装入过程,而且可节省大量的内存空间。 4.3.连续分配存储管理方式 连续分配是指为一个用户程序分配一个连续的内存空间,连续分配有两种:单道程序的连续分配和多道程序的连续分配。多道程序的连续分配又称为分区分配方式,它包括固定分区、动态分区和动态重定位分区三种。下面就是对各种连续存储管理的研究。 4.3.1 单道程序的连续分配 这是一种最简单的存储方式,只能用于单用户、单任务的操作系统。在这种存储方式中,内存分为两个分区:系统区和用户区。 1.系统区。 仅供操作系统使用,一般驻留在低址部分,其中包括中断向量。 2.用户区 操作系统以外的全部空间。其结构图如图所示。 4.3.2 固定分区分配方式 固定分区管理比较简单,本节仅以举例的方式说明其原理。设一个容量为32k的实际内存,分割成如下若干区域,如图所示。 4.3.3 动态分区分配 动态分区分配需要解决的问题有三个: (1)分区分配中所用的数据结构。 (2)分区的分配算法。 (3)分区的分配与回收操作。 1.分区分配中的数据结构。 要实现分区分配,系统必须配置相应的数据结构,用来记录内存的使用情况。为分配提供依据。常用的数据结构有两种: (1)空闲分区表 其表的结构如图所示: (2)空闲分区链 为了实现对空闲分区的分配与链接,在每个分区的起始部分,设置一些用于控制分区分配的信息,以及用于链接各分区的前向指针:在分区尾部则设置一后向指针;然后形成一个双向链。其结构如图所示。 二、分区分配算法 1.首次适应算法 此算法可以在上述两种数据结构上实施,但通常要求空闲块按始地址从小到大的顺序排序。当需分配空间时,总是从头开始查找,直到找到一个符合要求的自由块。 2.下次适应算法 从上次分配空闲区域的下一个位置开始,选取第一个可满足的空闲区域。实现时,设置一个循环查找指针,开始时指向表头,每次分配从该指针处开始查找第一个遇到的可满足区域。 3.最佳适应法 在分配时取满足申请要求且长度最小的空闲区域。 在实现时,可以将系统中所有的空闲区域按照长度由小到大的次序依次记录于空闲区域表中。与首次适应算法类似,当进程申请存储空间时,系统由表的头部开始查找,取满足要求的第一个表目。 4.最坏适应算法

文档评论(0)

三哥 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档