基本情報技術概論(第10回) 埼玉大学 理工学研究科 堀山 貴史 2008/6/26 基本情報技術概論 (第10回) 基本ソフトウェア (OS) (前回の続き) システムの信頼性 埼玉大学 理工学研究科 堀山 貴史 2008/01/23
前回の復習 ・ 制御プログラム (ジョブ管理、タスク管理、記憶管理) ・ 言語プロセッサ (コンパイラ、アセンブラ、インタプリタ) ・ サービスプログラム (ユーザインタフェース) システム ソフトウェア 応用 ソフトウェア アプリ ケーション ハードウェア 基本 ソフトウェア (OS) ユーザ ミドル ソフトウェア
前回の復習 (コンピュータの構成) 主記憶 (main memory, メモリ) に、 CPU 制御装置 演算装置 入力装置 主記憶装置 プログラムとデータを置く 制御装置 演算装置 入力装置 主記憶装置 出力装置 補助記憶装置
記憶の管理 主記憶に 複数のプログラム を置きたい 主記憶よりも 大きなサイズのプログラム を扱いたい 実記憶管理 プログラムから、実際の主記憶 (の大きさや番地) が見える スワッピング方式 / オーバーレイ方式 仮想記憶管理 プログラムからは、仮想記憶が見える OS が、仮想記憶と実記憶とを対応させる セグメント方式 / ページング方式 _________________ _________________
実行に関係のない プログラムを、 主記憶から 待避させる 実記憶管理(1) スワッピング方式 ________________ 主記憶に複数のプログラムを置きたい スワップアウト 実行に関係のない プログラムを、 主記憶から 待避させる 1. スワップ アウト プログラム D プログラム C プログラム B 2. 空き領域 に ロード プログラム E プログラム A OS 新しいプログラムを実行したい 主記憶装置 補助記憶装置
スワップアウト されていた プログラムを 主記憶に戻す 実記憶管理(1) スワッピング方式 主記憶に複数のプログラムを置きたい スワップイン スワップアウト されていた プログラムを 主記憶に戻す スワップ イン プログラム E ___ プログラム D プログラム A 実行を 再開したい 主記憶に空きが なければ、 他のプログラムを スワップアウト OS 主記憶装置 補助記憶装置
実記憶管理(2) オーバーレイ方式 主記憶よりも大きなサイズのプログラムを扱いたい 実行するプログラムを、セグメントに分ける 実記憶管理(2) オーバーレイ方式 ________________ 主記憶よりも大きなサイズのプログラムを扱いたい 実行するプログラムを、セグメントに分ける (OS ではなく) プログラム自身が ロードのタイミングを指定 ルート セグメント 必要な最大サイズ ルート セグメント A セグメント B A B C D セグメント C セグメント D 主記憶装置 ※ AとB、CとDは同時に使わない
OS が記憶領域の割当てと開放を繰り返す → こま切れの未使用領域 (断片) 合計では十分な空き領域があるが、 こま切れのため、使えない ? 用語: フラグメンテーション (断片化) OS が記憶領域の割当てと開放を繰り返す → こま切れの未使用領域 (断片) 合計では十分な空き領域があるが、 こま切れのため、使えない プログラム E プログラム D ? プログラム F OS 主記憶装置
仮想記憶 主記憶よりも大きなサイズのプログラムを扱いたい OS が必要な所を必要に応じてロードしてくれると便利 実記憶 プログラム OS 仮想的に用意する (仮想記憶という) プログラムは、実記憶 (のサイズや番地) を気にしなくてよい 分割 E 実記憶 分割 C プログラム 分割 D 分割 A OS が、 必要に応じてロード OS 分割 C 分割 B 分割 A 主記憶装置 補助記憶装置 仮想記憶
仮想記憶管理(1) セグメント方式 セグメント … 論理的に意味のある、分割単位 プログラムをセグメントに分割して、OS が管理 仮想記憶管理(1) セグメント方式 ________________ セグメント … 論理的に意味のある、分割単位 プログラムをセグメントに分割して、OS が管理 セグメントのサイズは、可変 (フラグメンテーションが起きる可能性あり)
仮想記憶管理(2) ページング方式 ページ … サイズ固定の分割単位 プログラムをページに分割して、OS が管理 ページフォルト 仮想記憶管理(2) ページング方式 ________________ ページ … サイズ固定の分割単位 プログラムをページに分割して、OS が管理 ページフォルト 必要なページが、実記憶に配置されていない ページ置き換え ページフォルトが発生したら 必要ないページを補助記憶に待避 (ページアウト) 必要なページを主記憶にロード (ページイン) _____________
ページ置き換えアルゴリズム F I FO F I FO … 最初に入ったページが、最初に出ていく どのページを必要ないと判断するか First-In First-Out どのページを必要ないと判断するか F I FO … 最初に入ったページが、最初に出ていく 次の仮想ページの参照に対し、実記憶の状態は F I FO により どのように変化するか示しなさい。 (H18年度 秋 改変) 割当て ステップ 参照する 仮想ページ 実記憶の状態 参考: Belady の例外 実記憶の割当て量を 増やすと、かえって ページフォールトが 増えることがある 1 1 1 - - 2 4 1 4 - 3 2 1 4 2 4 1 5 5 6 1
ページ置き換えアルゴリズム LRU LRU … 最も長く使われていないページを捨てる (最後に参照されてからの時間が最も長いページ) Least Recently Used どのページを必要ないと判断するか LRU … 最も長く使われていないページを捨てる (最後に参照されてからの時間が最も長いページ) 次の仮想ページの参照に対し、実記憶の状態は LRU により どのように変化するか示しなさい。 (H18年度 秋 改変) 割当て ステップ 参照する 仮想ページ 実記憶の状態 1 1 1 - - 2 4 1 4 - 3 2 1 4 2 4 1 5 5 6 1
⇒ ページング (ページイン と ページアウト) が 頻繁に発生 ⇒ 処理時間のほとんどがページング、 用語: スラッシング 実記憶が極端に小さいと … ⇒ ページング (ページイン と ページアウト) が 頻繁に発生 ⇒ 処理時間のほとんどがページング、 プログラム実行のスループットが極端に低下
時間的局所性 今 参照されている箇所は、 近い将来 にも参照される可能性が高い 空間的局所性 今 参照されている箇所の 近くの場所 が、 用語: 参照の局所性 時間的局所性 今 参照されている箇所は、 近い将来 にも参照される可能性が高い 空間的局所性 今 参照されている箇所の 近くの場所 が、 参照される可能性が高い ※ 仮想記憶やキャッシュは、 これらの局所性のおかげで有効に機能する
ソフトウェアの基礎
プログラミング言語 (プログラム言語) 汎用プログラミング言語 低レベル言語 プログラミング言語 (プログラム言語) 汎用プログラミング言語 低レベル言語 機械語 (マシン語) … 01 で作った命令 (CPUが解釈する) アセンブリ言語 … 機械語の命令に名前をつけて分かり易くしたもの (機械語と1対1対応) 高級言語 (高レベル言語) … 計算機アーキテクチャに依存しない C、Fortran 等 (手続き型言語) …処理手順を順番に書いた手続きを 単位としてプログラムを作る C++、Java 等 (オブジェクト指向言語) …オブジェクトを単位として プログラムを作る LISP (関数型言語)、Prolog (論理型言語) スクリプト言語 Perl、Ruby、Postscript など データと、それに対する操作(メソッド)
言語プロセッサ コンピュータは機械語(01の並び)しか実行できない 他の言語で書かれたプログラムは? 言語プロセッサで、ソースプログラムを、 言語プロセッサで、ソースプログラムを、 機械語で書かれた目的プログラムに変換 アセンブラ … アセンブリ言語を機械語に1対1対応 コンパイラ … 高級言語を機械語に変換 インタプリタ … スクリプト言語を、コンパイルせずに 実行時に命令を1つずつ順番に解釈 (会話的実行に優れる)
再配置可能 (relocatable) 再帰的 (recursive) ________________ 主記憶のどこに配置しても、実行可能 用語集: プログラムの特徴 ________________ 再配置可能 (relocatable) 主記憶のどこに配置しても、実行可能 例) 分岐先アドレスが○○番地に固定 … 再配置可能ではない → 相対アドレス指定にする 再帰的 (recursive) 手続きの内部から自分自身を呼び出すことができる 例) 階乗の計算 4! (つまり 4 x 3 x 2 x 1) = 4 x 3! 主記憶 プログラム プログラム ________________ f ( n ) { if (n == 1) then 1 else n x f ( n – 1 ) }
再入可能 (re-entrant) 再使用可能 (re-usable) ________________ 用語集: プログラムの特徴 (2) ________________ 再入可能 (re-entrant) 複数のタスクによって同時に実行されても、 それぞれに正しい結果を返す 再使用可能 (re-usable) 逐次再使用可能ともいう 主記憶上の同じプログラムを、複数のタスクが 1つずつ順番に実行できる 実行前か後に、データ領域を初期化する仕組みがある データ領域 A データ領域 (変数格納など)を 分ける タスク A 手続き部分 タスク B データ領域 B ________________
計算機システムの信頼性
フォールト トレラント (fault tolerant) 用語集: 信頼性の高いシステム ___________ フォールト トレラント (fault tolerant) 一部が故障しても、本来の機能を維持する 例) 連続稼動が必要なシステム、人命にかかわるシステム フェイル セーフ (fail safe) 故障が発生した時に、安全を維持する 例) エレベータのブレーキ制御が故障したら、自然とブレーキがかかる フェイル ソフト (fail soft) 故障が発生しても、(機能が全面停止せずに) 必要最小限の機能を維持する 例) 飛行機のエンジンが故障しても、滑空して緊急着陸する ___________ ___________
用語: バスタブ曲線 初期故障 → 偶発的な故障 → 消耗故障 → 故障頻度 時間
システムの稼働率 平均故障間隔 (Mean Time Between Failure) 平均修理時間 (Mean Time To Repair) 稼働率 = ___________ MTBF MTBF + MTTR 稼動 故障 稼動 故障 ・・・ MTBF MTTR
直列構成のシステム 稼働率 = Aの稼働率 x Bの稼働率 システム A システム B 稼働率 0.9 稼働率 0.8
並列構成のシステム 故障 = Aが故障 ∧ Bが故障 稼働率 = 1 - ( 1 - Aの稼働率 ) x ( 1 - Bの稼働率 ) システム A 稼働率 0.9 システム B 稼働率 0.8 故障 = Aが故障 ∧ Bが故障 稼働率 = 1 - ( 1 - Aの稼働率 ) x ( 1 - Bの稼働率 ) 例) 1 – (1 - 0.9) x (1 - 0.8) = 1 – 0.1 x 0.2 = 0.98 注: 稼動状態を全部考えても良い A 稼動 B 稼動、A 稼動 B 故障、A 故障 B稼動 0.9 x 0.8 + 0.9 x 0.2 + 0.1 x 0.8 = 0.98
直列と並列の混ざったシステム B C A D 部分ごとに、順番に稼働率を計算
以下のシステム全体としての稼働率はいくらか。 ここで、A ~ C の稼働率は、すべて 0.8 とする。 練習問題: 直列と並列の混ざったシステム 以下のシステム全体としての稼働率はいくらか。 ここで、A ~ C の稼働率は、すべて 0.8 とする。 (H19年度 秋) A B C
練習問題: フラグメンテーション (断片化) 練習問題: フラグメンテーション (断片化) (H19年度 春 改変) モジュール A ~ E を次の順で操作する。 操作終了時点で、 主記憶の空き領域は何か所存在するか。 ここで、主記憶は 500 kB、初期状態では何もロードされていない。また、モジュールは空き領域の先頭からロードする。 [操作] A ロード → B ロード → C ロード → B 解放 → D ロード → A 解放 → E ロード モジュール 大きさ (kB) A 200 B 100 C 150 D 80 E 90
この文面は、TOKYO TECH OCW の利用 条件を参考にしました この教材のご利用について この教材は、以下に示す利用条件の下で、著作権者にわざわざ許諾を求めることなく、無償で自由にご利用いただけます。講義、自主学習はもちろん、翻訳、改変、再配布等を含めて自由にご利用ください。 非商業利用に限定 この教材は、翻訳や改変等を加えたものも含めて、著作権者の許諾を受けずに商業目的で利用することは、許可されていません。 著作権の帰属 この教材および教材中の図の著作権は、次ページ以降に示す著作者に帰属します。この教材、または翻訳や改変等を加えたものを公開される場合には、「本教材 (or 本資料) は http://www.al.ics. saitama-u.ac.jp/horiyama/OCW/ の教材です (or 教材を改変したものです」 との旨の著作権表示を明確に実施してください。なお、この教材に改変等を加えたものの著作権は、次ページ以降に示す著作者および改変等を加えた方に帰属します。 同一条件での頒布・再頒布 この教材、または翻訳や改変等を加えたものを頒布・再頒布する場合には、頒布・再頒布の形態を問わず、このページの利用条件に準拠して無償で自由に利用できるようにしてください。
この教材のご利用について 配布場所 http://www.al.ics.saitama-u.ac.jp/horiyama/OCW/ この powerpoint ファイルの著作者 堀山 貴史 2007-2009 horiyama@al.ics.saitama-u.ac.jp 改変等を加えられた場合は、お名前等を追加してください 図の著作者 p. 2, 20 クリップアート : Microsoft Office Online / クリップアート その他 堀山 貴史