MicrosoftはWindowsカーネルに大きな変更を加える予定はないとほのめかしてきたが、「Windows 7」と「Windows 7 Server」がマルチコア/並列システムで動作するために、さらに適したものとする計画をひそかに用意していた。Microsoftがこれをどのように実現する予定なのかについて、詳細が明らかになってきた。
先週Windows 7のプレベータ版が初登場した際に、Windows Engineering ChiefのSteven Sinofsky氏が少しだけ、Windows 7が256のプロセッサに拡張できることについて言及した。しかし同氏はこれがどのようにして実現されるのかについては一切述べなかった。
MicrosoftのCore OS部門テクニカルフェローを務めるMark Russinovich氏は、MicrosoftのChannel 9ウェブサイトに掲載された動画インタビューのなかで、同社がこれをどのようにして成し遂げたのかについて、さらなる詳細を説明した。
Russinovich氏は、MicrosoftがWindowsのディスパッチャーロックを解除することができたと述べた――これはWindows NTオペレーティングシステムの父といわれるDavid Cutler氏すら困惑したという作業である。Cutler氏がWindowsをサーバ用に設計した際に、32ウェイを超えるシステムははるか遠くのように思えたとRussinovich氏はいう。
さらに大規模なマルチプロセッサシステムでは、Windowsスレッドがディスパッチャーロックを待機する間にスピンする。Cutler氏がMicrosoftの「Red Dog(Windows Azure)」に取り組むために異動してから、もうひとりのカーネル開発者であるArun Kishan氏がこの問題に新たな視点から注目し、ソリューションを発見したのだとRussinovich氏は述べる。もうひとつステートを加えることで――それによりスレッドが単に動作または待機するだけでなく、「プレ待機」することもできるようになる――Windowsは並列、マルチスレッドのアプリケーションがメニコアシステム全体での動作にさらに適したものになると、Russinovich氏は述べた。
Russinovich氏は、このディスパッチャーロックの障壁が除去されたいま、第2のロックがWindowsカーネルに取り組んでいる人々の新たな焦点になっていると指摘した。Windows内のPFNデータベースは、システム内の全ての物理メモリの情報が含まれるが、Windowsが超マルチコアマシン上でマルチスレッドアプリを処理できるようにする際に、スケーラビリティ面での新たな障壁となっている。Windows 7と「Windows Server 2008 R2(Windows 7 Server)」において、Microsoftは再びこのロックの粒度を細かくしたと、Russinovich氏は述べた。
今週ロサンゼルスで開催されるWindows Hardware Engineering Conference(WinHEC)においてMicrosoftは次世代Windowsでマルチプロセッシングへの対応を向上させる方法について掘り下げると予想している。引き続き注目されたい。
ところで筆者はプログラマーではないのに実に技術的なRussinovich氏への道を開こうと試みている。これを踏まえると、もし読者がWindowsカーネルの将来について気になっているなら、同氏のChannel 9の動画インタビューをご自身でチェックする価値があるかもしれない。
この記事は海外CNET Networks発のニュースをシーネットネットワークスジャパン編集部が日本向けに編集したものです。海外CNET Networksの記事へ