Linux 核心/Softdog 驅動程式
外觀
< Linux 核心
看門狗定時器是一種裝置,如果檢測到系統掛起,它會觸發系統重置。在系統上執行的程式應該定期透過寫入“服務脈衝”來服務看門狗定時器。如果在特定時間段內沒有為看門狗提供服務,看門狗會認為系統已掛起,並觸發系統重置。
通常,看門狗定時器作為附加卡實現,或作為微控制器內的片上外設實現。但是,如果沒有硬體看門狗,Linux 核心可以使用核心計時器提供軟體看門狗。
在 Linux 中,看門狗驅動程式為使用者空間提供了字元驅動程式介面。當向看門狗驅動程式寫入一些資料時,看門狗驅動程式會為看門狗硬體提供服務。使用者空間應用程式根據看門狗超時時間定期向看門狗驅動程式寫入一些資料。如果由於某種原因使用者空間應用程式掛起,看門狗裝置不會得到服務,因此會觸發系統重置。
通常,寫入看門狗驅動程式的應用程式是看門狗守護程序,它監控系統中的程序,以及其他引數,例如 CPU 利用率、記憶體利用率等等。
當開啟 softdog 驅動程式時,softdog 會排程一個核心計時器,在指定的時間間隔後過期。當向驅動程式寫入一些資料時,softdog 驅動程式會重新排程計時器。使用者空間看門狗守護程序定期寫入驅動程式,計時器會不斷重新排程,因此計時器回撥永遠不會被呼叫。如果看門狗守護程序停止寫入驅動程式,計時器會過期並呼叫回撥。在計時器回撥中,系統會重新啟動。
⚲ API
👁 示例
📚 參考