3.3 抽象化の観点から見た情報科学技術の仕組み

抽象化とは、ある性質に着目して物事を単純化して考える手法である。まず、具体的な例として、メモリ(主記憶装置)に見られる抽象化について説明する。

メモリは0と1の列によって表現された情報を格納する。メモリには番地(アドレス)がふられていて、各番地に対応して一定の長さの2進列が格納されている。プロセッサなどの他の装置からの情報の出し入れは、番地を指定することにより行われる。一つの番地に対して、長さ8の(8ビットの)2進列が格納されている。これを表わしたのが、図8である。

8 メモリの概念図

メモリの構造は、実際にはもっと複雑である。たとえば、パソコンのメモリはDRAMと呼ばれる電子部品から構成されている。その概念図を図9に示す。

 

9  DRAMの概念図

DRAMは、図8に示したような帯状の一次的な構造ではなく、京都や長安の町のように碁盤状の二次元の構造になっている。行アドレスと列アドレスとを与えて、各区画からデータを取り出したり保存したりする。各区画には64ビットの2進列が格納される。さらに、そのような碁盤状の記憶領域(バンク)が複数存在することがある。その場合、一つの区画を指定するのには、行アドレスと列アドレスと、そして何枚目のバンクであるのかを指定することになる。

ただ、各区画に格納されるデータの長さは64であるとは限らず、32だったり16だったりする。また、バンクの個数、行アドレスの範囲、列アドレスの範囲は、そのDRAMの容量や種類によりさまざまな構造、さまざまな規模のものが生産されている。これらの違いは、プロセッサとメモリとの間に、いくつかの仕組みが設けられていて、図10のような構造に見えるように抽象化されている。メモリが抽象化されることにより、プロセッサはその違いを意識することなしにメモリを取り扱うことができるのである。

10 メモリにおける抽象化

抽象化が行われるのは、メモリの場合に見られるような、ハードウェアとハードウェアの間にとどまらない。ハードウェアとソフトウェアとの間、ソフトウェアとソフトウェアの間など、さまざまな場面で抽象化は行われている。

そのもっとも代表的な例は、オペレーティングシステムである。これは、アプリケーションソフトウェアなどのコンピュータ上で動作する様々なソフトウェアに対して、ハードウェアを抽象化して見せるソフトウェアであるということができる。

コンピュータにおいてプロセッサが同種類のものであっても、ハードウェアが異なることは多い。たとえば、デジタルカメラで撮影した画像をパソコンで処理する場合を思いうかべてほしい。画像ファイルがメモリカード(SDメモリカードなど)の上にあっても、ハードディスク上にあっても、画像を処理するソフトウェアでは同じように扱うことができる。しかし、ハードウェアとしては、メモリカードとハードディスクはまったく異なる。画像処理ソフトウェアがこの二つの異なるハードウェア上にあるファイルを同一に扱うことができるのは、オペレーティングシステムがソフトウェアとの仲立ちになるからである。

11 オペレーティングシステムの概念図