0

当发生 TLB 未命中,并且该页面未驻留在物理内存中时,该页面将被写回物理内存并更新页表和 TLB。

但是辅助存储器的地址存储在哪里?它如何知道在磁盘上哪里可以找到数据?

4

1 回答 1

3

内存管理器维护一个数据结构,在这个数据结构中,给定一个虚拟地址,它可以在磁盘/交换文件中找到相应的位置。

显然,搜索键不仅仅是地址,它是当前地址空间或当前进程的地址和 ID 的对(您需要区分进程 1 中的地址 0x8000 和错误在进程 2 中使用相同的地址 0x8000,因为它们可能不会在 0x8000 处共享内存)。

页表条目在这里可能很有用。当虚拟到物理映射有效时,它们存储物理地址。当它无效时(因为换出到磁盘),地址可以设置为您喜欢的任何内容。您可以将磁盘上的位置存储在其位置。但是,如果您想避免每次重用页面时都将未更改页面的内容写入磁盘,并且它们的内容先前已写入磁盘并且仍然与内存中的内容匹配,那么这不是一个好主意。PTE 不能同时拥有两个不同的地址(物理地址和磁盘)。因此,应使用专用数据结构而不是 PTE。

于 2013-04-12T06:29:57.417 回答