深入Linux核心架構筆記 動態時鐘

2021-09-24 02:43:10 字數 448 閱讀 6932

為節省系統功耗,只在有些任務需要實際執行時,才啟用週期時鐘,否則會臨時禁用週期時鐘,對該技術的支援可以在編譯時選擇,啟用此選項的系統也稱無時鐘系統。

判斷原則:當系統排程選擇idle程序來執行時,動態時鐘系統會禁用週期時鐘,直到下乙個定時器即將到期為止

struct tich_sched

idle_tick : 在週期時鐘禁用前,上乙個時鐘訊號的到期時間,

tick_stopped : 1表示時鐘週期已經停用,即當前沒有什麼基於週期時鐘的工作要做

ts->tick_stopped = 1 : 進入idle,並且下一次定時器的時間超過1個jiffy, 但是只有在ts->tick_stopped = 1 的時候才會停止週期時鐘,如果當前ts->tick_stopped等於0,因為有週期時鐘的存在,感覺很難有機會執行: ts->tick_stopped = 1

《深入Linux核心架構》讀書筆記

1.關於udev page.318 每當核心檢測到裝置時,都會建立乙個核心物件,並向使用者空間傳送乙個熱插拔訊息,該訊息包含了驅動程式為裝置分配的主從裝置號。udevd守護程序監聽該訊息,並根據訊息在 dev中建立對應的項,接下來就可以從使用者層訪問該裝置了。由於引入了udev機制,dev不再放置到...

深入Linux核心架構筆記 程序管理與排程

概述 程序相關的基本概念 硬體實時程序有嚴格的時間限制,必須在可保證的時間範圍內得到處理,否則會有很嚴重的後果,請注意,這並不意味著所要求的時間範圍特別短,linux主流版本不支援硬實時處理 軟實時程序是硬實時程序的一種弱化形式,儘管仍然需要快速得到結果,但是稍微晚一點關係也不是很大,比如對cd機的...

深入Linux核心架構筆記 程序管理與排程2

程序表示 state 執行程序的狀態 task running 表示程序可以執行 task interruptiable 程序因為等待某種事件或者資源而睡眠,可以通過訊號喚醒 task uninterruptible 程序因為等待某種事件或者資源而睡眠,不能由訊號喚醒 task stopped 程序...