操作系统内存基础讲述.ppt

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

China’s Software Industry August 2006 * 操作系统是计算机的管理者,除了CPU之外,内存是操作系统管理的另外一个重要资源。 China’s Software Industry August 2006 * 固定分区即是将内存分成几个固定的区域。 固定分区即是将内存分成几个固定的区域。 固定分区即是将内存分成几个固定的区域。 China’s Software Industry August 2006 * 进程A因为空间增长无法继续执行,我们便将A交换到磁盘上,等待大片空间的出现。这时程序D因为占用空间小,可以执行,因此把程序D加载进来。进程B执行结束后空出一片空间,和本来的剩余空间合并后形成了一个可以容纳程序A的空间,这时可以将程序A再加载进来。 China’s Software Industry August 2006 * 固定分区分配 将程序加载到固定内存分区的两种选择 给每个分区一个队列 新进程被分配到固定的分区 单一输入队列 新进程可以进入任何一个分区 假定分区有足够的空间加载进程 固定分区分配 固定分区分配 与单用户连续管理方式相同,固定分区分配中的地址变换也有静态重定位方式和动态重定位方式 地址变换借助于两个寄存器:上限寄存器和下限寄存器。 下限寄存器中的地址作为基地址,进程的逻辑地址加下限寄存器中的基址为内存中的物理地址。 将物理地址与上限寄存器中的地址比较,如果物理地址落入上、下限寄存器地址中,则进程的物理地址有效。否则,进程的物理地址越界,拒绝将分区分配给进程。 上、下限寄存器起到保护分区的作用。固定分区地址变换过程如下图所示。 固定分区地址变换 固定分区分配 固定分区的划分在操作系统初始化时完成。在系统启动时,系统操作员根据系统运行作业的需要划分分区大小。当用户作业进入分区时,按照用户作业的大小从分区表中选择空闲分区。 与单一连续分配方式比较,固定分区分配方式使得系统的资源利用率和吞吐量有一定程度的提高。 固定分区分配 固定分区分配的缺点: 内存利用率不高 由于分区大小固定,装入进程的大小受到限制。超过最大分区的进程,只有采用覆盖技术才能在内存中运行,降低了系统的运行效率;较小的进程,造成内存“碎片”,降低了内存的利用率。 划分分区大小困难 划分分区的大小对系统性能有很大影响,合理划分分区的大小很困难。 需要预先知道进程大小 固定分区分配方式适合进程大小已知的情况,如果进程大小不知或进程大小变化很大,则采用固定分区分配不是特别适合。 固定分区分配 动态分区分配 根据作业的实际需要,动态地为之分配内存空间 不在系统初始化时进行分区划分,而在每个用户作业装入内存时,根据作业的大小和内存的使用情况,动态划分分区并分配。 克服了固定分区分配的内存利用率低的问题,更适合多道程序环境。 为了完成有效分配和回收分区,需要构建对分区信息进行描述的数据结构,并在已知分区数据结构的基础上完成分区分配算法与回收方法。 动态分区分配 数据结构 空闲分区表:包括分区号、分区始址、分区大小等 空闲分区链:空闲分区链是空闲分区最常用的组织形式,操作系统将所有的空闲分区通过前向和后向指针串在一起组成双向空闲分区链。 前向指针 N个字节可用 后向指针 N+2 N+2 0(分配标识) 0 动态分区分配 分区分配算法 1、首次适应法 首先将空闲分区按照地址递增的顺序组织成空闲分区链。 为作业分配内存时,系统根据作业大小,从空闲分区链的第一个空闲分区开始查找,只要找到第一个满足作业大小的空闲分区,从该空闲分区中分割一部分分配给作业,另一部分仍作为空闲分区; 如果空闲分区链全部查找完也不能满足作业要求,则系统不能为作业分配内存。 该分区分配算法首先利用内存中的低地址空闲分区,保留了高地址空闲分区。该分区分配算法存在的缺点如下: 系统每次都是从链首开始查找空闲分区,低地址段的大空闲分区被分配或被分割,剩下了小空闲分区或空闲分区“碎片”; 系统每次从链首开始查找空闲分区,增加查找开销。 动态分区分配 2、循环首次适应算法 将空闲分区按照地址递增的顺序组织成空闲分区链 为作业分配内存时,系统不是从空闲分区链的第一个空闲分区开始查找,而是从空闲分区链上,上次为作业分配分区后的位置开始查找,找到第一个满足作业大小的空闲分区,分割并分配该空闲分区。 如果找到空闲分区链的链尾还没有找到,系统可以再从链首开始查找。 动态分区分配 该分区分配算法虽然克服了首次适应算法的缺点,使得空闲分区的分布更加均匀,查找空闲分区所需要的时间更短,但是,空闲分区链中的小分区或“碎片”问题仍然不能解决。 3、最佳适应算法 扫描整个空闲分区链,从中挑选

文档评论(0)

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

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

1亿VIP精品文档

相关文档