[[PageNavi(internal22-navi)]]
{{{ comment
h2w-title:カーネル内時限待ち
}}}
== カーネル内時限待ち == #SECTION02331000000000000000
Linuxは、カーネル内で一定時間だけ待ち合わせをすることが可能である。上記タイマーリストとスケジューラを組み合わせるより実現している。
* schedule_timeout(timeout)
* timeout時間だけCPUを放棄する。 add_timer関数で、timeout時間後に下記process_timeout関数が 呼び出されるように登録し、スケジューラ(schedule関数)を呼ぶ。
* nanosleepシステムコールの実現には、この機能を利用している。
* process_timeout()
* 上記処理でtimeout時間経過したプロセスを起床する。 処理内容はwake_up_process関数と同じ。
* sleep_on_timeout()
* sleep_on関数にタイムアウト機能を持たせたものである。 CPU放棄時に schedule_timeout関数を利用している。
* interruptible_sleep_on関数に対応した、 interruptible_sleep_on_timeoutも存在する。
----
''(NIS)HirokazuTakahashi [[BR]]2000年06月11日 (日) 22時29分57秒 JST''1
[[PageNavi(internal22-navi)]]