Linux牆上時間

來源:互聯網
上載者:User

6.2.2  牆上時間

牆上時間,在系統啟動過程中根據即時鐘(RTC)晶片儲存資料進行初始化,在系統運行期間由系統時鐘維護並在合適的時刻和RTC晶片進行同步。牆上時間儲存於系統核心變數xtime中,該變數記錄了現實世界中的年月日格式的時間,以便核心對某些對象和事件作時間標記,如記錄檔案的建立時間、修改時間、上次訪問時間,或者供使用者進程通過系統調用來使用。

核心中使用struct timespec類型的變數xtime來記錄留言板上時間,該變數在檔案src/kernel/time.c中的第564行聲明如下:

struct timespec xtime __attribute__ ((aligned (16)));

其中,資料結構struct timespec在檔案src/include/Linux/time.h中的第12行開始定義,代碼如下:

struct timespec {       
time_t tv_sec;  /* seconds */ 
long  tv_nsec;  /* nanoseconds */ 
};

該結構用來表示當前時刻距UNIX時間基準1970/01/01/00:00:00的相對時間。其中成員變數tv_sec用來記錄距標準時間1970/01/01/00:00:00的秒數,成員變數tv_nsec用來記錄不足一秒的微秒值,其取值範圍為0~999 999。

變數xtime的初值在系統初始化過程由函數time_init()進行設定,該函數通過讀取系統即時鐘晶片RTC的值來為變數xtime賦初值;該變數的值在系統運行過程中由系統時鐘中斷處理常式負責在每次時鐘中斷時進行更新。該變數的初始化語句如下。初始化詳細分析請參見6.3節;對其值進行更新的操作請參見6.4.2小節。

xtime.tv_sec = get_cmos_time();
xtime.tv_nsec = (INITIAL_JIFFIES % HZ) * (NSEC_PER_SEC / HZ); 
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.