- 1、本文档共77页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Linu的x虚拟内存管理进阶4
Linux虚拟内存管理
进阶篇
主要内容
1. 虚拟内存管理的基本原理和基本过程。
2. CPU对虚拟内存管理的支持。(ULK Ch.2)
3. Linux如何管理页表。(ULK Ch.2)
4. Linux如何管理物理内存(ULK Ch.8)
5. Linux如何管理虚拟空间的内核地址空间部 (ULK
Ch.8)
6. Linux如何管理虚拟空间的进程地址空间部 (ULK Ch.9)
7. Linux如何在物理内存和外出之间同步数据(ULK Ch.15)
8. Linux如何主动回收物理内存(ULK Ch.17)
注:无法全部讲 骚瑞
2
一些术语
1. 页:page ,虚拟内存空间中的一页
2. 页框:page frame ,物理内存空间中的一页
3. 页目录项:页目录表中的一行,4个字节
4. 页表项:页表中的一行,4个字节
5. Linux 内核一般用void *或unsigned long表示一个虚拟
地址或物理地址
3
Linux如何管理页表
1. Linux为了提高内核的可移植性,定义了一套与具体CPU架构
无关的:类型、宏常量、宏函数和内联函数,来表示、建立
和修改页表。
2. 无论哪种CPU ,Linux都定义了4级页表结构:
• 页全局目录(Page Global Directory)
• 页上级目录(Page Upper Directory)
• 页中间目录(Page Middle Directory)
• 页表(Page Table)
3. Linux只是在初始化和修改页表时用到这些平台无关的类型、
宏常量、宏函数和内联函数。
4. 查表过程肯定是平台相关的!
4
Linux 的4级页表结构
1. 在针对特定CPU体系结构移植,编译器会将4级页表中的某些
级别自动去掉。
5
与页表相关的宏常量
1. PAGE_SHIFT 、PMD_SHIFT 、PUD_SHIFT 、PGDIR_SHIFT
2. PTRS_PER_PTE, PTRS_PER_PMD, PTRS_PER_PUD,
PTRS_PER_PGD
6
与页表相关的宏常量
7
表示页表项的数据类型
8
管理页表的函数
1. 太多了,见ULK Ch.2 的表2-6、表2-7、表2-8、表2-9
2. 很多函数调用在运行时都已经被C的预处理器删掉了。
9
Linux 的页表存放在了什么位置
1. 每个进程对应自己 “独立”的一组页表,对应的页全局目录
的起始地址被存放在了 “current→mm→pgd”指针指向的页
2. 内核拥有一组自己使用的页表,驻留在主内核页全局目录。
3. 主内核页全局目录的首地址 (虚拟地址)被存放在
swapper_pg_dir变量中
4. 主内核页全局目录的最高1/4 目录项部分作为参考模板,会被
复制到每个普通进程的页全局目录项的对应部 。
5. 在内核启动时,没有任何进程,只有主内核页全局目录有效
movl $swapper_pg_dir-0xc0000000,%eax
movl %eax,%cr3 /* set the page table pointer.. */
movl %cr0,%eax
orl $0%eax
movl %eax,%cr0 /* ..and set paging (PG) bit */
10
进程描述符(task_struct)
struct task_struct {
/* these are hardcoded - dont touch */
volatile long state; /* -1 unrunnable, 0 runnable, 0
stopped */
long counter;
long
您可能关注的文档
- JPEG及JP的EG2000.ppt
- JSD4000GSM-A软的件使用说明.doc
- jsp的程序设计入门 沈泽刚、秦玉平 主编的java web 第二版 第09章 Web安全性入门.ppt
- JOLLYFL-1500spot(火盘的)中文说明书A5.pdf
- JSP开发模的式与技术课件1.ppt
- jsp程序设计入门 沈泽刚、秦玉平 主编的java web 第二版 第的07章 JDBC数据库访问.ppt
- js中深度讲解捕获的和冒泡.docx
- jsp程序设计入门的 沈泽刚、秦玉平 主编的java web 第二版 第02章 Servlet技术模型.ppt
- JSP Web的《Java Web应用程序开发》.ppt
- juni的t单元测试.docx
- 第18讲 第17课 西晋的短暂统一和北方各族的内迁.docx
- 第15讲 第14课 沟通中外文明的“丝绸之路”.docx
- 第13课时 中东 欧洲西部.doc
- 第17讲 第16 课三国鼎立.docx
- 第17讲 第16课 三国鼎立 带解析.docx
- 2024_2025年新教材高中历史课时检测9近代西方的法律与教化含解析新人教版选择性必修1.doc
- 2024_2025学年高二数学下学期期末备考试卷文含解析.docx
- 山西版2024高考政治一轮复习第二单元生产劳动与经营第5课时企业与劳动者教案.docx
- 第16讲 第15课 两汉的科技和文化 带解析.docx
- 第13课 宋元时期的科技与中外交通.docx
文档评论(0)