Windowsの歴史 Windows 3.x編:多くの課題を抱えながらWindowsの拡大に貢献

横山哲也(グローバル ナレッジ ネットワーク)
2009-06-01 13:06:01
  • このエントリーをはてなブックマークに追加

Macintoshのスタイル

 Macintoshの基本的なアプリケーションスタイルは、ちょうどMDIの親ウィンドウを透明にしたものに相当する。筆者が初めてMacintoshを使ったとき、このことに気付かずにずいぶんとイライラした。

 Macintoshでアプリケーションを起動するとメニュー表示が変わってしまい、今まであったメニューが消えてしまう。Appleメニューだけは変化しないので、ますます混乱したものだ。

 過去に多くのOSを使ってきたが、ここまで途方に暮れたOSは後にも先にもMacintoshだけだ。お恥ずかしい話である。

Windows 3.0、3つの動作モード

 Windows 3.0は以下の3つの動作モードを持っていた(図2)。いずれもMS-DOS環境の追加機能として実装されている。

  • リアルモード:8086互換モード。後に英語版でもサポート対象ではなくなった。日本語版では最初から利用できない。
  • スタンダードモード:80286互換の仮想記憶を使うモード。日本語版ではサポートされないが、Windowsの起動時に「WIN /S」オプションを付けることで利用できた。ただし、日本語版ではMS-DOSアプリケーションを起動できない。
  • エンハンスドモード:i386の機能を使うモード。仮想8086モードにより、複数のMS-DOSアプリケーションを起動できた。
赤枠内の利用可能なメモリサイズに注目。物理メモリを16MB割り当てた環境なのだが、エンハンスドモードでは仮想記憶のおかげでより多くのメモリを使用できる(画像をクリックすると拡大します) 赤枠内の利用可能なメモリサイズに注目。物理メモリを16MB割り当てた環境なのだが、エンハンスドモードでは仮想記憶のおかげでより多くのメモリを使用できる(画像をクリックすると拡大します)

 エンハンスドモードではディスクドライバの一部が32ビット化され、パフォーマンスの向上にも貢献している。

 また、どのモードでもWindowsアプリケーションは、CPUが不要になったら自分から待ち状態に移行し、他のタスクのためにCPUを明け渡す必要があった。Windowsは原則としてマルチタスク管理をせず、アプリケーションに組み込まれたタスク切り替えに依存していたのである。これを「ノンプリエンプティブなマルチタスク」あるいは「協調型(Co-Operative)マルチタスク」と呼ぶ。

 ただし、MS-DOSアプリケーション間のタスク切り替えだけは、Windows自身が強制的に行う。これに優先度の概念を追加したのがWindows 95以降で採用された「プリエンプティブなマルチタスク」だ。

 協調型マルチタスクは、アプリケーションが適切にCPUを解放しないとシステム全体が停止するという欠点があった。だからアプリケーション開発者の負担が大きかったのだ。

 ただし、OSの負担が軽いため、性能の低いコンピュータでも実装できるという利点もあった。高性能なことで知られるNetWareサーバも協調型マルチタスクを採用したOSのひとつである。

 一方、プリエンプティブなマルチタスクは、OSの負担が増えるもののアプリケーション側ですべきことは何もないという利点がある。OSの作成者とアプリケーションの作成者では、アプリケーション作成者の方が圧倒的に多い。OSが多少複雑になってもアプリケーション開発の容易さを優先するのが当然だろう。こうしてWindows 95以降はプリエンプティブなマルチタスクが採用された。

このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]