Memory management 确定给定地址的页码和偏移量

Memory management 确定给定地址的页码和偏移量,memory-management,operating-system,offset,cpu-architecture,virtual-memory,Memory Management,Operating System,Offset,Cpu Architecture,Virtual Memory,考虑一个具有32位逻辑地址和4KB页面大小的计算机系统。系统支持高达512MB的物理内存 在传统的单级页面表格中有多少个条目 Conventional single-level page table: 2^32 / 2^12 (4000) = 2^20 = 1,048,576 为什么我必须除以2^32/2^12才能得到答案 一个倒置的页面表格中有多少条目 反转页表需要的条目数与页框数相同 在记忆中 Inverted page table: 2^29 (512mb)/ 2^12 (4000)

考虑一个具有32位逻辑地址和4KB页面大小的计算机系统。系统支持高达512MB的物理内存

在传统的单级页面表格中有多少个条目

Conventional single-level page table: 2^32 / 2^12 (4000)  = 2^20 = 1,048,576
为什么我必须
除以2^32/2^12才能得到答案

一个倒置的页面表格中有多少条目

反转页表需要的条目数与页框数相同 在记忆中

Inverted page table: 2^29 (512mb)/ 2^12 (4000) = 2^17 = 131,072
为什么我必须
除以512mb/页面大小
才能得到反转的页面表条目

以下地址的页码和偏移量是多少 参考文献:a)30000,b)256,c)0xbcf034

a) 30000英寸十六进制:x7530页#:x7=7偏移量:x530=1328

b) 256英寸十六进制x100页#:x0=0偏移量:x100=256

c) 0xbcf034页#:xbcf=3023偏移量:x034=22

如何根据十六进制地址计算这些页码和偏移量

我知道答案,但我想知道原因和方式。有人能详细解释一下吗:)

2^12=>4096 2^32/2^12=>2^32/4096=>有多少4K页面=>我们需要多少页面表条目

物理页表的类似计算,即反转页表需要多少页表条目


根据以上提示,试一试这个问题,让我们知道你的想法。一旦您在操作系统课程中学习了更多内容,您将发现每个页表设计都有其优点和缺点。

给定页面大小和地址参考:
计算页码和偏移量的最佳方法,
假设页面大小为1KB,地址引用为256




对其余的地址引用应用相同的过程。

为什么我必须除以2^32/2^12才能得到答案?

2^32==>总虚拟内存大小

4KB=2^12==>单个页面的大小

2^32/2^12=2^20==>虚拟内存的总页数

因此页表将有2^20=1M个条目

反向页面表格中有多少条目?

2^29=512MB==>总物理内存

2^12=页面大小=框架大小

2^29/2^12=2^17==>物理内存中的总帧数

因此,反向页面表将有2^17=128K个条目

此图可能会消除您的疑虑:


因为页面大小=框架大小=2^12 反向页面表格中的条目数=帧数
因此,我们正在计算帧数

为什么需要知道反转页面表的物理页面表条目?PS-THX为此,您需要学习一些关于反转页表的理论……一个快速的答案是,反转页表的大小与系统中物理页的数量成比例。正常(或逻辑)页表的大小是针对进程的整个虚拟地址空间,即根据进程中的虚拟页数调整大小。i、 e.倒页表:一个物理页一个条目;逻辑或虚拟页表:一个虚拟页对应一个条目。希望有帮助。在反向页面表中,所有的框架都映射到页面。因此,反向页面表中的条目由总框架数组成,这就是您要计算的。PS:4K不是4000:-)关于:两级分层页面表中有多少条目?
Page number = (address reference / page size) = 256/1024 = 0
Offset = (address reference % page size) = (256 % 2014) = 256