学習書●[情報処理]



コンピュータ
computer


|

http://www.infonet.co.jp/apt/March/syllabus/Literacies/computer.html


プロセス プログラム アプリ OS カーネル unix MacOS Windows ソフトウェア ハードウェア メモリ ポート CPU 演算器 レジスタ コンピュータ

きょうの迷信

"コンピュータは便利な機械"
???


 世界で使われているコンピュータの台数は、すでに上位10か国で合わせて3億8000万台に達している([Comp])。そのうち、日本だけでも4800万台が使われている。これを人口と比べてみると、何と二人に1台弱のコンピュータが使われていることになる。




プロセス


 きみたちがコンピュータと聞いて最初に思い浮かべるものは、きっと、スクリーンに表示されているいくつものウィンドー(window。▽図)だろう。それらのウィンドーを通じて、きみたちは作文をしたりウェブを読んだりすることができる。



いろいろなウィンドー

 ウィンドーの実体は、厳密にはプロセス(process)と呼ばれるもので、ウィンドーに表示されている内容と、それを、きみたちに代わって表示したり加工したりするための手順を書き出してある台本との組合せだ(▽図)。プロセスは、メモリという回路の中に書かれていて、きみたちの作業が進むにつれて少しずつ変化していく。
 プロセスの要素のうち、内容の部分はきみたちが作業を通じて作り上げたり、ちょっと見るためによそのコンピュータやCDから写し取ってきたもので、場合によって異なっている。手順の台本の方は、同じ種類の作業(たとえば作文や作曲)に対してはいつも同じだし、作るのもきみたちではない。この台本をプログラム(program=次第)という。プログラムは、ふだんはハードディスクなどに記録されていて、作業に使いたくなった時だけ、メモリに書き写されてプロセスの一部になる。


プログラム


 コンピュータを使えば、文章や映画を作ったり見たりするのを手伝わさせることができる。また、そのためのシェルを通じての応答もコンピュータがやってくれる。しかし、このようないろんな作業のそれぞれを別々の装置として作っていたらきりがない。そこで、実際のコンピュータ(厳密に言うとCPU)は、一つ一つはとっても単純なこと(たとえば二つの数の和を求めるとか)しかできないが、それらをいくつもいくつもたて続けに実行させて、その組合せによって無限に多くの種類の作業がさせられるように作られている。
 作業を構成する一連の段階を一つずつさせていたらかえって手間がかかってしまうので、コンピュータには、一連の作業を書き込んだ台本を準備しておいてやれば、自動的にそれを順に(繰り返しや場合分けも含めて)実行していく機能が備わっている。この台本を(本来の意味での)プログラム(program=予記、次第。資料[プログラム])という。

 映画や小説は、あとで読んだり見たり聞いたりできるように記録しておかなければ、持ち運んだり置いておいたりすることができない。同じように、実際に品物として見かけるプログラムは、CDなどの媒体に記録された姿をしている。しかしこの場合、CDはただの容器でしかない。プログラムは、VHSテープに録画されている映画や本として印刷されている小説と同じで、内容だけしかなくて、固有の姿はもっていない。

 プログラムには、きみたちが直接に使うものと、そうでないものとがある。きみたちが直接に使うプログラムアプリ(application program=業務プログラム、応用プログラム)という。
 そうでないプログラムは、アプリを作る素材に使われたり、アプリを作る道具として使われたり、アプリを使うための道具として使われたりしている。


OS


 プログラムを使うための道具もプログラムとして作られている。そのような道具のうちの基本的なものをOS(operating system=操作系)という。

 現在はいろいろなOSが使われている。
 Windowsは一定の条件を満たすコンピュータでなら機能するように作られているので、現在では世界で最も多くの人々に使われている。
 MacOS(マックOS)は映像、音楽、グラフィックデザインの分野で、unix(ユニックス)はコンピュータの研究やプログラムの開発でやはり多くの人々に使われている。

 ファイルやプロセスやウィンドーなどに関わる処理は、それぞれのアプリが勝手に行なっていると互いに干渉してうまく実行できなくなってしまう。OSの本体は、これらの処理をアプリに代わって引き受けて、調整しながら実行する部品の集合だ。OSのうちのこの部分をカーネル(kernel、芯)という。アプリを構成している何千段階もの命令のうちの多くは、ファイルの読み書きやウィンドーの処理(operating)のためのものだが、それらの命令は、カーネルへの処理の依頼として書かれているだけで、実際の処理は依頼に基づいてカーネルの側が実行している。命令として書かれているカーネルへの処理の依頼をシステム呼び出し(system call)という。
 カーネルは、アプリが走っている時もそうでない時もいくつかのプロセスとして走り続けていて、いろんな処理を頼まれるのを待っている。

 OSのもう一つのたいせつな部分は、備えている機能の一部を、コンピュータが使う人がじかに使えるようにする機能だ。たとえば、前にやりかけた作文の続きをするために、記録しておいた文章のアイコンをノックすると、作文のウィンドーを開くことができる。このようにな機能を担う部分は、カーネルに対して、それを包む殻みたいに見えるので、シェル(=shell)と呼ばれている。シェルについてはほかの単元で学習する。

 OSには、WindowsMacOSunixなど、いろんな種類がある。これらは、それぞれをデザインした人たちの考え方の違いによって、準備している処理の内容や処理の指定のしかたが違っている。だから、アプリはどのOSに合わせて使うかによって作り分けなければならない。たとえば、MacOSで使うアプリはWindowsのコンピュータでは使えない。


本体


 ビデオデッキでビデオテープを再生すると録画されている映画が見られるように、OSやアプリなどのプログラムは特別な装置によって働かせることができる。この装置は、一般にはコンピュータ本体と呼ばれている。
 コンピュータ本体の匡体の中には、CPUメモリポートなどが詰め込まれている。



本体の外観(左)と内部の例


メモリ


 メモリ(memory=記憶素子、同上)は、全体では億近くにもなる、ちいさい細胞(cell)に分かれた素子の集まりで、それぞれの細胞には字や数などを書き込んだり読み出したりできるようになっている。また、読み書きする細胞が指定できるように、順に番号が振ってある。この番号を(メモリ)アドレス(addrress=番地)という。メモリは、ハードディスクのような記録のための装置とは違って、読み書きがずっと速い。しかし、容量に対する費用もずっと高い。

 ポート(port)は、本体についているいくつものコネクタにつながっている。ポートにも、メモリの細胞と同じように、それぞれを区別できるようにアドレスが決められている。
 OSが機能を発揮するためには、実際に動作してくれる、操作や表示や記録に使う装置が必要だ。これらの装置はケーブルを通じて、最後はポートにつながっている。そして、これらの装置は、ケーブルを通じて流れてくる字や数に応じていろんな動作をするようにできている。OSやその補助をするプログラムは、ポートの特定のアドレスに命令として作用する字や数を書き込むことによって、装置を動作させている。


CPU


 CPU(central processing unit=中央演算素子、昔なら-装置。資料[CPU])は、演算器レジスタとそのほかのいくつかの要素から構成されている。現在のコンピュータでは、これらが1枚の小さい石板の中にまとめて焼き込まれている。
 演算器は、起動されるとそれぞれの機能にしたがって1回だけ和や差などを計算してすぐ止まるようになっている。演算の素材はレジスタから読み出し、結果もレジスタに書き込む。
 レジスタ(register=置数器)は、メモリと同じように字や数を読み書きすることができるが、読み書きはメモリよりもっと速く、その代わり少ししか準備されていない。
 演算の素材は、いつもはメモリに記憶しておいて、必要になる直前にレジスタに書き写してくる。これをロード(load)という。逆に、演算の結果はレジスタからメモリに書き写しておく。これをストア(store)という。こうしておかないと、次の演算の素材として使うまでに、別の演算の結果が上書きされてせっかくの演算の結果が消えてしまう。
 レジスタの中にはプログラムカウンタ(program counter、またはinstruction pointer)という特別なレジスタがある。ここに数が書き込まれると、メモリのうちのその数を番地とする細胞の内容が調べられ、その内容の桁の一部に応じて、いろんな種類の演算器のうちの一つが1回だけ動作するようになっている。そして、数の残りの桁は、その演算の素材や結果のレジスタの番号や、読み書きするメモリやポートのアドレスとして使われる。この、演算器の種類とその素材や結果の場所とを指定するために使われる数を、インストラクション(instruction=命令)という。
 そもそも、OSを初めとするすべてのプログラムは、実行させたい順にいくつものインストラクションを並べたものだ。実行されている間、プログラムメモリのうちの一連の区間に書き込まれている。カウンタは、実行が進むにつれてその一連の区間のアドレスを1ずつ(2個以上の細胞にまたがって記録されているインストラクションのための対策もあるのでいつも1ずつとは限らないが)数え上げていくようになっているので、CPUはプログラムの中に並んでいるインストラクションを次々と実行していく(資料[MC6809])。


コンピュータ
多義性に注意しながら


 こうして眺めてくると、コンピュータは、CPUを中心にして、その回りをメモリなどの回路と、OSと、アプリで順に包んだ構造になっていることがよく分かる。そして、包みの厚さの違いによって、コンピュータは全く違った性格を持っているように見える。
 たとえば、CPUは数の和や差を計算できるだけだ。しかし、計算表の機能を使っている人は、計算とは言ってももっと複雑なことをしているし、そもそもコンピュータは作曲や演奏のための道具と考えていて、計算なんかしたことがない人もいるだろう。
 どこまで包まれた状態のものをコンピュータと呼ぶかは、場合によって違っている(▽表)。だから、コンピュータについて議論しているのに、まるで話しが噛み合わないということがよく起こる。そもそも、初めて触れた時のコンピュータの姿が、そのままコンピュータのたった一つの姿だと思い込んでいる人も多い。コンピュータについて議論が行われている時は、どこまで包まれたコンピュータのことを考えなければならないのか確かめておかなければいけない。

レベル
意味
アプリに
包まれたレベル
それぞれのアプリによって規定されるある特別な作業(作文だったり演奏だったり)を手伝ってくれるシステム
(統一的な定義はできなくなる)
OSに
包まれたレベル
シェルを通じてプログラムを使うためのシステム
匡体として
組み立てられたレベル
(?)
CPUのレベル
一連のインストラクションを順に実行させることができるシステム
演算器のレベル
レジスタに置かれているビット列に応じて新しいビット列を作り出すシステム

 たとえば、"コンピュータは0と1の計算しかできない"、というテーゼをよく見かける。これは、演算器のことをコンピュータと呼ぶ限りでは正しい。しかし、OSやアプリで包まれたコンピュータにまで同じテーゼを主張するのはまずいだろう。
 これからの学習では、コンピュータ本体を指す場合は別として、あいまいなままコンピュータとということばは使わないようにしたい。学習を離れた場でも、コンピュータが主題になっている場合は、どのレベルで主題になっているのか、初めにはっきりさせておかないといけない。


情報化


 OSに包まれたレベルで見ると、コンピュータはプロセスを実行させるための装置だと考えることができる。ところで、情報の読み書きは、プロセスの内容とそれを読み書きするプログラム(作れるならだけれど)との組合せとして表現することができるから、情報の読み書きに関わることなら、たいていのことについてはコンピュータを何かに役立てることができる。また、材料や社会のような実体をもっているものでも、情報のやりとりによってその状態を理解したり逆に影響をおよぼしたりすることができる装置や制度が作られているなら、それを(部分的にだけれど)調べたり作り変えたりするためにコンピュータを役立てることができる。
 このような可能性は、コンピュータだけでなく、ずっと昔から使われているいろいろな記録システムや通信システムにも備わっている。コンピュータや記録/通信システムが活用できる世界がもっと拡大すれば、見聞きできること、作り変えられること、覚えておけること、伝えられることはいくらでも増やしていくことができる。そのためには、これまで実体としてしかとらえられてこなかったいろいろなものを、情報を通じて見聞きしたり作り変えたりできるようにする必要がある。この方向性を情報化という。


ハードウェア/ソフトウェア


 コンピュータと組み合わせて使う装置には、モニタ(monitor)、マウス(mouse)、各種のドライブ(drive)などがある。これらの装置とコンピュータ本体をハードウェア(hardware=金物)という。
 ハードウェアに対して、作文アプリや計算アプリ、OSなどのプログラムのことをソフトウェア(software)という。内容ではなくて作り方や使い勝手を問題にしている場合は、プログラムと言う代わりにソフトウェアと呼ぶことが多い。





[演習]

演習の進め方をよく確認してからとりかかりなさい


Windows MacOS unix

 WindowsMacOSunixの3種類のOSのうちの一つを選び、その歴史を調べなさい。
 特に、多く人々によって使われるようになった理由、機能の特徴、バリエーションの種類については、具体的な例を使ってほかのOSと比較しながら、詳しく説明しなさい。

報告例
池田泰延 | 宗内佐代子


体内の小人のモデル

 初期のヨーロッパの医学では、体内の小人とよばれるタイプのモデル(説明のための例え)がいろんな場面で提案されてきた。体内の小人のモデルとは、幼児の発生するもとを精子や卵子の中にいる小人に求めたり、目や耳が視覚や聴覚を実現しているのは、それらの器官の中に小人がいて、感覚器が収集した情報を"見て"くれるからだと考えたりすることによって、生物のしくみを理解しようとする考え方だ。たとえば、ホムンクルス(資料[ホムンクルス])もそうしたモデルの一つと考えていいだろう。
 2-3の実例について、体内の小人のモデルがどのように使われていたか調べなさい。さらに、ブートストラップ問題(資料[ブートストラップ問題])の立場から、説明のための例えにすぎない(つまり小人の実在が観測されていないことは問題ではない)としても、それを発生や感覚の説明に使うのはなぜまずいのか考えなさい。
 また、アプリに対するOSの存在は体内の小人とよく似ているが、矛盾も無駄もない技術としてちゃんと成立しているのはなぜか考えなさい。

前半については資料を探して調べなさい。少なくとも上記の資料には目を通しておきなさい
後半については自分で考えなさい
科学的な見方が身についていないと難しいだろう


文学に描かれたコンピュータ

 資料[Computers in Science Fiction]を読みなさい(コラムは飛ばしてもいい)。
 そして、この資料で述べられている主題の中から一つを取り上げ、資料には登場しない作品を軸にして、その主題について改めて解説しなさい。

コンピュータを自分で活用していないと難しいだろう




この単元の内容と関係がある手引きの記事

2.1 コンピュータとは
2.2 コンピュータの特性
2.4 コンピュータの構成
2.5 ハードウェアとソフトウェア
2.6 オペレーティングシステム



深く学習するための資料
(課題の学習には十分ではない)

Alan W. Biermann、"Great Ideas in Computer Science: A Gentle Introduction"
Alan W. Biermann、監訳:和田英一、"やさしいコンピュータ科学" (アスキー、93-06-21)
お薦め
気になることがきちんと解説してあって、しかもさっぱりしてるから学習しやすい
工学系の学生のための教科書だけど、コンピュータが専門でなくてもおもしろくてためになるように書かれている
4800円、ISBN4-7561-0158-5

Jonathan Vos Post, Kirk L. Kroeker、"Writing the Future: Computers in Science Fiction"、Computer, Vol.29, No.01 ( 00−01 ), pp. 29-37
つまり、サイファイ(science fiction=科学小説)ではコンピュータがどのように描かれているか見てみよう、という論文
コラムもおもしろい


参考にした資料

Computer Industry Almanac (01-07)


コンピュータ | インタフェース


|

このページの記事の一部は、バージョンによって、著作者への配慮や媒体の容量の都合により、見ていただくことができない場合があります


Copyleft(C) 2001-02, by Studio-ID(ISIHARA WATARU). All rights reserved.


最新更新
02-09-16