解释计算机体系结构中的页面替换?
虚拟内存组织是硬件和软件系统的整合。它可以有效利用内存空间,所有软件操作都由内存管理软件处理。
硬件映射系统和内存管理软件共同构成了虚拟内存的结构。
当程序执行开始时,一个或多个页面被传送到主存中,并设置页表来表示它们的位置。该程序是在为不在内存中的页面创建引用之前从主内存中实现的。此事件被定义为页面错误。
当页面错误出现时,直接执行的程序就在所需页面被传送到主存储器之前停止。因为从辅助内存加载一个页面到主内存的行为是一个I/O操作,所以操作框架为I/O处理器创建了这个函数。
在此时间间隔内,控制转移到主存储器中等待CPU准备的下一个程序。在分配并移动内存块后不久,挂起的程序就可以恢复执行。
如果主存已满,则无法移入新页面。因此,从内存块中移除页面以保存新页面非常重要。从内存中删除特定页面的决定由替换算法决定。
有两种常用的替换算法是先进先出(FIFO)和最近最少使用(LRU)。
FIFO算法选择替换已在内存中最长时间的页面。每次将页面加权到内存中时,其标识号都会被推送到FIFO堆栈中。
只要内存不再有空块,FIFO就会完成。当应该加载一个新页面时,当前最少传输的页面将被删除。要删除的页面很简单,因为它的标识号位于FIFO堆栈的高位。
FIFO替换策略的优点是易于执行。它的缺点是在特定情况下页面从内存中删除和加载过于频繁。
LRU策略执行起来更复杂,但更有趣的是假设最近最少使用的页面比FIFO中的最近最少加载的页面更适合删除。LRU算法可以通过将计数器与主存储器中的每个页面相关联来执行。
当一个页面被引用时,它的相关计数器被设置为零。在永久的时间间隔内,与内存中所有页面相关的计数器加1。
最近最少使用的页面是计数最大的页面。计数器被称为老化寄存器,因为它们的计数表示它们的年龄,即它们的相关页面在多长时间前被引用。