分区分配算法.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第七讲 存储器管理 中国科学技术大学计算机系 陈香兰 xlanchen@ustc.edu.cn 2013Fall 内容提要 存储器的层次结构 程序执行的基础知识、程序的装入和链接 连续分配存储管理方式 分页存储管理方式 分段存储管理 段页式存储管理 连续内存分配方式(contiguous memory allocation) Reading: Operating System Concepts,p284- 连续分配存储管理方式 单一连续 固定分区 动态分区 对换 内存通常被划分为两个分区(partitions): 系统区:常驻操作系统,通常位于内存低端 用户区:提供给用户(进程)使用,常位于内存高端 连续内存分配是指: 从用户区中为每个进程分配一个单独的、连续的内存空间。 主要有以下两种方式 单一连续分配方式 多分区式分配方式 固定分区式 动态分区式(可变分区式) 单一连续分配方式 最简单 只能用于单用户、单任务系统 存储保护机制 存储管理单元,MMU 或者不采用任何存储保护机制 出于信任,或采用再启动方式, 多分区式分配方式 支持多道程序, 用户区被进一步划分为若干个分区 每一个分区装载一个进程 多道程序度与分区的个数有关 根据分区大小是固定的还是可变的 固定分区方式 大小固定;等大小 or 不等大小 动态分区方式(可变分区方式) 动态可变:内存的划分是动态的,分区的大小随进程的大小确定,分区的数目随系统的运行而不断变化 固定分区分配方式 支持多道程序,用于60年代IBM-360的MFT中 分区的划分方法,两种 等大小 不等大小 但分区的大小一旦确定就不再发生变化 分配算法: 按大小顺序建立分区使用表 缺点 内存利用率低 定义:内部碎片和外部碎片 内部碎片:已经分配出去但得不到利用的存储区域 外部碎片:不能被利用的小分区 解决方案:动态分区 动态分区分配方式 能根据进程实际需要的内存大小,动态分配 能减少内部碎片 关键 数据结构:记录内存的使用情况,特别是空闲内存 分配算法 分配和回收操作 数据结构 空闲分区表,占用额外的空间 空闲分区链,利用空闲分区 分区分配算法 在将一个新作业装入内存时,要从空闲分区表或空闲分区链中,选出一个分区分配给该作业,有三种常见的分配算法 首次适应算法FF:First Fit 循环首次适应算法 最佳适应算法:Best Fit=smallest 最差适应算法:Worst Fist =largest 分区分配操作 分配 设请求的分区大小为u.size; 利用某种分配算法,找到待分配的分区,大小为m.size 根据上述分区分配算法,有m.sizeu.size 判断m.size-u.size与min_size的大小 min_size为事先约定的最小分区大小 ,分割,分割出来的分配出去,余下的加入空闲数据结构 否则,直接分配 将分配到的分区的首地址返回 可以看出,动态分区分配方式中内部碎片最大不超过min_size 回收,要考虑合并 向前合并 只需修改前一个空闲分区表项中的大小 向后合并(图) 只需修改后一个空闲分区表项中的起始地址和大小 与前后同时合并 修改前一个空闲分区表项中的大小,并取消后一个分区表项 无相邻空闲分区,无需合并 建立一个新的表项,填写相关信息,插入 上述过程中,根据链表的维护规则,可能需要调整相应表项在空闲链表中的位置 动态分区分配分析 随着分配的进行,空闲分区可能分散在内存的各处 尽管有回收,但内存仍然被划分的越来越碎,形成大量的外部碎片 解决方案之一:紧凑Compaction 针对外部碎片:采用紧凑的方法 紧凑:通过移动进程在内存中的位置,把多个分散的小分区拼成大分区 需要动态重定位技术支持 动态重定位分区分配算法: 引入紧凑和动态重定位技术的动态分区分配算法 基本与动态分区分配算法相同 Swapping 对换 最早用于MIT的CTSS中 单用户+时间片+对换 对换是指 把内存中暂时不能运行的进程,或暂时不用的程序和数据,换出到外存上,以腾出足够的内存空间,把已具备运行条件的进程,或进程所需要的程序和数据,换入内存 能提高内存利用率 对换的单位: 进程:整体对换;进程对换 页、段:部分对换 对换技术需要实现三个方面的功能 对换空间的管理 进程的换出 进程的换入 Backing store,对换空间 Fast disk, large enough to accommodate copies of all memory images for all users; must provide direct access to these memory images. 为提高速度,考虑连续分配方式,忽略碎片问题 需提供数据结构对空闲盘块进行管理 方法类似

文档评论(0)

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

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

1亿VIP精品文档

相关文档