一、存储体系
1、存储器的层次结构:
- 高速缓存Cache
- 内存;
- 固态硬盘SSD
- 磁盘/外存
2、内存:
- 系统区:存放操作系统内核;
- 用户区:存放用户程序和数据;
3、内存管理
操作系统对内存的划分和动态分配就是内存管理。
主要工作:将程序载入内存以让CPU执行程序。
目的:将内存区域进行划分以容纳多个进程(多道程序设计);有效分配内存以容纳尽量多的进程。
二、存储管理的要求
1、重定位(逻辑地址转物理地址)
物理地址空间指内存中物理单元的集合,是地址转换的最终地址。进程在运行时执行指令和访问数据最后都要通过物理地址从主存中存取。当装入程序将可执行代码装入内存时,必须通过地址转换将逻辑地址转换成物理地址,这一过程就称为地址重定位。
1、逻辑地址/相对地址
逻辑地址:并不是程序在内存中的实际地址,而是程序在内存中的相对地址或者说相对于当前进程某一点(程序起始位置或段基地址)的偏移位置;(逻辑地址并不唯一)
2、物理地址/绝对地址
物理地址也称为绝对地址,是内存的实际地址——加载到内存地址寄存器(CS,IP)中的地址;
3、多道程序和共享内存技术要求程序使用相对地址以支持重定位
原因:
- 程序员不知道程序在运行时在内存中所处的位置(物理地址未知);
- 处于内存某一块区域的程序代码在运行中可能被换出到外存,后来又被换进内存的另一块区域
重定位一般要求一定的硬件(CPU)支持。
2、保护(内存审查)
多道程序和共享内存技术要求一个进程不能对其他进程进行有意或无意的非授权访问。
内存分配之前需要保护操作系统不受用户进程的影响,同时保护用户进程不受其他用户进程的影响。通过采用重定位寄存器和界地址寄存器来实现这种保护。重定位寄存器包含最小的物理地址值,界地址寄存器包含最大的物理地址值。程序在运行(因为程序在编译时无法明确物理地址)