今回の記事は基本情報資格勉強用の記事で、OSの管理機能である、ジョブ管理・タスク管理・記憶管理・ファイル管理に関してどこよりも分かりやすくまとめた記事です。自身の勉強用にまとめた内容を共有する形で記事にしております。私も資格試験を受ける予定ですので一緒に頑張れれば幸いです。是非サイト内見ていってください。
OSとは?
OSはオペレーションシステムの略でPCのハードとソフトを管理するPCの中心的なソフトです。代表的なPCのOSはWindowsやMacOS、Linuxなどが存在します。
スマホにももちろんOSは存在します。iPhoneの場合iOS、Androidの場合はAndroidOSがそれにあたります。
スマホを想像して貰えば分かりやすいと思いますが、スマホにはさまざまなアプリがインストールされています。OSがアプリを使用する際に必要なインターフェイスをAPIといいます。
OSの管理機能
OSの代表的な機能は4点あります。
- ジョブ管理
- タスク管理
- 記憶管理
- ファイル管理
どれも非常に重要な機能です。順番に説明していきます。
ジョブ管理
ジョブ管理にスケジューリングという機能が存在します。コンピュータに投入されたジョブは入力待ち行列に登録され、処理された後、出力待ち行列に登録されまうす。
ジョブに必要なデータの転送の手段として、スプーリングという方法があります。
スプーリングは主記憶と低速の入出力装置との間のデータ転送を補助記憶を介して行うということです。
例えばプリンタでデータを印刷する場合を考えてみます。出力データを一時的に磁気ディスクに書き込み、プリンタの処理速度(印刷速度)に合わせて少しずつ出力させます。
これによりCPUのデータ転送速度と、プリンタの印刷速度の差を考える必要がなくなり、CPUの有効活用ができるようになります。
タスク管理
タスク管理のサイクル
タスク管理に関しては、タスクの生成から消滅までを「実行可能状態」「実行状態」「待ち状態」の三つの状態で管理しながら、CPUを有効活用しています。
- 実行可能状態:CPUの使用権が割り当てられるまで待つ状態。複数発生する場合は待ち行列。
- 実行状態:CPUが1つしかない場合事項されるのは1つのタスクのみ。
- 待ち状態:他のタスクが入出力装置を使用しているため、その待ち状態。
タスクの割り当てについて
実行状態になるCPUの割り当てという処理をディスパッチという。
タスクの割り当てを行う順位付けには下記の方法があります。
- 到着順方式:待ち行列の先頭のものから
- 処理時間順方式:処理予定時間が早いもの順
- 優先度順方式:優先度の高いタスクから
- ラウンドロビン方式:待ち行列の先頭から実行し、長時間タスクを占有している場合は、一度処理を停止し、待ち行列の最後尾にタスクを加える
複数のタスクを効率よくタスクとして処理することをマルチタスクといいます。
また、CPUが利用されていない待ち時間のことを遊休時間(アイドルタイム)と言い、できるだけこの時間がない方が効率的なCPUの利用ができているということです。
タスクの実行に関してはOSがCPUを管理せずプログラムの方が管理する「ノンプリエンプティブ方式」と、その逆で、OSがCPUを管理してプログラムを実行する「プリエンプティブ方式」があります。
OSの機能として、マルチスレッドという考え方もあります。1つのプログラムの中で、並行処理が可能な部分を、複数の処理単位(スレッド)に分解して、それらを並行して処理するOSの機能です。
割り込み処理
実行中のプログラムを一時中断して、そのプログラムを制御プログラムにうつします。そして、優先度が最も高い必要な処理を行います。
割り込みの代表的な種類は下記です。
- プログラム割り込み:0による除算などバグに近い動きから起きる(内部割り込み)
- SVC割り込み:プログラムがOSに入出力を要求したときに起きる(内部割り込み)
- 機械チェック割り込み:電源異常、ハード故障
- 入出力割り込み:入出力装置の動作完了
- タイマ割り込み:プログラム実行の処理時間超過
- コンソール割り込み:オペレータが介入したとき
記憶管理
プログラム記憶方式はプログラムを主記憶に読み込み、CPUが順次読み出して実行する方式です。基本的に今のPCはこの方式を採用しています。主記憶の容量には限りがあるため、主記憶をおり強く管理するためにこの方式をとっているのです。
記憶の管理方法は記憶の種類と方法でいくつかあります。
実記憶
- 区画方式
- スワッピング方式
- オーバレイ方式
仮想記憶
- ページング方式
- ページ置き換えアルゴリズム
実記憶は主記憶を使用し、仮想記憶は仮想記憶空間という場所にプログラムを格納する管理の種類です。概念的なものとして押さえておけばOKです。順番に説明していきます。
区画方式
区画方式という方法もあります。
- 固定区画方式
- 可変区画方式
固定区画方式
主記憶をあらかじめ決まった大きさに区切っておいて、プログラムの容量的に処理できる大きさの区画で処理を行うというもの。処理時間は一定だが、効率は少し悪い。
可変区画方式
主記憶をプログラムが必要とする大きさに区切り、割り当てる。効率は良いが処理時間は不安定。
主記憶容量の問題と回復
また、OSが主記憶の領域と解放を繰り返すことで、細切れの未使用領域が発生する現象をフラグメンテーションという。これによって、未使用領域は多いが、細切れな未使用領域が多いため、処理ができないなどもあるため、できるだけ避けた方が良い現象。
細切れ未使用領域を1つにまとめるリカバリーをメモリコンパクションという。
スワッピング方式
主記憶の容量が不足した場合、実行中のプログラムのうち、優先度の低いものを一時中断し、磁気ディスクに退避(スワップアウト)し、優先度の高いプログラムを主記憶に配置する(スワップイン)方式です。
オーバレイ方式
あらかじめ、プログrマウを同時に実行しない排他的な幾つかの単位(セグメント)に分割し、実行時に必要な」」武運を主記憶に配置する方法。
ではここからは仮想記憶の管理方式の説明です。
仮想記憶とは?
そもそも仮想記憶とは何か。仮想記憶は主記憶ではなく、補助記憶装置に仮で、仮想的な記憶の保管場所を用意し、そこを主記憶のように使用するというイメージです。主記憶だけではやはり大きなプログラムを実行することができないので、現在のPCではほぼ仮想記憶方式も採用されています。
仮想記憶を使用する場合、最終的に主記憶の実アドレスに変換しないとプログラムを実行できないので、仮想アドレスから実アドレスに変換する処理を動的アドレス変換機構(DAT)というハードウェアで行う必要があります。
では仮想記憶管理の方式に進みます。
ページング方式
主記憶とプログラムを固定調(ページ)に分割し、ページ単位で管理する方法です。
実行するページが主記憶に存在しないとき、ページフォルトという割り込みが発生し、不要なページを主記憶から追い出し(ページアウト)、必要なページを補助記憶から主記憶に配置する(ページイン) する。
ページフォルトが多発することをスラッシングと言い、処理効率的によくない。対策としては下記です。
- 主記憶の増設
- ジョブの多重度を下げる
- 主記憶の使用を抑制
ページ置き換えアルゴリズム
先ほど説明したページングで、不要なページを決定するアルゴリズムは3つです。
- FIFO方式:最も古いページ置き換え
- LRU方式:参照が最も古いページ置き換え
- LFU方式:参照回数が最も少ないページ置き換え
ファイル管理
ディレクトリについて
ファイル管理は私たちに身近な機能です。普段エクスプローラーなどでファイル検索を行う場合、ディレクトリなどを私たちは知ることができます。
階層構造の最上位にあるディレクトリをルートディレクトリ、その下をサブディレクトリ、現在のディレクトリをカレントディレクトリなどと言います。
絶対パスと相対パスはルートディレクトリを考慮するかどうかのみの差です。
バックアップについて
バックアップの種類は下記です。
- フルバックアップ
- 差分バックアップ
- 増分バックアップ
フルバックアップ
磁気ディスクに保存されているすべてのデータをバックアップすること。
差分バックアップ
前回のフルバックアップ以降に変更されたデータをバックアップすること。
増分バックアップ
前回のバックアップ以降に変更されたデータをバックアップする。
では今回の記事は以上です。基本情報資格の勉強は継続して行っていきますので引き続き記事更新していきます。「基本情報用語まとめ」
コメント