linux 核心學習之 定時器和時間管理

2021-06-22 10:53:07 字數 984 閱讀 3445

1.概述

目的:核心:

系統定時器和時鐘中斷處理程式是linux系統核心管理機制的中樞。

2 基本概念

系統定時器:一種可程式設計硬體晶元,用於幫助核心計算和管理時間,能以固定頻率自發產生定時器中斷,對應的中斷處理程式負責更新系統時間及執行需要週期性的任務。

節拍率:系統定時器自行觸發時鐘中斷的頻率,即系統定時器預設頻率,通過程式設計(核心,多數情況下預設為1000hz(該值可調, 2.5版本以後的版本為1000hz,windows i386中配置為100hz),即1ms產生一次時鐘中斷。

動態定時器:也稱核心定時器或者定時器,核心中用於管理系統執行時間,個人認為可理解為:可設定某個動作延時到某個指定時間點再執行的軟體機制。ps:通常定時器在超時後馬上就會執行,但也有可能推遲到下一次時鐘節拍時才能執行,所以不能用定時器來實現任何硬定時任務。

實時時鐘(rtc):用來持久存放系統時間的裝置,系統關閉後,靠主機板上的微型電池供電以保持系統計時.

節拍:連續兩次時鐘中斷的間隔時間,等於節拍率分之一。

jiffies;核心中用於記錄系統自動以來產生的節拍的總數的全域性變數,啟動時,被核心初始化為0;jiffies一秒鐘增加的值即為hz。即系統啟動以來執行的時間。

xtime:核心中儲存當前實際時間的全域性變數,存放2023年1月1日以來經過的時間(utc)。

3 具體實現

實現延時:

4 其他

提高系統的節拍率,

優勢:劣勢:

bogomips:

bogomips能測出一秒鐘內某程式執行了多少次。其實,bogomips的過程就是乙個簡單計數迴圈,看ls可以迴圈多少次。

在linux和uclinux啟動過程中,我們通常可以看到以下語句:calibrating delay loop... ***x bogomips。其中calibrate的意思是校準, 進入時延校準迴圈;bogo是bogus(偽)的意思;mips是每秒百萬條指令。這裡是對cpu進行乙個實時測試,來得到乙個大體的mips數值。

linux 核心 核心定時器

一.時鐘中斷概念 1.時鐘中斷由系統的定時硬體以週期性的時間間隔產生,這個間隔 即頻率 由核心根據hz來確定,hz是乙個與體系結構無關的常數,可配置 50 1200 在x86平台上預設值是1000 2.每當時鐘中斷發生的時候,全域性變數jiffies unsigned long 就加1,所以jiff...

linux核心驅動之定時器

運用場景 1.初始化乙個驅動,經過一定的時間再執行乙個特殊動作 2.初始化乙個驅動,之後每隔一定的時間執行乙個特殊動作 定時器工作流程 a.建立timer,編寫定時器處理函式 b.為timer的expires data function賦值 c.呼叫add timer將timer加入列表 d.定時器...

linux核心定時器

度量時間差 時鐘中斷由系統的定時硬體以週期性的時間間隔產生,這個間隔 頻率 由核心根據hz來確定,hz是乙個與體系結構無關的常數,可配置 50 1200 在x86平台,預設值為1000.每秒鐘產生1000次時鐘中斷 每當時鐘中斷發生時,全域性變數jiffies就加1,因此其記錄了自linux啟動後時...