- 1、本文档共152页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第4章操作系统ppt讲述
第四章 存储器管理 相关概念 相对地址 用户程序中使用的地址,又叫逻辑地址。 绝对地址 系统为主存单元分配的地址,又叫物理地址。 绝对装入 程序运行之前,按照程序的逻辑地址,将程序和数据装入内存指定的地方。 实现简单,无须进行相对地址到绝对地址的转换。 绝对装入 缺点 程序每次必须装入同一内存区; 程序员必须事先了解内存的使用情况,根据内存情况确定程序的相对地址; 程序的修改(增加或删除指令)将引起整个程序中指令地址的变动; 程序中的所有存储引用,如函数过程调用等,在装入之前都必须转换为物理地址,不利于存储共享。 重定位装入 允许将程序装入与逻辑地址不同的物理内存空间。即程序可以装入到内存的任意位置,其逻辑地址与装入内存后的物理地址无直接关系。 但是,必须进行地址映射,将逻辑地址转换为物理地址。 静态重定位技术:地址映射在程序装入时进行,以后不再更改程序地址。 动态运行时装入方式 地址转换不是在装入时进行,而是在程序运行时动态进行。 需要硬件支持,即重定位寄存器,用于保存程序在内存中的起始地址。 有利于多道程序环境下,进程的换进/换出。 静态链接 生成的装入模块可以采用重定位装入或运行时动态装入方式。 静态链接需要花费大量的处理机时间。而其中的很多模块将不会运行,浪费存储空间和处理机时间。例如:条件判断语句。 装入时动态链接 当系统装入含有未链接的外部模块引用的装入模块时,每当遇到一个外部模块引用,则查找相应的目标模块。将其装入内存,并将模块内的指令地址转换为相对于整个装入模块的起始地址的相对地址。 优点:有利于目标模块的更新与升级;有利于代码共享;有利于扩充软件的功能,可以将扩充部分作为动态链接模块。 但是,可能链接一些不会执行的模块,浪费存储空间和处理机时间。 运行时动态链接 指,外部模块的引用直至程序执行时才装入内存,并链接到装入模块,进行地址转换。 可以解决静态链接和装入时动态链接都要面临的存储空间和处理机时间浪费问题,不需要执行的模块就不装入内存。 广泛用于事务处理系统,如航空售票系统、银行管理系统等。 OS自身的一些特殊处理例程,如错误处理例程,也无需事先全部装入内存。 4.2.2 固定分区分配 思想:将内存地址空间划分为若干个固定大小(依据程序员的经验)的区域,每个分区装入一道作业运行。 划分方法 分区大小相等 分区大小不等 相关数据结构 分区说明表:分区号、大小、起始地址、状态 固定分区分配 优点 分配简单,只要进程大小不超过分区大小,就可以装到任何一个分区中运行。 缺点 存在“内零头”。分区大小固定,若进程申请的空间很小,却占用整个分区,分区内存在不可用的浪费空间,称为“内零头” 无法运行超过分区大小的程序 无法精确确定分区的大小 限制了进程数量 4.2.3 动态分区分配 思想 主存预先不划分分区,作业入主存执行时再根据作业大小划分等额分区分配。 相关数据结构 空闲分区表,包括分区序号、分区始址及分区的大小。 空闲分区链 举例:有一个128M的内存,其中OS自身占用8M,剩下120M可供用户进程使用,现依次装入进程P1、P2、P3、P4、P5、P6,一段时间之后,进程P1、P3、P5执行结束,释放3个空闲分区,此时内存中共有4个空闲分区。 采用动态划分技术,为进程分配存储空间的过程较复杂。 当系统中有多个满足进程大小的空闲分区时,如何为进程选择一个合适的分区? 几种典型的分区分配方案。 首次适应算法FF 基本思想:总是从内存的某一端(一般从低地址端)开始查找,选择一个超过进程申请大小的空闲分区。 为此,可以将空闲分区表中登记的空闲分区按照其起始地址由小到大的次序依次排列。系统查找空闲分区时,从表头开始查找,取第一个满足要求的分区分配给进程。 首次适应算法FF 若找到的空闲分区恰好与进程申请的存储空间大小相等,或分配给该进程以后,仅剩下一个非常小的空间(小于系统设置的阀值),则将该分区全部分配给申请进程。 否则,系统将该分区划分为两个分区,一个分区的长度等于进程申请的空间大小,并将其分配给申请进程。然后,将另一个自分区链接到空闲分区链表中。 首次适应算法FF 优点:尽量使用低址空间,因而在高址空间可能会保留较大的空闲分区。大进程申请的存储空间大都能在高址得到满足。 缺点:由于每次只简单地使用找到的第一个分区,结果可能导致将较大的空闲分区不断地分割为较小的空闲分区。 循环首次适应算法 该算法是由首次适应算法演变而成 为进程分配空间时,不再是从链首开始查找,而是从上次找到的空闲分区的下一个空闲分区开始查找,直至找到一个满足要求的空闲分区,分配给进程。 该算法会导致内存中缺乏大分区,从而使得大进程无法装入内存。 可能会导致大量的外零头(未分但无法使用的那部分空间)。 最佳适应算
您可能关注的文档
最近下载
- 《控制图+第3部分:验收控制图GBT+17989.3-2020》详细解读.pdf
- 优秀教师评分细则(3篇).pdf VIP
- 《光电信息综合实验》课程教学大纲.doc VIP
- 《微积分》教案 1.4 两个重要极限.pdf VIP
- 《半导体封装技术》课程教学大纲(模板).docx VIP
- 思维训练与学习力提升-01-学习力的内涵与要素.pdf VIP
- UM-20200609-SIA-3000(COD)化学需氧量在线分析仪用户手册-1.10.pdf VIP
- UM-20200605-SIA-3000(NH3)氨氮水质在线分析仪用户手册-1.10.pdf VIP
- 水库大坝安全监测和管理特点研究.doc VIP
- 项目管理入门教程项目管理入门教程.ppt VIP
文档评论(0)