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

Slides:



Advertisements
Similar presentations
オペレーティングシステムJ/K 2004年10月18日(5時限目)
Advertisements

オペレーティングシステム (仮想記憶管理)
情報検索概説II 第8回 パソコン組み立てと記憶装置 1999/11/25.
計算機工学III オペレーティングシステム #14 ファイル: より進んだファイルシステム 2006/07/21 津邑 公暁
基本情報技術概論(第10回) 埼玉大学 理工学研究科 堀山 貴史
Ibaraki Univ. Dept of Electrical & Electronic Eng.
計算機システムⅡ キャッシュと仮想記憶 和田俊和.
セキュリティ機構のオフロードを考慮した仮想マシンへの動的メモリ割当
第6回 仮想記憶とページング ページング ページ取り出し方式 ページ置き換え方式 中間テスト(40分)
オペレーティングシステム 第10回 仮想記憶管理(1)
システムソフトウェア講義の概要 計算機システムの復習:中央演算処理装置(CPU),プログラムの実行,主記憶装置,補助記憶装置
記 憶 管 理(1) オペレーティングシステム 第9回.
計算機工学III オペレーティングシステム #9 主記憶管理:ページング 2006/06/09 津邑 公暁
基本情報技術概論(第12回) 埼玉大学 理工学研究科 堀山 貴史
計算機システムⅡ 主記憶装置とALU,レジスタの制御
計算機システム概論・4回目 本日のトピック:メモリの管理と仮想記憶 メモリ管理におけるOSの役割 メモリの割当方法について
オペレーティングシステム 第11回 仮想記憶管理(2)
オペレーティングシステム 第9回 実記憶管理 38号館4階N-411 内線5459
坂井 修一 東京大学 大学院 情報理工学系研究科 電子情報学専攻 東京大学 工学部 電気工学科
オペレーティングシステムJ/K 2004年10月7日
記 憶 管 理(2) オペレーティングシステム 第10回.
ソフトウェア階層 分類 具体例 応用ソフト 基本ソフト アプリケーションソフト 個別アプリケーション SEやユーザが開発するプログラム
オペレーティングシステムJ/K 2004年11月4日
オペレーティングシステム 第12回 仮想記憶管理(3)
第7章 データベース管理システム 7.1 データベース管理システムの概要 7.2 データベースの格納方式 7.3 問合せ処理.
Ibaraki Univ. Dept of Electrical & Electronic Eng.
第3回 CPUの管理と例外処理 OSによるハードウェアの管理 CPUの構成、動作 CPUの管理 例外処理、割り込み処理 コンテキストスイッチ
オペレーティングシステム (割り込み処理)
Ibaraki Univ. Dept of Electrical & Electronic Eng.
第5回 CPUの役割と仕組み3 割り込み、パイプライン、並列処理
割 込 み(1) オペレーティングシステム No.5.
オペレーティングシステム i386アーキテクチャ(2)
割り込み.
割り込み.
計算機システムⅡ 入出力と周辺装置 和田俊和.
専門演習Ⅰ 国際経済学部 国際産業情報学科 2年 石川 愛
メモリ管理 4.3, 4.4 章 さだ.
型付きアセンブリ言語を用いた安全なカーネル拡張
オペレーティングシステム (仮想記憶管理)
オペレーティングシステム (仮想記憶管理)
コンピュータを知る 1E16M009-1 梅津たくみ 1E16M017-8 小沢あきら 1E16M035-0 柴田かいと
VM専用仮想メモリとの連携による VMマイグレーションの高速化
仮想メモリを用いた VMマイグレーションの高速化
オペレーティングシステム イントロダクション
仮想計算機を用いたサーバ統合に おける高速なリブートリカバリ
Ibaraki Univ. Dept of Electrical & Electronic Eng.
オペレーティングシステムJ/K (仮想記憶管理)
第7回 授業計画の修正 中間テストの解説・復習 前回の補足(クロックアルゴリズム・PFF) 仮想記憶方式のまとめ 特別課題について
コンピュータの基本構成について 1E16M001-1 秋田梨紗 1E16M010-2 梅山桃香 1E16M013-3 大津智紗子
アルゴリズムとデータ構造1 2005年7月5日
未使用メモリに着目した 複数ホストにまたがる 仮想マシンの高速化
オペレーティングシステムJ/K 2004年11月15日2時限目
オペレーティングシステム (ファイル) 2009年11月9日
組込みシステムとは コンピュータ制御システム?
第5回 メモリ管理(2) オーバレイ方式 論理アドレスとプログラムの再配置 静的再配置と動的再配置 仮想記憶とメモリ階層 セグメンテーション
オペレーティングシステム (プロセススケジューリング)
第4回 メモリ管理 主記憶(メインメモリ)の管理 固定区画方式と可変区画方式 空き領域の管理 スワッピング.
2013年度 プログラミングⅠ ~ 内部構造と動作の仕組み(2) ~.
オペレーティングシステムJ/K (管理のためのデータ構造)
アルゴリズムとデータ構造1 2006年6月23日
アルゴリズムとデータ構造1 2009年6月15日
オペレーティングシステムJ/K (並行プロセスと並行プログラミング)
オペレーティングシステム (ファイル) 2006年11月16日
オペレーティングシステム (ファイル) 2008年11月17日
オペレーティングシステム (プロセススケジューリング)
プログラムの一時停止時に 将来の実行情報を提供するデバッガ
「コンピュータと情報システム」 02章 ハードウェア
IPmigrate:複数ホストに分割されたVMの マイグレーション手法
アルゴリズムとデータ構造 2010年6月17日
Ibaraki Univ. Dept of Electrical & Electronic Eng.
Presentation transcript:

オペレーティングシステム (割り込み&仮想記憶管理) 2009年11月2日 酒居敬一(sakai.keiichi@kochi-tech.ac.jp) http://www.info.kochi-tech.ac.jp/k1sakai/Lecture/OS/2009/

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

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

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

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

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

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

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

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

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

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

[Intel, ``Software Developer Manual’’]

[Intel, ``Software Developer Manual’’]

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

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

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

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

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

[Intel, ``Software Developer Manual’’]

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

[Intel, ``Software Developer Manual’’]

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

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

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

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

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

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