虚拟内存 读操作系统概念第六版

来源:互联网 发布:龙迹玻璃知乎 编辑:程序博客网 时间:2024/04/29 06:53

 虚拟内存技术允许进程的执行不必完全在内存中。这种方案的一个很大的优点就是程序可以比物理内存大。而且,虚拟内存将内存抽象成一个巨大的、统一的存储数组,进而将用户看到的逻辑内存与物理内存分开。这种技术允许程序员不受内存存储的限制。虚拟内存也允许进程很容易地共享文件和地址空间。

 

程序通常有处理异常错误条件的代码。由于这些错误即使有也是很少发生,所以这种代码几乎不执行。

数组、链表和表通常分配了比实际所需要更多的内存。声明一个有100*100个元素的数组,可能实际使用的只是10*10个元素。虽然汇编程序系统表可能有2000个符号空间,但是程序平均可能用到的只有的只有不到200个符号。

程序的某些选项或特点可能很少使用。

即使在需要完整程序时,并不是同时都需要所有的程序。

 

能够执行只有部分在内存中的程序会有很多好处。

程序不再受现有的物理内存空间限制。用户可以为一个巨大的虚拟地址空间写程序,简化编程操作。

因为每个用户程序使用了更少的物理内存,所以更多的程序可以同时执行,CPU使用率也相应地增加,而响应时间或周转时间并不增加。

由于装入或交换每个用户程序到内存中所需的I/O会更少,用户程序会运行的更快。

因此,运行一个部分在内存中的程序不但有利于系统也有利于用户。

 

虚拟内存将用户逻辑内存与物理内存分开。这在现有物理内存有限的情况下,为程序员提供了巨大的虚拟内存。虚拟内存是编程更加容易,因此程序员不再需要担心有限的物理内存空间或究竟那些代码需要覆盖;他只需要关注所要解决的问题。

 

虚拟内存通常采用请求页面调度来实现。它也可以在分段系统上实现。多个系统采用了分段加分页的方案,这里段被进一步分页。因此,用户观点是分段,而操作系统可以通过请求页面调度实现这一观点。请求分段调度也可用来实现虚拟内存。不过,由于段是不定长的,段置换算法要比页置换算法复杂得多。