操作系统基础29-内存管理的概念
2020-12-18 03:37·重学IT的老猫
操作系统作为系统资源的管理者,当然也需要对内存进行管理,要管些什么呢?
\1. 操作系统负责内存空间的分配与回收。
\2. 操作系统需要提供某种技术从逻辑.上对内存空间进行扩充。
\3. 操作系统需要提供地址转换功能,负责程序的逻辑地址与物理地址的转换。
\4. 操作系统需要提供内存保护功能。保证各进程在各自存储空间内运行,互不干扰
内存空间的分配与回收
内存空间的分配与回收:由操作系统完成主存储器空间的分配和管理,使程序员摆脱存储分配麻烦,提高编程效率。
内存空间的扩展
内存空间的扩充:利用虚拟存储技术或者自动覆盖技术,从逻辑上扩充内存。
游戏GTA的大小超过60GB,按理来说这个游戏程序运行之前需要把60GB数据全部放入内存。然而,实际我的电脑内存才4GB, 但为什么这个游戏可以顺利运行呢? 虚拟技术(操作系统的虚拟性)
地址转换
地址转换:在多道程序环境下,程序中的逻辑地址与内存中的物理地址不可能一致,因此存储管理器必须提供地址变换功能,把逻辑地址转换成相应的物理地址。
为了使编程更方便,程序员写程序时应该只需要关注指令、数据的逻辑地址。而逻辑地址到物理地址的转换(这个过程称为地址重定位(三种装入方式)**)**应该由操作系统负责,这样就保证了程序员写程序时不需要关注物理内存的实际情况。
内存保护
存储保护:保证各道作业在各自的存储空间内运行,互不干扰。
两种方式:
- CPU中设置一对上,下限寄存器,存放用户作业在主存中的下限和上限,每当CPU要访问一个地址时,分别和两个寄存器的值相比,判断有无越界。
- 通过采用重定位寄存器(或基址寄存器)和界地址寄存器(又称限长寄存器)来实现这种保护,重定位寄存器含最小的物理地址值,界地址寄存器含逻辑地址的最大值,每个逻辑地址值必须小于界地址寄存器,内存管理机构动态的将逻辑地址与界地址寄存器进行比较,如果未发生地址越界。则加上重定位寄存器的值后映射成物理地址,再送交内存单元。