OS(オペレーティングシステム)
-
ジョブ管理
- ジョブの「実行順序**」**の管理をする機能。
- ジョブとは、「ユーザーがコンピュータに依頼する仕事**」**の単位
- アプリケーションとハードウェアを繋ぐ橋
-
スプーリング
「CPU」と「低速の入出力装置」の間のデータ転送を「高速の補助記憶装置」に仲介させる技術
-
バッファ
- スプーリングで使用する「高速の補助記憶装置」のことを「バッファ」「緩衝記憶装置」という
- CPUと主記憶装置の差を補う「キャッシュメモリ」もバッファ
- 主記憶装置とハードディスクの差を補う「デジスクキャッシュ」もバッファ
-
タスク管理
- 「タスクの実行順序」の管理をする機能
- タスクとは、「OSがCPUに出す命令」の単位
-
マルチタスク
- 複数のタスクを「あたかも同時に実行されている」ように見せる技術
- 本当は「頻繁に素早くタスクを切り替えているだけ」
- CPUは一度に一個しか作業を実行できない
-
タスクを切り替える方法
-
プリエンプティブ
- CPUの使用権を「OS」が管理する方法
- 主流
-
ノンプリエンプティブ
- CPUの使用権を「タスク」が管理する方法
-
タスクの移動
-
ディスパッチ
実行可能状態から実行状態に移動すること
-
プリエンプション
実行状態から実行可能状態に移ること
-
-
-
タスクスケジューリング
名前 説明 到着順方式 実行可能状態になった順番に処理する方式 優先度順方式 タスクに優先度を設定し、優先度順に処理する方式 動的優先度順方式 基本は優先度順方式と同じだが、待ち時間の長さに応じて優先度を徐々に上げていく方式 ラウンドロビン方式 CPUを使用する時間を定め、その時間内に処理が終わらない場合は、次のタスクに使用権が与えられる方式 多重待ち行列方式 ラウンドロビン方式に優先順位を加味させた方式 処理時間順方式 タスクの処理時間が短いものから処理する方式 イベントドリブン方式 マウス操作によるイベントでCPUの使用権を切り替える方式 -
記憶管理
- 記憶装置を効率的に利用するための機能
- 仮想記憶管理
-
「補助記憶装置」の一部をあたかも「主記憶装置」であるかのように扱う方式
-
セグメンテーション方式
仮想記憶(論理的な記憶領域)と実記憶(主記憶装置の物理的な記憶領域)を「セグメント(可変長)」の領域に分割して管理する方法
-
ページング方式
仮想記憶(論理的な記憶領域)と実記憶(主記憶装置の物理的な記憶領域)を「ページ(固定長)」の領域に分割して管理する方法
-
ページテーブル
「仮想アドレス(仮想記憶のアドレス)」と「物理アドレス(実記憶のアドレス)」は「ページテーブル」と呼ばれる表で管理
-
ページイン
「プログラムを実行するページが実記憶にない」場合、ページフォールトが割り込みした後、補助記憶装置から実記憶へページを書き込むこと
-
ページフォールト
「プログラムを実行するページが実記憶にない」場合は、「ページフォールト」という割り込みが発生する
-
ページアウト
「実記憶に空きがない場合」実記憶から補助記憶へページを書き出すこと
- 置き換えアルゴリズム(どのページを書き出すのか)
- LRU(Least Recently Used)
- LFU(Least Frequency Used)
- FIFO(First In First Out)
- 置き換えアルゴリズム(どのページを書き出すのか)
-
スラッシング
- 割り当てられる実記憶が小さい時にページイン、ページアウトが頻繁に起こること
- スループット(処理能力)が低下する
-
-
-
データ管理
- ファイルシステム
- データのまとまりを「ファイル」として扱うこと
- ディレクトリ
- ファイルを格納する場所
- ツリー構造で管理
-
ルートディレクトリ
最上位のディレクトリ
-
カレントディレクトリ
ユーザーの作業中のディレクトリのこと
-
パス
- ファイルやディレクトリを示す文字列
- 「/」で区切る
- 「/」で始まる時はルートディレクトリからの始まりを表す(絶対パス)
- 「.」はカレントディレクトリを表す(「./」でカレントディレクトから)
- 「..」は一回層上を表す
-
- バックアップ
- フルバックアップ
- 常に全てバックアップをとる
- 時間かかる。復旧簡単
- 差分バックアップ
- フルバックアップ以降の新たなデータのみバックアップ
- 時間まあまあかかる。復旧まあまあ簡単
- 増分バックアップ
- 前回のバックアップからの増分のみバックアップ
- 時間かからない。復旧大変
- フルバックアップ
開発ツール
-
ソースコード
- 人間が読みやすいプログラミング言語で書かれたプログラム
-
オブジェクトコード
-
0,1に変換されたプログラム
-
リンカ
オブジェクトコードにライブラリを追加するツール
-
ロードモジュール
リンカで生成された「実行可能プログラム」
-
-
-
コンパイラ
- ソースコード→オブジェクトコードに変換
- 手順(最適化コンパイラ)
- 字句解析(ソースコードの間違いチェック)
- 構文解析(プログラムの文法チェック)
- 意味解析(プログラムの手続きチェック)
- 最適化(計算の順序などを改善、効率の良いプログラムに変換)
- コード生成(オブジェクトコードを生成)
-
テストツール
-
静的テスト
-
プログラムは実行せず、ドキュメントやソースコードをチェックすること
-
ソースコード解析ツール
プログラムの誤りをチェックするテストツール
-
-
動的テスト
- プログラムを実行しテストすること
-
-
インタプリタ
- ソースコードを一文字づつ解釈しながら実行するツール
- コンパイラは一括解釈、実行
オープンソースソフトウェア(OSS)
-
一般公開されているソースコード
-
Eclipse
- OSSの統合開発環境
- 統合開発環境
- 「IDE」
- テキストエディタやコンパイラ、テストツールなど、開発に必要なツールが一つにまとまったソフトウェア
-
コピーレフト
プログラムの著作権は作者にあるが、誰でもプログラムの複製、改変、再配布ができ、さらに「2次著作物にオリジナルと同じ配布条件を適用する」こと