- 138 名前:名無しさん@お腹いっぱい [02/10/11 08:09]
- >>133
言い方の趣味の問題とは思うが、スケーラビリティについてはOSのアーキテクチャ (構造)の問題ではなくてインプリメンテーションの問題だと思っている。 実測したわけではないが、Linuxではカーネル内の排他制御のプリミティブが spin型しかないのに対し、Solarisではアダプティブ型がデフォルトになってい てロックを保持しているスレッドがon cpuで無いときに無駄なspin待ちをしない ようになっていること(おかげて割り込みスレッドがmutex lockを保持したまま 他のロック待ちのためにブロックできるという離れ業も可能、こんなことはmach でもできなかった)、ディスパッチテーブルがSolarisではCPU毎に存在すること、 カーネル内の動的メモリアロケータも一旦割り付けられたものについては、ロー カルにキャッシュする機構をもっていること、timeoutでスケジュールされたイ ベントを管理するcalloutテーブルもCPU毎にハッシュされていることなど、ちょ っと思いつくだけでもこんなにある。Linuxがこれに追いつこうとしたら、まず 割り込みをスレッド化してスケジューラの管理下におくのが一番大変でしょうね。 カーネル内のロックをすべて見なおすことになる。
|

|