AOBA's Information Processing Education
1998/04/24
注意1:このページは、回線を切断した後でゆっくりご覧になってください(テキストを印刷する場合は、その取り扱いに注意してくださるようお願いします)。
注意2:背景が白地の画面を長時間見つめていると頭が痛くなってしまいますので、ここは背景をグレーにしています。
オペレーティングシステム(OS...Operating System)と言ってまず思い浮かぶのは、今ならWindows95でしょう(もうすぐWindows98が出るそうですね)。
確かにそうです。Windows95は紛れもなくOSです。でも情報処理試験を受験しようとする人にとっては、このイメージがちょっとネックになるかなー、と思うんですよ。
今ならパソコンを購入するとWindowsがついてきますよね(このようにハード/ソフト込みで販売することをバンドリングと言う)。でもって電源をあげると自動的に(CDを入れるかもしれませんが)インストールが始まって、それが終了するといきなりデスクトップの画面が表示されます。だからコンピュータにあまり詳しくない方の中には、このデスクトップ画面を表示するソフトがWindows95と勘違いしている方もいます。さらに(混乱させて申し訳ないのですが)、Windows95をインストールすると使用できるプログラムすべてがOSではありません。この中には明らかにアプリケーションも含まれています。例えば、[スタート]→[プログラム]→[アクセサリ]で表示されるメニューから起動できるプログラムは、多くはOSではありません。「じゃあ、OSとは何なんだ」と言われると、これがまた困ってしまうんですよ。実を言えば、Windows95の出始めの大ブームの時、コンピュータに詳しくない人からの「Windows95って何?」という質問に回答しても、納得してもらったためしがありません(説明がまずいとの話もありますが...)。
それではまず、OSの定義から見てみましょう。OSとは次に示す目的を持つソフトウェアの総称です。
この定義だけ見ていると、多くのソフトウェアがOSに含まれそうです。
- コンピュータを構成するハードウェア資源,ソフトウェア資源を管理し、効率的なコンピュータの利用を図る。
- コンピュータに関わる諸資源を有効利用し、ソフトウェア開発時の生産性向上を図る。
- コンピュータシステムの使いやすさの向上を図る。
正しくは、この3つの定義のどれかを満たすソフトウェアを、広義のOSと言います。この広義のOSに対する用語として狭義のOSがあります。狭義のOSは先の定義の1項だけを満たすソフトウェアであり、ソフトウェア開発者がOSと言えば、狭義のOSの方を指す場合が多いです。
例えば、第22回で説明した”言語プロセッサ”は上記定義の第2項に該当しますので、広義のOSではありますが狭義のOSではありません。また、テキストエディタなんかも上記定義の第2項に該当しますから、広義のOSではありますが狭義のOSではありません。実際、言語プロセッサや、ましてテキストディタをOSと認識している人はいないと思います。こういう言い方が適当とは思いませんが、あえて言えば、狭義のOSが真のOSです。(注1)オペレーティングシステムは基本ソフトウェアとも言います。ただし、基本ソフトウェアはアプリケーションソフトウェアに対する用語として使われる場合が多く、基本ソフトウェアと言えば広義のOSを指す場合が多いようです。
(注2)テキストエディタのようにソフトウェア開発者のソフトウェア開発を支援するプログラムを、サービスプログラム(ユーティリティプログラム)と言います(最近では、一般ユーザもテキストエディタを利用する機会が多いですが...)。
(注3)言語プロセッサがあれば機械語でプログラミングする必要はありません。またテキストエディタがあれば、プログラムファイルやデータファイルを作成するとき、2進数や16進数で入力する必要はありません(大昔は16進数で入力していた)。だからこれらのソフトウェアが、ソフトウェア開発の生産性向上に役立つのです。「狭義のOSがOSなのは分かった。じゃあ狭義のOSとは何だ」との質問がきそうですね。
その前に、狭義のOSは制御プログラムという言い方が一般的ですので、この後の説明は”制御プログラム”に統一します(つまり、制御プログラム=OS)。ここで再度、制御プログラムの定義。「制御プログラムは、コンピュータを構成するハードウェア資源,ソフトウェア資源を管理し、効率的なコンピュータの利用を図るプログラム」
ここで管理対象となるハードウェアは、CPU,メモリ,ハードディスク,キーボード,ディスプレイ等すべてです。そして、管理対象となるソフトウェアとは、そのハードウェア上で動作するすべてのソフトウェアです。
例えば、Windows95では複数のプログラムが同時に動作可能です。ところがCPUはコンピュータに一つしかありません。だから一つのCPUは、ある一定時間をプログラムA用に使い、次にプログラムB用に使い、またその次にプログラムC用に使い....という動作を行っています。この間隔が非常に短いために、我々には複数のプログラムが同時に動作しているように見えるのですが、これを行っているのは(Windows95の)制御プログラムです。CPUは、そのコンピュータ上で動作するプログラムを制御する装置のように思えますがそうではなく、制御プログラムがCPUをコントロールしているのです。
メモリだって制御プログラムがコントロールします。例えば、複数のプログラムがある一時点で同じ番地を共有しないよう制御したり、実行するプログラムがメモリに入り切らない場合に、メモリの内容をディスクに待避する等の処理は制御プログラムが行います。このように制御プログラムは、コンピュータを動作させるための基本的かつ重要な動作を行っているのです。
(注4)ここまでの説明で分かったかと思いますが、Windows95で表示されるデスクトップ画面もアイコンもそこから起動できるプログラム(例えばエクスプローラ等)も、制御プログラムとは直接は何の関係もありません。もちろんWindows95にも制御プログラムはありますが、それは決して人間の目に見えるものではないのです。
(注5)私見ですが、Windows95がWindows3.1から最も変わった点は、Windows95がプリエンティブな制御を行うことです。これは制御プログラムの変化を意味します。簡単に言えば、Windows3.1まではアプリケーションが他のアプリケーションの処理に割り込むことを禁止しているのに対して、Windows95ではそれが許されるのです(これがプリエンティブな制御)。あ、そうそう、誤解してほしくないのですが「Windows95って何?」と質問を受けた時、このような説明はしていませんから(OSの本質など知る必要がない人に対する回答)。もっと概要だけを説明していたのですが、それでも理解してもらえませんでしたね。だから最後の方には面倒になって、「自分もよく分からない」と答えていまいた(本音?)。でもなぜかこの答えが一番納得してもらえたなー。
今週はこれくらいにしましょう。
ではまた来週。