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