页表基本原理

   日期:2024-12-24     作者:xhb273511       评论:0    移动:http://w.yusign.com/mobile/news/1996.html
核心提示:虚拟内存、页表、物理内存关系 Linux内核把页表分为5级; 1)页全局目录(Page Global Directory,PGD); 2

虚拟内存、页表、物理内存关系

Linux内核把页表分为5级
1)页全局目录(Page Global Directory,PGD);
2)页四级目录(Page 4th Directory,P4D);
3)页上层目录(Page Upper Directrory, PUD);
4)页中间目录(Page Middle Directory,PMD)
5)直接页表(Page Table,PT)

各种处理器架构可以选择使用五级、四级、三级或者两级页表;同一种处理器架构在页长度不同的情况可能选择不通的页表级数;可以使用CONFIG_PGTABLE_LEVELS配置页表的级数

内核页游一个页表,0号内核线程的进程描述符init_task的成员active_mm指向内存描述符init_mm,内存描述符init_mm的成员pgd指向内核的页全局目录swapper_pg_dir

虚拟地址转换成物理地址流程

虚拟地址被分解为6个部分:页全局目录索引、页四级目录索引、页上层目录索引、页中间目录索引、直接页表索引和页内偏移
查询页表,把虚拟地址转换成物理地址的过程如下

  1. 根据页全局目录的起始地址和页全局目录索引得到页全局目录表项的地址,然后从表项得到页四级目录的起始地址
  2. 根据页四级目录的起始地址和页四级目录索引得到页四级目录表项的地址,然后从表项中得到页上层目录的起始地址
  3. 根据页上层目录的起始地址和页上层目录索引得到页上层目录表项的地址,然后从表项得到页中间目录的起始地址
  4. 根据页中间目录的起始地址和页中间目录索引得到页中间目录表项的地址,然后从表项得到直接页表的起始地址
  5. 根据直接页表的起始地址和直接页表索引得到页表项的地址,然后从表项得到页帧号
  6. 把页帧号和页内偏移组合成物理地址
     本文地址:http://w.yusign.com/news/1996.html    述古往 http://w.yusign.com/static/ , 查看更多
 
特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。

举报收藏 0打赏 0评论 0
 
更多>同类资讯
0相关评论

相关文章
最新文章
推荐文章
推荐图文
资讯
点击排行
{
网站首页  |  关于我们  |  联系方式  |  用户协议  |  隐私政策  |  版权声明  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号