- 1、本文档共57页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
OP_第四章1.ppt
4.3.1单一连续分区存储管理 在单道环境下,不管是单用户系统还是单道批处理系统,进程(作业)执行时除了系统占用一部分主存外,剩下的主存区域全部归它占用。主存可以划分为三部分:?内存分为两个区域,一个供操作系统使用,一个供用户使用,用户占用区是一个连续的存储区所以又称单一连续区存储管理。 单一连续分区存储管理 特点:一次只能装入一个程序,程序独占整个用户区,如果程序小于用户区,则剩余的空间浪费,如果大于,则无法装入。 优点:简单,适用于单用户、 单任务的操作系统,不需要 复杂的硬件支持。 缺点:一个作业运行时要占 用整个内存地址空间,对内 存造成了很大的浪费,不支 持大作业。 单一连续区分配采用静态分配和静态重定位方式,亦即作业或进程一旦进入主存,就一直等到它运行结束后才能释放主存。如下图所示的主存分配与回收法。并且由装入程序检查其绝对地址是否超越,即可达到保护系统的目的。 工作流程 4.3.2固定分区管理 ---支持多道程序技术 初始化内存空间 分区状态表 实现方法: 程序A 程序A(30K) 内碎片:指占用分区之内未被利用的空间。 下界寄存器 上界寄存器 已分配 分区4 分区3 分区2 分区1 操作系统 多个等待队列 单个等待队列 分区4 分区3 分区2 分区1 操作系统 图 4-3-2 固定分区示意图 特点: 内存中同时可以容纳多道程序; 程序必须连续存放,且要一次全部装入。 优点: 比单一连续分配方法,内存的利用率提高了; 可以支持多道程序; 实现简单,开销小。 缺点: 作业必须预先能够估计自己要占用多大的内存空间,有时 候这是难以做到的; 存在内碎片,造成存储空间的浪费; 分区总数固定,限制了并发执行的程序数目 4.3.2 固定分区管理 思想:预先不划分内存,当作业需要时向系统申请,系统从其中挖出一块给该作业,其大小等于作业所需内存的大小,然后将剩下的部分再作为空表块, 给下一次分配使用。 4.3.3 可变分区(Dynamic Partitioning) m_size m_addr m_size m_addr m_size m_addr 0 …… OS Job1 Job2 Job3 Job4 m_size m_addr m_size m_addr Q: 如何管理这些空闲区? m_size m_addr 内存管理:设置内存空闲块表——记录了空闲区起始地址和长度 内存分配:动态分配 内存回收:当某一块归还后,前后空间合并,修改内存空闲块表 Q: 如何管理这些空闲区? 1. 分区分配中的数据结构 分区分配表(见图 4-3-5) (2)空闲分区链 图 4-3-4 空闲链结构 0K 15K 38K 48K 68K 80K 110K 120K 空闲区表 已分配区表 始址 长度 标志 15K 23K 未分配 48K 20K 未分配 80K 30K 未分配 空 空 始址 长度 标志 0K 15K J1 38K 10K J2 68K 12K J3 110K 10K J4 空 空 分区分配表: 图 4-3-4 分区分配表 分配算法 按空闲块链接的方式不同,可以有以下四种算法: 分区存储管理方案 最佳适应法 最坏适应法 首次适应法 下次适应法(循环首次适应法) 最佳适应算法(best-fit) 分配方法: 将所有的空闲分区按照其容量递增的顺序排列,当要求分配一个空白分区时,由小到 大进行查找,找到最合适的分配。 释放方法: 在整个链表上搜索地址相邻的空闲区,合并后,再插入到合适的位置。 优点: ①分配后所剩余的空白块会最小,较大的空闲分区会被保留。 ②平均,只要查找一半的表格便能找到最佳适应的空白区; ③如果有一个空白区的容量正好满足要求,则它 必被选中。 缺点:空白区一般不可能恰好满足要求,在分配之后的剩余部分通常非常小,以致小到无法使用,会形成较多外碎片。 最坏适应算法(worst-fit) 分配方法: 与最佳适应算法相反,将所有的空白分区按容量递减的的顺序排列,最前面的最大的空闲分区就是找到的分区。 释放方法:同于最佳适应算法(best-fit) 优点: 分配的时候,只需查找一次,就可以成功,分配的算法很快。 缺点: 最后剩余的分区会越来越小,不会保留较大的空闲分区,无法运行大程序。 首次适应算法(first-fit) 分配方法:将所有的空闲分区按照地址递增的顺序排列,按照分区的先后次序,从头开始查找,符合要求的第一个分区就是要找的分区。 os Job2 Job4 Job5 m_size m_addr m_size
文档评论(0)