目次
OS
Operating System
- WindowsやMacOS、iOS、Androidなど
- アプリケーションソフトウェア(カメラ機能やメッセージ機能など)とハードウェアの間で処理を仲介する
OSの4つの機能
1. ジョブ管理
ジョブ=ユーザーがコンピュータに出す命令(書類の印刷やファイルの複製など)
ジョブ管理=ジョブの実行順序を管理する
→ CPUとその他のハードウェアの処理速後が大幅に違うから、ジョブ管理をする必要がある
【例】
CPUとプリンター
プリンターはCPUと比べて処理速度が圧倒的に遅い
→ OSにジョブ管理機能がない場合、CPUはプリンターの処理が完了するまで待つことになる
だから、OSがジョブ管理を行い、プリンターが印刷処理を実行している間は、CPUには別のジョブを実行させたりする
-
スプーリング:CPUと低速の入出力装置の間のデータ転送を、高速の補助記憶装置に仲介させる技術
- CPUとプリンターの間に補助記憶装置(ハードディスクなど)を配置し、そこに一時的にデータを保存し、プリンターの処理のスピードに合わせて、補助記憶装置からデータを送る
-
バッファ(緩衝記憶装置):処理速度や転送速度の異なる2つの装置の差を補うことを目的として、データを一時的に保存する記憶装置
- キャッシュメモリ:CPUと主記憶装置の処理速度の差を補う
- ディスクキャッシュ:主記憶装置とハードディスクの処理速度の差を補う
2. タスク管理
タスク(プロセス)=OSがCPUに出す命令
タスクの実行順序を管理する機能
OSは一連の処理をタスクという単位に分割してから、CPUに実行させる
-
マルチタスク:タスク管理によって複数のタスクを頻繁に素早く切り替えることによって、それらのタスクがあたかも同時に実行されているかのように見せる技術
- CPUは一度に1つの作業しか実行できないから、実際には同時に実行されているわけではない
【タスクの状態】
- 実行可能状態:いつでもタスクを実行できる状態
- 実行状態:タスクを実行している状態
-
待ち状態:タスクの入出力処理の完了を待っている状態
【マルチタスクによるタスクの切り替え方法】
| 種類 | 説明 |
|---|---|
| プリエンプティブ(=横取り) | CPUの使用権をOSが管理する方式。現在の主流。優先度の低いタスクを実行可能状態にして、優先度の高いタスクを実行状態にして、CPUの使用権を横取りする |
| ノンプリエンプティブ | CPUの使用権をタスクが管理する方式。タスクの処理が完了するまで、CPUの使用権をタスクが持ち、終わったらタスク自身がCPUに使用権を戻す。CPUの使用権をOSが管理しないため、OSの役割がシンプルになる |
- ディスパッチ:実行可能なタスクに対して、プロセッサの使用権を割り当てること
タスクスケジューリング
- 到着順方式
- 処理時間順方式
- 優先度順方式
- ラウンドロビン方式:タスクを一定時間ごとに切り替えて実行する=各タスクに均等にCPU使用時間を割り当てる
3. 記憶管理
- 主記憶管理
-
仮想記憶管理:補助記憶装置の一部をあたかも主記憶装置であるかのように扱う方式。
- 仮想記憶:OSが作る論理的な記憶領域
- 実記憶:主記憶装置上の物理的な記憶領域
【仮想記憶管理の方式】
1. セグメンテーション方式
仮想記憶と実記憶をセグメントと呼ぶ可変長の領域に分割して管理する方式
2. ページング方式
仮想記憶と実記憶をページと呼ぶ固定長の領域に分割して管理する方式
仮想記憶と実記憶の各ページには、先頭から順にアドレスが割り当てられる
- 仮想アドレス:仮想記憶上のページのアドレス
- 物理アドレス:実記憶上のページのアドレス
- ページテーブル:仮想アドレスと物理アドレスを対応づける
【CPUがページにアクセスする流れ】
- 仮想記憶のページA(仮想アドレスは1)にアクセス
- ページテーブルの仮想アドレスが1の行にアクセス
- それに対応する物理アドレスが2だとすると
- 実記憶の物理アドレス2のページにアクセス
- CPUはページの実態にアクセスできた
-
ページフォールト:実記憶に存在しないページへのアクセスによって起こる内部割り込み
- この割り込みが発生すると、OSはプログラムを実行するために必要なページを補助記憶装置から実記憶へ読み込む=ページイン
-
ページアウト:実記憶の全ての物理アドレスに空きがない場合は、実記憶から外すページを1つ選び、そのページを実記憶から補助記憶装置へ書き出す
- 実記憶に空きページを確保できたらページインする
ページアウト・ページインのアルゴリズム
ページアウト・ページインはできるだけ発生しない方がCPUの処理効率は高まる
つまり、頻繁に使うページはできるだけ実記憶に残して、滅多に使わないページをページアウトする
| アルゴリズム | 説明 |
|---|---|
| LRU(Least Recently Used) | 最後に参照されてから最も長い時間が経過したページを置き換える |
| LFU(Least Frequently Used) | 参照頻度が最も少ないページを置き換える |
| FIFO | 読み込んでから最も長い時間が経過したページを置き換える |
-
スラッシング:仮想記憶管理において、割り当てられる実記憶の容量が小さい時に、ページアウトとページインが頻繁に起こる現象
- スラッシングが発生すると、コンピュータ全体のスループットが低下する
4. データ管理
- ファイルシステム:2進数の羅列であるデータをファイルとして人間に扱いやすい形に変換する
- 特に知らない内容はなかったので、詳しくは書きません。(ディレクトリやパスの話でした)
- バックアップ
- フルバックアップ:常にすべてのデータをバックアップする
- 差分バックアップ:フルバックアップのデータで修復した後に、差分を加えて復旧する
- 増分バックアップ:前回のバックアップから新たに追加されたデータのみをバックアップすること
- レプリケーション:データのコピーを別のコンピュータ上に作成して、リアルタイムで内容を同期する
- アーカイブ:データを保管庫(アーカイブ)にコピーして長期間保存すること
| レプリケーション | バックアップ | アーカイブ | |
|---|---|---|---|
| 目的 | システムの継続 | データの復旧 | データの参照 |
| コピーのタイミング | リアルタイム | 数時間〜数日 | 数ヶ月〜数年 |