页面错误,存储的辅助内存地址在哪里

时间:2013-04-12 03:46:06

标签: memory-management operating-system hardware paging tlb

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

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

1 个答案:

答案 0 :(得分:3)

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

显然,搜索键不仅仅是地址,它是当前地址空间或当前进程的一对地址和ID(你需要在进程1中的故障之间消除歧义,比如地址0x8000)并且在进程2中的相同地址0x8000处于错误状态,因为它们可能不会在0x8000处共享内存。

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

相关问题