カーネル全体のロック

プロセスがシステムコールを発行すると、その入口でカーネル全体をロック(lock_kernel関数)している。複数のプロセスが同時にシステムコールを発行すると、そのうちの一つのプロセスのみがカーネルロックに成功し、カーネル資源を利用する権利を得る。他のプロセスはカーネルロックが終了するのをシステムコール入口でスピンロックして待ち続ける。

Linuxカーネル内の殆ど全ての資源は、このカーネルロックを行ったプロセスからでないとアクセスは許されていない。(ファイルシステム、ネットワーク、プロセス資源、空間資源)

img73.gif

(NIS)HirokazuTakahashi
2000年06月11日 (日) 22時29分57秒 JST
1