280 likes | 509 Views
ソフトウェア 記憶の管理 と 仮想記憶. 基本情報技術概論 ( 第 14 回 ). 埼玉大学 理工学研究科 堀山 貴史. 情報処理技術者試験の過去問 http://www.jtec.ipa.go.jp/. 期末試験. 7/30 ( 木 ) 3, 4 限 工 -11 教室 ( 要確認 ) 試験範囲 : 中間試験以後、 7/23 の講義分まで アルゴリズムとデータ構造 ( 第2部 , 第 10 部 01) ソフトウェア ( 第 4 部 01 ~ 09, 第 10 部 03 該当部分 )
E N D
ソフトウェア 記憶の管理 と 仮想記憶 基本情報技術概論 (第14回) 埼玉大学 理工学研究科 堀山 貴史
情報処理技術者試験の過去問 http://www.jtec.ipa.go.jp/ 期末試験 • 7/30 (木) 3, 4 限 工-11 教室 (要確認) • 試験範囲: 中間試験以後、7/23 の講義分まで • アルゴリズムとデータ構造 (第2部, 第10部 01) • ソフトウェア (第4部 01~09, 第10部 03 該当部分) • 確率と統計 (7/23 に実施) • 持ち込み不可 • 荷物はイスの下に。 • 机の上 や 机の棚に 物がある場合は、 不正行為とみなします。 • 問題用紙や解答用紙の配布を始めたら、私語厳禁。(私語も不正行為とみなします。)
前回の復習: ソフトウェアの体系 • 制御プログラム • スーパバイザ • 制御 (管理) やユーザプログラム実行の監視 • ジョブ管理、タスク管理、記憶管理 • データ管理、運用管理、障害管理 • 言語プロセッサ • コンパイラ、アセンブラ、インタプリタ • サービスプログラム • ユーザインタフェース ユーザ アプリケーションソフトウェア 基本ソフトウェア (OS) ハードウェア
ずいぶん前の復習: コンピュータの構成 CPU • 主記憶 (main memory, メモリ) に、 プログラムとデータを置く 制御装置 演算装置 入力装置 主記憶装置 出力装置 補助記憶装置
記憶の管理 • 主記憶に 複数のプログラム を置きたい • 主記憶よりも 大きなサイズのプログラム を扱いたい • 実記憶管理 プログラムから、実際の主記憶(の大きさや番地)が見える • スワッピング方式 / オーバーレイ方式 • 仮想記憶管理 プログラムからは、仮想記憶が見えるOS が、仮想記憶と実記憶とを対応させる • セグメント方式 / ページング方式 _________________ _________________
実記憶管理(1) スワッピング方式 ________________ • 主記憶に複数のプログラムを置きたい スワップアウト 実行に関係のないプログラムを、主記憶から待避させる 1. スワップ アウト プログラム D プログラム C プログラム B 2. 空き領域 に ロード プログラム E プログラム A OS 新しいプログラムを実行したい 主記憶装置 補助記憶装置
実記憶管理(1) スワッピング方式 • 主記憶に複数のプログラムを置きたい スワップイン スワップアウトされていたプログラムを主記憶に戻す スワップ イン ___ プログラム E プログラム D 実行を 再開したい プログラム A 主記憶に空きが なければ、 他のプログラムを スワップアウト OS 主記憶装置 補助記憶装置
実記憶管理(2) オーバーレイ方式 ________________ • 主記憶よりも大きなサイズのプログラムを扱いたい • 実行するプログラムを、セグメント(モジュール) に分割 • (OS ではなく) プログラム自身が ロードのタイミングを指定 ルート セグメント 必要な最大サイズ ルート セグメント A セグメント B A B C D セグメント C セグメントD 主記憶装置 ※ AとB、CとDは同時に使わない
フラグメンテーション (断片化) ________________ • OSが記憶領域の割当てと開放を繰り返す → こま切れの未使用領域(断片) 合計では十分な空き領域があるが、 こま切れのため、使えない プログラム E プログラム D コンパクション こま切れの隙間を集めて、連続した 領域にする ? プログラム F OS 主記憶装置
プログラム実行に関連した用語 • 再配置(リロケーション) • プログラムを、主記憶上の他の位置に置き直す(→ see also 演習 14回 再配置可能) • ガーベージ コレクション(ゴミ集め, Garbage Collection) • 動的に確保した記憶領域のうち、不要になった部分を回収し、再び利用できるようにする処理(Java 等で、実行環境が自動的に行ってくれる) • メモリ リーク • プログラムが、動的に確保した記憶領域を、不要になっても解放せず、保持し続けること • システムから見ると、使える主記憶が減っていく
仮想記憶 • 主記憶よりも大きなサイズのプログラムを扱いたい • OSが必要な所を必要に応じてロードしてくれると便利 • OS が主記憶よりも大きなサイズの記憶空間を 仮想的に用意する (仮想記憶という) • プログラムは、実記憶(のサイズや番地)を気にしなくてよい 分割 E 実記憶 プログラム 分割 C 分割 D OS が、 必要に応じてロード 分割 A OS 分割 C 分割 B 分割 A 主記憶装置 補助記憶装置 仮想記憶
仮想記憶管理(1) セグメント方式 ________________ ________________ • セグメント … 論理的に意味のある、分割単位 • プログラムをセグメントに分割して、OS が管理 • セグメントのサイズは、可変 … フラグメンテーションが起きる可能性あり (→ コンパクション を行う) ________________
仮想記憶管理(2) ページング方式 ________________ ________________ • ページ … サイズ固定の分割単位 • プログラムをページに分割して、OS が管理 • ページフォールト • 必要なページが、実記憶に配置されていない • ページ置き換え • ページフォルトが発生したら • 必要ないページを補助記憶に待避 (ページアウト) • 必要なページを主記憶にロード (ページイン) _____________
テキスト p.110, 111 も参照 ページ置き換えアルゴリズム FIFO First-In First-Out • どのページを必要ないと判断するか • FIFO … 最初に入ったページが、最初に出ていく ________________ • 次の仮想ページの参照に対し、実記憶の状態は FIFO により どのように変化するか示しなさい。 (H18年度 秋 改変) 割当て ステップ 参照する 仮想ページ 実記憶の状態 参考: Beladyの例外 実記憶の割当て量を増やすと、かえってページフォールトが増えることがある 1 1 1 - - 2 4 1 4 - 3 2 1 4 2 4 1 5 5 6 1
テキスト p.110, 111 も参照 ページ置き換えアルゴリズム LRU Least Recently Used • どのページを必要ないと判断するか • LRU … 最も長く使われていないページを捨てる(最後に参照されてからの時間が最も長いページ) ________________ • 次の仮想ページの参照に対し、実記憶の状態は LRU により どのように変化するか示しなさい。 (H18年度 秋 改変) 割当て ステップ 参照する 仮想ページ 実記憶の状態 1 1 1 - - 2 4 1 4 - 3 2 1 4 2 4 1 5 5 6 1
スラッシング ________________ • 主記憶が極端に小さいと … ⇒ ページング (ページイン/ページアウト) が頻繁に発生 ⇒ 処理時間のほとんどがページング、 プログラム実行のスループットが極端に低下 参考: 参照の局所性 • 時間的局所性 • 今 参照されている箇所は、近い将来にも参照される可能性が高い • 空間的局所性 • 今 参照されている箇所の近くの場所が、参照される可能性が高い 仮想記憶やキャッシュが有効に機能する理由
動的アドレス変換 ________________ 物理アドレス 主記憶 論理アドレス 1000 ページ 5 1000 + F01 = 1F01 5 F 0 1 ページ番号 ページ枠内のアドレス 2000 ページ 1 ページ テーブル ページ番号 ページ枠の物理アドレス 3000 ページ A 1 2 0 0 0 ※ 参照ページがページテーブルに無い場合、ページフォールト 1 0 0 0 5 A 3 0 0 0 仮想記憶上の仮想アドレス (論理アドレス) を 主記憶上の実アドレス (物理アドレス) に変換する 例) ページング
スラッシング ________________ • 主記憶が極端に小さいと … ⇒ ページング (ページイン と ページアウト) が 頻繁に発生 ⇒ 処理時間のほとんどがページング、 プログラム実行のスループットが極端に低下
参考: 参照の局所性 ※ 仮想記憶やキャッシュは、 これらの局所性のおかげで有効に機能する • 時間的局所性 • 今 参照されている箇所は、 近い将来にも参照される可能性が高い • 空間的局所性 • 今 参照されている箇所の近くの場所が、 参照される可能性が高い
練習問題: フラグメンテーション (断片化) (H19年度 春 改変) • モジュール A ~ E を次の順で操作する。 操作終了時点で、 主記憶の空き領域は何か所存在するか。 ここで、主記憶は 500 kB、初期状態では何もロードされていない。また、モジュールは空き領域の先頭からロードする。 [操作] A ロード → B ロード → C ロード → B 解放 → D ロード → A 解放 → E ロード モジュール 大きさ (kB) A 200 B 100 C 150 D 80 E 90
この文面は、TOKYO TECH OCW の利用条件を参考にしました この教材のご利用について • この教材は、以下に示す利用条件の下で、著作権者にわざわざ許諾を求めることなく、無償で自由にご利用いただけます。講義、自主学習はもちろん、翻訳、改変、再配布等を含めて自由にご利用ください。 • 非商業利用に限定 • この教材は、翻訳や改変等を加えたものも含めて、著作権者の許諾を受けずに商業目的で利用することは、許可されていません。 • 著作権の帰属 • この教材および教材中の図の著作権は、次ページ以降に示す著作者に帰属します。この教材、または翻訳や改変等を加えたものを公開される場合には、「本教材 (or 本資料) は http://www.al.ics. saitama-u.ac.jp/horiyama/OCW/ の教材です (or 教材を改変したものです」 との旨の著作権表示を明確に実施してください。なお、この教材に改変等を加えたものの著作権は、次ページ以降に示す著作者および改変等を加えた方に帰属します。 • 同一条件での頒布・再頒布 • この教材、または翻訳や改変等を加えたものを頒布・再頒布する場合には、頒布・再頒布の形態を問わず、このページの利用条件に準拠して無償で自由に利用できるようにしてください。
この教材のご利用について • 配布場所 • http://www.al.ics.saitama-u.ac.jp/horiyama/OCW/ • この powerpointファイルの著作者 • 堀山 貴史 2007-2009 horiyama@al.ics.saitama-u.ac.jp • 改変等を加えられた場合は、お名前等を追加してください • 図の著作者 • p. 3 • クリップアート : Microsoft Office Online / クリップアート • その他 • 堀山 貴史