操作系统 第7篇.pptVIP

  1. 1、本文档共93页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第七章 内存管理 内存管理的功能 程序的加载和链接 连续分配方式 基本分页分配方式 基本分段分配方式 虚拟页式分配 页面置换算法 虚拟段式分配 段页式分配方式 7.1 内存管理的功能 存储管理主要是对主存的管理。不论何种操作系统的存储管理都必须能够实现内存分配、地址变换、存储保护、存储共享和存储扩充等功能。 7.1.1 内存分配 直接指定方式 :编写程序时确定地址 静态分配方式 :程序装入内存时确定地址 动态分配方式 :程序执行时确定地址 7.1.2 地址变换 地址空间:程序编译时还没有装入主存,还不能确定它在主存中的实际位置,所以都是从0开始。相对于0位置开始的地址称为逻辑地址,也称为相对地址。地址空间是指逻辑地址的集合。 存储空间:一个程序在主存中的实际位置称为物理地址。物理地址的集合就是存储空间。 7.1.2 地址变换 地址转换:作业逻辑地址到物理地址的转换,又称为重定位。 7.1.3 存储保护 地址保护 :一个进程不能跳到另一个进程地址上去执行。 权限保护:对于不同的进程有不同的存取权限,确保不能越权执行。 7.1.4 存储共享 任何保护机制必须具有一定的灵活性,以允许多个进程访问主存的同一部分。例如,许多进程正在执行同一个程序,则允许每个进程访问该程序的同一个副本要比让每个进程有自己单独的副本更具优势。合作完成同一个任务的进程可能需要共享访问同一个数据结构。因此内存管理系统必须允许对内存共享区域进行受控访问,而不会损害基本的保护。 7.1.5 存储扩充 请求调入功能 :把程序的一部分装入内存,使其先运行,在运行的过程中随时请求操作系统把需要的部分调入内存。 置换功能 :把不需要的部分换出主存,以装载需要的部分。 7.2 程序的加载和链接 7.2.1 程序的加载 绝对装入方式 :在编译时,如果知道程序将驻留在内存的什么位置,那么,编译程序将产生绝对地址的目标代码。绝对装入程序按照装入模块中的地址,将程序和数据装入内存。装入模块被装入内存后,由于程序中的逻辑地址与实际内存中的地址完全相同,故不需对程序和数据的地址进行修改。 7.2.1 程序的加载 可重定位方式 : 7.2.1 程序的加载 动态运行时装入方式:在把装入模块装入到内存后,并不立即把装入模块中的相对地址转换成绝对地址,而是把这种地址转换推迟到程序真正执行时才进行。因此,装入内存后的所有地址都仍然是相对地址。 7.2.2 程序的链接 7.2.2 程序的链接 链接编辑程序 :静态链接 动态链接器 :动态链接 7.3 连续分配方式 连续分配方式指的是为一个用户程序划分连续的内存空间,这种分配方式广泛应用于20世纪60~70年代,它至今在内存分配方式中还占有一席之地。我们又可以把连续分配方式进一步分为单一连续分配、固定分区分配、动态分区分配和可重定位分区分配四种方式。 7.3.1 单一连续分配 7.3.2 固定分区分配 把内存空间划分为多个分区,这些分区的大小在操作系统初始化的时候就确定了,并且运行时不会改变,这种机制称为固定分区分配。 7.3.2 固定分区分配 内存管理 : 7.3.2 固定分区分配 分配策略 7.3.3 动态分区分配 事先不划定分区的大小,根据进程的大小动态的为之分配内存空间。 7.3.3 动态分区分配 内存管理: 空闲分区表:在系统中设置一张空闲分区表,记录每个空闲分区的情况,每个空闲分区占有一个表目。 空闲分区链:在每个分区的起始部分,设置一些用于控制分区的信息,以及用于链接各分区所用的前向指针;在分区尾部则设置一后向指针,通过前后向链接指针,可以将所有的空闲分区链接成一个双向链。 7.3.3 动态分区分配 分配策略 首次适应算法(First-Fit) 下次适应算法(Next-Fit) 最佳适应算法(Best-Fit) 最坏适应算法(Worst-Fit) 7.3.3 动态分区分配 7.3.4 可重定位分区分配 内存紧凑 :把系统中小的、离散的分区合并成一个大的分区的过程。 7.3.4 可重定位分区分配 重定位 :逻辑地址?物理地址 静态重定位:在程序被加载到内存之前已经知道了它将要加载到内存的开始地址,这样就可以事先进行地址转换,把相对地址转换成绝对地址。 动态重定位:作业装入内存后所有的地址仍然是相对地址,将相对地址转换成绝对地址的过程被推迟到程序指令要真正执行时进行。 7.3.4 可重定位分区分配 7.3.5 交换和覆盖 交换:把内存中暂时不用的程序和数据换出到外存上,以释放内存空间,当换到外存的数据再次使用时,再把它们换入内存。 覆盖:是指把程序划分成若干个功能相对独立的程序段,按照其自身的逻辑结构将那些不会同时执行的程序段共享同一块内存区域。

文档评论(0)

kehan123 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档