出典:日経エレクトロニクス,1994年1月31日号,pp.83-86(記事は執筆時の情報に基づいており,現在では異なる場合があります)

開発段階にあった「Windows 95(開発コード名:Chicago)」を取り上げた創刊600号特集の第2部。Chicagoのマルチタスク処理の仕組みを解説した。既存のWindows 3.1では擬似的なマルチタスクしかできなかったのに対し,複数のアプリケーションの実行をスレッド単位でスケジューリングできる機能を実装することで,本格的なマルチタスク環境を用意した。ただし,競合する他のOSと比べて技術的に抜きん出ていたわけではなかった。(2009/04/24)

Chicagoは,マルチタスク処理機能を備えるパソコンOSである。サーバOSのWindows NTと同じスケジューリング・モデルを使う。プロセスよりも小さい処理単位のスレッドを使ってスケジューリングを行なう。スレッドに優先度をつける。優先度に従って処理を実行する。同じ優先度のスレッドが複数ある場合は,一定時間ずつ交代でCPUを使う。Windows 3.1用の既存アプリケーションはマルチタスクで動かせないという制約がある。

 過去のソフトウエア資産を生かしつつ,カーネルを書き換える――これを設計目標として,米Microsoft Corp.は次期パソコンOS「Chicago」の開発に当たった。MS-DOSのカーネルを捨てて,マルチタスク処理機能を備えるカーネルを作った(図1)。

【図1 Chicagoの構造】Windows 3\.1やMS\-DOSのアプリケーション・ソフトウエアを動かす環境「Virtual Machine」を用意した。Virtual Machineには2種類ある。Windows 3\.1のアフリケーション・ソフトウエア\(Win 16のAPIで記述したアプリケーション・ソフトウエア\)を動かすシステムVirtual Machineと,MS\-DOS用Virtual Machineである。ウインドウの表示を管理したり,グラフィックスを描画するシステム・サービス用のソフトウエア\(USERやGDI,KERNEL\)はシステムVirtual Machineに含まれる。理由は,アプリケーション・ソフ卜ウエアと同じ保護レベルにした方が処理性能が高いからである。システムVirtual Machineは,リング3の保護レベルで動作する。システム・サービス用のソフトウエアをリング0で動作させると,頻繁にリング聞の遷移が起こり,性能低下の原因になる。
図1 Chicagoの構造1)
Windows 3.1やMS-DOSのアプリケーション・ソフトウエアを動かす環境「Virtual Machine」を用意した。Virtual Machineには2種類ある。Windows 3.1のアフリケーション・ソフトウエア(Win 16のAPIで記述したアプリケーション・ソフトウエア)を動かすシステムVirtual Machineと,MS-DOS用Virtual Machineである。ウインドウの表示を管理したり,グラフィックスを描画するシステム・サービス用のソフトウエア(USERやGDI,KERNEL)はシステムVirtual Machineに含まれる。理由は,アプリケーション・ソフ卜ウエアと同じ保護レベルにした方が処理性能が高いからである。システムVirtual Machineは,リング3の保護レベルで動作する。システム・サービス用のソフトウエアをリング0で動作させると,頻繁にリング聞の遷移が起こり,性能低下の原因になる。
[画像のクリックで拡大表示]

 データベースから検索結果を待っている間に報告書を作成したり,ビデオ会議をしながらシミュレーションを実行するといった,複数の処理を同時にパソコンにやらせることが可能になる。ネットワークを使ったアプリケーションに,マルチタスク処理は向く。過去との互換性も維持した。新しいカーネル上でも,MS-DOSやWindows 3.1のアプリケーション・ソフトウエアが動く。

 以下では,Microsoft社がChicagoに組み込んだマルチタスク処理の方式に焦点を当てる。

OSがCPUの利用を制御

 Windows 3.1からChicagoに移行すると,OSがCPUのスケジューリングを行なうようになる(図2)。実行待ち状態のアプリケーション・ソフトウエアのうち,どの順番で処理を実行するかをOSが決める。

図2 Windows 3.1からChicagoへ
図2 Windows 3.1からChicagoへ
Windows 3.1は疑似マルチタスク処理と呼ぶ方式を使う。OSにはスケジューリング機能がない。一つのアプリケーション・ソフトウエアがCPUを独占する恐れがある。Chicagoはマルチタスクのスケジューリング機能を備えた。OSが,アプリケーション・ソフトウエアの処理を強制的に終了させる権利をもつ。