课后作业2.1:外部中断
第1关:修改版本 1 内核源码,使得每次时钟中断发生时,都在屏幕上输出字符 ‘t’
第1关 任务描述
本关任务:修改版本 1 内核源码,使得每次时钟中断发生时,都在屏幕上输出字符‘t’。
第1关 任务过程
1.1 打开终端,输入以下命令
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
1.2 修改屏幕输出为t
打开vscode,菜单栏点击【File】-【Open Folder…】
选择文件路径
搜索【$48】,替换成【$116】
1.3 在第一个终端继续输入
cd 1/linux/
make
cd ../..
./run
第2关:修改版本 0 内核
第2关 任务描述
本关任务:修改版本 0 内核,使得每发生 100 次时钟中断,就在屏幕上输出一个字符‘t’和当时的进程号,如“t(0)”表示0号进程运行时发生了时钟中断。
第2关 任务过程
2.1 打开终端,输入以下命令
cp /data/workspace/myshixun/exp1/0.tgz ~/os/
cd os/linux-0.11-lab
tar -zxvf ../0.tgz
rm -rf cur
ln -s 0 cur
2.2 修改屏幕输出为t(0)
选择文件路径
搜索【do_timer】,插入代码
if (jiffies % 100 == 0)
{
printk("t(%d)\n", current -> pid);
}
2.3 在第一个终端继续输入
cd 0/linux/
make
cd ../..
./run