【发布时间】:2015-03-26 12:16:51
【问题描述】:
当一个页面被换出到磁盘时,它的一些内容可能存在于缓存中(我相信这将是一种非常罕见的情况,因为如果页面长时间没有被访问,很可能是缓存到那时,包含其内容的 -lines 也将被逐出。)当页面被换出时,这些缓存行会发生什么。他们需要立即失效吗?如果线路脏或干净,有什么区别吗?谁控制这个进程、操作系统或硬件,或两者兼而有之?
为了解释为什么需要注意这一点,我们假设有进程 A 和 B 并且 A 正在访问起始物理地址 X 处的物理页 P1。P1 的某些内容必须已经缓存在不同级别的缓存中。现在页面 P1 被换出,进程 B 的页面 P2 被引入到相同的地址 X。因此,如果属于页面 P1 的缓存行没有失效,那么进程 B 可能会在最初属于的那些行上命中缓存页面 P1 的进程 A(因为物理标签会匹配)。
这种情况有效吗?缓存是VIPT还是PIPT有区别吗?
如果您能引用现代操作系统/处理器中的处理方式,那就太好了。
【问题讨论】:
标签: caching operating-system paging computer-architecture