Presentation is loading. Please wait.

Presentation is loading. Please wait.

オペレーティングシステム (割り込み&仮想記憶管理)

Similar presentations


Presentation on theme: "オペレーティングシステム (割り込み&仮想記憶管理)"— Presentation transcript:

1 オペレーティングシステム (割り込み&仮想記憶管理)
2009年11月2日

2 割り込みの発生要因 (リセット端子のアサート) 割込み端子のアサート 命令実行中の例外発生 ソフトウェア割込み命令の実行
リセットを最強の割り込みと位置付けるシステムもある 割込み端子のアサート マスク不可能割込み(NMI) 例: メモリのECCエラー(続行不可能) マスク可能割込み(通常の外部割込み) 命令実行中の例外発生 復帰可能割込み 例: ページフォルト、セグメンテーションフォルト 復帰不可能割込み 例: 未定義命令実行、ダブルフォールト ソフトウェア割込み命令の実行

3 割込み要因と割込み処理の関連付け 固定アドレス割り込み ベクタード割り込み エントリーポイントは固定
一般には要因をソフトウェアで解析して分岐 ハードウェアが単純 ベクタード割り込み 各要因に割込みベクタが用意されている ベクタテーブルに処理プログラムのエントリーポイントを記述 柔軟な構成が可能

4 固定アドレス割り込み 割り込み要因ごと、固定のエントリポイント 外部割込みの場合、プロセッサに準備された端子の数しかエントリポイントがない
単純なプロセッサのハードウェア 少ない割り込み処理オーバーヘッド 外部割込みの場合、プロセッサに準備された端子の数しかエントリポイントがない たとえば、優先レベルごとに1端子づつ… 要因の解析、該当の処理へ分岐、が必要 ソフトウェア処理が多くなる

5 ベクタード割り込み 割り込みの要因ごと、ベクタ番号が付加 エントリーポイントはベクタテーブルから引く プロセッサによる例外:プロセッサが生成
外部割込み:割り込みコントローラが生成 ソフトウェア割り込み:命令オペランドで指定 エントリーポイントはベクタテーブルから引く ベクタテーブルは主記憶上に置かれる プロセッサは特別なバスサイクルを生成 ベクタ番号をデバイスから取得(外部割込みの場合) ベクタ番号をもとに、割り込みベクタを主記憶から取得 プロセッサにはベクタテーブルの位置を保持するレジスタがある

6 割り込み処理とマルチタスク 似ているところ 似ていないところ 実行の流れ(スレッド)が複数ある スレッドどおし干渉しない 実行優先順位
階層的か対等か 割り込み許可・不許可(マルチタスクには???)

7 記憶階層(45ページ) (0次記憶、短期記憶) 一次記憶(長期記憶) 二次記憶(外部記憶) CPU内部のレジスタ
主記憶(通常はRAM)のこと 電力の供給を絶てば、記録内容は失われる 二次記憶(外部記憶) HDDやフロッピーやフラッシュドライブなど 電力の供給がなくても、記録し続けるしくみがある 大容量とか可搬であるとか利点をもつが、一般に低速 プロセッサの動作速度に対して、速いか遅いかを考える プロセッサ 数百ps, 高速SRAM 数ns, DRAM数十ns, HDD 数ms

8 小容量だがアクセス速度の速いSRAMもある 記憶の参照は局所性がみられることが多い
一次記憶 一般にRAMとしてDRAMが使われる DRAMは大容量だがアクセス速度が遅い RAMの中ではコストパフォーマンスがよい 通常、お金は有限なのです… ただし、リフレッシュが必要 小容量だがアクセス速度の速いSRAMもある  記憶の参照は局所性がみられることが多い DRAMに高速SRAMを組み合わせるのが一般的 このときの高速SRAMはキャッシュと呼ばれている CPUはせっかちさんだからね…

9

10 2つ以上の状態間で遷移でき、状態維持にエネルギーを消費しないものを利用して記録する
二次記憶 2つ以上の状態間で遷移でき、状態維持にエネルギーを消費しないものを利用して記録する 磁化を利用する HDDやフロッピーやDAT(磁界を変調して書く、磁界を読む) 光磁気ディスクやMD(磁界を変調して書く、カー効果で読む) 電荷を利用する フラッシュROM(電荷を注入して書く、閾値の変化で読む) 結晶構造を利用する CD-RW(加熱による相変化で書く、相変化を読む) 入出力命令で装置上のデータを読み書きする CPUがメモリを参照するのとは少し違う

11 記憶管理技法(46ページ) フェッチ技法 割付け技法 置き換え技法 要求時 プリフェッチ 連続割付け 非連続割付け スワッピング FIFO
単一連続割付け 分割割付け 固定区画割付け 可変区画割付け 非連続割付け ページング セグメンテーション 置き換え技法 スワッピング FIFO OPT LRU

12 記憶領域の保護 TEXT DATA BSS STACK 命令を置くための領域 書き込むことはあり得ない 命令はロードモジュールに含まれる
初期値つき静的変数を置く領域 初期値はロードモジュールに含まれる BSS 初期値なし静的変数を置く領域 STACK 動的変数や一時変数を置く領域

13 [Intel, ``Software Developer Manual’’]

14 [Intel, ``Software Developer Manual’’]

15 プロセスの中では記憶領域を自由に配置・獲得・使用したい!
[大久保英嗣, オペレーティングシステムの基礎] プロセスの中では記憶領域を自由に配置・獲得・使用したい!   記憶領域に関しても現実と切り離して、仮想的な存在とする                  仮想記憶(55ページ)

16 有限の資源である主記憶のプロセスへの割付け
仮想記憶に必要なこととは? 有限の資源である主記憶のプロセスへの割付け ページング (現在ではセグメンテーションは単体では使われない) アドレス変換 セグメンテーション プロセス固有の領域を保護

17 アドレス変換 ページングによるもの セグメンテーションによるもの ページという固定の単位ごとにアドレスを変換 変換はアドレス変換表を使用
自由自在な変換ができる 高速化のためにTLBを使う 連想記憶機構を使った変換表のキャッシュ 領域は物理的に分割したもの(構造が無い) セグメンテーションによるもの 任意の大きさの領域を変換 領域は一般に論理セグメントに対応(構造がある)

18 ページングによるアドレス変換 [Intel, ``Software Developer Manual’’]

19 ページングによるアドレス変換 [Intel, ``Software Developer Manual’’]

20 [Intel, ``Software Developer Manual’’]

21 セグメンテーションによるアドレス変換 [Intel, ``Software Developer Manual’’]

22 [Intel, ``Software Developer Manual’’]

23 ページングとセグメンテーションは組み合わされることが多い
[Intel, ``Software Developer Manual’’] ページングとセグメンテーションは組み合わされることが多い

24 ページングアルゴリズム(58ページ) 目的はページフォルト率を最小化
FIFO 主記憶上の最も古いページを選択しページアウト ページインした順にページアウトする 特別なハードウェアはいらない OPT 将来のページ使用を見てページアウト 現実には実装できない。性能評価の際の指標 LRU 参照の時間的局所性を利用したものである 主記憶上で最も使われなかったページをページアウト ハードウェア機構が必要である

25 LRUアルゴリズム カウンタ スタック 参照ビット 時間を計時するため、カウンタを設ける 各ページは最終参照時刻を保持する
最も古くに参照されたページを線形検索しページアウト スタック 参照されたページ番号をスタックトップに移動する スタックボトムがページアウト対象を示す 参照ビット 定期的にページ参照があったかをソフトウェアで調査 荒い時間刻みでLRUを実装したことに相当 擬似LRUとも呼ばれる

26 割付け技法 大域割付け 局所割付け システム内に、ページ枠の集合はひとつ ページのプロセスの所属とは無関係に割付ける
プロセスでは、各々のページ枠集合から割付け ページ枠の集合をプロセスごとに持たせる 均等割付け(ページ枠数÷プロセス数) 比例配分割付け(ページ枠数×仮想記憶量÷全仮想記憶量) ワーキングセット プロセスが活発に参照した領域(ワーキングセット)を維持 ワーキングセットの決定には発見的手法が必要

27 1次記憶(主記憶、RAM)と2次記憶(HDD)の関係
記憶割付けに関して 要求時ロードとページ置き換え 実記憶を超えた容量の仮想記憶が割付け可能 プログラムやデータは参照される瞬間だけ実記憶に存在していればよい(そのように維持されればよい)。 1次記憶(主記憶、RAM)と2次記憶(HDD)の関係 1次記憶は2次記憶のキャッシュ 記憶の実態は2次記憶装置上にある 2次記憶は1次記憶が不足したときの退避領域 スラッシング ページインとページアウトが激しく起きている状態 実記憶容量より仮想記憶容量が大きく、参照の局所性が期待できないときに起こることが多い。

28 サスペンドとハイバネーション サスペンド ハイバネーション レジューム CPUは動作停止。内部情報の保持のため電力供給。
メモリ(通常はDRAM)はリフレッシュ動作のみ継続。 周辺デバイスは内部状態をメモリ等に退避して電力供給を停止。 ハイバネーション すべてのデバイスは動作停止。電力供給も停止。 二次記憶装置などに内部状態を退避。 レジューム CPU/メモリ/周辺デバイスの状態を復帰して、実行再開


Download ppt "オペレーティングシステム (割り込み&仮想記憶管理)"

Similar presentations


Ads by Google