Show page source of internal22-37-カーネル内時限待ち #23623

{{{ 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''