为了正常的体验网站,请在浏览器设置里面开启Javascript功能!
首页 > Linux Kernel 简介HZ, tick and jiffi

Linux Kernel 简介HZ, tick and jiffi

2011-01-28 2页 pdf 105KB 25阅读

用户头像

is_730309

暂无简介

举报
Linux Kernel 简介HZ, tick and jiffi 时 间: 2011年 1月 28日星期五 地 点: 讲述人: 记录人: 主 题: Linux Kernel: 简介 HZ, tick and jiffie 来源: ChinaUnix博客 日期: 2008.03.21 14:53 (共有0条评论) 我要评论 • Linux核心幾個重要跟時間有關的名詞或變數,底下將介紹 HZ、tick與 jiffies。 HZ Linux核心每隔固定週期會發出 timer interrupt (IRQ 0),HZ是用來定義每一秒有幾次 timer interrupts。舉例來說,HZ為...
Linux Kernel 简介HZ, tick and jiffi
时 间: 2011年 1月 28日星期五 地 点: 讲述人: 记录人: 主 题: Linux Kernel: 简介 HZ, tick and jiffie 来源: ChinaUnix博客 日期: 2008.03.21 14:53 (共有0条评论) 我要评论 • Linux核心幾個重要跟時間有關的名詞或變數,底下將介紹 HZ、tick與 jiffies。 HZ Linux核心每隔固定週期會發出 timer interrupt (IRQ 0),HZ是用來定義每一秒有幾次 timer interrupts。舉例來說,HZ為1000,代表每秒有1000次 timer interrupts。HZ可在編譯核心 時設定,如下所示 (以核心版本2.6.20-15為例): adrian@adrian-desktop:~$ cd /usr/src/linux adrian@adrian-desktop:/usr/src/linux$ make menuconfig Processor type and features ---> Timer frequency (250 HZ) ---> 其中 HZ可設定100、250、300或1000。以小弟的核心版本預設值為250。 小實驗 觀察/proc/interrupt的 timer中斷次數,並於一秒後再次觀察其值。理論上,兩者應該相差 250左右。 adrian@adrian-desktop:~$ cat /proc/interrupts | grep timer && sleep 1 && cat /proc/interrupts grep timer 0: 9309306 IO-APIC-edge timer 0: 9309562 IO-APIC-edge timer 上面四個欄位分別為中斷號碼、CPU中斷次數、PIC與裝置名稱。 問題來了,timer interrupt會做哪些事情? 如下所列: 更新時間、日期與系統從開機至目前經過多少時間 。 • 更新系統資源使用率統計 • 檢查正在執行的程序是否已經超過其所分配的執行時間額度。如果是的話,則侵佔 (preempt)該程序以利執行其它等待執行的程序。 • 檢查軟體時間器(Software timer,如 alarm系統呼叫)跟時間延遲函式(Delay function) 的延遲時間是否已經超過。 Tick Tick是 HZ的倒數,意即 timer interrupt每發生一次中斷的時間。如 HZ為250時,tick為4毫 秒 (millisecond)。 Jiffies Jiffies為 Linux核心變數(32位元變數,unsigned long),它被用來紀錄系統自開幾以來,已經 過多少的 tick。每發生一次 timer interrupt,Jiffies變數會被加一。值得注意的是,Jiffies於系 統開機時,並非初始化成零,而是被設為-300*HZ (arch/i386/kernel/time.c),即代表系統於開 機五分鐘後,jiffies便會溢位。那溢位怎麼辦? 事實上,Linux核心定義幾個 macro(timer_after time_after_eq、time_before與 time_before_eq),即便是溢位,也能藉由這幾個 macro正確地 取得 jiffies的內容。 另 外,80x86架構定義一個與 jiffies相關的變數 jiffies_64 ,此變數64位元,要等到此變數溢位可能要好幾百萬年。因此要等到溢位這刻發生應該很難 吧。那如何經由 jiffies_64取得 jiffies資訊呢? 事實上,jiffies被對應至 jiffies_64最低的32位元。因此,經由 jiffies_64可以完全不理會溢位 的問題便能取得 jiffies。 Note
/
本文档为【Linux Kernel 简介HZ, tick and jiffi】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
热门搜索

历史搜索

    清空历史搜索