linux_hacker 发表于 2019-04-04 23:53

物理内存少于896MB内核直接映射

最近研究内核,但是一直有几个问题不太明白,请教一下内核专家,希望能帮我解决:

1、内核直接映射低于896MB的物理内存,我理解映射了那么页表项应该设置了,至少页表项的Field字段(20位,即页框物理地址最高20位)已经指向了相应物理内存?

2、内核直接映射了前896MB的物理内存,映射了不一定代表页框已经分配给内核了?即映射了但是可能页表项的Present字段(为1表示所指的页在主存中)还是为0?因为如果这里内核映射了前896MB就代表页框已经分配的话,那么当主机所有物理内存少于896MB的时候,用户进程就没有页框可以分配了?

3、如果我第2点是正确的话,那么内核访问映射了但没分配页框的页,这时应该会产生缺页异常吧?应该就是发现Present为0,所以产生缺页异常吧?

lelee007 发表于 2021-04-07 21:30

是的,内核中mm的管理有一套专门的机制,已经映射的页表长时间没有使用到也会被换出,内核中的内存管理机制算法还是蛮复杂,我只知道这些基本概念,没研究过代码

aweii 发表于 2021-05-03 16:31

1、对的
2、present位=1
3、不会
页: [1]
查看完整版本: 物理内存少于896MB内核直接映射