国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

時鐘概述

2024-07-21 02:36:01
字體:
來源:轉載
供稿:網友

  作者:tommytang
  
  大部分的PC機中都有兩個時鐘源,它們分別叫做RTC(Real Time Clock)和OS時鐘。RTC也叫CMOS時鐘,它是PC主板上一塊依靠電池供電的芯片(晶振)。即使系統斷電,RTC也可以維持日期和時間。 由于它獨立于操作系統,所以也被稱為硬件時鐘,它為整個計算機提供一個計時標準,是最底層的時鐘數據。OS時鐘并不是本質意義上的時鐘,它實際上是硬件(定時/計數器)和軟件(時鐘中斷處理程序)結合的產物。定時/計數器(Time Stamp Counter或TSC)所采用的最典型的芯片是8253/8254可編程定時/計數芯片。定時/計數器從RTC接收輸入脈沖,并對接收到的脈沖計數,每次計數到期,定時/計數器就產生一個輸出脈沖,而后再從頭開始另一次計數。在開機時,操作系統取得RTC中的時間數據來初始化OS時鐘,然后通過定時/計數芯片的向下計數形成OS時鐘。
  可編程定時/計數器總體上由兩部分組成:計數硬件和通信寄存器。通信寄存器包含有控制寄存器、狀態寄存器、計數初始值寄存器(16位)、計數輸出寄存器等。通信寄存器在計數硬件和操作系統之間建立聯系,用于二者之間的通信。操作系統通過這些寄存器控制計數硬件的工作方式、讀取計數硬件的當前狀態和計數值等信息。在操作系統內核初始化時,內核向定時/計數器寫入控制字和計數初值,而后計數硬件就會按照一定的計數方式對晶振產生的輸入脈沖進行計數操作:計數器從計數初值開始,每收到一次脈沖信號,計數器就減1。當計數器減至0時,就會輸出高電平或低電平(輸出脈沖),然后從計數初值開始重復另一次計數,從而產生出一個輸出脈沖。定時/計數器產生的輸出脈沖是OS時鐘的硬件基礎,因為這個輸出脈沖將接到中斷控制器上,定期產生中斷信號。這個中斷就是時鐘中斷。操作系統利用時鐘中斷維護OS時鐘的正常工作,每次時鐘中斷,操作系統的時間計數變量就加1。
  操作系統對可編程定時/計數器進行有關初始化,然后定時/計時器就對從晶振輸入的脈沖進行計數(分頻),產生三個輸出脈沖Out0、Out1、Out2,三個輸出脈沖分別輸出到中斷控制器、DRAM和揚聲器。Out0送到中斷控制器的0號管腳,觸發周期性的時鐘中斷。每個時鐘中斷稱為一個時鐘“滴答”(tick)。Out0的輸出頻率就是產生時鐘中斷的頻率,也就是tick的頻率。linux操作系統中,這個頻率定義為:
  #define HZ 100
  即每秒100次始終中斷。
  計算機內部的時間以tick為單位,每一次時鐘滴答,系統時間就會加1。Linux利用全局變量jiffies表示自系統啟動以來的時鐘滴答數目。其定義為:
  unsigned long volatile jiffies=0;
  除了jiffies外,Linux還提供了更符合人們習慣的時間表示方式,即用一個數據結構表示時間,其定義為:
  strUCt timeval {
  int tv_sec; //秒
  int tv_usec; //微秒
  }
  在操作系統內定義更符合大眾習慣的時間表示:年、月、日。當然,所有的時間都建立在jiffies上。
  因此,RTC處于最底層,提供最原始的時鐘數據。OS時鐘建立在RTC之上,初始化完成以后將完全由操作系統控制,和RTC脫離關系。操作系統通過OS時鐘提供給應用程序所有和時間有關的服務。由于OS時鐘基本是一個軟件變量,其表達時間的方式在各個操作系統上互不相同。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 务川| 荥阳市| 宜昌市| 和林格尔县| 资源县| 桂平市| 黄平县| 长兴县| 龙海市| 襄城县| 克东县| 化德县| 高台县| 威信县| 清徐县| 延安市| 长寿区| 青岛市| 丁青县| 临潭县| 客服| 永吉县| 临洮县| 黄山市| 济源市| 延安市| 金堂县| 岳阳县| 广宁县| 三亚市| 郎溪县| 罗山县| 安泽县| 大荔县| 肥城市| 格尔木市| 龙井市| 香格里拉县| 绥中县| 来安县| 山西省|