【コラム】
さて、その先は? というと、これはもうかなりインプリメントが変わってきている。具体的に言えば、6.5.13のマルチプロセッサシステム(上巻P412~)の部分は、(Windows NT 3.1時代がどうだったか、はともかく)現在のWindows XP/Windows Serverではかなり手が入っており、もうVMS時代のMethodは影も形もなくなっている。
VAXの場合、確かハイエンドのVAX9000シリーズでは4つ、ミッドレンジの最終製品であるVAX6660で6つ、VAX9000登場まではハイエンドに君臨していたVAX8978が8つという具合に複数のCPUを搭載しており(ちなみに最初のマルチプロセッサマシンはVAX11/782という、2つのVAX11/780を共有メモリ経由で繋ぐという代物だった)、VMSも当然これをサポートしていたが(ただしSMPとしてサポートしたのはVMS 5.0から。VMS 4.x台はASMPとしてのサポートだった)、マシンの構造そのものは非常に単純で、ソフトウェアから見るとPentium IIIの時代までのIntelアーキテクチャと大差ない。またNUMA(Non-Unified Memory Architecture)への配慮は一切なく、当然の様にUMA(Unified Memory Architecture)のみのサポートだった。
こうしたケースにおいては、スケジューリングにはそれほど悩む必要がない。VMS 5.0における基本方針として、
という仕組みがとられることになった。厳密に言えばこれはSMPではない、という考え方もあるが(実際、Kernel Modeの稼動中は他のCPUが全部止まる事になる)、ただCPU時間におけるKernel Modeの頻度はそれほど多くないから、これはこれで合理的であり、かつASMP構成だったVMS 4.xからの移行を容易に行えるというメリットがあった。ただ、流石にこれは問題があると思ったのか、VMS 5.2では、
というインプリメントがなされている。このSpin Lockというのは、要するにInter-Processor間で同期を取るためのセマフォみたいなものである。これを実現するために、VAXには、
の7命令が用意された。この命令は、System中のinterlock memoryという特殊なメモリエリアに対するものであり、あるCPUがそのメモリエリアに対して処理中は、他のCPUは一切アクセスできないことが保証されている。最初の3命令はMutexを構成するためのものだし、次の4命令は複数の値を持つセマフォを構成するために使える。
余談だがx86の場合、LOCK命令をADD / ADC / AND / BTC / BTR / BTS / CMPXCHG / CMPXCH8B / DEC / INC / NEG / NOT / OR / SBB / SUB / XOR / XADD / XCHGの何れかの命令とあわせて発行することで、その命令がシステム全体でユニーク(Atomic)に発行される事が保障されるようになっている。INSQHI / INSQTI / REMQHI / REMQTIの類の命令は存在しないが、これ無しでは実装不可能という訳ではないと判断したのであろう。
さて話を戻す。例えば218回目で出てきたSCH$QENDの処理の中でSchedulerが呼ばれる訳だが、このSchedulerはSCB(System Control Block)とかPCB(Process Control Block)を操作することになる。これらのBlockを操作するのがSchedulerだけならば良いが、実際には他にも多くの処理がこのBlockを参照したり変更しようとしたりしている。VMSがSingle Processorの場合、ここの排他制御はIPLで行っていたが、Multi-Processorだと原理的には複数のCPU上で同じIPLを保持した別Processが動作する可能性があるわけで、これを防ぐためにInterlockを使うというわけだ。ただこれらの処理は、SMPをサポートしたOSではさして珍しい話ではない。
| KOUZIRO、Intel Celeron 847搭載で約4万円の小型ネットトップPC [18:29 5/18] |
| フェイス、ゲーミングPCのオプションで購入可能な周辺機器を一新 [18:00 5/18] |
| OVERCLOCK WORKS、OC駆動4.4GHzのCore i7やGeForce TITAN×2搭載の独自PC [17:43 5/18] |
| Sleipnir 4 for Windowsが緊急アップデート、マウス操作や起動できない問題に対処 [14:45 5/18] |
| Yahoo! JAPANに不正アクセス、最大2200万件のユーザーID流出の恐れ [04:53 5/18] |
|
【コラム】鉄道写真コレクション 第163回 JR九州717系、早朝の時間帯に姿を現した6両編成の列車 [18:30 5/18] 旅行 |
|
KOUZIRO、Intel Celeron 847搭載で約4万円の小型ネットトップPC [18:29 5/18] パソコン |
|
美魔女に似合う超セクシーなクルマベスト5! [18:03 5/18] ライフ |
|
フェイス、ゲーミングPCのオプションで購入可能な周辺機器を一新 [18:00 5/18] パソコン |
|
OVERCLOCK WORKS、OC駆動4.4GHzのCore i7やGeForce TITAN×2搭載の独自PC [17:43 5/18] パソコン |