特集
Windows 9x or Windows 2000?

5.プロセス管理の概要
いずれもプリエンプティブなマルチスレッド環境。しかしその実体は……?

デジタルアドバンテージ
2000/08/23


 現在のWindowsの祖先にあたるMS-DOSは、ファイルI/Oなどに関するごくわずかなシステム サービスを提供する、たかだか数百Kbytesのプログラム ローダーにすぎなかった。コマンド ラインからアプリケーション プログラムを起動すると、MS-DOSはディスク(ハードディスクやフロッピー ディスク)からプログラム コードの含まれたファイルをメモリに読み込み、このプログラムに制御を渡す。以後MS-DOSは、メモリに常駐している自身のサービス ルーチン(ディスクへのファイルI/Oなどを行うルーチン)が呼び出されないかぎり、ただ眠り続ける。こうして起動されたアプリケーションは、システムの全権を掌握すると同時に、すべてのプロセッサ パワーを独り占めにできたわけだ(といっても、PCの性能は今とは比べものにならないほど低かったが)。

 個人でも購入できるほど安価である代わりに、性能も低かったPCでは、こうしたMS-DOSのような軽量なOSで、コマンドライン インターフェイスを使い、シングル タスク環境に甘んじるのもやむなし、と多くのユーザーが当初は思っていた。そこへ登場したのがWindowsである。当初はマシンの性能が追い付かなかったり、Windows自身の作りにも未熟な部分があったりと、普及にはかなりの時間がかかったが、結果についてはここで改めて説明するまでもないだろう。今やワードプロセッサや、電子メール ソフトウェア、Webブラウザを同時に実行して、それらを切り替えながら使ったり、マウスによるドラッグ&ドロップで、あるアプリケーションから別のアプリケーションにデータを渡したりするのは当たり前のことである。

設計思想がよく表れているWindows 9xとWidows 2000のプロセス管理メカニズム

 Windows 9xにせよ、Windows 2000(Windows NT)にせよ、両者がアプリケーションに対して提供するマルチタスク環境を一言でいえば、「プリエンプティブなマルチタスク/マルチスレッド環境」ということになる。詳細は後述するが、これは、完全なOSの管理のもとで、プロセス内の各スレッド(タスクの実行単位)がスケジューリングされ、それらが見かけ上は同時実行されるという意味である。確かに、両者の上でいくつかのアプリケーションを起動して、これらを切り替えながら使ってみても、重い処理(たとえば機械翻訳など)をバックグラウンドで実行しながら、フォアグラウンドで別のアプリケーションを実行してみても、使用感はかなり似通っている。

 しかし、よく注意しないと気づかないほどのものだが、Windows 2000ではアプリケーションを切り替え可能な場面でも、Windows 9xでは切り替えが不可能だったという経験はないだろうか? あるいは、フォアグラウンドとバックグラウンドでアプリケーションを同時実行したとき、Windows 2000のほうが、双方がなめらかに動いていると感じたことはないだろうか? 何らかの理由でアプリケーションがハングアップしてしまったときには、ハングアップしていない他のアプリケーションをアクティブにして、作業中のデータを保存したいと考えるのが普通だろう。このような場面で、Windows 2000では切り替え可能なときでも、Windows 9xでは切り替え不可能だったという経験はないだろうか?

 Windows 9xとWindows 2000は、いずれも「プリエンプティブなマルチスレッド環境」であることには違いないが、それを実現するためのしくみはまったくの別物と考えてよい。従来の16bitのWindows 3.x環境との互換性を最大限に維持しながら実現された「プリエンプティブなマルチスレッド環境」がWindows 9xであり、可能なかぎり従来環境との互換性を維持しながらも、新しい32bit OSとしてゼロから設計された「プリエンプティブなマルチスレッド環境」がWindows 2000なのだ。

 それでは、Windows 9xとWindows 2000のプロセス管理の内部に踏み込み、両者を比較してみることにしよう。


 INDEX
  [特集]Windows 9x or Windows 2000?
     1.イントロダクション
     2.Windows 9xカーネルの概要
      コラム:Windows歴史、メモリの歴史 (1)
      コラム:Windows歴史、メモリの歴史 (2)
     3.Windows 2000カーネルの概要 (1)
     4.Windows 2000カーネルの概要 (2)
   5.プロセス管理の概要
     コラム:Windows 3.xのマルチタスク システム
     6.Windows 9xのプロセス管理メカニズム (1)
     7.Windows 9xのプロセス管理メカニズム (2)
     8.Windows 2000のプロセス管理メカニズム (1)
     9.Windows 2000のプロセス管理メカニズム (2)
 
 特集


Windows Server Insider フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Windows Server Insider 記事ランキング

本日 月間