首页 理论教育计算机导论:了解虚拟存储技术

计算机导论:了解虚拟存储技术

【摘要】:目前操作系统的存储管理中广泛采用虚拟存储技术。虚拟存储技术可以为用户提供比实际物理内存大得多的可随机访问的内存空间。虚拟存储技术有很多种实现方法,各种方法之间的差别,主要是实现虚地址到实地址的转换方法不同。图5-11 页式存储管理示例除页式存储管理外,虚拟存储技术的实现方法还有段式存储管理、段页式存储管理等。

在2.6.3节我们曾讨论过,高速缓冲存储器和主存一起构成的层次结构的内存可以大大提高计算机访问内存的速度。目前操作系统的存储管理中广泛采用虚拟存储技术。虚拟存储技术可以为用户提供比实际物理内存大得多的可随机访问的内存空间。

1.早期的存储管理技术

早期的操作系统管理内存采用单一连续分区方法。这时的内存分为系统区和用户区,系统区用来存放系统软件,如操作系统等,用户区用来存放用户软件。单一连续分区的管理方法是:每当系统要把一个作业调入内存时,首先检查用户区是否有足够的空间放下要调入的作业。如果有,则内存管理程序调入该作业;如果没有,则内存管理程序不调入该作业,输出相关信息后,从作业队列中重新选择下一个作业。

这样的内存管理方法缺陷很大。其中最主要的问题是,这样的内存管理方法限定只能使用计算机实际安装的物理内存。

2.虚拟存储

扩大内存的存储空间有两种方法,一种方法是扩大计算机实际安装的内存空间容量,我们把这种内存叫做实际内存;另一种方法是借助外存扩大内存的存储容量,我们把这种方法叫做虚拟存储。实际内存的地址称为实地址或物理地址,虚拟内存的地址称为虚地址或逻辑地址。

虚拟存储的基本思想是:操作系统把外存(如硬盘)和内存上的存储空间分别编号,并建立映射关系。当程序比较大时,操作系统在开始时并不把外存中相对应的全部编号块上的程序和数据调入内存,每当要访问的数据在内存时,就直接访问;每当要访问的数据不在内存时,就首先通过内存和外存之间的映射关系,把相应编号块的数据读入内存,然后再访问该编号块上的数据。这样,通过内存和外存数据的不断交换,虽然任何时刻可能内存中并没有存储全部用户程序和全部数据,但并不会影响用户程序的运行。因为虚拟存储是借助外存的存储容量来扩充内存的存储容量,而外存的存储容量是非常大的,所以虚拟存储方法可以大大扩大内存的存储容量。

3.页式存储管理

实地址指的是实际内存中的一个实际地址。在虚拟存储中,虚地址有可能对应的是内存中的一个实际地址,也有可能对应的是外存上的一个实际地址。当把外存中的数据读入内存后,虚地址对应的也是内存中的某个实际地址。因此,虚地址是在程序运行时才能实际确定的内存地址。虚拟存储技术有很多种实现方法,各种方法之间的差别,主要是实现虚地址到实地址的转换方法不同。

页式存储管理是实现虚拟存储的一种常见方法。页式存储管理实现虚实地址转换的基本方法是:把存放在外存中的程序和数据按其占用的地址空间分成大小相等的若干个页,把内存的存储空间分成与页的大小相同的若干个块。建立每个用户程序的页表,用户程序的页表建立了该用户程序的外存页号到内存块号之间的映射关系。当用户程序占用的地址空间比较大时,可能开始时只把外存中的部分页调入内存,在程序运行时,每当要访问的页在内存时,就直接访问;每当要访问的页不在内存时,就首先把相应的页调入内存,然后再访问。在外存中连续存放的若干个页,在内存中可以不连续存放。(www.chuimin.cn)

图5-11所示是页式存储管理基本原理的一个示例。该用户程序由A1、A2、A3和A4组成,用户程序在外存中占用了4个页。内存分成大小和页大小相等的若干个块。页表由三项组成,分别是页号、状态和块号。其中,状态Y表示对应的页已在内存,状态N表示对应的页不在内存。页表建立了用户程序的外存页号到内存块号之间的映射关系。

图5-11 页式存储管理示例

除页式存储管理外,虚拟存储技术的实现方法还有段式存储管理、段页式存储管理等。

4.内存的层次结构

2.6.3节讨论的高速缓冲存储器和主存、外存一起构成了内存的层次结构。其中,常规的内存(为区别起见称为主存)是内存层次结构的主体,处于内存层次结构的中间,高速缓冲存储器处于内存层次结构的上部,外存处于内存层次结构的下部。归纳2.6.3节的讨论和本节的讨论,有以下结论:

(1)高速缓冲存储器和主存构成的层次结构由硬件实现:主存和外存构成的层次结构由操作系统实现。

(2)高速缓冲存储器和主存构成的层次结构可以大大提高内存的存取速度。

(3)主存和外存构成的层次结构可以大大扩大内存的存储容量。