一、存储管理的主要模式
【逻辑地址】
- 逻辑地址:又称相对地址,即用户编程所使用的地址空间
- 逻辑地址从0开始编号,有两种形式:
#一维逻辑地址(地址)
#二维逻辑地址(段号:段内地址)
【段式程序设计】
- 把一个程序设计成多个段
#代码短、数据段、堆栈段、等等 - 用户可以自己应用段覆盖技术扩充内存空间使用量
#这一技术是程序设计技术,不是OS存储管理的功能
【物理地址】
- 物理地址:又称绝对地址,即程序执行所使用的地址空间
- 处理器执行指令时按照物理地址执行
【主存储器的复用】
- 多道程序设计需要复用主存
- 按照分区复用:
#主存划分为多个固定/可变尺寸的分区
#一个程序/程序段占用一个分区 - 按照页架复用
#主存划分成多个固定大小的页架
#一个程序/程序段占用多个页架
【存储管理的基本模式】
- 单连续存储管理:一维逻辑地址空间程序占用一个主存固定分区或可变分区
- 段式存储管理:段氏二维逻辑地址空间的程序占用多个主存可变分区
- 页式存储管理:一维逻辑地址空间的程序占用多个主存页架区
- 段页式存储管理:段式二维逻辑地址空间的程序占用多个主存页架区
【存储管理模式示意图】
二、存储管理的功能
【地址转换】
- 地址转换:又称重定位,即把逻辑地址转换成绝对地址
- 静态重定位:在程序装入内存时进行地址转换
#由装入程序执行,早期小型OS使用 - 动态重定位:在CPU执行程序时进行地址转换
#从效率出发,依赖硬件地址转换机构
【主存储器空间的分配与去配】
- 分配:进程装入主存时,存储管理软件进行具体的主存分配操作,并设置一个表格记录主存空间的分配情况
- 去配:当某个进程撤离或主动归还主存资源时,存储管理软件要收回它所占用的全部或者部分存储空间,调整主存分配表信息
【主存储器空间的分享】
- 多个进程共享主存储器资源:多道程序设计技术使若干个程序同时进入主存储器,共同使用一个存储器
- 多个进程共享主存储器的某些区域:若干个协作进程有共同的主存程序块或者主存数据块
【存储保护】
- 为避免主存中的多个进程相互干扰,必须对主存中的程序和数据进行保护
#私有主存区中的信息:可读可写
#公共区中的共享信息:根据授权
#非本进程信息:不可读写 - 这一功能需要软硬件协同完成
#CPU检查是否允许访问,不允许则产生地址保护异常,由OS进行相应处理
【主存储器空间的扩充】
- 存储扩充:把磁盘作为主存扩充,只把部分进程或进程的部分内容装入主存
1.对换技术:把部分不运行的进程调出
2.虚拟技术:只调入进程的部分内容 - 这一工作需要软硬件协作完成
1.对换进程决定对换,硬件机构调入
2.CPU处理到不在主存的地址,发出虚拟地址异常,OS将其调入,重执指令
三、虚拟存储器的概念
【虚拟存储器思想的提出】
- 主存容量限制带来诸多不便
#用户编写程序必须考虑主存容量限制
#多道程序设计的道数受到限制 - 用户编程行为分析
#全面考虑各种情况,执行时有互斥性
#顺序性和循环性等空间局部性行为
#某一阶段执行的时间局部性行为 - 因此可以考虑部分调入进程内容
【虚拟存储器的基本思想】
- 存储管理把进程全部信息放在辅存中,执行时先将其中一部分装入主存,以后根据执行行为随用随调入
- 如主存中没有足够的空闲空间,存储管理需要根据执行行为把主存中暂时不用的信息调出到辅存上去
【虚拟存储器的实现思路】
- 需要建立与自动管理两个地址空间
#(辅存)虚拟地址空间:容纳进程装入
#(主存)实际地址空间:承载进程执行 - 对于用户,计算机系统具有一个容量大得多的主存空间,即虚拟存储器
- 虚拟存储器是一种地址空间扩展技术,通常意义上对用户编程时透明的,除非用户需要进行高性能的程序设计
【虚拟存储器示意】
四、存储管理的硬件支撑
【存储器的组织层次】
【存储管理涉及的存储对象】
- 存储管理是OS管理主存储器的软件部分
- 为获得更好的处理性能,部分主存程序与数据(特别是关键性能数据)被调入Cache,存储管理需要对其进行管理,甚至包括对联想存储器的管理
- 为获得更大的虚拟地址空间,存储管理需要对存放在硬盘、固态硬盘、甚至网络硬盘上的虚拟存储器文件进行管理
【高速缓存存储器(Cache)】
- Cache是介于CPU和主存储器间的告诉小容量存储器,由静态存储芯片SRAM组成,容量较小但比主存DRAM技术更加昂贵而快速,接近于CPU的速度
- CPU往往需要重复读取同样的数据块,Cache的引入与缓存容量的增大,可以大幅提升CPU内部读取数据的命中率,从而提高系统性能
【高速缓存存储器的构成】
- 高速缓冲存储器通常由高速存储器、联想存储器、地址转换部件、替换逻辑等组成
- 联想存储器:根据内容进行寻址的存储器
- 地址转换部件:通过联想存储器简历目录表以实现快速地址转换。命中时直接访问Cache;未命中时从内存读取放入Cache
- 替换部件:在缓存已满时按一定策略进行数据块替换,并修改地址转换部件
【高速缓存存储器的组织】
- 由于CPU芯片面积和成本,Cache很小
- 根据成本控制,划分为L1,L2,L3三级
【高速缓存存储器的分级】
- L1Cache:分为数据缓存和指令缓存;内置;其成本最高,对CPU的性能影响最大;
- L2Cache:分内置和外置两种,后者性能低一些;通常在512KB-8MB之间
- L3Cache:多为外置,在游戏和服务器领域有效;但对很多应用来说,总线改善比设置L3更加有利于提升系统性能
【地址转换/存储保护的硬件支持】
【存储管理与硬件支撑】
- 鉴于程序执行与数据访问的局部性原理,存储管理软件使用Cache可以大幅度提升程序执行效率
- 动态重定位、存储保护等,若无硬件支撑在效率上时无意义的,即无实现价值
- 无虚拟地址中断,虚拟存储器无法实现
- 无页面替换等硬件支撑机制,虚拟存储器在效率上是无意义的