虚拟地址与物理地址的相关概念

为何需要虚拟地址?

  1. Programmer no longer have to be responsible for storage allocation. 
  2. Virtual memory allows for sharing data and code between programs by having two virtual addresses point to the same physical memory location.
  3. It allows us to run more applications on the system than we have enough physical memory to support.



虚拟地址和物理地址如何进行转化?

如下这张图清晰的表示了从virtual address maps to physical address的详细过程。



p stands for 虚拟地址中的 pages no.(页号)。 f stands for 物理地址中的frame no.(页帧号)。对于虚拟地址和物理地址来说,页面的offset是完全相同的。因此,上图中的o stands for 虚拟地址和物理地址中的offset。所谓的虚拟地址到物理地址的映射,就是指的如何根据虚拟地址找到物理地址的过程。由上图可以清晰的看出Page Table(页表)可以帮助该过程的实现。

  1. 虚拟地址的offset不经过任何处理直接映射到物理地址的offset。
  2. 虚拟地址的page no.通过Page Table完成到物理地址的frame no.的映射。
  3. 虚拟地址中有多少个page no,对应的Page Table中就有多少行。
  4. Page Table的每一行的大小是由物理地址的frame no的个数决定的。比如物理地址有20个frame,那么Page Table的每一行就有20bit,因为只有如此,才能刚好指定从0到(2^20-1)之间的任意frame no.
  5. 对Page Table来说,行数目 X 行的大小 = Page Table的大小。如此,可以计算出Page Table的大小。
比如:
虚拟地址为30bits,物理地址为20bits,page的大小为1KB。
page table的大小为:
page table的行数:2^(30 - 10) = 2^20
每行的大小:2^20/2^10 = 2^10, 即每一行有10bit才能表示2^10个frame no
所以总的page table的大小为2^20 X 10 bits

另附一mapping图


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值