技術情報

技術情報

カーネルにおけるタイマー事情 ~第1回 カーネル内での時刻/時間の利用~

2014年6月5日

技術文書トップへ

概要

カーネル内ではさまざまな用途で「時間」が使われています。現在時刻の管理のほか、ネットワークのタイムアウト処理や、プロセスのタイムスライス処理など、あらゆるサブシステムで時間がかかわっています。

本稿では、Linux でどのように時計が動いているのか、また、カーネルがどのように時間や時刻を管理しているのかについて解説していきます。

本稿で使用しているシステム環境は以下の通りです。

  • Red Hat Enterprise Linux 6.x (linux-2.6.32系)

ページトップ

カーネル内での時刻/時間の利用

時刻/時間はカーネル内では以下の様な利用方法があります。

  • 1. 時刻の管理 (gettimeofday/settimeofday)、起動からの時間 (uptime) の計測
  • 2. NTPデーモン (ntpd) による時刻調整 (adjtimex)
  • 3. プロセスの同期処理 (sleep/nanosleepや、select/pollなどでのタイムアウト処理)
  • 4. プロセスのプリエンプト (タイムスライスを使い切ったプロセスからCPUを奪う)
  • 5. ネットワークのタイムアウト処理、再送タイマなど
  • 6. デバイスのタイムアウト処理
  • 7. システムのCPU利用統計 (%user/%nice/%system%iowait/%idle)
  • 8. プロセスのCPU利用統計 (プロセスの優先度やタイムスライスの計算などに使われる
  • 9. その他各種帯域制御など

関連記事

クラウド
2013年4月25日
OpenStack: 分散オブジェクトストレージ Swift 【API編】
プロトコル
2008年12月31日
SNMPサブエージェントプログラミング
ストレージ
2015年4月13日
Ceph/RADOS の OpenStack 利用
お気軽にお問い合わせください

VA Linuxでは、「受託開発サービス」をご提供しております。
サービスに関する詳細は、「受託開発サービス」の説明ページをご覧ください。

お問い合わせフォームはこちら
ページトップ