存储管理的任务是管理计算机内存的资源,在当代操作系统中,计算机内存空间越来越大,虽然内存空间可以扩充,但是内存空间再大也跟不上运行程序对内存空间的巨大需求,而且内存空间还是处理器寻址能力的限制,内存的能力不能无限扩充。 概括的说,存储管理有三个方面的任务,首先,当多个程序共享有限的内存资源时,要考虑如何为多个程序分配有限的绿色空间,其次存储在内存中的多个程序和数据,应该彼此隔离互不侵扰第三,解决内存扩充的问题,即将内存和外存结合起来管理,为用户提供一个容量,比实际内存大得多的虚拟存储器。 以下是存储管理功能的进一步叙述:
- 内存的分配与回收
操作系统要为每个进程分配的空间,再分配的过程中,还要尽可能提高内存资源的使用效率,对于已经退出运行的进程所占据的内存空间操作系统还要把它加以回收,重新使用,人们在使用计算机时经常会发现原本很大的内存在使用一段时间后,似乎丢失了一部分空间,仔细检查会看到空间使用途中有一大堆空间碎片,这种现象就是内存的分配与回收算法中的缺陷造成的。可见内存分配与回收对计算机系统有效运行的影响是很大的。2. 存储保护
由于内存是提供多个程序共享的,从理论上讲,每个程序都应该在分配给自己的内存区中运行。但是从实际上看,必须考虑某个程序可能发生越界的情况。这是因为首先程序自身可能存在一些错误或隐患,造成程序突然的越界运行,不仅自身发生问题而且影响或破坏的其他用户程序的运行,如果发生故障的程序越界到操作系统运行的内存空间,那么受到危害将更加严重,整个计算机系统有可能崩溃,其次某个程序具有恶意,比如病毒程序或者外界的入侵程序,那么就有就更有必要防止他们危害其他用户和整个计算机系统。 在现代的计算机系统中,通常提供有硬件实现的存储保护机制,操作系统利用这一机制实现进程的地址保护。3. 内存扩充
物理内存的大小总是有限的,各种程序对运行空间的需求经常超过实际内存的大小。内存扩充功能就是借助虚拟存储技术在逻辑上增加进程运行空间的大小,这个大小比实际物理内存要大得多。 在虚拟存储技术中,操作系统通常将地址空间化为4KB大小的页面,并且以页面为单位进行存储空间的调度。进程所需的总页面数所对应的空间可以超出实际物理空间。但是操作系统执法正在使用的页面保持在内存中,或把即将使用的页面调入到内存中,而将不用的页面调换到外存上,用户感受不到实际内存对使用空间的限制仿佛有一虚拟的大容量内存存在。当然,系统要实现这一机制,必须提供请求页面,调入的功能和页面置换的功能。