Linux 0.11进程运行轨迹的跟踪,进程运行轨迹的跟踪与统计
1,到內核init/main.c下修改信息:(cd/oslab/oslab/linux-0.11/init)
2,向kernel/printk.c中添加打印日志的功能
注意,是在源文件下增加代碼:
3,尋找進程切換點
3.1新建(N)狀態的切換點,
在kernel/fork.c修改內容:(注意看增加的地方)
3.2 就緒(J)狀態
(1)在此處為準備完畢的時候
(2)另一個就緒狀態是在schedule()函數中
位置kernel/sched.c
(3)進程時間片到期。位置kernel/sched.c
(4)轉到就緒態,在sleep_on()中
位置kernel/sched.c
5)在interruptible_sleep_on()中,位置kernel/sched.c
(6)在wake_up()中。喚醒不可中斷
位置kernel/sched.c
運行(R)狀態
(3)進程時間片到期”已經修改
3.4 睡眠(W)狀態:運行到睡眠依靠的是sleep_on()和interruptible_sleep_on(),還有進程主動睡覺的系統調用sys_pause()和sys_waitpid();
(1)sys_pause()
位置kernel/sched.c
2)sleep_on()
(3)interruptible_sleep_on()
(4)在exit.c中的sys_waitpid()中
傳進根目錄的方法:
考入文件
$ sudo umount hdc
$ sudo ./mount-hdc
編譯并運行process.c
總結
以上是生活随笔為你收集整理的Linux 0.11进程运行轨迹的跟踪,进程运行轨迹的跟踪与统计的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux设置进程优先级,Linux线程
- 下一篇: linux内核版本 2.6.39,lin