Memory 页面错误时从磁盘检索页面

Memory 页面错误时从磁盘检索页面,memory,memory-management,x86,cpu-architecture,Memory,Memory Management,X86,Cpu Architecture,当主存中发生缺页时,将从磁盘中检索特定页。 我向社区提出的问题是,在转换后,磁盘中的内存如何与我们拥有的32位物理地址建立索引?取决于操作系统。您可以使用公式Disk block=Page Number*(Page Size/block Size),然后从中读取Page Size/block Size磁盘块。您能举一个例子详细说明一下吗?页面缺失时,页表条目不包含物理地址。通常,操作系统能够使用PTE中的所有位(指示无效PTE的位除外),允许操作系统具有指向任意大小的数据结构的指针(可能对齐,以

当主存中发生缺页时,将从磁盘中检索特定页。
我向社区提出的问题是,在转换后,磁盘中的内存如何与我们拥有的32位物理地址建立索引?

取决于操作系统。您可以使用公式
Disk block=Page Number*(Page Size/block Size)
,然后从中读取
Page Size/block Size
磁盘块。您能举一个例子详细说明一下吗?页面缺失时,页表条目不包含物理地址。通常,操作系统能够使用PTE中的所有位(指示无效PTE的位除外),允许操作系统具有指向任意大小的数据结构的指针(可能对齐,以便即使使用一个或几个位指示无效PTE,也可以使用完整的地址空间).让我们用具体的值填充公式:磁盘块大小通常为512字节(在现代HDD上有时为4096字节)。让我们假设一个具有32位虚拟地址的单级分页机制,其中12位构成偏移量(页面大小为4096字节),20位构成页面表的索引。将
256
作为页表索引。结果:
Disk block=256*(4096/512)=1024
。正如@PaulA.Clayton所指出的,您的页面可能因为无法放入物理内存而被调出,因此它不再有物理地址,只有虚拟地址。