応用情報技術者 基本ソフトウェア(GNU,GPL、OS、API、実記憶・仮装記憶、サーバー仮想化、固定長)


基本ソフトウェア(OS)とは

コンピュータを制御するもの。人間で言うところの、CPUが脳みそで、この脳みそをコントロールする部分がOS

基本的には、下に書いてある「制御プログラム」のことを狭義の意味でOSという。

GNU,GPL

GNU
オペレーティングシステム であり、かつコンピュータソフトウェアの広範囲に渡るコレクション

GPL
GNU プロジェクトのためにリチャード・ストールマンによって作成されたライセンス
GNU Emacs General Public License を一般化した

API(アプリケーションプログラムインターフェース)とは

OSがアプリを正常に動かすために、画一化されたマニュアルのこと。

数学でいうところの公式と同じ

✅デバイスドライバ
ハードウェアをOSなどのアプリケーションプログラムによって、制御できるようにするためのソフトウェア

1.OSの働き

ジョブ管理

ユーザーがコンピュータに対して出した命令を、効率よく処理するための管理

ジョブ管理で、ユーザーとの仲介をするのがマスタスケジューラ。
ユーザーはマスタスケジューラに対して、ジョブの実行をお願いする

タスク管理

ジョブの一つ一つの細かい内容(タスク)を管理する

実行可能状態
実行状態
待機状態

の3つの状態がある

ディスパッチャー

実行状態のどのタスクを処理するべきかを、CPUに指令するもの
消防局のオペレーターのような役割を果たす

📌タスクスケジューリング

ディスパッチャが、タスクの順序を決める基準

タイムクォンタム

実行→可能 の遷移は、予め決められた時間が経過した時にも行われる
この時間のこと

⚪︎ディスパッチング

可能→実行 に移してもらえること

⚪︎プリエンプション

実行→可能 に移されてしまうこと

優先度の高いものから順に 可能→実行となるため
優先度の低いものは、よくプリエンプションされがち

⚪︎ノンプリエンプション

実行可能になった順番にタスクを実行し、いったん処理を開始したら終了するまで連続して実行する


タスクスケジューリングの方式

✅到着順方式

タスクを順に、「実行可能状態」→「実行状態」に変えていくノンプリエンプティブ

✅処理時間順

処理時間の短いものから順に 〃 変える

✅優先度順方式

優先度の高いタスクから順に 〃 変えるプリエンプティブ

✅ラウンドロビン方式

一定のクォンタムが過ぎたら次の処理に移り、後回し(実行→実行可能)にされる

✅多重待ち行列

ラウンドロビン+優先度

📌マルチプログラミングと割り込み処理

CPUと、入力装置、出力装置で協力し合ってタスクを処理することがマルチプログラミング

効率よく処理するための方法が割り込み処理
時にはタスクを中断したり、元のタスクに復帰することも大切。

割り込みの種類

内部割り込み

実行中のプログラムに起因する割り込み

外部割り込み

実行中のプログラム以外に起因する割り込み

割り込みの緊急度(マスカブル・ノンマスカブル)

◯マスカブル
無視しても良い、緊急性の低い割り込み

◯ノンマスカブル
無視できない、緊急性の高い割り込み

割り込み処理の例題

①メイン処理と割り込み処理の問題
(メイン処理↔︎割り込み処理)

②CPUとI/O(インプット&アウトプット)のふるまい
遊休時間とは、CPUが動いていない間のI/Oの時間のこと

スプーリング

CPUー低速の入出力装置間のデータ転送を、高速の補助記憶装置に仲介させる技術

プリンタの印刷時によく使われ
CPUープリンタ間に、補助記憶装置を入れて、そこにデータを保存

✅バッファ

処理・転送速度の異なる二つの装置の差を緩和するための
一時的な記憶領域

2.実記憶管理

限られた主記憶(メモリ)の空間を効率よく使うこと

固定区画方式

✅単一区画方式
一つのプログラムしかロードできない

✅多重区画方式
予め区画を決めて、そこにプログラムをロードする
※ただし、区画を分けて生じた余りのスペースは使用できない。ムダとなる

可変区画方式

必要に応じて区画のサイズが変化する

※ただし、終了するプログラムから順に空きが生じる。そのため、断片的にプログラムが残ってしまう(フラグメンテーション(断片化))

解消するためには、プログラムを詰めてあげれば良い(メモリコンパクションもしくは、ガーベジコレクション)


3.仮想記憶

仮想上の、実際よりも広大なメモリ空間を使用して記憶させること

ページング方式とは

プログラムを「ページ」と言う単位に分割して管理する方式。
普通は、「ページテーブル」を参照して、必要なページのみを実記憶に読み込ませる

目的のページが主記憶上にない場合→ページフォルトとなる

主記憶に、補助記憶からページを読み込む

ページイン

この主記憶にページを読み込むこと

ページアウト

実記憶が満杯のとき、既にあるページから何か追い出すこと

※ページアウトが多いと、システム効率が下がる
この現象を「スラッシング」という

📌回数の違い(過去問で出た)

ページフォルト=ページイン≧ページアウト

ページアウトの方式

✅FIFO(first in first out)

最初にページインしたものを追い出し対象にする

✅LIFO(last in first out)

最後に     〃

✅LRU(least recently used)

一番長い間参照されてない  〃

✅LFU(least frequently used)

一番参照された回数が少ない 〃

サーバー仮想化

✅ホスト型(ホステッド型)

複数のVMは、ゲストOSによって制御
その下にホストOSが必要
基本的にテスト用

✖ 動作が重い

(例)
・VMware Workstation Player
・VMware Fusion
・Oracle VM Virtualbox

✅ハイパーバイザー型(ベアメタル型)

複数のVMは、ゲストOSによって制御
その下にホストOSが不要!!!
基本的に業務用

◎ 高速・効率よくリソースを使える

(例)
・Vmware ESXi
・Linux KVM
・Microsoft Hyper-V
・Citrix Xen Server
・Red Hat Enterprise Virtualization(RHEV)

コンテナ型

複数のコンテナは、ホストOSは必要だが、ゲストOSがいらない!!!

(例)
Docker


この記事が気に入ったらサポートをしてみませんか?