オペレーティングシステム 設計と実装 第3版 1.1
コンピュータシステムの構造
コンピュータシステムの構造は、大まかに書くと以下の様になる。
(最上位)アプリケーションプログラム |
(中位)システムプログラム |
(下位)ハードウェア |
アプリケーションプログラム(応用ソフトウェア)
ユーザモードで実行される、利用者が普段使っているアプリケーションソフトウェアの部分。
つまり、一例を挙げると、
上記のように、ユーザ(利用者)がコンピュータに組み込んで利用するソフトウェアのこと。
システムプログラム(基本ソフトウェア)
オペレーティングシステムと、それに付加するプログラムがここに含まれる。
オペレーティングシステム
Windows だったり、Linux だったり Mac OS だったりという、
各コンピュータごとの差違を吸収し、抽象化してくれるソフトウェアのこと。
また同時に、共通の機能、画面、デザインなどの「共通したインタフェース」を提供することも担う。
オペレーティングシステムに付加するプログラム
動作の区分上は、上記に述べた「アプリケーションプログラム」と同じであるが、
OSのパッケージに含まれているソフトウェアを指す。
例を挙げると、
などがある。
ハードウェア
ここには「物理装置」「マイクロアーキテクチャ」「マシン語」が含まれる。
物理装置
集積回路や電源、その他のパーツで構成される。
ここの部分は電子工学が扱う範囲になる。
マイクロアーキテクチャ
コンピュータにおいての各命令の処理方法を定めた仕様のこと。
このレベルにある物として、CPU (Central Processing Unit) のレジスタや、
データバスなどがあげられる。これらの装置がどのように動作するか、処理するかを定めた物が、
「マイクロアーキテクチャ」である。
*マイクロプログラム(マイクロコード)
最近よく用いられているプロセッサである x86 プロセッサは、CISC 系のCPUに分類され、
これらのCPUでは、内部に非常に小さなプログラムを動作させ、複雑な命令を実装している。
なお、RISC 方式のプロセッサは、原則としてハードウェアの回路(ワイヤードロジック)のみで構成されるため、
このようなプログラムは原則利用されていない。
マシン語
アセンブラ言語のプログラマが良く利用している、コンピュータの制御を行う命令の集まりのことを、
命令セットアーキテクチャ(Instruction set Architecture, ISA) と呼ぶ。
また同時にこれについて、特に2進数のコード(オペコード)のセットとして扱う場合、機械語(マシン語)と呼ばれる。
これらの命令は50~300ぐらいの命令から成り立ち、多くは、マシン内のデータ移動、演算、比較などを行う。