深入理解Linux核心 核心同步

2021-09-09 01:28:57 字數 705 閱讀 3425

核心基本的同步機制:

搶占核心的主要特點:乙個在核心態執行的程序,可能在執行核心函式期間被另外乙個程序取代。

核心搶占:linux 2.6允許使用者在編譯核心的時候配置十分啟用

程序臨界區:每個程序中訪問臨界資源(一次僅允許乙個程序使用的共享資源)的那段**稱為臨界區。

優化屏障:保證編譯程式不會混淆放在原語操作之前的彙編指令和放在原語之後的彙編指令。

記憶體屏障:確保原語之後的操作開始執行之前,原語之前的操作已經完成。

自旋鎖:在多處理器環境中工作的一種特殊的鎖。如果核心控制路徑發現鎖由執行在另乙個cpu上的核心控制路徑鎖著,就在周圍『旋轉』,反覆執行,直到鎖唄釋放。因為核心資源很多只鎖1毫秒的時間片段,所以不會浪費太多時間。

順序鎖:自旋鎖的讀寫具有相同的優先順序。順序鎖中,寫被賦予了更高的優先順序。即使正在讀對時候,也允許寫;好處是寫者不用等待讀者,缺點時讀者反覆讀取多次資料,對比相同,才能確認有效。

訊號量:1、核心訊號量,由核心控制路徑使用;2、system v ipc 訊號量,由使用者態程序使用。

核心訊號量:和自旋鎖類似,核心訊號量保護大資源核心控制路徑不能訪問,並且相應的程序被掛起。另外,1、只有可睡眠待函式才能獲取核心訊號量;2、中斷處理程式和可延遲函式都不能使用核心訊號量。

系統的高併發度取決於:

1、同時執行的i/o裝置數

2、進行有效工作多cpu數

大核心鎖:

深入理解linux核心手記

linux的段式管理是對應於程式結構的,是一種自然的想法,linux共有6個段暫存器,其中有3個專門的段暫存器 cs 段暫存器 ss 程式棧段暫存器 ds 資料段暫存器 程式需要6個段 bss 存放未初始化資料,只有名稱和大小 段 資料段 存放已初始化資料 棧段,堆段。段式管理段缺點 相比喻頁式管理...

深入理解Linux核心3

unix核心提供了應用程式可以執行的環境,因此,核心必須實現一組服務及相應的介面。應用程式使用這些介面而不會跟硬體資源直接互動。啟用核心例程的幾種方式 核心恢復乙個程序執行時,用程序描述符中的合適字段裝載cpu暫存器 等待狀態可能會有很多,有程序描述符佇列實現 自旋鎖 檢查訊號量耗時多,對於時間較短...

深入理解Linux核心 程序

1 程序的靜態特性 程序 程式執行時的乙個例項 程序描述符 task struct 程序的基本資訊 thread info 指向記憶體區描述符的指標 mm struct 程序相關的tty tty struct 當前目錄 fs struct 指向 檔案描述符的指標 files struct 所接收的訊...