第六章存储管理 6.1引言 存储管理是指存储器62单一连续区存储管理 资源(主要指内存并 涉及外存)的管理。53分区存储管理 存储器资源的组织64覆盖和交换技术 (如内存的组织方式) 65页式和段式存储管理 地址变换(逻辑地址 与物理地址的对应关66虚拟存储 系维护) 67高速缓冲存储器 虚拟存储的调度算法 68存储管理举例
第六章 存储管理 6.1 引言 6.2 单一连续区存储管理 6.3 分区存储管理 6.4 覆盖和交换技术 6.5 页式和段式存储管理 6.6 虚拟存储 6.7 高速缓冲存储器 6.8 存储管理举例 • 存储管理是指存储器 资源(主要指内存并 涉及外存)的管理。 – 存储器资源的组织 (如内存的组织方式) – 地址变换(逻辑地址 与物理地址的对应关 系维护) – 虚拟存储的调度算法
6.1引言 61.1存储组织 61.2存储管理的功能 6.1.3重定位方法 614链接 返回
6.1 引言 6.1.1 存储组织 6.1.2 存储管理的功能 6.1.3 重定位方法 6.1.4 链接 返回
6.1.1存储组织 ·存储器的功能是保存数据,存储器的发展方向是高 速、大容量和小体积 内存在访问速度方面的发展:DRAM、 SDRAM、SRAM等 硬盘技术在大容量方面的发展:接口标准、存储密度等; 存储组织是指在存储技术和CPU寻址技术许可的范围 内组织合理的存储结构。 其依据是访问速度匹配关系、容量要求和价格。 “寄存器-内存外存”结构 “寄存器缓存内存-外存”结构; 微机中的存储层次组织: 访问速度越慢,容量越大,价格越便宜; 最佳状态应是各层次的存储器都处于均衡的繁忙状态(如: 缓存命中率正好使主存读写保持繁忙);
6.1.1 存储组织 • 存储器的功能是保存数据,存储器的发展方向是高 速、大容量和小体积。 – 内存在访问速度方面的发展:DRAM、SDRAM、SRAM等; – 硬盘技术在大容量方面的发展:接口标准、存储密度等; • 存储组织是指在存储技术和CPU寻址技术许可的范围 内组织合理的存储结构。 – 其依据是访问速度匹配关系、容量要求和价格。 – “寄存器-内存-外存”结构 – “寄存器-缓存-内存-外存”结构; • 微机中的存储层次组织: – 访问速度越慢,容量越大,价格越便宜; – 最佳状态应是各层次的存储器都处于均衡的繁忙状态(如: 缓存命中率正好使主存读写保持繁忙); 返回
存储层次结构 寄存器( register) 快速缓存( cache) 内存( primary storage) 外存( secondary storage) 快速缓存: Data Cache TLB(Translation Lookaside Buffer) 内存:DRAM, SDRAM等; ·外存:软盘、硬盘、光盘、磁带等
存储层次结构 • 快速缓存: – Data Cache – TLB(Translation Lookaside Buffer) • 内存:DRAM, SDRAM等; • 外存:软盘、硬盘、光盘、磁带等; 外存(secondary storage) DOS核心 命令处理程序 内存(primary storage) 快速缓存(cache) 寄存器(register)
6.1.2存储管理的功能 ·存储分配和回收:分配和回收算法及相应的数据结构。 地址变换: 可执行文件生成中的链接技术 程序加载(装入)时的重定位技术 进程运行时硬件和软件的地址变换技术和机构 存储共享和保护: 代码和数据共享 地址空间访问权限(读、写、执行) 存储器扩充:存储器的逻辑组织和物理组织; 由应用程序控制:覆盖; 由OS控制:交换(整个进程空间),虚拟存储的请求调入 和预调入(部分进程空间) 返回
6.1.2 存储管理的功能 • 存储分配和回收:分配和回收算法及相应的数据结构。 • 地址变换: – 可执行文件生成中的链接技术 – 程序加载(装入)时的重定位技术 – 进程运行时硬件和软件的地址变换技术和机构 • 存储共享和保护: – 代码和数据共享 – 地址空间访问权限(读、写、执行) • 存储器扩充:存储器的逻辑组织和物理组织; – 由应用程序控制:覆盖; – 由OS控制:交换(整个进程空间),虚拟存储的请求调入 和预调入(部分进程空间) 返回
6.1.3重定位方法 重定位:在可执行文件装入时需要解决可执行文件 中地址(指令和数据)和内存地址的对应。由操作 系统中的装入程序 loader来完成 程序在成为进程前的准备工作 编辑:形成源文件(符号地址) 编译:形成目标模块(模块内符号地址解析) 链接:由多个目标模块或程序库生成可执行文件(模块间 符号地址解析) 装入:构造PCB,形成进程(使用物理地址 重定位方法: 绝对装入 可重定位装入 动态装入 返回
6.1.3 重定位方法 • 重定位:在可执行文件装入时需要解决可执行文件 中地址(指令和数据)和内存地址的对应。由操作 系统中的装入程序loader来完成。 • 程序在成为进程前的准备工作 – 编辑:形成源文件(符号地址) – 编译:形成目标模块(模块内符号地址解析) – 链接:由多个目标模块或程序库生成可执行文件(模块间 符号地址解析) – 装入:构造PCB,形成进程(使用物理地址) • 重定位方法: – 绝对装入 – 可重定位装入 – 动态装入 返回
1.逻辑地址、物理地址和地址映射 逻辑地址(相对地址,虚地址):用户的程序经过 汇编或编译后形成目标代码,目标代码通常采用相 对地址的形式。 其首地址为0,其余指令中的地址都相对于首地址来编址 不能用逻辑地址在内存中读取信息 物理地址(绝对地址,实地址):内存中存储单元 的地址。物理地址可直接寻址。 地址映射:将用户程序中的逻辑地址转换为运行时 由机器直接寻址的物理地址。 当程序装入内存时,操作系统要为该程序分配一个合适的 内存空间,由于程序的逻辑地址与分配到内存物理地址不 致,而CPU执行指令时,是按物理地址进行的,所以要进 行地址转换
1. 逻辑地址、物理地址和地址映射 • 逻辑地址(相对地址,虚地址):用户的程序经过 汇编或编译后形成目标代码,目标代码通常采用相 对地址的形式。 – 其首地址为0,其余指令中的地址都相对于首地址来编址。 – 不能用逻辑地址在内存中读取信息。 • 物理地址(绝对地址,实地址):内存中存储单元 的地址。物理地址可直接寻址。 • 地址映射:将用户程序中的逻辑地址转换为运行时 由机器直接寻址的物理地址。 – 当程序装入内存时, 操作系统要为该程序分配一个合适的 内存空间,由于程序的逻辑地址与分配到内存物理地址不 一致, 而CPU执行指令时,是按物理地址进行的,所以要进 行地址转换
源程序 0逻辑地址空间 物理地址空间 100 Load a datal Load a 200 编译连接 地址映射 Load a 200 BA=1000 3456 200 1200 datal 3456 3456 逻辑地址、物理地址和地址映射
地址映射 BA=1000 Load A 200 3456 。 。 。 1200 物理地址空间 Load A data1 data1 3456 源程序 Load A 200 3456 0 100 200 编译连接 逻辑地址空间 逻辑地址、物理地址和地址映射
逻辑地址空间 BR 物理地址空间 1000 VR 100 LOADA 200 200→+ 1100 200 3456 1200 1300 300 地址映射
0 100 200 300 . . . . . . . . . LOAD A 200 3456 逻辑地址空间 1100 1200 1300 物理地址空间 200 VR + 1000 BR 地址映射
绝对装入( absolute loading) 在可执行文件中记录内存地址,装入时直 接定位在上述(即文件中记录的地址)内存 地址 优点:装入过程简单。 缺点:过于依赖于硬件结构,不适于多 道程序系统
2. 绝对装入(absolute loading) • 优点:装入过程简单。 • 缺点:过于依赖于硬件结构,不适于多 道程序系统。 在可执行文件中记录内存地址,装入时直 接定位在上述(即文件中记录的地址)内存 地址