没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
实验 6 地址映射与共享
实验目的
� 深入理解操作系统的段、页式内存管理,深入理解段表、页表、逻辑地
址、线性地址、物理地址等概念;
� 实践段、页式内存管理的地址映射过程;
� 编程实现段、页式内存管理上的内存共享,从而深入理解操作系统的内
存管理。
实验内容
� 用 Bochs 调试工具跟踪 Linux 0.11 的地址翻译(地址映射)过程,了
解 IA-32 和 Linux 0.11 的内存管理机制;
� 在 Ubuntu 上编写多进程的生产者—消费者程序,用共享内存做缓冲
区;
� 在信号量实验的基础上,为 Linux 0.11 增加共享内存功能,并将生产
者—消费者程序移植到 Linux 0.11。
实验报告
� 对于地址映射实验部分,列出你认为最重要的那几步(不超过 4
步),并给出你获得的实验数据。
� test.c 退出后,如果马上再运行一次,并再进行地址跟踪,你发现有
哪些异同?为什么?
最重要:获线段基址 0x10000000
最关键:获得物理地址 0x00fa6004
物理地址变了,线性地址没变(至少 3 次内没变化),因为可能是因为分配的
页面被分配到别的物理页框。
实验步骤
1. 用 Bochs 调试工具跟踪 Linux 0.11 的地址翻译(地址映射)过程,了解
IA-32 和 Linux 0.11 的内存管理机制;
a) 启动调试器
b) 编译运行 test.c
c) 暂停运行,进入调试状态
d) 执行到 cmp 语句
e) 查看当前位置开始 8 条指令的反汇编代码
f) 查找 ldtr 和 gdtr ,找段表位置
ldtr 的值是 0x0068=0000000001101000(二进制),表示 LDT 表存放在 GDT 表
的 1101(二进制)=13(十进制)号位置,GDT 的位置已经由 gdtr 明确给出,
在物理地址的 0x00005cb8
g) 查看 GDT 表的前 16 项
剩余36页未读,继续阅读
资源评论
我慢慢地也过来了
- 粉丝: 5859
- 资源: 3759
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功