头歌操作系统 课后作业3.1:进程的描述与状态

第1关:1 号进程的核心栈内容分析

编程要求

根据相关知识,回答问题:(将答案填写在/data/workspace/myshixun/第三关.txt中)

  1. 1 号进程的核心栈栈底的位置是多少?

  1. 1 号进程(用 si)执行函数 task1 中的第一个 int 0x81 指令后,核心栈栈顶的位置是多少?从栈底到栈顶依次放了哪些内容?

本实训需要设置内核版本 1 为调试分析的对象,用 gdb 调试内核,内核版本 1 的压缩文件存放在/data/workspace/myshixun/exp1中。

cp /data/workspace/myshixun/exp1/1.tgz ~/os/
cd ~/os/linux-0.11-lab/
tar -zxvf ../1.tgz
rm -rf cur
ln -s 1 cur
cd 1/linux
make
cd ../..

启动虚拟机,在gdb调试器中输入:

b task1
c
x/6i $eip
si
p/x current->tss
si
p/x $esp
x/6wx $esp

效果如图:

答案如下:

第2关:0 号进程的核心栈内容分析

编程要求

根据相关知识,回答问题:(将答案填写在/data/workspace/myshixun/第四关.txt中)

  1. 0 号进程的核心栈栈底的位置是多少?

  1. 0 号进程(用 si)执行了 fork 系统调用中的陷入指令后,核心栈栈顶的位置是多少?从栈底到栈顶依次放了哪些内容?

本实训需要设置内核版本 1 为调试分析的对象,用 gdb 调试内核,内核版本 1 的压缩文件存放在/data/workspace/myshixun/exp1中。

cp /data/workspace/myshixun/exp1/1.tgz ~/os/
cd ~/os/linux-0.11-lab/
tar -zxvf ../1.tgz
rm -rf cur
ln -s 1 cur
cd 1/linux
make
cd ../..

启动虚拟机,在gdb调试器中输入:

b 145
c
n
p/x current->tss
x/3i $eip
si
si
p/x $esp
x/6wx $esp

效果如下:

答案如下:

猜你喜欢

转载自blog.csdn.net/kercii/article/details/129765771