MOOC《Linux核心分析》第二課

2021-07-10 07:59:44 字數 2276 閱讀 5345

本節課孟老師主要講解了內聯彙編中函式堆疊和qemu**分析linux核心中時間片輪轉的知識點。

計算機的三**寶

作業系統的兩把神器

下面介紹一下程式步驟,我是在自己的linux機器上進行的qemu**,具體的操作步驟見mykernel

進入到linux-3.9.4中後,qemu**截圖為

下面對三個檔案中的**進行分析

/* *設定程序控制塊的資訊

*/typedef struct pcbtpcb;

void my_schedule(void); /*排程程式初始化函式*/

*程序排程時所執行的相關操作

* */

void my_schedule(void)

printk(kern_notice ">>>my_schedule<<

/* schedule */

next = my_current_task->next;

prev = my_current_task;

if(next->state == 0)/* -1 unrunnable, 0 runnable, >0 stopped */

else

return;

}

《linux 核心分析》 第二週 實驗

本次課的核心是通過中斷機制完成程序的排程 在本次課程中 init my start kernel作為入口函式,定義0號程序的tpcb結構體,通過複製來製造其他程序的tpcb資料結構,中斷時間函式被 my timer handler週期性的呼叫來修改my need sched 的值,而0號程序一直在檢...

Linux核心分析第二週總結

32位x86通過函式呼叫堆疊來傳遞引數 使用eax儲存返回位址 堆疊暫存器和堆疊操作 ebp僅記錄當前函式的呼叫基址 堆疊相關暫存器 其他關鍵暫存器 函式呼叫時堆疊的變化 生成反彙編檔案 mykernel實驗模擬計算機硬體平台 程序是動態執行的實體,核心是程序的管理者。程序不但包括程式的指令和資料,...

第二章 核心C

如果在一條語句中宣告和初始化了多個變數,那麼所有的變數都具有相同的資料型別 int x 10,y 20 變數使用前需要賦初始值 宣告不同型別的變數需要單獨的語句。變數的初始化 變數時類或者結構中的字段,如果沒有顯式的初始化,建立這些變數時,其預設值就是0.方法的區域性變數必須在 中顯示的初始化,之後...