3.2.2 存储管理
存储器是操作系统的核心资源。对存储器管理的好坏直接影响到它的利用率,还会影响到整个系统的性能。
计算机的内存是CPU可以直接访问的存储器。一个进程要在CPU上运行,就必须占用一定的内存。尽管目前微机内存容量的配置已经达到很大,但有时还是不能满足实际的需要。为了解决这个矛盾,可以采用虚拟内存技术加以解决。具体说来,操作系统的存储管理主要体现在以下四个方面:
(1)虚拟内存。
所谓虚拟内存是指在计算机系统中,操作系统使用硬盘空间模拟内存,为用户提供一个比实际内存大得多的内存空间。在系统的运行过程中,部分进程保留在内存中,其他暂时不在CPU运行的进程放在外存中,操作系统根据需要负责内、外存之间的交换。例如,虚拟内存技术会把一个需要400 KB存储空间的程序分成10页存储,每页存储能力为40 KB。当计算机执行程序时,只把某些页存储在实际的RAM中;当需要其他页的内容时,计算机会从虚拟内存中找到这些页,然后改写那些不再需要的内存页。这个过程就称为页面调度。
并不是所有的操作系统都提供虚拟内存功能。虽然虚拟内存技术允许计算机系统在有限内存的情况下仍可正常运行,但处理器会浪费大量的时间来进行RAM内、外存储页的交换,从而降低整个计算机的工作效率。
(2)存储器分配。
存储器分配是存储器管理的重要部分,这是因为:首先,任何时候,存储器都是被多个进程共享的。进程创建时,需要分配存储器;进程消亡时,需要释放包括存储器在内的所有资源。其次,在运行过程中,进程需要的存储空间会随时变化。再次,有些进程放在内存,有些进程放在外存。进程需要在内、外存之间调进调出,涉及内、外存储器的分配与释放问题。第四,为了充分利用存储器,系统有时需要在存储器中移动进程。
(3)地址的转换。
编写程序时,程序员无法知道程序将要放在内存空间的哪个地址运行。程序中的地址使用的是逻辑地址,而不是真实的物理地址。当程序调入内存时,操作系统将程序中的逻辑地址变换成存储空间中的物理地址。
(4)信息的保护。
由于内存中有多个进程,为了防止一个进程的存储空间被其他进程破坏,操作系统要采取软、硬件结合的保护措施。不管采用什么方式进行存储分配和地址转换,在操作数地址被计算出来以后,都先要检查它是否在该程序分配到的存储空间之内。如果是,则允许访问这个地址;否则拒绝访问,并把出错信息通知用户和系统。