OSの仕事
ハードウェア⇦⇨システムソフトウェア⇦⇨応用ソフトウェア
システムソフトウェアの中にOSやDBMSが入っている。
基本ソフトウェアはさらに三つに分類。
- 制御プログラム
一般にこのプログラムをカーネルとよび、機能を限定したマイクロカーネルと、機能を網羅したものりシックカーネルが存在。 - 言語処理プログラム(言語プロセッサ)
- サービスプログラム
GUI、、、グラフィカルユーザーインターフェース
API、、、OSは、ハードウェアの利用も含めて自身がもつ各種機能をアプリケーションから呼び出せる仕組みを用意している。このために設けられたインタフェースをAPIと呼ぶ。
APIを利用してアプリケーションが作られることで、次のようなメリットが生まれる。
①開発効率アップ
②操作性の統一
③互換性の確保
ジョブ管理
利用者から見た仕事の単位がジョブ。
ジョブ管理の流れ
マスタスケジューラが振り分け
⇨リーダが待ち行列に登録
⇨イニシエータがジョブステップに分解
⇨ターミネータが出力待ちに登録
⇨ライタが優先度が高いものから出力
低速な装置とのデータのやりとりを、高速な磁気ディスクを介して行うことで処理効率を高める方法をスプーリングという。
タスク管理
コンピュータから見た仕事の単位がタスク。
ジョブステップの実行準備が整うことで、タスクが生成される。
(プロセスとも言われる。)
READY、RUN、WAITの三つの状態を遷移する。
CPUの使用権を割り当てるのはディスパッチャ。
タスクスケジューリングの方式
- 到着順方式(ノンプリエンプション)
- 優先順方式(プリエンプション)
- ラウンドロビン方式
マルチプログラミング、、、複数のプログラムを見かけ上同時に実行して見せることで、遊休時間を減らし、CPUの利用効率を高めようとするもの。
割り込み処理、、、実行中のタスクを中断して、別の処理に切り替え、そちらが終わるとまた元のタスクに復帰するという処理。(内部割り込みと外部割り込みがある。)
実記憶管理
限られた主記憶空間を効率よく使えるようにプログラムに割り当てるのが、実記憶管理の役割。
- 固定区画方式
- 可変区画方式(フラグメンテーションをメモリコンパクションで解決)
- オーバレイ方式(セグメントを必要な時にロード)
- スワッピング方式(優先度が低いプログラムが使っていた主記憶領域の内容を、一旦補助記憶総理に退避させる。)
再配置可能プログラムとプログラムの4つの性質
- 再配置可能(リロケータブル)
主記憶上のどこに配置しても実行できる。 - 再使用可能(リユーザブル)
再ロードすることなく繰り返し実行できる。 - 再入可能(リエントラント)
複数のタスクから呼び出しても、互いに干渉することなく同時実行できる。 - 再帰的(リカーシブ)
実行中に自分自身を呼び出すことができる。
仮想記憶管理
主記憶や補助記憶をブラックボックス化して、広大なメモリとして扱えるようにすること。
仮想記憶と実記憶との間にメモリ変換ユニット(MMU)というハードウェアが存在。この仕組みを、動的アドレス変換機構(DAT)と呼ぶ。
ページング方式
固定長の領域に区切って管理する。プログラムをページという単位で分割して管理する。
実記憶の容量が少ないと、上記のようにページの置き換えを必要とする頻度が高くなり、システムの処理効率が極端に低下することがある。この現象をスラッシングという。
ページの置き換えアルゴリズム
- FIFO(First In First Out)方式
- LIFO(Last In First Out)方式
- LRU(Least Recently Used)方式
- LFU(Least Frequently Used)方式
スワッピングはプロセス単位で領域の出し入れを行う。
ページングはページ単位で領域の出し入れを行う。