虚拟内存
文章目录
前言
随着现在程序对内存的需求越来越大,交换技术并不是一个具有吸引力的解决方案,因为一个典型SATA磁盘的峰值传输率高达每秒好几百兆,这意味着需要好几秒才能换出或换入一个1GB的程序。下面就说说另一个解决方案——虚拟内存。
一、虚拟内存的基本思想
每个程序拥有自己的地址空间,这个空间被分割成多个块,每一块称作一页或页面(page)。每一页有连续的地址范围。这些页被映射到物理内存,但并不是所有的页都必须在内存中才能运行程序。当程序引用到一部分在物理内存中的地址空间时,由硬件立刻执行必要的映射。当程序引用到一部分不在物理内存中的地址空间时,由操作系统负责将缺失的部分装入物理内存并重新执行失败的指令。
二、分页
和大部分虚拟内存系统中都使用一种称为分页(paging)的技术,我们现在就介绍这一技术。在一台计算机上,当程序执行指令
MOV REG,1000
时,它把地址为1000的内存单元的内容复制到REG中。地址可以通过索引、基址寄存器、段寄存器或其他方式产生。
由程序产生的这些地址称为虚拟地址(virtual address),它们构成了一个虚拟地址空间(virtual addressspace)。在