操作系统原理与实践.ppt

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

操作系统原理与实践 第4章 存储管理 本章学习目标 4.1 存储管理的功能 4.2 实存管理 4.3 虚拟存储器管理 4.4 碎片与抖动问题 本章学习目标 本章首先介绍了存储管理的研究对象和目的,明确了存储管理的基本功能和有关的基本概念;然后从实存和虚存两个角度,分别介绍了常用的几种存储管理方案;最后对各种存储管理方案存在的问题,主要是碎片和抖动问题进行了总结。 本章的主要内容如下: (1)存储管理的目的和四大基本功能。 (2)实存管理中讲述了固定分区存储管理、可变式分区存储管理、纯分页存储管理三种存储管理方案的实现原理 (3)虚存管理以请求式分页存储管理为重点 (4)总结各种存储管理方案中存在的碎片和抖动问题及解决方法 4.1 存储管理的功能 4.1.1 内存的分配与回收 4.1.2 地址重定位 4.1.3 存储保护 4.1.4 虚拟存储器 4.1.1 内存的分配与回收 内存分配按分配时机的不同,可分为两种方式。 (1)静态存储分配:指内存分配是在作业运行之前各目标模块连接后,把整个作业一次性全部装入内存,并在作业的整个运行过程中,不允许作业再申请其他内存,或在内存中移动位置。也就是说,内存分配是在作业运行前一次性完成的。 (2)动态存储分配:作业要求的基本内存空间是在目标模块装入内存时分配的,但在作业运行过程中,允许作业申请附加的内存空间,或是在内存中移动,即分配工作可以在作业运行前及运行过程中逐步完成。 4.1.2 地址重定位 1.内存空间(或物理空间) 2.逻辑空间 3.地址重定位 1.内存空间(或物理空间) 内存是由若干个存储单元组成的,每个存储单元有一个编号,这种编号可唯一标识一个存储单元,称为内存地址(或物理地址)。 2.逻辑空间 源程序经过汇编或编译后,形成目标程序,每个目标程序都是以0为基址顺序进行编址的,原来用符号名访问的单元用具体的数据——单元号取代。这样生成的目标程序占据一定的地址空间,称为作业的逻辑地址空间,简称逻辑空间。在逻辑空间中每条指令的地址和指令中要访问的操作数地址统称为逻辑地址。 3.地址重定位 (1)静态地址重定位 静态地址重定位是在程序执行之前由操作系统的重定位装入程序完成的。 (2)动态地址重定位 动态地址重定位是在程序执行期间进行的。 4.1.3 存储保护 (1)上、下界存储保护:上、下界保护是一种简单的存储保护技术。系统可为每个作业设置一对上、下界寄存器,分别用来存放当前运行作业在内存空间的上、下边界地址,用它们来限制用户程序的活动范围。 (2)基址—限长存储保护:上、下界保护的一个变种是采用基址—限长存储保护。 4.1.4 虚拟存储器 对内存进行逻辑上的扩充,现在普遍采用虚拟存储管理技术。 虚拟存储技术的基本思想是把有限的内存空间与大容量的外存统一管理起来,构成一个远大于实际内存的、虚拟的存储器。此时,外存是作为内存的直接延伸,用户并不会感觉到内、外存的区别,即把两级存储器当作一级存储器来看待。一个作业运行时,其全部信息装入虚存,实际上可能只有当前运行的必需一部分信息存入内存,其他则存于外存,当所访问的信息不在内存时,系统自动将其从外存调入内存。 4.2 实存管理 4.2.1 固定分区存储管理 4.2.2 可变式分区存储管理 4.2.3 纯分页存储管理 4.2.4 纯分段存储管理 4.2.1 固定分区存储管理 固定分区存储管理是实现多道程序设计的最简单的一种存储管理技术。其基本思想是,在作业未进入内存之前,就由操作员或操作系统把内存可用空间划分成若干个固定大小的存储区,除操作系统占用一个区域外,其余区域为系统中多个用户共享,因为在系统运行期间,分区大小、数目都不变,所以固定式分区也称为静态分区。 4.2.2 可变式分区存储管理 1.空闲分区的组织形式 2.内存的分配与回收 3.常用的分配算法 4.可变式分区的地址重定位 1.空闲分区的组织形式 空闲分区链表的组织是这样的:在每个空闲分区的起始部分开辟出一个单元,存放一个链表指针和该分区的大小,链表指针指向下一个空闲分区。系统中用一个固定单元作为空闲分区链表的链表头指针,指向第一块空闲分区首地址,最后一块空闲分区的链表指针存放链尾标志。如图4.7(a)所示 。 2.内存的分配与回收 当某一个用户作业完成释放所占分区时,系统应进行回收。在可变式分区中,应该检查回收区与内存中前后空闲区是否相邻,若相邻,则应进行合并,形成一个较大的空闲区,并对相应的链表指针进行修改;若不相邻,应将空闲区插入到空闲区链表的适当位置。 ? 3.常用的分配算法 (1)首次适应算法 (2)最佳适应算法 (3)最差适应

文档评论(0)

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

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

1亿VIP精品文档

相关文档