講義資料 - 堀山研究室

Download Report

Transcript 講義資料 - 堀山研究室

基本情報技術概論 (第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