📝
30日後に基本情報技術者試験を受ける人によるまとめノート(4日目)
この記事について
29日後(2024年3月1日時点)に基本情報技術者試験を受ける自分が、学習のために記すまとめノート的なものです。
記事一覧はこちら
本文
OS
- OS
- WindowsやMacなどコンピューターとアプリの間で動作するソフトウェア
- 機能
-
ジョブ管理
- ジョブ(from User to CPU)の実行順序を管理する
-
スプーリング
- ジョブ管理の一手法
- プリンターの場合、CPUから命令するのでなく補助記憶装置に一度保存し、プリンターの速度に合わせてデータを送信する
- 一時記憶装置をバッファという
-
タスク管理
- タスク(from OS to CPU)の実行順序を管理する
-
マルチタスク
- 複数のタスクを頻繁にすばやく切り替えることで同時に実行されているように見せる
- CPU1コアは一つのタスクしか実行できない
-
プリエンプティブとノンプリエンプティブ
- プリ:CPU使用権をOSが管理する
- タスク実行中にCPU使用権を横取りして優先度の高いタスクに回せる
- ノン:CPU使用権をタスクが管理する
- 処理完了まで待つ必要がある
- プリ:CPU使用権をOSが管理する
-
タスクスケジューリング
- 複数のタスクの中からどのタスクを実行状態にするのかを決めること
- 到着順、処理時間順、優先度順、ラウンドロビン方式の4つがある
-
ラウンドロビン方式
- タスクを一定時間ごとに切り替える方式
-
記憶管理
- 記憶装置を効率的に利用する
-
仮想記憶管理
- 補助記憶装置(長期保存)の一部を主記憶装置であるように扱う
- 順番
- OSが論理的な記憶領域(仮想記憶) を作成する
- 主記憶装置(短期保存)上の論理的な記憶料理気を実記憶という
- セグメンテーション方式
- 仮想記憶と実記憶を「セグメント」といわれる可変長の領域に分割して管理する方式
-
ページング方式←頻出
- 仮想記憶と実記憶にアドレス(仮想アドレス・物理アドレス)が振ってある
- それぞれのアドレスをページテーブルで紐づける
-
ページフォールト
- 実記憶上に必要なページが存在しない場合に発生する割り込み
- 実記憶に空き容量がない場合は実記憶から補助記憶装置へ移すページアウトが発生する
- 必要なページを補助記憶装置から実記憶へ読み込むページインを発生させる
- 効率的に置き換える為、ページの置き換えアルゴリズムがある
- LRU(Last Recently Used)←頻出
- 使われていない時間が最も長いデータから
- LFU(Least Frequently Used)
- 参照頻度が最も少ないデータから
- FIFO(First In First)
- 読み込んでから最も長い時間が経過したもの(最古)から
- LRU(Last Recently Used)←頻出
- 実記憶の容量が少ない場合、ページイン・アウトが頻繁に実施されるスラッシングが起こる
-
データ管理
- データを管理する機能
-
ファイルシステム
- 二進数の数字のデータをファイルとして視覚化して人間にわかるようにする方法
- ツリー構造にて管理されている
- 相対パスや絶対パス、ルートとかが分かっていれば大丈夫なので省略。
-
バックアップ
- 普段使いの補助記憶装置からべつの 補助記憶装置上に予備を取っておくこと
- フルバックアップ
- すべてのデータをバックアップ
- 作業が楽
- 差分バックアップ
- 最初のフルバックアップ以降、新たに追加されるデータのみをバックアップすること
- 作業が大変になる
- 増分バックアップ
- 前回のバックアップから新規追加されたデータのみをバックアップすること
- バックアップがさらに大変になる
-
ジョブ管理
開発ツール
- プログラムをコンピューターに実行させるまでに使う
- コードの種類
-
ソースコード
- 人間が理解できるプログラム言語で書かれたコードのこと
-
オブジェクトコード
- コンピューターが理解できる0と1で書かれたコード
- ソースコードからオブジェクトコードへ変換する装置をコンパイラという
-
ソースコード
- コンパイラの動作
- 字句解析
- ソースコードを要素に分けて間違いがないかチェックする
- 構文解析
- ソースコードの文法があっているかチェックする
- 意味解析
- プログラムの手続きに矛盾がないかチェックする
- 最適化
- 効率的なプログラムに変換する
- コード生成
- オブジェクトコードに変換する
- 字句解析
- リンカ
- オブジェクトコードを実行するうえで必要となる別のライブラリやコードを1つにまとめるツール
- 実行できるプログラムをロードモジュールという。
- インタプリタ
- ソースコードを1文ずつ解釈しながら実行する
- 効率よく開発できるが、実行時の効率が悪い
OSS(オープンソースソフトウェア)
- ソースコードが公開されていて自由に閲覧・変更できるライセンス
- Eclipse
- OSSの統合開発環境
- そのほかには商用ソフトウェアやパブリックドメインソフトウェアなどがある
- コピーレフトとは2次著作物にもオリジナルと同じ配布条件を求める考え方
Discussion