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