第1关:版本 0 内核的第一次缺页页故障
本关任务:
分析版本 0 内核的第一次缺页页故障,回答下列问题:
1.该页故障由几号进程引发?
2.在该故障发生前,该进程执行的最后一个可执行文件是什么?该可执行文件的第 2 块(每块 1KB )的头 16 字节的内容是什么?
3.引发该页故障的线性地址是什么?该进程的代码段起始地址是多少?
4.该页故障处理前,该线性地址对应的页目录项的地址和值分别是什么?
5.该页故障处理时,申请到的空闲页帧的起始地址是什么?该页帧的头 16 字节的内容是什么?
6.该页故障处理过程中、读入硬盘数据后,上述页帧的头 16 字节的内容是什么?
7.该页故障处理过程中、修改对应的页表项后,上述线性地址对应的页表项的值是什么?
启动gdb调试在do_execve函数设置断点,并跳到断点处
可以看到是页故障是2号进程引发,最后一个执行文件是/bin/sh
在bochsdbg模式下,使用hexdump /bin/sh | less命令,查看/bin/sh文件的第二块的头16字节的内容
启动gdb,将断点打到do_no_page函数并跟踪
文章来源:https://www.toymoban.com/news/detail-463324.html
查看引发该页故障的线性地址和该进程的代码段起始地址文章来源地址https://www.toymoban.com/news/detail-463324.html
到了这里,关于课堂练习4.4:页式虚存的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!