存储器管理
内存管理概述
存储结构
在现代计算机系统中,存储部件采用层次结构来组织。在存储层次中越往上,存储介质访问速度越快,相对存储容量越小
存储结构至少为三级:最高级为CPU寄存器,中间为主存,底层为辅存。
内存管理的目标
达到地址保护和地址独立
地址保护:一个程序能访问另一个程序的地址空间
地址独立:程序发出的地址与物理主存地址无关
存储管理的主要功能
主存的空间的分配和回收,地址重定位、保护、内存空间的扩充
操作系统在内存的位置
计算机运转程序有两种:管理计算机的程序和使用计算机的程序。
操作系统是后者。
最简单的方式是将内存划分为两个区域,操作系统和用户各占有一个区域。(只有RAM)
如果电脑内存有ROM,则可全部或者部分放入ROM中。好处:不容易被破坏和将输入输出和内存访问统一。(ROM是贵的,通常只有少量ROM,所以大多都是部分放入ROM)
虚拟内存
一个程序需要运行,必须加载到物理主存。
物理主存的的容量非常有限导致无法快速运行。
为了解决这个问题,我们将物理主存扩大到便宜,大容量的磁盘上。程序发出的地址在主存还是在磁盘由操作系统的内存管理模块负责判断。
为了进一步,我们还把缓存和磁带包括下来。
虚拟内存提供像磁盘那样大,速度像缓存一样高的主存储器。
内存管理基础
内存管理基础需求:
- 重定位
- 保护
- 共享
- 逻辑组织
- 物理组织
地址重定位
程序员不知道程序会被放在到哪个区域,并且我们必须允许程序进行交换技术在内存中移动。
静态重定位
将逻辑地址转换成物理地址的过程发生在程序装入到内存时进行,在程序装入时一次完成地址转换叫做静态重定位。
静态地址重定位的目标对象是目标程序,得到的结果是得到执行代码。
优点:无需硬件地址变换机构支持
缺点: 必须给作业和程序连续的存储空间
动态重定位
将逻辑地址转换成物理