存储管理是操作系统的重要组成部分,它负责计算机系统内存空间的管理,以下是对几种常见存储管理方法的详细解释:
1、分区存储管理
静态分区:预先把可分配的主存储器空间分割成若干个连续区域,每个区域的大小可以相同,也可以不同,为说明各分区的分配和使用情况,存储管理需设置一张“主存分配表”,主存分配表指出各分区的起始地址和长度,表中的占用标志位用来指示该分区是否被占用了,当占用的标志位为“0”时,表示该分区尚未被占用,进行主存分配时总是选择那些标志为“0”的分区,当某一分区分配给一个作业后,则在占用标志栏填上占用该分区的作业名。
可变分区:按作业的大小来划分分区,当要装入一个作业时,根据作业需要的主存量查看主存中是否有足够的空间,若有,则按需要量分割一个分区分配给该作业;若无,则令该作业等待主存空间,由于分区的大小是按作业的实际需要量来定的,且分区的个数也是随机的,所以可以克服固定分区方式中的主存空间的浪费。
2、分页存储管理
将一个进程的逻辑地址空间分成若干个大小相等的片,称为页面或页,并为各页加以编号,从0开始,如第0页、第1页等,相应地,也把内存空间分成与页面相同大小的若干个存储块,称为(物理)块或页框(frame),也同样为它们加以编号,如0#块、1#块等等,在为进程分配内存时,以块为单位将进程中的若干个页分别装入到多个可以不相邻接的物理块中,由于进程的最后一页经常装不满一块而形成了不可利用的碎片,称之为“页内碎片”。
3、分段存储管理
作业的地址空间被划分为若干个段,每个段定义了一组逻辑信息,有主程序段MAIN、子程序段X、数据段D及栈段S等,每个段都有自己的名字,为了实现简单起见,通常可用一个段号来代替段名,每个段都从0开始编址,并采用一段连续的地址空间,段的长度由相应的逻辑信息组的长度决定,因而各段长度不等,整个作业的地址空间由于是分成多个段,因而是二维的,亦即,其逻辑地址由段号(段名)和段内地址所组成。
4、段页式存储管理
基本原理是基本分段存储管理方式和基本分页存储管理方式原理的结合,即先将用户程序分成若干个段,再把每个段分成若干个页,并为每一个段赋予一个段名。
5、虚拟存储
当程序的存储空间要求大于实际的内存空间时,就使得程序难以运行了.虚拟存储技术就是利用实际内存空间和相对大的多的外部储存器存储空间相结合构成一个远远大于实际内存空间的虚拟存储空间,程序就运行在这个虚拟存储空间中.能够实现虚拟存储的依据是程序的局部性原理,即程序在运行过程中经常体现出运行在某个局部范围之内的特点.在时间上,经常运行相同的指令段和数据(称为时间局部性),在空间上,经常运行与某一局部存储空间的指令和数据(称为空间局部性),有些程序段不能同时运行或根本得不到运行。
以下是两个关于存储管理的常见问题及解答:
1、问:什么是内存碎片?如何减少内存碎片?
答:内存碎片是指内存中出现的一些零散的小空闲区域,由于碎片都很小,无法再利用,如果内存中碎片很多,将会造成严重的存储资源浪费,解决碎片的方法是移动所有的占用区域,使所有的空闲区合并成一片连续区域,这一技术称为移动技术(紧凑技术),移动技术除了可解决碎片问题还使内存中的作业进行扩充,显然,移动带来系统开销加大,并且当一个作业如果正与外设进行I/O时,该作业是无法移动的。
2、问:为什么需要虚拟存储技术?
答:虚拟存储技术是为了解决内存容量不足的问题,通过使用虚拟存储技术,可以将暂时不用的数据保存到外部存储器中,从而释放出更多的内存空间供当前需要使用的程序使用,这样可以提高系统的并发度和响应速度,同时也能更有效地利用有限的内存资源。
存储管理方法是操作系统中至关重要的一部分,它直接影响着计算机系统的性能和效率,通过合理的存储管理策略和技术手段,可以优化内存资源的使用,减少内存碎片的产生,提高系统的并发度和响应速度。