オペレーションシステムとは何か

モダン オペレーティング システム 原書 第2版

モダン オペレーティング システム 原書 第2版


再び、備忘録的な日記。

OSの2つの役割

OSは基本的に互いに関係のない2つの役割を果たしている。
それは「トップダウンの見方」「ボトムアップの見方」より明らかになる。

トップダウンの見方・・・マシン拡張の役割

ハードウェアの制御は基礎的な部分を考える必要性があるが、
OSは、ユーザに提供するにふさわしい単純かつ高レベルな抽象化されたものを提供する。
例えばフロッピーディスクの制御をする場合、
モータがOFFのときは読み書きできない。
ONにした後のみ読み書き可能である。(起動にはかなり時間がかかる)
モータを回し続けることはフロッピーディスクの磨耗につながるため、
起動の長さとフロッピーディスクの消耗とのトレードオフを考えなくてはならない。

しかし平均的なプログラマはフロッピーの制御に熱中したいと考えてはいない。
そのような仕事はOSが抽象化してユーザに与える、ということである。

ボトムアップの見方・・・リソースマネージャ

複雑なシステムの各構成要素全てを管理するのがOSであるという見方。
=プロセッサ・メモリ・入出力デバイスを、競合して使用しようとする多くの
プログラムに整然と割り当てるということ。
ex:同時に同一のプリンタに出力させたいとき
割付がないと混乱が起こる。
(数行がプログラム1のもので、その後の数行がプログラム2のもので・・というように)
OSはプリンタへの全ての出力をディスク上にバッファリングし、この混乱を避ける。
出力が格納されているディスクファイルからそのプリンタへコピーし印刷し、一方で
同時に他のプログラムは更なる出力結果を生成し続けることができる。
ex:複数ユーザでのコンピュータ利用
ユーザはお互い干渉しあうかも知れず、リソースの管理・保護がより重要である。
OSの主要な仕事は、異なったプログラムとユーザからの競合する要求を調整すること。

具体的には...

・誰がどのリソースを使用しているかを把握
・リソース要求を許可
・使用に対する課金を行い、競合する要求を調整

リソースマネージャのリソースの多重化は

・時間的
・空間的

の2つの方法で行う。

●時分割方式

ユーザ同士は交替しながらリソースを使用
次にどれを選択するか・割り当て時間をどのくらいにするか
というように時分割方式の実現方法を考えるのがOSの仕事。
時分割方式の例としてはプリンタの共有がある。

●空間分割方式

メインメモリには各プログラムを同時に常駐でできる。
1つのプログラムにメモリ全部を使わせるよりもより効率的であるから。
公平性・保護などの問題が生じるが、これらを解決するのがOSの仕事。

その他の例としてハードウェアのディスクがある。
1つのディスクで多くのユーザのファイルを同時に格納できるが、
空間の割り当て・誰がどのブロックを使用しているかの履歴の管理は
OSの典型的なリソースマネジャとしての仕事。

まとめ

OSの仕事は2つの角度からみると

■拡張マシン(トップダウン)
ユーザには抽象化されたものだけを提供する。

■リソースマネージャ(ボトムアップ)
効率のためリソースは競合させる。
その際のリソースの時間割付・順番・場所・履歴などを管理し
公平性・保護などの問題を解決する。