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