3-9 課堂練習3.4:進程的切換
進程切換是支持多進程的一個關鍵環節,涉及到 CPU 現場的保存和恢復,本實訓分析 Linux 0.11 的進程切換過程。
第1關第一次進程切換過程分析
任務描述
本關任務回答問題: 在第一次進程切換時: 1.是從幾號進程切換到幾號進程?0 號進程和 1 號進程的剩余時間片分別是多少? 2.在(ljmp)切換前,寄存器對 CS:EIP 和 SS:ESP 的值是多少?其下一條指令的地址是多少?0 號進程的 TSS 中的字段對 cs:eip 和 ss:esp 的值是多少?1 號進程的 TSS 中的字段對 cs:eip 和 ss:esp 的值是多少? 3.在(ljmp)切換后,寄存器對 CS:EIP 和 SS:ESP 的值是多少?0 號進程的 TSS 中的字段對 cs:eip 和 ss:esp 的值是多少?1 號進程的 TSS 中的字段對 cs:eip 和 ss:esp 的值是多少?
相關知識
為了完成本關任務,你需要掌握: 1.Linux 0.11 的進程調度算法是怎樣的; 2.在 Linux 0.11 中,進程是如何切換的; 3.如何跟蹤到引發進程切換的 ljmp 指令; 4.如何查看寄存器的值; 5.如何查看一個進程的 TSS 的值。