特集Windows 9x or Windows 2000?5.プロセス管理の概要
|
|
|
現在の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のプロセス管理の内部に踏み込み、両者を比較してみることにしよう。
特集 |
- Azure Web Appsの中を「コンソール」や「シェル」でのぞいてみる (2017/7/27)
AzureのWeb Appsはどのような仕組みで動いているのか、オンプレミスのWindows OSと何が違うのか、などをちょっと探訪してみよう - Azure Storage ExplorerでStorageを手軽に操作する (2017/7/24)
エクスプローラのような感覚でAzure Storageにアクセスできる無償ツール「Azure Storage Explorer」。いざというときに使えるよう、事前にセットアップしておこう - Win 10でキーボード配列が誤認識された場合の対処 (2017/7/21)
キーボード配列が異なる言語に誤認識された場合の対処方法を紹介。英語キーボードが日本語配列として認識された場合などは、正しいキー配列に設定し直そう - Azure Web AppsでWordPressをインストールしてみる (2017/7/20)
これまでのIaaSに続き、Azureの大きな特徴といえるPaaSサービス、Azure App Serviceを試してみた! まずはWordPressをインストールしてみる
|
|