欢迎光临
我们一直在努力

操作系统 段页式内存管理

一、实验目的

1.熟悉 Linux 内核调试环境,巩固 gdb 与 bochsdbg 协同调试技巧,掌握段页式内存管理相关的断点设置、寄存器(CR2、CR3)查看、线性地址与物理地址查询方法。

2.理解段页式内存管理的底层原理,明确线性地址到物理地址的转换流程,掌握页目录、页表的结构及工作机制。

3.掌握页目录项、页表项的格式解析方法,能够通过描述符数值提取页帧起始地址、判断页面读写权限及存在性。

4.明确进程创建过程中页目录和页表的动态变化规律,理解 fork 系统调用对内存映射关系的影响。

5.跟踪页故障的产生与处理流程,掌握 CR2 寄存器在页故障中的作用,理解页故障处理程序的执行逻辑及恢复机制。

6.掌握 1 号进程对用户变量的访问过程,明确变量线性地址映射、页故障触发及处理后的地址更新逻辑。

二、实验内容

本实验围绕段页式内存管理核心机制,分两个核心任务开展,分别基于版本 1 内核和版本 1.3 内核:

1.实验一:进程创建前后页目录和页表的变化

跟踪 0 号进程 fork 系统调用执行前后的内存状态,分析线性地址到物理地址的映射关系变化,探究页目录的动态更新逻辑。

2.实验二:1 号进程对 mynext 变量的第一次修改

跟踪 1 号进程第一次修改 mynext 变量的全过程,分析变量线性地址映射、页故障触发、故障处理及恢复的完整流程,验证页表项更新及物理地址映射的变化。

三、实验步骤

实验 1:进程创建前后页目录和页表的变化

(一)实验环境准备

1.版本 1 内核文件存放于/data/workspace/myshixun/exp1文件夹,执行命令:cp /data/workspace/myshixun/exp1/1.tgz ~/os,将内核压缩包复制到目标目录。

2.切换至实验目录:cd ~/os/linux-0.11-lab,执行tar -zxvf ../1.tgz 1解压内核源码。

3.删除旧符号链接并创建新链接:rm -rf cur、ln -s 1 cur,将版本 1 内核设为分析对象;执行ls命令查看,可见cur链接指向1,确认版本 1 内核已作为本次实验分析对象。

4.切换至内核目录并编译:cd 1/linux && make,完成内核编译后执行cd ../../返回实验目录。

赞(0)
未经允许不得转载:171主机测评 » 操作系统 段页式内存管理
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址