通信用語の基礎知識 全国のICカードこれひとつ 戻る

通常PC用 / 人気 更新 今日 カテ
電子計算機 > 仕様・構造 > ソフトウェア > プログラミング言語 > 言語仕様 > データ型・構造体 > 独自のデータ型・構造体
電子計算機 > 仕様・構造 > ソフトウェア > プログラミング言語 > 言語仕様 > 実装定義 > 変数 > 時間・時刻
suseconds_t
辞書:電算用語の基礎知識 プログラミング用語編 (PTPROGY)
読み:エス-ユーセコンズ-アンダースコア-ティー
外語:suseconds_t: signed of microseconds
品詞:名詞

Linuxなどで使用されている、タイマー/時刻表現用の変数型のうちの一つで、マイクロ秒を格納するのに充分な大きさをもった符号付整数の変数型。

目次
概要

Linuxなどでは、ユーザー空間ではgettimeofday()、カーネル空間ではdo_gettimeofday()などで使用するstruct timevalが定義されており、ここでマイクロ秒の変数を定義するのに使用されている。

なお、POSIXでは同様の目的でstruct timespecを定義しており、こちらはナノ秒単位となっている。

特徴
単位

Linuxカーネル内では様々な変数でタイマー/時刻を表現している。

struct timevalを使うdo_gettimeofday()は、内部ではstruct timespec型の変数xtimeという、1970年1月1日 00:00:00(The Epoch)を起点とするナノ秒単位のカウンターを加工して返却している。

実際のxtimeの精度はtick単位(jiffies相当)だが、x86システムであればCPUのrdtsc命令などを使い、tick単位より細かい単位をTSCなどの高精度のクロックソースの値で補完をしている。但しマルチコアまたはマルチプロセッサー環境では複数のTSCが存在し、互いに同期はしていないため、必ずしも正確ではない。

スリープ

Android端末など、機器が省エネのためスリープに入ると、jiffiesはカウントが止まる。

xtimeは起床後にスリープ時間を概算して補正するようになっているらしいが、あまり正確ではない。

MSMの場合、より正確なタイマーが別途用意されている。

定義
Linux

Linuxのユーザー空間では、次のように定義されている。

まず__kernel_suseconds_tが、以下のいずれかで定義される。

asm/posix_types_64.h

asm/posix_types_32.h

asm-generic/posix_types.h

typedef long __kernel_suseconds_t;

次に、これを用いて定義する。

sys/types.h

typedef __suseconds_t suseconds_t;

suseconds_tは、間接的にlongで定義されている。

Android

Linuxカーネル内でも同様である。例えばAndroidのLinuxカーネル内では、次のように定義されている。

android/kernel/include/asm-generic/posix_types.h

typedef long __kernel_long_t;

typedef __kernel_long_t __kernel_suseconds_t;

android/kernel/include/linux/types.h

typedef __kernel_suseconds_t suseconds_t;

suseconds_tは、間接的にlongで定義されている。

リンク
用語の所属
Linux
日付型
関連する用語
jiffies
ktime_t
xtime

[再検索] [戻る]


通信用語の基礎知識検索システム WDIC Explorer Ver 7.04 (07-Mar-2021)
Search System : Copyright © Mirai corporation
Dictionary : Copyright © WDIC Creators club
KisoDic