Pagination 交换空间和脏页

Pagination 交换空间和脏页,pagination,operating-system,swap,virtual-memory,Pagination,Operating System,Swap,Virtual Memory,我无法理解脏页标记的脏页标记的实用性,它在页面替换过程中应该很有用。 交换空间是一个磁盘部分,操作系统在其中放置不适合主内存的页面。那么,为什么不应该在磁盘上写入非脏页呢 让我们以从内存交换到磁盘的页面为例。在这一点上,让我们设想一下,它首先被再次移动到主内存,然后又被移回磁盘。 当它移动到主内存时,我认为磁盘不会保留它的副本。 因此,即使此页在主内存中没有变脏,为什么在从主内存中再次释放时不应在磁盘上重写它?每当对页进行写入时,使用脏位的处理器都会设置该位 如果位清除,则表示页面未更改。如果操

我无法理解脏页标记的脏页标记的实用性,它在页面替换过程中应该很有用。 交换空间是一个磁盘部分,操作系统在其中放置不适合主内存的页面。那么,为什么不应该在磁盘上写入非脏页呢

让我们以从内存交换到磁盘的页面为例。在这一点上,让我们设想一下,它首先被再次移动到主内存,然后又被移回磁盘。 当它移动到主内存时,我认为磁盘不会保留它的副本。
因此,即使此页在主内存中没有变脏,为什么在从主内存中再次释放时不应在磁盘上重写它?

每当对页进行写入时,使用脏位的处理器都会设置该位


如果位清除,则表示页面未更改。如果操作系统需要对该页进行分页,它知道它不必将该页(带有一个干净的脏位)写回分页文件。

每当对页进行写入时,使用脏位的处理器都会设置该位


如果位清除,则表示页面未更改。如果操作系统需要分页该页,它知道它不必将该页(带有一个干净的脏位)写回分页文件。

当该页被交换回内存(从磁盘加载到RAM中)时交换文件中的位不会失效或擦除-它们仍然包含页面从RAM交换到磁盘时写入的相同值。因此,当它从磁盘交换到RAM时,RAM和磁盘中的页面是相同的。如果未执行写入,则页面的RAM和磁盘(交换)版本保持相同。如果内核决定再次从RAM中交换此页,则无需将其写入磁盘(交换),因为磁盘上已经存在页的正确内容。因此,可以简单地释放页面并将其用于其他目的。但是,如果执行了写入操作,则磁盘上的页面和交换中的页面版本不同,在这种情况下,设置了脏位,指示页面必须先写入磁盘才能重新使用。

当页面交换回内存时(从磁盘加载到RAM中)交换文件中的位不会失效或擦除-它们仍然包含页面从RAM交换到磁盘时写入的相同值。因此,当它从磁盘交换到RAM时,RAM和磁盘中的页面是相同的。如果未执行写入,则页面的RAM和磁盘(交换)版本保持相同。如果内核决定再次从RAM中交换此页,则无需将其写入磁盘(交换),因为磁盘上已经存在页的正确内容。因此,可以简单地释放页面并将其用于其他目的。但如果执行了写入操作,则磁盘上和交换中的页面版本不同,在这种情况下,设置了脏位,表示必须先将页面写入磁盘才能重用。

我看不出这里的问题。@user3344003问题是:脏位在页面替换中的效用是什么?我看不出这里的问题。@user3344003问题是:脏位在页面中的效用是什么。@user3344003替换?好的,但是你假设磁盘上有一个页面的副本;然而,据我所知,一个页面只能位于磁盘和主内存之间的一个页面中。在虚拟内存系统中,辅助存储中总是有一个页面的镜像。存储空间是在物理内存之前分配的,我从来没有听说过。除了代码部分外,在辅助内存中保存运行程序生成的动态数据的实用程序是什么?页面镜像所在的存储部分的名称是什么?如果您的程序分配动态内存,它必须首先从操作系统分配页面。操作系统依次为这些页面分配页面文件空间,然后为它们分配内存。数据存储的位置取决于操作系统。一些操作系统使用可执行文件和库文件作为静态数据的页面文件;然而,据我所知,一个页面只能位于磁盘和主内存之间的一个页面中。在虚拟内存系统中,辅助存储中总是有一个页面的镜像。存储空间是在物理内存之前分配的,我从来没有听说过。除了代码部分外,在辅助内存中保存运行程序生成的动态数据的实用程序是什么?页面镜像所在的存储部分的名称是什么?如果您的程序分配动态内存,它必须首先从操作系统分配页面。操作系统依次为这些页面分配页面文件空间,然后为它们分配内存。数据存储的位置取决于操作系统。一些操作系统将可执行文件和库文件用作静态数据的页面文件。