第4部分存储管理-

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第4章 存储管理
2.纯分页存储管理的地址重定位问题
纯分页存储管理中的地址重定位是非常重要的, 要使不连续的、分散的用户程序能正常运行,须 采用动态地址重定位。此时,可采用重定位寄存 器方式,如分页太多,则重定位寄存器用得太多。 通常可在内存中为每个作业开辟一块特定区域, 建立起作业的逻辑页与存储块之间的对应表格关 系,这种表常称为页面映象表,简称页表。
源程序经过汇编或编译后,形成目标程序,每个 目标程序都是以0为基址顺序进行编址的,原来 用符号名访问的单元用具体的数据——单元号取 代。这样生成的目标程序占据一定的地址空间, 称为作业的逻辑地址空间,简称逻辑空间。在逻 辑空间中每条指令的地址和指令中要访问的操作 数地址统称为逻辑地址。
下一页
第4章 存储管理 图4.2 作业的名空间、逻辑地址空间和装入后的物理空间
添加了存取控制信息的页表表目如下图所示:
返回本节
第4章 存储管理
4.3 虚拟存储器管理
4.3.1 虚拟存储器的概念 4.3.2 请求式分页存储管理与动态地址重定位 4.3.3 现代计算机系统改进的动态地址重定位 4.3.4 页面置换算法 4.3.5 请求式分页存储管理性能分析举例 4.3.6 请求式分段存储管理
下一页
第4章 存储管理
3.常用的分配算法
(1)首次适应算法 (2)最佳适应算法 (3)最差适应算法
下一页
第4章 存储管理 图4.8 最佳适应算法的空闲分区链表组织形式
下一页
第4章 存储管理 图4.9 最差适应算法的空闲分区链表组织形式
下一页
第4章 存储管理 图4.10 内存使用情况
下一页
第4章 存储管理 图4.11 用三种适应算法处理同一作业序列
下一页
第4章 存储管理 图4.14 纯分页存储管理示意图
下一页
第4章 存储管理
3.联想存储器
从上面介绍的地址变换过程可以看出:如果把页表全部 放在内存,那么存取一个数据时,至少要访问二次内存。 一次是访问页表,形成实际内存地址;另一次是根据形 成的内存地址存取数据。显然,这比通常执行指令的速 度要慢得多,使计算机的运行速度几乎降低一半。
第4章 存储管理
1.空闲分区的组织形式
空闲分区链表的组织是这样的:在每个空闲分区 的起始部分开辟出一个单元,存放一个链表指针 和该分区的大小,链表指针指向下一个空闲分区。 系统中用一个固定单元作为空闲分区链表的链表 头指针,指向第一块空闲分区首地址,最后一块 空闲分区的链表指针存放链尾标志。如图4.7(a) 所示 。
有1k个表目项,分别指出每个次级小页表所在的物理块号和 其他有关状态信息。这样,每个作业有一个页目录(一级页
表),它的每个表目指向一个二级页表。页目录本身也刚好是
一个页面大小(210=1k,每个表目4个字节)。
下一页
第4章 存储管理 图4.19 Windows NT两级页表地址变换示意图
下一页
第4章 存储管理
和大于新作业的内存要求,但却没有单个的空闲区足以 装下该作业。
采用动态重定位的可变式分区管理技术,在执行内存分
配时,如无足够大空闲块,应考虑实现紧凑操作。其分
配算法如图4.12所示 。
下一页
第4章 存储管理 图4.12 采用动态重定位的可变式分区分配算法
返回本节
第4章 存储管理
4.2.3 纯分页存储管理
返回本节
第4章 存储管理
4.1.3 存储保护
(1)上、下界存储保护:上、下界保护是一种 简单的存储保护技术。系统可为每个作业设置一 对上、下界寄存器,分别用来存放当前运行作业 在内存空间的上、下边界地址,用它们来限制用 户程序的活动范围。
(2)基址—限长存储保护:上、下界保护的一 个变种是采用基址—限长存储保护。
前执行所涉及的信息放入内存中,其余部分可根据需要
临时调入,由操作系统和硬件相配合来完成主存和辅存
之间信息的动态调度。这样的计算机系统好像为用户提
供了一个存储容量比实际主存大得多的存储器,就称为
虚拟存储器。
返回本节
第4章 存储管理
4.3.2 请求式分页存储管理与动态地址重定位
请求式分页存储管理与纯分页存储管理在内存块的分配 与回收,存储保护某方面都十分相似,不同之处在于地 址重定位问题。在请求式分页存储管理的地址重定位时, 可能会出现所需页面不在主存的情况,此时,系统必须 解决以下两个问题: (1)当程序要访问的某页不在内存时,如何发现这种缺 页情况?发现后应如何处理? (2)当需要把外存上的某个页面调入内存时,此时内存 中没有空闲块应怎么办?
返回本章首页
第4章 存储管理
4.3.1 虚拟存储器的概念
(1)程序中往往会有一些彼此互斥的部分。
(2)在一个完整的程序中,会有一些诸如出错处理这样 的子程序,在作业正常运行情况下不会执行这些程序, 没有必要把它们调入内存。
基于程序局部性原理和上述情况,就没有必要把一个作
业一次性全部装入内存再开始运行。而是可以把程序当
第4章 存储管理
第4章 存储管理
本章学习目标 4.1 存储管理的功能 4.2 实存管理 4.3 虚拟存储器管理 4.4 碎片与抖动问题
开始
第4章 存储管理
本章学习目标
本章首先介绍了存储管理的研究对象和目的,明 确了存储管理的基本功能和有关的基本概念;然 后从实存和虚存两个角度,分别介绍了常用的几 种存储管理方案;最后对各种存储管理方案存在 的问题,主要是碎片和抖动问题进行了总结。
1.纯分页存储管理中存储块的分配与回收 2.纯分页存储管理的地址重定位问题 3.联想存储器 4.存储保护
下一页
第4章 存储管理
1.纯分页存储管理中存储块的分配与回收
通常有两 种记录空 闲存储块 的方法: 位图法和 链表法。
图4-13 存储块的位图管理法
(a)存储块使用情况
(b)存储块使用情况的位图表示
返回本节
第4章 存储管理
4.3.3 现代计算机系统改进的动态地址重定位
(1)如何合理地组织管理相当大的页表?
在Windows NT中,为解决第一个问题,对页表本身进行了改 进,将庞大的页表本身也采取分页措施,采用了两级页表结构。
即把页表本身按固定大小分成一个个小页表,每个小页表由
210=1024个页表表目构成,每个表目占4字节,所以每个小页 表刚好占一个页面(页面大小为212=4kb)。一共有210=1k个 小页表。为了对这1k个小页表进行管理和索引查找,设置了 一个页表目录,也称之为顶级页表或一级页表,该页目录包含
返回本节
第4章 存储管理
4.2 实存管理
4.2.1 固定分区存储管理 4.2.2 可变式分区存储管理 4.2.3 纯分页存储管理
返回本章首页
第4章 存储管理
4.2.1 固定分区存储管理
固定分区存储管理是实现多道程序设计的最简单 的一种存储管理技术。其基本思想是,在作业未 进入内存之前,就由操作员或操作系统把内存可 用空间划分成若干个固定大小的存储区,除操作 系统占用一个区域外,其余区域为系统中多个用 户共享,因为在系统运行期间,分区大小、数目 都不变,所以固定式分区也称为静态分区。
返回本节
第4章 存储管理
4.1.2 地址重定位
1.内存空间(或物理空间) 2.逻辑空间 3.地址重定位
下一页
第4章 存储管理
1.内存空间(或物理空间)
内存是由若干个存储单元组成的,每个存储单元 有一个编号,这种编号可唯一标识一个存储单元, 称为内存地址(或物理地址)。
下一页
第4章 存储管理
2.逻辑空间
返回本章首页
第4章 存储管理
பைடு நூலகம்本章的主要内容如下:
(1)存储管理的目的和四大基本功能。 (2)实存管理中讲述了固定分区存储管理、可变式 分区存储管理、纯分页存储管理三种存储管理方 案的实现原理 (3)虚存管理以请求式分页存储管理为重点 (4)总结各种存储管理方案中存在的碎片和抖动问 题及解决方法
下一页
(2)面对大的页表,地址的映射怎样才能比较 快地实现?
(1)使用快表:即利用前面我们已介绍的高速 缓冲存储器来存放经常使用的页表表目,以提高 页表的查询速度。 (2)使用高速缓冲存储器:在微处理器和主存 之间设置32kb或64kb的高速缓冲存储器,大部分 的指令和数据取自高速缓存(命中率为98%), 所以存取数据和指令速度相当高,达到与处理器 速度完全相匹配。
第4章 存储管理 图4.4 界限寄存器的两种存储保护方式
返回本节
第4章 存储管理
4.1.4 虚拟存储器
对内存进行逻辑上的扩充,现在普遍采用虚拟存储管理 技术。 虚拟存储技术的基本思想是把有限的内存空间与大容量 的外存统一管理起来,构成一个远大于实际内存的、虚 拟的存储器。此时,外存是作为内存的直接延伸,用户 并不会感觉到内、外存的区别,即把两级存储器当作一 级存储器来看待。一个作业运行时,其全部信息装入虚 存,实际上可能只有当前运行的必需一部分信息存入内 存,其他则存于外存,当所访问的信息不在内存时,系 统自动将其从外存调入内存。
返回本节
第4章 存储管理
下一页
第4章 存储管理
3.地址重定位
(1)静态地址重定位 静态地址重定位是在程序执行之前由操作系统的 重定位装入程序完成的。 (2)动态地址重定位 动态地址重定位是在程序执行期间进行的。
下一页
第4章 存储管理 图4.3 静态地址重定位和动态地址重定位示意图
(a)采用静态重定位后的内存空间
(b)采用动态重定位时内存空间 及地址重定位示意图
第4章 存储管理 图4.5 固定式分区内存分配示意图(a)和(b) 固定式分区说明表
返回本节
第4章 存储管理
4.2.2 可变式分区存储管理
1.空闲分区的组织形式 2.内存的分配与回收 3.常用的分配算法 4.可变式分区的地址重定位
下一页
第4章 存储管理 图4.6 可变式分区内存使用情况示意图
下一页
下一页
第4章 存储管理 如图4.17所示是请求式分页存储管理的存储映像
下一页
第4章 存储管理
为了帮助操作系统对要置换出内存的页面进行选 择,在页表中还可以增加一个引用位,以反映该 页最近的使用情况。 一般来说,一个页表的表目通常可包括如下的数 据内容:
下一页
第4章 存储管理 请求式分页存储管理中的地址重定位和缺页中断处 理过程如图4.18所示。
下一页
第4章 存储管理
4.可变式分区的地址重定位
可变式分区的地址重定位可采用静态重定位,也可采用
动态重定位。如采用静态重定位,因用户作业进入内存 后,程序的逻辑地址实现了重定位,不能在内存中再进 行移动,经过一段时间的运行,内存中不能再分配利用
的小碎片会越来越多。有时可能会出现这种情况,即当 一个作业申请一定数量的内存时,虽然此时空闲区的总
应用联想存储器和页表相结合的方式,可有效地提高系 统动态地址转换的速度,是一种行之有效的方法。
下一页
第4章 存储管理 图4.15 纯分页存储管理地址重定位实现过程
下一页
第4章 存储管理 图4.16 采用快表和页表相结合的分页地址变换过程示意图
下一页
第4章 存储管理
4.存储保护
四种保护方式:①禁止做任何操作,②只能执行, ③只能读,④能读/写,当要访问某页时,先判断 该页的存取控制和存储保护信息是否允许。
下一页
第4章 存储管理
2.内存的分配与回收
当某一个用户作业完成释放所占分区时,系统应 进行回收。在可变式分区中,应该检查回收区与 内存中前后空闲区是否相邻,若相邻,则应进行 合并,形成一个较大的空闲区,并对相应的链表 指针进行修改;若不相邻,应将空闲区插入到空 闲区链表的适当位置。
下一页
第4章 存储管理 图4.7 首次适应算法的空闲分区链表组织形式
第4章 存储管理 图4.1 多级存储器体系示意图
第4章 存储管理
4.1 存储管理的功能
4.1.1 内存的分配与回收 4.1.2 地址重定位 4.1.3 存储保护 4.1.4 虚拟存储器
返回本章首页
第4章 存储管理
4.1.1 内存的分配与回收
内存分配按分配时机的不同,可分为两种方式。 (1)静态存储分配:指内存分配是在作业运行之前各目 标模块连接后,把整个作业一次性全部装入内存,并在 作业的整个运行过程中,不允许作业再申请其他内存, 或在内存中移动位置。也就是说,内存分配是在作业运 行前一次性完成的。 (2)动态存储分配:作业要求的基本内存空间是在目标 模块装入内存时分配的,但在作业运行过程中,允许作 业申请附加的内存空间,或是在内存中移动,即分配工 作可以在作业运行前及运行过程中逐步完成。
相关文档
最新文档