1. 程式人生 > >一個簡單的時間片輪轉多道程式分析

一個簡單的時間片輪轉多道程式分析

張磊+原創作品轉載請註明出處 + 《Linux核心分析》MOOC課程http://mooc.study.163.com/course/USTC-1000029000 ”

使用實驗樓的虛擬機器開啟shell,輸入下面的兩條命令,即可以啟動mykernel

l cd LinuxKernel/linux-3.9.4

l qemu -kernel arch/x86/boot/bzImage

下圖為執行截圖:


這個程式很簡單,程式在兩個函式之間按時間進行切換。函式中沒有其它功能,只是列印輸出,能看到函式已經執行。

然後關閉qemu視窗,cd mykernel ,我們可以找到輸出這些字串的原始碼mymain.cmyinterrupt.c

mymain.c 檔案:


myinterrupt.c 檔案:


實驗結論:

1.mykernel 程式啟動之後,會呼叫 my_start_kernel 函式。

2.CPU 會週期性的產生時間中斷來執行 my_time_handler 函式。

3.這是一個最簡單的程式核心,內此可以看出計算機所謂的多工處理也只是週期性的產生中斷來輪流招待不同的程式,CPU 會儲存中斷產生的現場,以便繼續下一次時間片輪轉。