操作系统——时钟中断的发生

第一关:时钟中断的发生

要求:根据相关知识进行实际操作,一直输入 c 直到 0/1 将第一行完全填满。 回答问题:当第一行 0/1 字符全部输出完毕的时候一共发生了几次时钟中断,即第一行完全填满时 jiffies 记录的已发生次数为多少

打开终端,使用cp命令将1.tgz复制到目录下

ls /data/workspace/myshixun/exp1
cp /data/workspace/myshixun/exp1/1.tgz ~/os/
ls os/

切换目录,进行解压

cd ~/os/linux-0.11-lab
tar -zxvf ../1.tgz

调整cur指向,先将cur删除,再用ln链接

rm -rf cur
ln -s 1 cur
ls
ll

进入1/linux目录下编译内核

cd 1/linux
make
ls

确认image已经生成

再使用cd命令回到目录~/os......,使用./run启动虚拟机检测内核是否正常。

确认无误后,输入./rungdb等待链接

打开另一个终端,使用cd切换到目录~/os....,启动脚本./mygdb

接下来跟踪分析时钟中断

b do_timer
display jiffies
c
c
c

重复输入c,并观察虚拟机第一行01是否填满,填满后即可quit

第二关:第一次时钟中断

打开一个终端,切换到目录,运行脚本等待链接;

cd ~/os/linux-0.11-lab
./rungdb

打开另一个终端

./mygdb

跟踪分析时钟中断

b do_timer
c
p jiffies
bt
finish
disas
si
si
disas
b *0x77dd
c
disas
si
disas

注意此过程在输入最后一个disas时出现的task0中,此时箭头所指即为地址

第三关:第六次时钟中断

启动两个终端,切换到目录~/os.....,一个终端运行脚本./rungdb,另一个运行./mygdb

记录六次断点位置:

b do_timer
c
p jiffies
c
p jiffies
c
p jiffies
c
p jiffies
c
p jiffies
c
p jiffies
bt
finish
disas
si
si
disas
b *0x77dd
c
disas
si
disas

恢复点分析

info reg

接下来只需根据要求,即可得出所需

猜你喜欢

转载自blog.csdn.net/m0_57449653/article/details/127410185
今日推荐