ドライバとカーネルのインターフェース この章では、Linuxに実装されている、デバイスドライバが使用するカーネル内のサービスルーチンおよびマクロについて解説します。 スケジューリング関連サービス schedule():プロセスの再スケジューリング 宣言 プロセスの再スケジューリングを行います。OSは、現在のプロセス・コントロール・リストより優先度が最も高いプロセスを選択し、そのプロセスに制御を渡します(実行可能状態にします)。この関数を呼んだプロセス以外に制御が渡った場合、コールしたプロセスは「スリープ状態」に遷移します。 sleep_on():プロセスをスリープ状態にする 宣言 当該プロセスを「スリープ状態」に遷移させます。すなわち、他のプロセスに制御を譲ります。この関数は、割込み禁止状態で発行しなければなりません。 スリープ状態のプロセスは、ドライバ内のsleep_on()を発行した次