使用實驗樓的虛擬機器開啟shell
,輸入下面的兩條命令,即可以啟動
mykernel,
l cd linuxkernel/linux-3.9.4
l qemu -kernel arch/x86/boot/bzimage
下圖為執行截圖:
這個程式很簡單,程式在兩個函式之間按時間進行切換。函式中沒有其它功能,只是列印輸出,能看到函式已經執行。
然後關閉qemu視窗,
cd mykernel
,我們可以找到輸出這些字串的源**
mymain.c
和myinterrupt.c
mymain.c 檔案:
myinterrupt.c 檔案:
實驗結論:
1.mykernel 程式啟動之後,會呼叫 my_start_kernel 函式。
2.cpu 會週期性的產生時間中斷來執行 my_time_handler 函式。
3.這是乙個最簡單的程式核心,內此可以看出計算機所謂的多工處理也只是週期性的產生中斷來輪流招待不同的程式,cpu 會儲存中斷產生的現場,以便繼續下一次時間片輪轉。
乙個簡單的時間片輪轉多道程式核心作業系統工作流程
一.作業系統工作概述 儲存程式計算機工作模型,計算機系統最最基礎性的邏輯結構 函式呼叫堆疊,高階語言得以執行的基礎 中斷,多道程式作業系統的基點。二.分析 主要對mypcb.h,mymain.c 和myinterrupt.c這三個檔案進行分析。define max task num 4 define...
乙個簡單的時間獲取程式
客戶程式 include unp.h include myerror.h int main int argc,char argv 建立乙個tcp套接字,返回sockfd作為套接字描述符 int sockfd if sockfd socket af inet,sock stream,0 0 指定伺服器...
乙個簡單的時間獲取客戶程式
讓我們考慮乙個具體例子,引入將本書中遇到的許多概念和說法。實現乙個tcp當前時間查詢客戶程式的實現。該客戶程式與其伺服器建立乙個tcp連線後,伺服器直觀可讀格式簡單地送回當前時間和日期。獲取時間的伺服器端 include include include include include include...