Linux Kernel 核心中文手冊(11)--核心機制

Kernel Mechanisms (核心機制)
 
本章描述了 Linux 核心需要提供的一些一般的任務和機制,讓核心的其餘部分可
以有效地工作。
 
11.1 Bottom Half Handling
 
    通常在覈心中會有這樣的時候:你不希望執行工作。一個好例子是在中斷處理
的過程中。當引發了中斷,處理器停止它正在執行的工作,操作系統把中斷傳遞到
適當的設備驅動程序。設備驅動程序不應該花費太多時間來處理中斷,因爲在這段
時間,系統中的其他東西都不能運行。通常一些工作可以在稍後的時候進行。
Linux 發明了 boffom half 處理程序,這樣設備驅動程序和 Linux 核心的其它部


分可以把可以稍後作的工作排隊。圖 11.1 顯示了同 bottom half 處理相關的核
心數據結構。有多達 32 個不同的 bottom half 處理程序: bh_base 是一個指針
的向量表,指向核心的每一個 bottom half 處理例程, bh_active 和 bh_mask
按照安裝和激活了哪些處理程序設置它們的位。如果 bh_mask 的位 N 設置,則
bh_base 中的第 N 個元素會包含一個 bottom half 例程的地址。如果 bh_active
 的第 N 位設置,那麼一旦調度程序認爲合理,就會調用第 N 位的 bottom
half 處理程序。這些索引是靜態定義的: timer bottom half 處理器優先級最高
(索引 0 ), console bottom half 處理程序優先級次之( index 1 )等等。
通常 bottom half 處理例程會有和它關聯的任務列表。例如這個 immediate
buttom half handler 通過包含需要立即執行的任務的 immediate 任務隊列(
tq_immediate )來工作。
 
參見 include/linux/interrupt.h

發佈了0 篇原創文章 · 獲贊 0 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章