首页 文章

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

提问于
浏览
0

当存在TLB未命中,并且页面不驻留在物理存储器中时,页面被写回到物理存储器中并且页面表和TLB被更新 .

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

1 回答

  • 3

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

    显然,搜索键不仅仅是地址,它是当前地址空间或当前进程的一对地址和ID(您需要消除故障,例如,进程1中的地址0x8000和故障时的故障)因为它们很可能在0x8000处不共享存储器,所以在进程2中的地址为0x8000 .

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

相关问题