操作系统OS_04剖析.ppt

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

第四章??? 存储器管理 教学目的和要求: 使学生了解各种存储器管理的方式和它们的实现方法。要求理解重定位、虚拟存贮器的概念。了解段页式存储管理技术、动态链接和共享的概念以及实现方法。掌握分区、页式与请求页式、段式与虚拟段式的实现原理和地址变换。熟练掌握虚存中的各种置换算法。 重点难点: 重定位的概念、分区、页式与请求页式、段式与虚拟段式的实现原理和地址变换、虚存中的置换算法。 页号P和页内地址d的计算公式 P=INT [A/L] INT:整除函数 d=[A] MOD L MOD:取余函数 (A:逻辑地址空间中的地址,L:页面大小) 例如:某系统的页面大小为1KB,地址A=2170B,则求得P=2,d=122 页表——页面映像表 数据结构:页号、块号、存取控制项 页表的作用:实现从页号到物理块号的地址映射。 第一节??? 程序的装入和链接 从源程序到程序执行 地址空间的概念 重定位的概念 程序的装入 程序的链接 4.1 存储器的层次结构 多级存储器结构 1、从源程序到程序执行 编译:编译程序 由编译程序(Compiler)将用户源代码编译成若干个目标模块。 链接:链接程序 由链接程序(Linker)将编译后形成的一组目标模块,以及它们所需要的库函数链接在一起,形成装入模块。 装入:装入程序 由装入程序(Loader)将装入模块复制到内存中。 2、地址空间的概念 物理(绝对)地址——程序执行 每个内存单元的固定顺序地址(编号)。 逻辑(相对)地址——装入(汇编编译) 被链接装配(或汇编、编译)后的目标模块所限定的地址的集合; 相对于某个基准量(通常为:0)的编址。 3、重定位的概念 重定位 概念:把程序装入内存时,修改程序中所有与地址有关的项。 逻辑地址变换为物理地址。 重定位的类型 静态重定位:程序执行前,一次性,链接装入程序。 动态重定位:处理机每次访问主存时,有动态地址变换机构(硬件)自动执行。 4、程序的链接 链接: 把一个程序相关的一组目标模块和系统调用模块(库函数)链接形成一个整体——装入模块的过程。 具体工作: 对相对地址的修改;变换外部调用符号。 链接方式: 静态链接 装入时动态链接:便于修改和更新;便于共享。 运行时动态链接:最小化快速装入,节省内存。 5、程序的装入 就是把链接好的装入模块装入“内存”。 装入方式 绝对装入:单道(任务); 装入位置是固定的。程序员直接编址或由汇编、编译程序完成地址重定位。 可重定位装入(静态重定位) 装入内存时 动态运行时装入(动态重定位) 程序执行时,才产生绝对地址 提示:通常链接、装入程序是一体的。 第二节??? 连续分配方式 为用户程序分配一个连续的内存空间。曾被广泛应用,且现在仍被采用。 单一连续分配 固定分区分配 动态分区分配 可重定位分区分配 覆盖与对换 1、单一连续分配 基本思想 把内存分为系统区和用户区,系统区供OS使用,通常放在低址部分;系统区以外的全部内存空间是用户区。 特点 只能用于单用户、单任务的OS中。 软件简单,硬件要求低(无需存储保护) 实例 CP/M,MS-DOS,RT-11 2、固定分区分配 最简单的一种可运行多道程序的存储管理方式。 划分分区的方法 分区大小相等: 缺乏灵活性,用于控制多个相同对象的系统 分区大小不等: 多个较小分区、适量中等分区、少量大分区 内存分配管理 将分区按大小排队 建立分区使用表——起址、大小、状态 程序装入时,由内存分配程序检索分区使用表,找到符合要求的分区,并进行标记。 3、动态分区分配 根据进程的实际需要,动态的分配内存空间 内存管理方式: 空闲分区表——序号、起址、大小等项 空闲分区链——双向链表 分区分配算法 首次适应算法:空闲分区按起址递增次序排列,从头开始直至找到第一个满足要求的空闲分区。 特点:内存低端会留下小的空闲区,高端有大的空闲区; 分区分配操作(分配算法流程) 分配内存 从空闲分区链(表)中找到所需大小的分区。 判断条件:M.Size - U.Size ≦ Size 否则剩余部分挂接到空闲分区链(表)上。 回收内存 回收区与插入点的前一个空闲分区相邻接; 回收区与插入点的后一个空闲分区相邻接; 回收区与插入点的前后两个空闲分区相邻接; 回收区不与任何一个空闲分区相邻接; 优缺点 管理复杂,总会有闲置的小分区——“碎片”。 4.3.4 伙伴系统 无论已分配分区或空闲分区,大小均为2的K次幂,k为整数,1≤k≤m,其中2i表示分配的最小分区的大小,2m表示分配的最大分区的大小,通常2m是整个可分配内存的大小。 计算2i-1≤n≤2i找不到,则到2i+1中找,划

文档评论(0)

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

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

1亿VIP精品文档

相关文档