4.1存储器管理概述

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
信息从主存中移走,即确定淘汰已占用的内存区的原则。
3. 实施主存分配与回收
(2)内存的共享和保护
• 内存共享
– 进程共享(share)访问某一段内存中的程序或数据 – 进程之间的一种高级通信方式 – 节省空间,提高内存利用率
• 内存保护
– 在多用户环境中,各用户进程互不影响 – 各用户程序只能在给定的存储区域内活动 – 实施方法:界地址保护
4.1.2 存储器管理功能
- 响应请求分配 所需的主存空间
主存 分配
地址 映射
存储器
- 基于虚拟存储器技术 在逻辑上扩充主存空间
主存 扩充
- 逻辑地址到物理 地址的映射
存储 保护
- 保护进程之间 相互不受影响
(1)内存的分配与回收
1. 构造分配用的数据结构
主存资源信息块:等待队列;空闲区队列;主存分配程序
② 在程序装入时确定地址映射关系
在程序装入过程中随即进行的地址变换方式称为静态地址映射。
0
0 100 mov r1,[500]
重定位 装入程序
500 1130
599
程序地址空间
静态地址重定位示意图
m+0 m+100 mov r1,[500+m] m+500 1130 m+599
256k-1
存储空间
③ 在程序运行时确定地址映射关系
在程序执行期间,随着每条指令和数据的访问自动地连续地进行地址映射,这种 地址变换方式称为动态地址映射。
(4)内存扩充
• 必要性——主存容量不满足应用需求 • 可行性——局部性特征
– 时间局部性(不久的将来再次访问该指令/数据) – 空间局部性(马上将访问其附近的指令/数据)
• 实现方法
– 程序的全部代码和数据存放在辅存中; – 程序当前执行所涉及的那部分程序代码放入主存中; – 程序执行时,当所需信息不在主存,由操作系统和硬
分析:
if ( cache命中 ) { 从cache中提取数据TC; }
else { 访问内存提取数据TM; }
有效访问时间TA = A•TC + (1 - A) • ( TC + TM )
TC一般都远远小于TM ,所以TC + TM ≈ TM ,则 TA = A•TC+ (1-A)•TM
解答:
• 问题:调查获取几种常见存储器的容量、 性能和价格等数据,并进行对比。
例题4-1
假设某系统中Cache访问周期TC为20纳秒, 内存访问周期TM为100微秒。数据存放在内存 中,Cache中有部分缓存的数据,当访问Cache 不命中的时候才访问内存读取数据。若访问 Cache的命中率A为95%,则访问数据的有效时 间TA是多少?配置Cache使访存性能提升了多 少?
主存管理——存储器管理概述
界地址保护 ① 上下界防护
例:程序大小为4KB,主存首址为20KB。
下界寄存器 20KB
上界寄存器 24KB
0 20KB
mov r1 , [500]
123 24KB
256KB1 存储空间
பைடு நூலகம்界限寄存器保护示意图
如何设置上下界寄存器内容 ? 如何判断是否越界 ?
若 20KB≤D<24KB 允许访问;
第四章 主存管理
目 录
4.1 存储器管理概述 4.2 分区存储管理 4.3 页式存储管理 4.4 段式存储管理 4.5 段页式存储管理方式 4.6 虚拟存储系统 4.7 Linux内存管理机制
4.1 存储器管理概述
4.1.1多级存储体系
• 存储器的容量、性能、价格
– 总体性能靠近系统中高性能的存储器 – 容量和价格都靠近廉价存储器
否则发生越界中断
主存管理——主存管理功能
② 基地址、限长防护 例:程序大小为4KB,主存首址为20KB。
0
基址寄存器 20KB
限长寄存器 4KB
20KB mov r1 , [500]
123 24KB
256KB1 存储空间
界限寄存器保护示意图
如何设置基址、限长寄存器 内容 ? 如何判断是否越界 ?
2. 制定策略
① 分配策略 —— 在众多个请求者中选择一个请求者的原则 ② 放置策略 —— 在可用资源中,选择一个空闲区的原则 ③ 调入策略 —— 决定信息装入主存的时机。预调策略:预先将信息调入主存。
请调策略:当需要信息时,将信息调入主存 ④ 淘汰策略 —— 在主存中没有可用的空闲区 (对某一程序而言)时,决定哪些
TA = 95%× 0.02+(1-95%)× (0.02+100) = 0.019+5.001 = 5.02微秒
近似解:
TA = 95% × 0.02 +(1-95%)× 100 = 0.019+5 = 5.019微秒
性能提升:TM / TA = 100 / 5.02 = 19.92, 命中率95%时,访存性能提升到大概20倍。
件配合来从辅存中调入信息,程序继续执行。
虚拟存储器介绍
• 什么是虚拟存储器
由操作系统和硬件相配合来完成主存和辅存之间的信息的动态调度。 这样的计算机系统好像为用户提供了一个其存储容量比实际主存大得多 的存储器,这个存储器称为虚拟存储器。
• 虚拟存储器的核心
– 逻辑地址与物理地址分开 – 存储空间与虚地址空间分开 – 提供地址变换机构
若 逻辑地址 < 4KB 允许访问;
否则发生越界中断
(3)地址映射
物理地址(绝对地址、实地址)
物理地址是计算机主存单元的真实地址,又称为绝对地址或 实地址。
主存空间
物理地址的集合所对应的空间组成了主存空间。
逻辑地址(相对地址、虚地址)
用户程序地址(指令地址或操作数地址)均为逻辑地址。
程序地址空间
用户程序所有的逻辑地址集合对应的空间。
• 实现虚拟存储器的物质基础
– 辅存容量足以存放应用程序的虚地址空间 – 主存容量存放进入主存的多进程的信息 – 地址变换机构
4.1.3 程序的装入和链接
• 程序链接Link的三种方式
– 静态链接 – 装入时动态链接 – 运行时动态链接
• 程序装入Load的三种方式
将程序地址空间中使用的逻辑地址变换成主存中的 物理地址的过程,称为地址映射。
0 100 mov r1,[500]
0 1000
Load 1100 mov r1,[500]
500 1130
1500 1130
程序地址空间
256k-1
存储空间
程序地址空间装入主存
① 编程或编译时确定地址映射关系
在程序编写或程序编译时确定虚、实地址之间的对应关系,结果是一个不能浮动 的程序模块。
相关文档
最新文档