Linux 内存管理浅析 - 页面映射管理之页表管理

(4). 页表管理

下面我们来看下页表的建立过程。前面我说过,进程分为用户进程和内核进程。用户进程可以有多个,而内核进程则只有一个。因此,对于内核进程页表,我们只有一份。下面我以e6500平台为例说明内核进程页表和用户进程页表是怎么建立和管理的。

我们先来思考下,在什么时候,我们才需要真正的创建一个页表呢。前面我说过,页表是按需创建的,就是说在物理页面分配之后,我们才会创建相应的页表项。这里说下页表项和页表的区别。我这里说的页表是指PGD表,PUD表,PMD表,PTE表,在上一节,我画了一张图表示它们。它们包含了各自的页表项,如PGD,PUD,PMD和PTE。在创建相应页表项时,如果所在的页表还没有分配内存,那么需要调用页表alloc函数进行内存分配,然后再进行页表项的设置。那么页表的建立第一步就是需要分配各级页表内存存储空间。

因为PGD表对于每个进程来说都是必须的,所以PGD表的存储空间是在每个进程创建的时候就分配好的,虽然这个时候还不需要对PGD进行设置。

  • 内核进程PGD表的创建

    内核进程,就是init 0进程,是内核执行任务的空间,它有自己的进程存储空间,它负责处理像进程调度、内存管理、文件系统、异常处理、外设管理这样的计算机自身的问题。linux内核启动时,内核代码会对系统进行一些初始化的工作,在这之后,内核会建立内核进程的运行环境。我们说一个进程,对于系统来说,就是一个抽象实体,我们会用一些数据结构表示的数据来记录这样一个实体的行为。这个实体有自己的代码(行为),有自己的存储空间(虚拟地址),有自己的CPU

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值