今回は趣向を変えて、少しだけカーネル内部に触れてみたいと思います。 みなさん「スピンロック」という言葉に馴染みがあるでしょうか。そのメカニズムを詳しく知ってる方も多いかもしれませんし、例えばどこかで「スピンロック待ちの『ビジーウェイト』でCPUにロスが発生した」のような会話を小耳に挟む機会などもあるかもしれません。しかし、Linux カーネルにおけるスピンロックの実装部分を読んだことのある方は、もしかして意外に多くないかもしれません。ということで、今回はそのあたり(ただし i386 アーキテクチャのみ)を追ってみたいと思います。スピンロックの概念についての説明は省きます。 いきなりソースコードに飛び込んでみましょう(これがミラクル流です)。C言語に馴染みのない方はごめんなさい。弊社MIRACLE LINUXでもいいのですが、ここでは本家の http://www.kernel.org/pub