地址映射——输出虚拟地址所对应的物理地址
来源:互联网 发布:淘宝金鱼上传宝贝视频 编辑:程序博客网 时间:2024/05/04 13:25
Linux内核提供了一种通过 /proc 文件系统,在运行时访问内核内部数据结构、改变内核设置的机制。 /proc 是个伪文件系统,它只存在于内存中,不占用磁盘空间。它以文件系统的方式为外部访问内核数据的操作提供接口。
/proc 下还有一些以数字命名的目录,它们是进程目录。系统当前运行的每一个进程都在 /proc 有一个相对应的目录,以该进程的 pid 命名,是读取进程信息的接口,而self 目录是读取进程本身信息的 link。
/proc/self 中有一个名为 pagemap 的文件,用来记录当前进程的物理页面的信息;通过 pagemap 可以查看当前进程虚拟页面所映射的物理页的信息。
pagemap 中的每一项都是一个64位的值,信息如下:
所以只要找到虚拟页在 pagemap 中的对应项,通过 bit 63 判断是否在内存中,计算对应项的物理页号加上偏移量,就能得到虚拟地址所映射的物理地址。
流程简述:
1. 通过虚拟地址计算出该地址相对于起始地址的页号;
page index = virtual address / page size
2. 计算该地址相对于所在页面起始的偏移量;
offset = virtual address % page size
3. 在 pagemap 中通过页号查找对应项,查看该页是否在内存中;
4. 若当前页存在,则取 bits 0~54 加上偏移量,可得所对应的物理地址。
阅读全文
1 0
- 地址映射——输出虚拟地址所对应的物理地址
- 有效逻辑地址所对应的物理地址
- 有效逻辑地址所对应的物理地址
- 虚拟地址到物理地址的映射
- 虚拟地址与物理地址的映射
- 虚拟地址到物理地址的映射
- Linux下获取虚拟地址对应的物理地址的方法
- Linux下获取虚拟地址对应的物理地址的方法
- 有效逻辑地址所对应的物理地址的计算方法
- ARM中虚拟地址到物理地址的映射示意图
- 有时间分析 物理地址到虚拟地址的映射
- linux中S3C2440的物理地址映射到虚拟地址详解
- 转载_Linux驱动虚拟地址和物理地址的映射
- Linux驱动虚拟地址和物理地址的映射
- Linux驱动虚拟地址和物理地址的映射
- Linux驱动虚拟地址和物理地址的映射
- 嵌入式 Linux驱动虚拟地址和物理地址的映射
- x86虚拟地址到物理地址的映射学习
- History API与浏览器历史堆栈管理
- 当页面加载完成后,停止所有动画
- Unity 软件用到的基本单词
- 机器学习实战之使用k-邻近算法改进约会网站的配对效果
- 报错:不支持此服务器版本。目标服务器必须是 SQL Server 2000 或更高版本。
- 地址映射——输出虚拟地址所对应的物理地址
- <asp:CheckBoxList>的用法
- JStorm与Storm源码分析(四)--均衡调度器,EvenScheduler
- 使用百度地图实现拖动定位、搜索定位
- PAT B1003. 我要通过!
- Java异常体系介绍及自定义异常
- underscore.js 剩余部分2 --- 面向对象及链式调用
- Fiori 常用TCODE
- <a>标签与<input>标签遇到过的问题(两者在jquery中的区别)