进程的虚拟地址和内核中的虚拟地址有什么关系
展开全部
在没有开启页式地址转换之前, 内核的虚拟地址经过一次段地址转换就直接得到物理地址了。也就是:
PA(物理地址) = LA(线性地址) = VA(虚拟/逻辑地址) - KERNBASE
在页式地址转换开启之后,不管是用户还是内核,都是需要通过页表来找到物理地址。所以内核访问任意(>=KERNBASE 的)虚拟地址 VA = KERNBASE - x , 都需要先经过一次段式转换得到 LA = VA - KERNBASE = x. 然后这个线性地址再通过页表得到物理地址。 而在页表中, KERNBASE开始的一段地址在页表中是直接映射到整个物理地址空间的,所以打开页式地址转换后内核使用虚拟地址KERNBASE+x访问到的正是物理地址x处的地址。 这和开启页式转换之前的线性映射结果相同。
PA(物理地址) = LA(线性地址) = VA(虚拟/逻辑地址) - KERNBASE
在页式地址转换开启之后,不管是用户还是内核,都是需要通过页表来找到物理地址。所以内核访问任意(>=KERNBASE 的)虚拟地址 VA = KERNBASE - x , 都需要先经过一次段式转换得到 LA = VA - KERNBASE = x. 然后这个线性地址再通过页表得到物理地址。 而在页表中, KERNBASE开始的一段地址在页表中是直接映射到整个物理地址空间的,所以打开页式地址转换后内核使用虚拟地址KERNBASE+x访问到的正是物理地址x处的地址。 这和开启页式转换之前的线性映射结果相同。
Storm代理
2023-07-25 广告
2023-07-25 广告
StormProxies是一家国内优质海外HTTP代理商,拥有一个庞大的IP资源池,覆盖200多个地区,IP数量大且匿名度高。其优点还包括超高并发、稳定高效、技术服务等特点,同时提供HTTP、HTTPS以及SOCKS5协议支持。此外,Sto...
点击进入详情页
本回答由Storm代理提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询