linux-0.12内核之内存管理(1)

1.内存分页管理机制

内存分页管理是通过页目录表和内存页表所组成的二级表组成的,其中页目录表和页表的结构是一样的,表项结构也相同。页目录表中的每个表项(4B)来寻址一个页表,而每个页表项(4B)来指定一页物理内存页。因此,当指定了一个页目录项和一个页表项,我们就可以唯一地确定所对应的物理内存页。在Linux 0.12内核中,所有进程都是用一个页目录表,而每个进程都有自己的页表。内核代码和数据段长度是16MB,使用了4个页表(即4个页目录项),经过分段机制变换,内核代码段和数据段位于线性地址空间的头16MB范围内,再经过分页机制变换,它被直接一一对应地映射到16MB的物理内存上,因此对于内核数据段和代码段来讲其线性地址就是物理地址。

对于应用进程或内核其他部分来讲,在申请内存时使用的是线性地址。接下来我们就要问了:"那么,一个线性地址如何使用这两个表映射到一个物理地址呢?",为了使用分页机制,一个32为线性地址被分成3个部分,分别是用来指定一个页目录项、一个页表项、对应屋里内存页上的偏移地址,从而能间接地寻址到线性地址指定的物理内存位置。


在内存管理的函数中,大量的使用了从线性地址到实际物理的变换计算。如果需要根据一个已知被使用的物理地址,寻找对应的线性地址,则需要对整个页目录项和所有页表进行搜索。若该物理内存页被共享,我们就可能会找到多个对应的线性地址来。对于应用程序的进程,其页表所使用的内存是在进程创建时向内存管理程序申请的,因此是在主内存中。

2.需求加载机制

在使用execve()系统调用加载运行文件系统上的一个执行映像文件时,内核除了在CPU的4G线性地址空间中为对应进程分配64MB的连续空间,并为其环境参数和命令行参数分配和映射一定数量的物理内存页外,实际上并没有给执行程序分配其他任何物理内存页面。当然也谈不上从文件系统上加载执行映像文件中的代码和数据。因此一旦该程序从设定的入口执行点开始运行就会立刻引起CPU产生一个缺页异常。此时内核的缺页异常程序才会根据缺页异常的具体线性地址把执行文件中相关代码从文件系统中加载到物理内存页面中,并映射到进程逻辑地址中指定的页面位置处。当异常处理程序返回后CPU重新加载引起缺页异常的指令,使得执行程序能够继续执行。在执行过程中又要运行另一页中还未加载的代码,或者代码指令需要访问还未加载的数据,那么CPU同样会产生一个缺页异常中断,此时内核就又会把执行程序中的其他对应页面内容加载到内存中。就这样,执行文件只有运行到代码或数据页面才会被内核加载到物理内存中。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于《Linux内核完全剖析基于0.12内核.pdf》,如果想要给其添加目录索引书签,可以通过以下步骤实现。 1. 打开Adobe Acrobat Reader:首先,确保你已经安装了Adobe Acrobat Reader这个PDF阅读器软件,如果没有,可以通过官方网站进行下载和安装。 2. 打开PDF文件:在Adobe Acrobat Reader中,选择“文件”菜单,然后选择“打开”,找到并选择《Linux内核完全剖析基于0.12内核.pdf》文件,点击“打开”。 3. 找到文档结构:在Adobe Acrobat Reader的右侧,你会看到一个名为“文档结构”的窗口。如果未打开,可以在菜单中选择“视图”并启用“文档结构”选项。 4. 添加目录:在“文档结构”窗口中,你可以看到文档中的各个章节和标题。选择某个章节或标题,然后在“文档结构”窗口上的小工具栏中,点击“添加新目录项”。 5. 编辑目录:在弹出的对话框中,输入适当的标题和页码。如果需要,可以使用缩进来建立层次结构。点击“确定”后,你会发现目录已经成功添加到“文档结构”窗口中,并且相应的页面会自动链接到目录项。 6. 保存文件:在完成所有目录的添加后,你可以选择“文件”菜单中的“保存”,保存带有目录索引书签的PDF文档。以后每次打开该文档时,都可以通过点击目录中的条目快速导航到相应的页面。 通过以上步骤,你可以为《Linux内核完全剖析基于0.12内核.pdf》添加目录索引书签,使阅读更加方便和高效。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值