Index ソフト・ハード Linuxタスク | 時計 |
時間の計算 時刻の取得 workqueue |
時間の計算 ・グローバル時計割込みパンドラ (do_timer()) 世界標準時1970年1月1日0時からの経過時間を、xtime変数へ記録で時計を実現 一定周期のHW割込み処理として時計を動かす。 システム上のいづれかのCPUへ通知 タイムキーパー(起動時を0とする)、jiffies++、1msec間隔 時限処理のベースとしてのみ使用 縮退動作時の設定し直し機能(有り:アーキティクチャ依存)・ローカル時計割込みパンドラ 各CPUで周期的に発生 HW割込み (x86、smp_local_timer_interrupt()) 全CPUが一斉に動作しないように配慮 SW割込み (x86、run_timer_softirq()) タイマーリストの実行 全CPUが一斉に動作しないように配慮 一定時間経過後に、指定された処理を実行 縮退動作あり時刻の取得 # date time システムコール(秒単位の精度) gettimeofday システムコール(ナノ秒単位の精度) 内部時計の精度以上の精度はアーキテクチャ依存・時刻の設定 ・時刻の補正 ・時刻管理 workqueue ・2.6から各CPUで遅延処理を並行処理可能(taskqueueは廃止) 主にプロセスコンテキストの処理を遅延させるために使用 専用のworkqueueの使用は、処理効率のため動作タイミングを正確に制御する場合・汎用workqueue ほとんどのデバイスドライバの遅延処理で使用 |
All Rights Reserved. Copyright (C) ITCL |