存储管理
基本概念
- 存储器的结构
№ CPU 内部通用寄存器 0 Cache 1 主存储器 2 联机磁盘存储器 3 脱机光盘、磁盘存储器 - 地址重定位
- 逻辑地址:由
操作系统分配给程序使用的虚拟地址
,它是在程序中使用的地址,而不是实际存在的地址,也被称为虚拟地址 - 物理地址:实际存在于计算机系统中的地址,也称为实际地址,物理地址是存储器的绝对地址,范围从00000H~FFFFFH,是CPU访问存储器时由地址总线发出的地址
定义变量的地址是操作系统分配的逻辑地址,逻辑地址通过地址映射得到真正的物理地址,在程序编译时,变量的虚拟内存地址是固定的,而映射的物理地址是随机的,地址重定位分为静态重定位
(程序装入主存时完成交换)和动态重定位
(边运行边交换)
- 逻辑地址:由
管理方案
存储管理的主要目的是解决多个用户使用主存的问题
- 分区存储管理
将主存的用户区划分成若干个区域,每个区域分配给一个用户作业使用,并限定他们只能在自己的区域运行,按划分方式不同分区存储可分为:- 固定分区:静态分区方式,将主存划分成若干个固定的分区,将要运行的作业装配进去,由于分区固定,且与作业大小可能不同,会产生碎片,造成空间浪费
- 可变分区:动态分区划分,主存空间的分区在作业装入时划分,分区大小与作业大小相同。
- 可重定位分区:可解决碎片问题,移动所有已分配好的分区,使之成为连续区域,在用户请求空间得不到满足或某个作业执行完毕时进行
分区保护:分区保护的目的是防止未经核准的用户访问分区
- 分页存储管理
将进程的地址空间划分成若干个大小相同的区域,称为页,相应的将主存划分成与页相同的若干个物理块,称为块。在为进程分配主存时将进程中若干个页分别装入多个不相邻的块中
将页表中经常使用的页号等对应关系存放在Cache中,称为快表,加快变化速度,快速得到真正的物理地址 - 分段存储管理
将进程空间划分成若干个段,每个段也有段号和段内地址,每段是一组完整的逻辑信息
分页与分段的区别:分页是根据物理空间划分,每页大小相同;分段是根据逻辑空间划分,每段是一个完整的功能,便于共享,但大小不同 - 段页式存储管理
先将整个主存划分成若干个大小相等的存储块,将用户程序按程序的逻辑关系分为若干个段,再每个段划分成若干个页,即具有分页系统能有效地提高主存利用率的优点,又具有分段系统能很好地满足用户需求的长处
优点:空间浪费小,存储共享容易,存储保护容易,能动态链接
缺点:由于管理软件增加,复杂性和开销也随之增加,需要的硬件及占用的内存也有所增加,使得执行速度大大降低
虚拟内存管理
如果一个作业只部分装入主存便可启动运行,其余部分暂时留在磁盘上,在需要时再装入主存,该系统所具有的主存容量将比实际主存容量大的多,
- 程序的局部性原理
CPU 对主存中的指令和数据的访问,在一小段时间内,总是集中在一小块内存空间里- 时间局部性:最近被访问过的指令和数据可能被再次访问
- 空间局部性:最近访问过的指令和数据往往集中在一小片存储区域中
- 页面置换算法:主存容量不足时,进程的空间无法一次性全部分配,就需要先分配一部分进程,再更具算法进行淘汰,淘汰的算法称为页面置换算法
- 最佳置换算法
- 先进先出置换算法
- 最近最少未使用置换算法
- 最近未使用置换算法