进程页目录VS全局页目录

内核维持者一组自己使用的页表,驻留在主内核页全局目录(master kernel page global directory)。 系统初始化后,这组页表永远不会被任何进程或任何内核线程直接使用; 更确切地说,主内核页全局目录的最高目录项部分作为参考, 为系统中每个普通进程对应的页全局目录项提供模板。

当前进程页目录表地址的获取: pgd_paddr = read_cr3();

系统全局页目录表地址的获取:init_mm.pgd

 

vmalloc实现的中,有一步是修改该页表,建立虚拟地址与页描述符之间的映射,代码中获取全局页目录表用的是系统全局页目录表:

map_vm_area->vmap_page_range->vmap_page_range_noflush->pgd_offset_k

#define pgd_offset_k(address) pgd_offset(&init_mm, (address))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值