操作系统内存管理之换页与缺页异常

    换页机制思想:该机制的基本思想是当物理内存容量不够的时候,操作系统应该把若干物理页的内容写到类似于磁盘这种容量更大更加便宜的存储设备中,然后就可以回收这些物理页供其他程序使用了。

    举个例子,有一个程序A,其中A的一个物理页为P(对应于程序A虚拟内存中的虚拟页V)时,当操作系统希望从程序A那里回收P时,操作系统就需要将物理页P中的内容写到磁盘的一个位置,并且在程序A的页表中,去除虚拟页V的映射,同时记录该物理页被换到磁盘上的对应位置。该过程叫做物理页P的换出。然后,物理页P就可以被操作系统回收,并且分配给别的应用程序使用,虚拟页V就处于已分配但未映射到物理内存的状态。

    缺页异常:它是和换页机制密不可分的,也是换页机制能够工作的前提,当应用程序访问已分配但未映射至物理内存的虚拟页时,就会发生缺页异常。此时操作系统会运行操作系统预先设置好的缺页异常处理函数,该函数会找到一个空闲的物理页,将之前写到磁盘上的数据内容重新加载到该物理页中,并且在该程序的页表中填写虚拟地址到这一物理页的映射,该过程被称为换入

    利用换页机制,操作系统就可以把物理内存中的放不下的数据临时放到磁盘上,等到需要的时候再放回到物理内存中,从而能够为应用程序提供超过物理内存容量的内存空间。

由于换页过程涉及耗时的磁盘操作,因此操作系统往往会引入预取机制进行优化。它的原理为:当发生换入操作时,预测还有哪些页即将被访问,提前将他们一并换入物理页内存,从而减少发生缺页异常的次数。

    按需页分配:当应用程序申请分配内存时,操作系统可选择将新分配的虚拟页标为已分配但未映射至物理内存状态,而不必为这个虚拟页分配对应的物理页。然后当应用程序访问这个虚拟页时,就会触发缺页异常,此时操作系统才真正为这个虚拟页分配对应的物理内存,并且在页表中填入对应的映射。这种按需分配的机制,使得操作系统能在应用程序真正需要使用物理内存的时候再分配物理页,这使得操作系统能够有效地节约物理内存,提高资源的利用率。

你可能感兴趣的:(操作系统之内存管理,操作系统)