うろ覚えだった知識をまとめてみたよ【ソフトウェア編①】
学習エントリ。 全体的な知識の底上げをすべく、復習も兼ねてまとめてみる。
OSとは
OS(オペレーティング・システム)はコンピュータに関わる様々な装置を管理するソフトウェア。高性能なCPU、大容量のメモリ、ネットワークカードなどを管理するにはしっかりとした管理が必要
OSを表す用語
- シングルタスク:同時に複数のプログラムを実行することができない。1つだけ。
- マルチタスク:同時に複数のプログラムを実行することができる。OSによるタスク管理のおかげ。
- リアルタイムOS:定められた時間内に処理を完了させる機構をもつOS。
- シングルユーザ:OSを一つのユーザだけが利用できること。
- マルチユーザ:OSを複数のユーザが利用できること。
- CUI:コマンドラインを使用する形態。
- GUI:ウィンドウやメニューを使用する形態。
代表的なOSはUnix系OS、Windows、MacOS、Android、iOS
OSの3大機能
- タスク管理:CPUを休まずに働かせる為のスケジュール管理を行う
- 記憶管理:メモリを有効に活用するための管理を行う
- ジョブ管理:ジョブの実行に必要な資源の予約や開放を行い、効率よくジョブを処理する為の管理を行う。
タスクとジョブの違い
- タスク:コンピュータから見た仕事の単位。1プログラムが1タスク。
- ジョブ:人間から見た仕事の単位。料金の計算し請求書を発行する、など。大体複数のタスクが一つのジョブを作る。
カーネルとシェル
カーネル:OSの中核の部分。 シェル:ユーザが入力したコマンドを解釈し、カーネルに伝えるもの
記憶管理
メモリ領域を管理する。実記憶管理と仮想記憶管理がある。
実記憶管理
コンピュータに実際に搭載されている主記憶の領域を実記憶空間という。 固定区画方式:実記憶空間を一定区間のサイズに区切り、区間単位で領域を割り当てる。区間ピッタリのサイズなんてほぼ無いので、どうしてもあまりができちゃう→内部フラグメンテーション 可変区画方式:データひとつひとつに合わせた区画を用意する。しかし区画と区画の間に細かい未使用領域が出来てしまう→外部フラグメンテーション しかし可変区画方式においては、ある程度未使用領域が増えてきたら、これらをまとめる操作を行う。これをメモリコンパクションという。
メモリオーバーレイ
家電製品などには主記憶が少量しか搭載されていないこともある。例えば64kbとか。このシステムで100kbのプログラムを動かす技術をメモリオーバーレイという。メモリオーバーレイではプログラムを機能単位で分けて、必要なセグメントだけメモリに読み込む。しかし←は自分でプログラムする必要があるので、まあ手間かかる。
仮想記憶装置
主記憶の要領以上に領域が使えるようになる。
ページング方式
実記憶空間と違って、OSがプログラムに見せているメモリ領域を仮想記憶空間という。実記憶空間よりも大きいサイズの仮想記憶空間をみせることで、プログラムでは主記憶以上の要領のメモリ領域を使える。まあ実際はOSが実記憶空間をうまいことやりくりして、サイズの大きな仮想記憶空間が実在するかのように振る舞ってるだけだけど。ページング方式はそのやり方の一つで、仮想記憶空間と実記憶空間をページという単位で管理する。プログラムはページを指定して実行する。実行する前にページが実記憶空間にあるかチェックする。実記憶空間にないことをページフォルトという。その場合実記憶に入れる必要がある。入れることをページインという。ページイン時に実記憶空間に空きがない場合、いらないものをハードディスク装置に対比させる(ページアウト)
ページ置き換えアルゴリズム
ページアウトの際に、いらないのはどれかを選ぶアルゴリズム LRU:最後にアクセスしてから最も長い時間を経過しているものを捨てる FIFO:最初にページインされたページを選ぶ
スラッシング
実記憶空間(=主記憶の容量)が極端に小さい場合、ページインとページアウトを繰り返してしまう。これをスラッシングといい、システム全体の性能が極端に低下しちゃう。スラッシングが発生した時は、プログラムの同時起動数を減らしたり、主記憶の増設などが必要。