- 1、本文档共87页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第4章内存管理课件.ppt
第4章 内存管理 4.1.1 内存的分配与回收 内存分配按分配时机的不同,可分为三种方式: 1.直接分配 采用物理内存地址编写程序。使用这种方式,必须事先划定内存的使用空间,因此,内存利用率不高,用户使用较困难。 2.静态分配 在作业运行之前各目标模块连接后,把整个作业一次性全部装入内存,并在作业的整个运行过程中,不允许作业再申请其他内存,或在内存中移动位置。也就是说,内存分配是在作业运行前一次性完成的。 4.1.1 内存的分配与回收 3.动态分配 作业要求的基本内存空间是在目标模块装入内存时分配的,但在作业运行过程中,允许作业申请附加的内存空间,或是在内存中移动,即分配工作可以在作业运行前及运行过程中逐步完成。 4.1.2 地址转换 把用户程序装入内存时对有关指令的地址部分的修改定义为从程序地址到内存地址的地址转换,或称为地址重定位。 1.物理地址与逻辑地址 物理地址也称内存地址,它是用于唯一标识一个内存单元的编号。所有的物理地址构成了物理空间。 4.1.2 地址转换 逻辑地址也称程序地址,它是指在源程序经过汇编或编译后形成的目标代码中,用于反映目标代码中指令或数据的相对位置关系的地址。 逻辑地址都是以“0”为基址顺序进行编址的,这样生成的目标程序占据一定的地址空间,称为程序的逻辑地址空间,简称逻辑空间。 用符号地址(符号名)表示的程序空间称为名空间。 因为程序在装入内存后,其逻辑地址和物理地址不一致。 ●静态重定位 是在程序执行之前由操作系统的连接装入程序完成地址转换。 优点:不需要硬件的支持。 缺点:程序必须占用连续的内存空间; 一旦程序装入后不能移动。 ●动态重定位 在程序执行期间进行的地址转换,是由专门的硬件机构来完成的。 优点:程序占用的内存空间是动态可变的,当程序从某个存储区移到另一个区域时,只需要修改相应的寄存器BR的内容即可。 缺点:需要硬件的支持; 实现存储管理的软件算法较为复杂。 4.1.3 内存的共享和保护 4.1.3 内存的共享和保护 4.1.3 内存的保护 4.1.4 内存空间的逻辑扩充 对内存进行逻辑上的扩充,现在普遍采用覆盖、交换和虚拟存储器技术。 虚拟存储器是具有请求调入功能和置换功能,能仅把作业的一部分装入内存便可运行作业的存储器系统,它是一种能从逻辑上对内存容量进行扩充的虚构的存储器系统。 虚拟存储器的理论基础是程序的局部性原理。包括时间局部性和空间局部性。 4.1.4 内存空间的逻辑扩充 虚拟存储器的基本思想是把有限的内存空间与大容量的外存统一管理,构成一个远大于实际内存的、虚拟的存储器。此时,外存是作为内存的直接延伸,用户并不会感觉到内、外存的区别,即把两级存储器当作一级存储器来看待。 一个作业运行时,其全部信息装入虚存,实际上可能只有当前运行的必需一部分信息存入内存,其他则存于外存,当所访问的信息不在内存时,系统自动将其从外存调入内存。 4.2 分区管理 4.2.1 单分区管理 4.2.2 固定分区 4.2.3 可变分区 4.2.4 覆盖与交换 4.2.2 固定分区 把可用空间划分成若干个固定大小的存储区,除操作系统占用一个区域外,其余区域为系统中多个用户共享,因为在系统运行期间,分区大小、数目都不变,所以固定分区也称为静态分区。 分区说明表 4.2.3 可变分区 2.可变分区管理中的数据结构 3.内存的分配算法 ●最先适应算法 按空闲区地址递增的次序分配 ●最优适应算法 按空闲区由小到大的次序分配 ●最坏适应算法 按空闲区由大到小的次序分配 (1)最先适应分配算法(FF) (2)最优适应分配算法(BF) (3)最坏适应分配算法(WF) 有作业序列:作业A要求18K;作业B要求25K,作业C要求30K。如下图。 系统中空闲区按三种算法组成的空闲区队列如下,经分析可知:最佳适应法对这个作业序列是合适的,而其它两种对该作业序列是不合适的。 课堂练习: 有作业序列:作业A要求21K;作业B要求30K,作业C要求25K,分析使用哪种分配算法最佳? 4.内存的回收 当某一个用户作业完成释放所占分区时,系统应进行回收。 在可变式分区中,应该检查回收区与内存中前后空闲区是否相邻: 若相邻,则应进行合并,形成一个较大的空闲区,并对相应的链表指针进行修改;若不相邻,应将空闲区插入到空闲区链表的适当位置。 回收的分区前后没有相邻的
文档评论(0)