由于许多程序运行中不用或暂时不用的程序(数据)占据了大量的内存空间,而一些需要运行的作业又无法装入运行,浪费了内存。
局部性原理:
1、时间局部性:程序执行过的指令不久后可能再次执行,被访问的数据也可能再次被访问,产生时间局部性的典型原因是程序中存在大量的循环操作
2、空间局部性。程序访问了某个存储单元,在不就后,其附近的存储单元也将被访问,即程序在一段时间内所访问的地址,可能集中在一定范围之内,因为指令通常是顺序存放的,数据也是。
虚拟内存基于局部性的原理,当程序装入时,将一部分程序装入内存,而将其他部分留在外存,当程序所访问的信息不再内存时,由操作系统将所需的部分调入内存,然后执行程序,将暂时不用的内容换出到外存上,从而腾出空间存放要调入内存的信息,这样系统就为用户提供了一个看起来比实际内存大得多的存储器,称为虚拟存储器。