什么是计算机体系结构中的页面置换?


虚拟内存组织是硬件和软件系统的整合。它可以有效利用内存空间,所有软件操作都由内存管理软件处理。

硬件映射系统和内存管理软件共同构成虚拟内存的结构。

当程序执行开始时,一个或多个页面被转移到主内存中,并且页面表被设置为表示它们的位置。程序在创建对内存中不存在的页面的引用之前,是从主内存中执行的。此事件定义为页面错误。

当出现页面错误时,正在执行的程序会在将所需的页面转移到主内存之前停止。因为将页面从辅助存储器加载到主存储器的行为是I/O操作,所以操作系统为此I/O处理器创建此功能。

在此期间,控制权转移到主内存中等待在CPU中准备的下一个程序。内存块分配并移动后不久,挂起的程序可以恢复执行。

如果主内存已满,则无法移动新页面。因此,重要的是从内存块中删除一个页面以容纳新页面。从内存中删除特定页面的决定由置换算法确定。

常用的两种置换算法是先进先出 (FIFO) 和最近最少使用 (LRU)。

FIFO算法选择替换在内存中停留时间最长的页面。每次将页面写入内存时,其标识号都会被推入FIFO堆栈。

当内存没有空闲块时,FIFO将完成。当需要加载新页面时,当前传输最少的页面将被移除。要移除的页面很容易确定,因为它的标识号位于FIFO堆栈的顶部。

FIFO置换策略的优点是易于执行。它的缺点是在特定情况下,页面频繁地从内存中移除和加载。

LRU策略执行起来更复杂,但它更关注这样一个假设:最近最少使用的页面比FIFO中最近加载的页面更适合移除。LRU算法可以通过将计数器与主内存中的每个页面关联来执行。

当引用页面时,其关联的计数器将设置为零。在固定的时间间隔内,与内存中所有页面相关的计数器都会递增1。

最近最少使用的页面是计数器最大的页面。这些计数器被称为老化寄存器,因为它们的计数表示它们的年龄,即多久以前引用了它们相关的页面。

更新于:2021年7月27日

12K+ 次浏览

开启你的职业生涯

通过完成课程获得认证

开始学习
广告