详细讲解Linux内存管理中分段分页机制
创始人
2024-06-16 07:51:07
0

随着Linux操作系统的发展,很多Linux新用户逐渐成为Linux操作系统的老用户。 这里为你讲解的问题会对Linux内存管理中分段分页机制有所帮助。希望本文的介绍能让你能学会Linux内存管理中分段分页机制。

1. 一些基本的概念:逻辑地址,线性地址,物理地址,实地址模式,保护模式,段寄存器,段基址寄存器,段选择子寄存器,段描述符,全局描述表GDT,局部描述表LDT,GDTR,LDTR,CPL,RPL,DPL,权限检查的标准(max(CPL,RPL)<=DPL)。

2. 在head.s中的有全局描述符表的声明,其中包括内核代码段、内核数据段、用户代码段、用户数据段各在哪个地址,cpu_gdt_table即为表基址。

3. 激活分段机制的两个步骤:一是设置全局描述符表GDT,也就是通过head.s中的一段程序把内核代码段、内核数据段、用户代码段、用户数据段的地址赋予给特定的寄存器。二是使能保护机制,即设置处理器控制寄存器cr0中的保护模式标记位即可。

内存管理之分页机制:

1. 基本概念:页框(page frame)、页(page)、页表(page table)、页目录基址寄存器CR3

2. 基于二级页表的线性地址到物理地址的转换过程?

3. 页表项的结构?

4. 为什么二级页表比一级页表节省空间?

解释:

需要知道一个知识:每个进程都对应一个页表。

比如对于4G的空间,4K每页

如果是一级页表映射,那需要2^20 =1M个页表项(无论用不用都需要,系统不知道哪个地址是否会被访问)

1M * 4 == 4M

每个进程都需要4M的页表

而如果是2级页表映射就只需要一个页目录 + 1个页表项(比如进程只使用4M内存的情况)就足够了,1个页目录占4K,一个页表项占4个字节,但另起了一页,每个进程总体占8K。

轻松完成Linux内存管理中分段分页机制。

【编辑推荐】

  1. 全面介绍在Linux和路由器建立日志服务器
  2. linux实用命令-pv: 管道查看器
  3. 在64位Linux下编译dtAgeiaPhysX
  4. 决战紫禁之巅:Linux桌面Mint 8与Windows 7
  5. 简单理论Linux ReiserFS系统分析特点与效果

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...
《非诚勿扰》红人闫凤娇被曝厕所... 【51CTO.com 综合消息360安全专家提醒说,“闫凤娇”、“非诚勿扰”已经被黑客盯上成为了“木...