◆
マイコン応用製品の一つとして開発されたのが、パソコンです。機器に組み込まれた、マイコンは、日常の、至るところで、使われていますが、9.2.(1-A-c)に示したように、コンピュータとしては、意識され無い使い方です。コンピュータとして、私達が意識して使用している、最も身近な製品は、パソコンです。
◆
パソコン (PC )を例にとって、コンピュータの しくみ を見て行きましょう。コンピュータの、基本的な しくみは、マイコンでも、スーパーコンピュータでも同じです。ただ、マイコンは、マイクロにするための工夫が施されており、スーパーコンピュータは、高性能化するような、機能が追加されています。
◆
ここで、取り上げるパソコンは、説明を分かりやすくするために、基本機能だけを持った、仮想のコンピュータです。以降この 9.2.(1-B-a)における お話 では、パソコンとは、原則として、この仮想のコンピュータのことです。実際のパソコンは、もっと、複雑です。
なお、この節では、パソコンとコンピュータとは、とくに断っていない限り、同じものです。
◆
パソコンは、ハードウェア上は、2 進数がベースです。私たちは、パソコンで、10 進数を取り扱っています。これは、分かり易いように、ソフトウェアによって、変換しているからです。パソコンは、ハードウェア上は、2 進です。
◆
コンピュータ構成の概要は、図 9.2-14 に示した通りです。もう少し、詳しく示すと、情報は、バスを介して、やり取りします(図 9.2-15)。
CPU の内部は、図 9.2-16 のように、なっています。CPU は、クロックに同期する、同期式回路です。CPU 各部の具体的な動作の説明は、以降、逐次行います。
◆
パソコンは、仕事を行うとき、そのパソコンに固有の、一定のビット数のブロックを単位として、仕事を行います。この単位ブロックのことを、ワード (語 )と呼んでいます。たとえば、4004 のワードの長さは、4 ビットです。これは、マイコンとしても、最低のワード長さです。最近のマイコンのワード長さ は、8、12、16、32 64 ビット/ワードなどです。ワード長さは、長い方が、高性能です。パソコンのワード長さは、現在は、32 ビットが主流です。
◆
CPU の内部には、図 9.2-16 に示すように、いろいろなレジスタ があります。このレジスタも、多くは、ワード長さと同じです。これらのレジスタには、アドレスレジスタ、命令レジスタなどの、レジスタ名が付けられており、レジスタ名によって識別されます。
◆
アキュムレータ は、CPU が演算を実行するときに、使用するレジスタで、最も重要なレジスタです。
◆
メモリ も、ワード単位になっています。メモリは、多数のワードで構成されています。メモリの各ワードには、アドレス が付いています(図 9.2-17)。メモリの各ワードは、アドレスによって、識別されます。ただし、メモリに、実際にアドレスの値が記入されているのでは、ありません。
メモリのアドレスは、物理的な位置によって、識別されます。図に示してあるアドレスは、便宜上、示したものです。
◆ CPU は、アドレスを指定して、メモリの内容を、リード (読み)、ライト (書き)します。リードとは、CPU のアキュムレータが、メモリや他のレジスタから、情報を読み込むことです。ライトとは、CPU のアキュムレータが、メモリや他のレジスタに、情報を書き込むことです(図 9.2-18)。
◆
メモリには、コンピュータのプログラムや、そのプログラムを実行するための データが収容されています。
コンピュータのプログラム をメモリに収容しておいて、そのプログラムを実行する方式のことを、プログラム内蔵方式 と呼びます。
◆
プログラム内蔵方式では、メモリに内蔵したプログラムを書き換えることによって、コンピュータは、同じハードウェアで、異なった、いろいろな仕事を行わせることが、できます。現在のコンピュータは、ほとんどが、プログラム内蔵方式です。プログラムを書き換えることによって、同じハードウェアで、異なった、いろいろな仕事を行わせることが、できることが、コンピュータの、大きな特徴です。
◆
パソコンのメモリは、通常、RAM です。メモリは、プログラムを実行するときにも、その作業を行うための場所として、使用します。メモリは、全てのことを、書きとめておく、ノートブックと考えれば良いでしょう。書いてあるものを消すのも、消しゴムで消すよりも簡単に、消すことができます。
◆
ただし、一部のメモリは、ROM になっています。ROM には、パソコンを起動するときなど、共通、必須のプログラムを収容して、あります。
◆
コンピュータプログラム実行の、最低単位を、コンピュータの命令 (インストラクション )といいます。コンピュータの命令の例を、図 9.2-19 に示します。
◆ 命令は、予め、コンピュータのメモリに、命令を実行させる順番に、収容しておきます。CPU は、この命令を、逐次メモリから、命令レジスタに、読み出し、この命令レジスタにある命令を解読して、実行します(図 9.2-20)。この、命令は、ADD n という加算命令で、アキュムレータの内容と、メモリの n 番地に収容されているデータの内容とを加算して、その結果を、アキュムレータに入れておく という命令です。
◆
上記の、逐次読み出しを、制御するためのレジスタを、プログラムカウンタ (図の PC )といいます(図 9.2-16 参照)。プログラムカウンタも、レジスタですが、数を数えるので、カウンタの名が付いています。
◆
プログラムカウンタは、命令を実行した後に、1 が、自動的に、加算されます。したがって、次に実行する命令は、今 実行した命令の次の番地の内容になります。
◆
コンピュータの命令は、図 9.2-21 のように、命令部と、番地部(オペランド)とから成っています。前記の、加算命令 ADD n では、ADD が命令部、n が番地部です。なお、命令の種類によっては、オペランドは、複数あるものもあり、内容も、番地とは限りません。
◆ コンピュータは、同期式回路ですから、クロックに同期して動作します(図 9.2-22)。複数のクロックで、1 命令を実行します。この命令実行のサイクルを、マシンサイクル といいます。命令を読み出すことは、リードと呼ばないで、フェッチ といいます。
★ 世の中、全て、始めと、終わりがあります。と言いたいのですが、必ずしも、そうではありません。たとえば、東京の JR 山手線は、環状ですから、ぐるぐる回っており、この意味では、始めも、終わりもありません。ただし、日本の鉄道の起点は、東京駅ですから、始めと終わりが、共に東京であると、言うことも、できます。
★ また、特定の車両にとっては、その日に、走り始める駅が始点で、入庫する駅が終点ということに、なるでしょう。
パソコンの、プログラムにも、初めと終わりがあります。個々のプログラムにも、始めと終わりがありますが、それとは別に、最初に電源を入れた、ときと、電源を切るときの処理が必要です。
★ パソコンに、電源を入れたときに、最初に動くプログラムを、IPL (イニシャルプログラムロード )といいます。
パソコンは、電源を投入すると、メモリのゼロ番地から、プログラムを開始するように、作られています。したがって、IPL を、メモリの、ゼロ番地から入れておきます。IPL は、電源を切っても消えないように、ROM に収容されています。
★ パソコンは、OS が入っていなければ、動作しません。IPL は、通常は、OS 本体を読み込むための、最小限のプログラムです。実際の OS 本体の読み込みは、IPL で読み込んだプログラムが、担当します。
★ OS が読み込まれると、ディスプレイに、デスクトップの画面が、表示されます。すなわち、パソコンが、使用可能な状態に、なります。
◆
次に、パソコンの歴史について、見て行きましょう。9.2.(1-B-a) の最初に述べたように、パソコンは、マイコン応用製品の一つです。歴史的には、マイコンに次ぐ製品です。
◆
パソコンの第 1 号は、ガレ−ジで開業したアップル社 の 8 ビットワンボ−ドパソコン(Apple I、1974)です(図 9.2-23 の左側)。ワンボード とは、1 枚のプリント基板に収めた、システムのことです。
◆
マイコンやパソコンの性能は、いろいろな要因が からんできますから、一概には言えませんが、CPU のワード長さは、マイコンやパソコンの性能の大雑把な目安になります。したがって、16 ビットパソコンのように、CPU のワード長さを冠して呼ぶ場合が、多いのです。現在では、パソコンは、32 ビットパソコン が主流であり、64 ビットパソコン も出始めています。
◆
翌年には、Apple II (図の中央左側)が発売され、爆発的に売れました。1978 年には、日本で日立が、ベーシックマスター(図の中央右側)を、シャープがMZ 80K (図の右側)を出しています。これらのパソコンは、8 ビット機です。
◆
その後、1981 年には、IBM から IBM PC(図 9.2-24 の左側) が、NEC (日本電気)から PC 9801(図の中央) が発売されています。図の右側は、IBM の PC AT です。これらは、16 ビット機です。8 ビット機は、ホビーの性格を持っていましたが、16 ビット機の出現で、実用のコンピュータになりました。
◆
PC AT (1984 年発売) は、その仕様が、公開されたこともあって、PC AT 互換機 の名で、多くのメーカーから、発売されました。しかし、日本では、日本語 、とくに漢字 を、サポートする必要が あったので、NEC の PC の独壇場でした。この NEC の製品は、漢字を ROM で搭載していました。
◆
1990 年に、IBM が、PC AT 互換機で動作する OS である、DOS/V を、発表しました。この DOS/V は、漢字フォントを、ソフトウェアで搭載した製品です。PC AT 互換機が、漢字をサポートしたことによって、日本でも、PC AT 互換機が、普及しました。NEC も、独自路線から、PC AT 互換機に乗換えました。
◆
現在私達が使っているパソコンは、多くが、PC AT 互換機です。ただし、PC AT 互換機よりも、数は少ないですが、アップル社の、パソコンである、マッキントッシュ (MAC )も、健闘しています。
◆
パソコンは、パーソナルコンピュータ の略です。すなわち、コンピュータの専門家では無い、個人が、使用するコンピュータです。
コンピュータは、ソフトウェアが無ければ、只の箱です。現在では、パソコン用のソフトウェアは、有償/無償で容易に手に入ります。しかし、パソコンが、世に出た当初は、既製のソフトウェアが、有る筈がありません。
◆
Apple I では、これを考えて、BASIC という言語で、ユーザーがプログラムを書くことが、できるようになっていました。
BASIC は、インタープリータ と呼ばれる種類の言語です。インタープリータの文法は、コンパイラと似ています。
◆
コンパイラは、ます、ソースコードを作成して、その作成したソースコードをコンパイラに掛けて翻訳して、オブジェクトコードを作ります。プログラムの実行は、できあがったオブジェクトコードを、コンピュータの掛けて実行します。
◆
これに対して、インタープリータは、ソースコードを、作成しながら、その作成した分だけ、逐次翻訳を行い、かつ、実行して行きます。インタープリータは、プログラム実行の効率が、コンパイラ方式と比べて、悪いことが欠点です。
しかし、インタープリータ方式は、メモリ容量が小さいコンピュータを、使用することが、できるという、特徴があります。この意味で、初期の、メモリ容量が小さいパソコンには、インタープリータが、向いていたのです。
★ オペレーション という言葉は、便利な言葉です。日本語の 行う という言葉と同様に、運転、作業、操作から、作戦、手術に至るまで、何か行うことは、全て オペレーション です。コンピュータで、プログラムを実行することも、オペレーションです。
★ オペレーションは、人間が行いますが、人間だけで行う、完全な手作業は、あまり、ありません。少なくとも、道具 を、使います(下図は、大工道具 )。道具は、人が操作しますから、手が滑ったりしない限り、うまく使うことが、できます。
★ しかし、動力を使用する機械では、自動的に動きますから、制御 が必要になります。制御とは、制御の対象が、そのまま放置しておけば、値が変化してしまうのを、制御対象に、積極的に働きかけることによって、意図する目的に合うように、その動きを変化させることです。
★ この制御には、手動制御と、自動制御との、2 種類あります。
手動制御 (下図左側)とは、制御しようとする対象(制御対象)の状態を、人間がその 5 感を用いて観測し、それに基づいて、判断を行い、手足などを動かして、制御を行うことです。ただし、一般には、単に人の 5 感だけでなく、図に示すように、温度センサなどの、計測器 による測定を含みます。
★ これに対して、自動制御 (下図右側)は、人手を介さずに、機械(自動制御装置 、調節計 )が制御を行います。
★ 自動制御には、上図右に示した、制御の方式である、フィードバック制御 と、もう 1 つの制御方式である、シーケンス制御 との、2 つの制御方式 が、あります。
★ これらの自動制御は、上記のように、専用の自動制御装置によって、実行されます。
また、自動制御は、コンピュータを制御装置として利用して、ソフトウェアによって、実現することも、できます。
すなわち、コンピュータは、自動制御装置として、使うことが、できるのです。
★ さて、コンピュータのプログラムは、1 台のコンピュータで、多数のプログラムを、実行することが、できます。
これらの多数のプログラムは、必要に応じて、随時実行できるように、適切に整理して置くことが必要です。そして、必要なときに、必要なプログラムを実行させます。すなわち、プログラムの管理と、制御とが、必要です。
★ このような、管理と制御の仕事は、コンピュータが、得意とする、仕事です。
★ このとき、上図左側のように、制御を行うコンピュータが、別のコンピュータを制御することも、できますが、上図右側のように、1 台のコンピュータに中に、実行のプログラムと、制御のプログラムの、両方を入れておいて、実行プログラムを、この制御プログラムで制御するという、システムも、考えられます。後者の方が、1 台のコンピュータで、済みますから、簡単かつ安価です。
★ 1 台のコンピュータの中で、プログラムの管理と制御を行うプログラムのことを、オペレーティングシステム (OS 、基本ソフト )といいます。
★ OS は、また、コンピュータの、メーカー、機種に依存しないで、アプリケーション (応用プログラム 、ユーザーが行いたい仕事を実行するプログラム)を実行させる手段として、捕らえることも、できます。
★ OS は、その用途によって、いくつかの種類に、分けられます(下図左側)。このうちで、最も基本的な OS が、バッチ OS と、TSS OS です。
★ バッチ とは、仕事を溜めておいて、一括して処理を行う方式のことです。TSS は、タイムシェアリング システムの略です。TSS では、仕事を実行する必要が生じたとき、その処理を行います。TSS は、ある処理を行っている最中に、その仕事よりも、優先度が高い仕事が、新たに発生したとき、優先度が高い仕事の方を、先行して行います。
★ OS は、メインフレーム(IBM のシステム 360)の誕生の時(1964 年)に、開発されました。システム 360 は、汎用コンピュータ と呼ばれるコンピュータの、最初の製品です。汎用コンピュータとは、単一のアーキテクチャーで、商用計算、科学技術計算およびリアルタイム・アプリケーションに適応できる、コンピュータのことです。
★ それ以前のコンピュータシステムにも、部分的には、OS の機能が搭載されていましたが、仕事を実行するプログラムと、OS とが、はっきりとは、分かれて、いませんでした。
システム 360 のときに、OS の概念が生まれ、OS とアプリケーションとが、明確に区別されました。現在の OS も、基本的には、このシステム 360、と大きくは変わりません。
★ パソコン用の OS は、1974 年に発表された、CPM が、最初です。パソコンの OS は、パソコンのハードウェアと、ほぼ、時を同じくして、生まれたわけです。
パソコンと、その OS は、マッキントッシュ系(下表)と、インテル/マクロソフト 系(その下の図)とに、大別されます。
★ パソコン OS は、その使い勝手から、CUI (キャラクタユーザーインターフェース)(図 8.1-9 参照) と GUI (グラフィカルユーザーインターフェース)(多分、いま読者が見ている画面) の 2 つに大別されます。
★ 当然、CUI が先に作られましたが、GUI の出現で、GUI が取って代わります。初期の GUI(マッキントッシュ、漢字トーク )を下図に、最近の MAC OSX をその下に、示します。
★ 下図は、マイクロソフトのウィンドウズ の基となった、MS-DOS です。
★ 下図は、ウィンドウズ 1.0 、その下は、ウィンドウズ 3.0 です。ウィンドウズ 3.0 から、複数のウィンドウを、表示できる ように なり、現在のウィンドウズに近くなります。そして、ウィンドウズ 95 、ウィンドウズ 98 、ウィンドウズ 98 SE 、ウィンドウズ ME と発展して行きます。
★ これらは、非常に普及した OS ですが、堅牢性など、本来、OS が持っていなければ、ならない性質に、欠ける点があります。
★ 一方、ウィンドウズには、ウィンドウズ NT があります。一般用の、ウィンドウズ 3.0 の系統に対して、ウィンドウズ NT は、サーバ・ワークステーション用の OS です。ウィンドウズ NT は、ウィンドウズ 95に対して、多くの部分で上位互換性を持っていますが、ゼロから開発し直した、全く別の構造の OS です。堅牢性の点などで、ウィンドウズ 95 の系統よりも、優れています。
★ 現在では、ウィンドウズは、ウィンドウズ XP (下図)に統一されてます。ウィンドウズ XP は、ウィンドウズ NT から出発して、ウィンドウズ 2000 を経て、できあがったものです。したがって、堅牢性などの点で、ウィンドウズ 95/98 よりも、改善されています。