Linuxカーネルに関する技術情報を集めていくプロジェクトです。現在、Linuxカーネル2.6解読室の第2章までを公開中。
スケジューラはシステムコール処理と並行して動作が可能なように、独自の排他を行っている。(カーネルロックの範囲外)これにより、一方のCPUでシステムコール実行中であっても、他のCPUではそれとは無関係にプロセススケジューリング処理を行うことが可能である。
システムコール処理中からスケジューラが呼び出されるとまずカーネルのロックを解除を行い、その後でスケジューラ資源のロックを行っている。これは、プロセスがCPUを放棄して待ちに入っている間は、別のプロセスがカーネルロックを行うことを可能であることを意味している。
元のプロセスが起床し再スケジューリングされると、スケジューラ内で再びこのプロセスに対しカーネルロックを行なった後に、処理の続きを開始する。もしこの時、他のCPU上でカーネルをロックしているプロセスがいれば、ここでスピンロックして待つことになる。
(NIS)HirokazuTakahashi
2000年12月09日 (土) 23時55分06秒 JST1
[ページ情報]
更新日時: 2008-08-27 14:18:28, 更新者: hiromichi-m
[権限]
表示:無制限, 編集:ログインユーザ, 削除/設定:メンバー