OS

Similar documents
OS

Operating System 仮想記憶

Microsoft PowerPoint - No7note.ppt

Microsoft PowerPoint - No6note.ppt

Microsoft PowerPoint - No15›¼‚z‰L›¯.ppt

Microsoft PowerPoint - os ppt [互換モード]

Microsoft PowerPoint - OS12.pptx

Microsoft PowerPoint - sp ppt [互換モード]

Microsoft PowerPoint - os ppt [互換モード]

Microsoft PowerPoint - sp ppt [互換モード]

Microsoft PowerPoint - OS09.pptx

Microsoft PowerPoint - OS11.pptx

メモリ管理

Microsoft PowerPoint - OS12.pptx

Microsoft PowerPoint - OS07.pptx

メモリ管理

Microsoft PowerPoint - pc11.ppt

020105.メモリの高機能化

10-vm1.ppt

コンピュータのしくみ

Microsoft PowerPoint - 11_4-4-5pagerepl.pptx

PowerPoint プレゼンテーション

Microsoft PowerPoint mm2

OS

この方法では, 複数のアドレスが同じインデックスに対応づけられる可能性があるため, キャッシュラインのコピーと書き戻しが交互に起きる性のミスが発生する可能性がある. これを回避するために考案されたのが, 連想メモリアクセスができる形キャッシュである. この方式は, キャッシュに余裕がある限り主記憶の

C5

Microsoft PowerPoint mm

MMUなしプロセッサ用Linuxの共有ライブラリ機構

講義計画 1. コンピュータの歴史 1 2. コンピュータの歴史 2 3. コンピュータの歴史 3 4. 論理回路と記憶, 計算 : レジスタとALU 5. 主記憶装置とALU, レジスタの制御 6. 命令セットアーキテクチャ 7. 演習問題 8. パイプライン処理 9. メモリ階層 : キャッシュ

メモリについて考えてみよう_REL_

スライド 1

PowerPoint Presentation

Microsoft PowerPoint ppt

Microsoft PowerPoint - OS08.pptx

01-introduction.ppt

スライド タイトルなし

Microsoft PowerPoint - 11Web.pptx

システムLSIとアーキテクチャ技術  (part II:オンチップ並列            アーキテクチャ)

DRAM SRAM SDRAM (Synchronous DRAM) DDR SDRAM (Double Data Rate SDRAM) DRAM 4 C Wikipedia 1.8 SRAM DRAM DRAM SRAM DRAM SRAM (256M 1G bit) (32 64M bit)

計算機アーキテクチャ

メモリ管理

スライド 1

OS 論文購読チャレンジ 仮想マシンのメモリ管理 浅井明里 王力捷

ComputerArchitecture.ppt

Microsoft PowerPoint - sp ppt [互換モード]

Microsoft PowerPoint - ARC2009HashiguchiSlides.pptx

V8_教育テキスト.dot

N08

計算機アーキテクチャ

Microsoft PowerPoint - OS08 [互換モード]

スライド 1

Microsoft Word - nvsi_050110jp_netvault_vtl_on_dothill_sannetII.doc

Microsoft PowerPoint - chap4_slide a.ppt

Microsoft PowerPoint - yamagata.ppt

東芝 MAGNIA R3320b での SSD 性能の検証 2012 年 8 月 株式会社東芝 クラウド & ソリューション事業統括部 目次 1. はじめに ソリッドステートドライブの概要 使用機器一覧 単体性能について サーバー用途別のテスト

StoreEasy 1x40 RAID構成ガイド

計算機概論

マニュアル訂正連絡票

<4D F736F F D F B835E82CC8D8291AC8F88979D82F08FAC8C5E82A982C288C089BF82C88D5C90AC82C AC82B782E996A78C8B8D878C5E836E815B C695C097F18F88979D82F091678D8782B982BD8C768E5A8B

CLUSTERPRO MC ProcessSaver 1.2 for Windows 導入ガイド 第 4 版 2014 年 3 月 日本電気株式会社

問題1 次の情報表現に関する記述は,コンピュータの勉強を始めたばかりのB君と,かなり詳しく知っているM君の会話である

PeopleJpeg2Bmpマニュアル

システムLSIとアーキテクチャ技術  (part II:オンチップ並列            アーキテクチャ)

Microsoft PowerPoint - sp ppt [互換モード]

Microsoft PowerPoint - ICD2011TakadaSlides.pptx

Microsoft PowerPoint - OS02.pptx

RH850の割り込み/例外実現方法 CC-RHアプリケーションガイド

TFTP serverの実装

RL78開発環境移行ガイド R8C/M16C, H8S/H8SXからRL78への移行(統合開発環境編)(High-performance Embedded Workshop→CS+)

router_cachehit.eps

アドバンスト・フォーマットディスクのパフォーマンス

メモリ管理

21 章のお話

アプリケーションから発行された要求が, の両キャッシュでミスヒットした場合, 両キャッシュには同一のデータが格納される. しかし, 最近アクセスされたデータへのアクセス要求は上で処理され, に届くことはない. 従ってでは 最近アクセスされたデータは近い将来再度アクセスされる可能性が低い という通常と

今週の進捗

KSforWindowsServerのご紹介

Microsoft PowerPoint - ShadowProtectIT手順書_ ppt

出 アーキテクチャ 誰が 出 装置を制御するのか 1

命令セットの構成例 a) 算術 演算命令 例 )ADD dest, source : dest dest + source SUB dest, source : dest dest - source AND dest, source : dest dest AND source SHR reg, c

< B8CDD8AB B83685D>

システムソフトウエア2013/1/30 演習問題 学科 学籍番号 氏名 1. つぎの文章の空白を埋めなさい. コンピュータは,CPU( 中央処理装置 ) とメモリ, およびその他の入出力装置から構成されて いる. このうち,CPU は命令の (a) とデコードなどを行う制御部と, 実際の計 算を行う

今さら聞けない!? Oracle入門 ~前編~

Microsoft PowerPoint - OS02.ppt

Microsoft PowerPoint - 09_2008_0619.pptx

Microsoft PowerPoint - No3.ppt

Microsoft PowerPoint - ARC-SWoPP2011OkaSlides.pptx

コンピュータ工学Ⅰ

CLUSTERPRO MC RootDiskMonitor 2.3 for Windows リリースメモ 2018(Jun) NEC Corporation はじめに ライセンス 動作要件 セットアップ マニュアル

C に必要なコンピュータ知識 C はコンピュータの力を引き出せるように設計 コンピュータの知識が必要

Data-Add User Manual.book

Page1

CPUスケジューリング

PowerPoint プレゼンテーション

04-process_thread_2.ppt

スライド 1

アジェンダ Renesas Synergy TM プラットフォーム構成 ThreadX とは ThreadX の状態遷移 ThreadX とμITRONの機能比較 まとめ ページ 2

arduino プログラミング課題集 ( Ver /06/01 ) arduino と各種ボードを組み合わせ 制御するためのプログラミングを学 ぼう! 1 入出力ポートの設定と利用方法 (1) 制御( コントロール ) する とは 外部装置( ペリフェラル ) が必要とする信号をマイ

ユーザーズマニュアル 有線ネットワークシステム 発行日 2016 年 3 月 30 日

複数の Nios II を構成する際の注意事項

改版履歴 版数 改版 内容 新規作成 Microsoft.NET Framework のダウンロード先 URL を追記 バージョンアップに伴い改版 i

Transcription:

Operatig System 仮想記憶 2019-11

記憶階層 高速 & 小容量 ( 高価 ) レジスタ アクセスタイム 数ナノ秒 容量 ~1KB ランダムアクセス CPU 内 キャッシュ (SRAM) 主記憶 (DRAM) 数ナノ秒 数十ナノ秒 1MB 程度 数 GB 程度 ランダムアクセス フラッシュメモリ (SSD) 約 100 万倍 シーケンシャルアクセス 磁気ディスク (HDD) 数十ミリ秒 数百 GB 1TB 程度 光磁気ディスク (CD-R DVD-RW 等 ) 磁気テープ 0.1 秒 ~ 1GB~ 低速 & 大容量 ( 廉価 ) 2

仮想記憶 p 仮想記憶 (virtual memory) バーチャル = 実質的に同じ HDD 等の補助記憶の領域を主記憶の延長のように見せかける技術 使わないメモリ領域を HDD に待避し, 使うときに HDD から復帰する 主記憶 (DRAM) p ページング方式 メモリ空間を固定長の区画 ( ページ ) に自動的に分割して管理する p セグメンテーション方式 プログラムで予め設定した可変長の区画 ( セグメント ) で管理する 補助記憶 / ストレージ (HDD 等 ) 3

ページング p メモリのページ化 主記憶を, 固定長 ( 例 :4Kバイト) のブロック ( ページ枠 ) に分割するメモリの内容 ( データ ) も, 同サイズの ページ の集合に分割するどのページをどのページ枠に入れるか, 自由に入れ替え可能にする p アドレスの仮想化 物理アドレス : ハードウェアメモリ内の位置 ページ 枠 のアドレス 仮想アドレス : プロセスが実行中に使うアドレス ページのアドレス プロセスが動くためには, 仮想 物理 の自動アドレス変換が必要 p ページングの効果 物理メモリよりも広い仮想アドレス空間が使用できる 仮想記憶 物理的なメモリコンパクションやプロセスの再配置処理が不要になる 4

ページングの概念 ページ 0 プログラム 1 プログラム 2 プログラム 3 変数 4 ( 空き ) 5 ( 空き ) 6 ( 空き ) 7 データ 8 ( 空き ) 9 変数 10 変数 11 変数 12 ( 空き ) 仮想アドレス空間 ( プロセスから見えるアドレス ) ページ枠 ( ブロック ) 0 ページ 7 1 ページ 1 2 ページ 2 3 ページ 0 4 ページ 3 5 ページ 9 6 ページ 10 7 ページ 11 8 ページ 5 物理アドレス空間 ( 実際の RAM 内のアドレス ) 対応関係は変わるので変換表 ( ページテーブル ) が必要になる 5

多重仮想アドレス p 各プロセスに独立な仮想アドレス空間を提供 動的再配置の問題も解決する OS( カーネル ) プロセス A OS( カーネル ) OS( カーネル ) OS( カーネル ) プロセス A プロセス B プロセス C 変換 プロセス C プロセス B プロセス A の仮想アドレス空間 プロセス B の仮想アドレス空間 プロセス C の仮想アドレス空間 物理メモリ空間 ( 実際のメモリ ) 6

動的アドレス変換 p 動的アドレス変換機構 プロセスが実行時に参照する仮想アドレスを, そのつど物理アドレス ( ハードウェアメモリでのアドレス ) に変換するしくみ MMU(Memory Maagemet Uit) というハードウェアが支援 p 各アドレスの内部形式 32ビットなら, 例えば上位 20ビットと下位 12ビット (4KB 分 ) に分解 例 0x12345678 [ ページ番号 0x12345][ ページ内 0x678] 仮想アドレスの形式 : [ ページ 番号 ][ ページ内アドレス ] 物理アドレスの形式 : [ ページ枠番号 ][ ページ内アドレス ] p ページテーブル ( アドレス変換テーブル ) ページ番号 ページ 枠 番号 のアドレス変換表 多重仮想アドレスの場合は, 各プロセスがページテーブルを持つ 7

動的アドレス変換機構 ページテーブルベースレジスタ (CPU 内 ) tbl 仮想アドレス ページテーブルの位置を保持 p ページ番号 a ページ内アドレス tbl 番地 p MMU で変換 p = tbl[p] tbl[p] p ページ枠番号 ページ内アドレス ページテーブル ( 主記憶内 ) 物理アドレス p a 8

多段ページング p 広大なアドレス空間に対応 必要なときだけ 2 段目以降のテーブルを保持してメモリを節約 Wikipedia から引用 9

X86 のページング PG フラグ CR0 PAE フラグ CR4 表 3-3. ページサイズと物理アドレスサイズ PSE フラグ CR4 PS フラグ PDE PSE-36 CPUID 機能フラグ ページサイズ 物理アドレスサイズ 0 X X X X ページングは ディスエーブル 1 0 0 X X 4K バイト 32 ビット 1 0 1 0 X 4K バイト 32 ビット 1 0 1 1 0 4M バイト 32 ビット 1 0 1 1 1 4M バイト 36 ビット 1 1 X 0 X 4K バイト 36 ビット 1 1 X 1 X 2M バイト 36 ビット IA-32 インテル アーキテクチャソフトウェア デベロッパーズ マニュアル から引用 10

X86 のページング p 1 段ページング (4M バイト 2 10 ページ ) リニアアドレス 31 22 21 ディレクトリ オフセット 0 10 ページ ディレクトリ 22 4M バイト ページ 物理アドレス ディレクトリ エントリ 10 32* CR3 (PDBR) 1024 PDE = 1024 ページ * 4K バイト境界にアライメントを合わせられた 32 ビット 図 3-13. リニアアドレス変換 (4M バイト ページ ) IA-32 インテル アーキテクチャソフトウェア デベロッパーズ マニュアル から引用 11

X86 のページング p 2 段ページング (4K バイト 最大 2 20 ページ ) リニアアドレス 31 22 21 12 11 ディレクトリテーブルオフセット 0 12 4K バイト ページ 10 ページ ディレクトリ 10 ページテーブル 物理アドレス ページ テーブル エントリ 20 ディレクトリ エントリ 32* CR3 (PDBR) 1024 PDE 1024 PTE = 2 20 ページ * 4K バイト境界にアライメントを合わせられた 32 ビット 図 3-12. リニアアドレス変換 (4K バイト ページ ) IA-32 インテル アーキテクチャソフトウェア デベロッパーズ マニュアル から引用 12

X86 のページング 31 ページ ディレクトリ エントリ (4K バイト ページ テーブル ) 12 11 9 8 7 6 5 4 3 2 1 0 ページテーブルのベースアドレス 使用可能 G P S 0 A P C D P W T U / S R / W P システム プログラマが使用可能グローバル ページ ( 無視される ) ページサイズ (0 は 4K バイトを示す ) 予約済み (0 に設定 ) アクセスキャッシュ ディスエーブルライトスルーユーザ / スーパーバイザ読み取り / 書き込み存在 31 ページ テーブル エントリ (4K バイト ページ ) ページのベースアドレス 12 11 9 8 7 6 5 4 3 2 1 0 使用可能 P P G A D A C T D P W T U / S R / W P システム プログラマが使用可能グローバル ページページテーブル属性インデックスダーティアクセスキャッシュ ディスエーブルライトスルーユーザ / スーパーバイザ読み取り / 書き込み存在 図 3-14. 4K バイト ページと 32 ビット物理アドレスを使用する場合のページ ディレクトリ エントリとページ テーブル エントリのフォーマット IA-32 インテル アーキテクチャソフトウェア デベロッパーズ マニュアル から引用 13

X86_64 のページング p 4 段ページング (4K ページ 最大 2 36 ページ ) 47 PML4 Liear Address 39 38 30 29 Directory Ptr Directory 21 20 Table 12 11 Offset 0 9 9 9 12 4-KByte Page Physical Addr Page-Directory- Poiter Table PDPTE PDE with PS=0 40 Page-Directory 40 PTE Page Table 40 9 PML4E 40 40 CR3 Figure 4-8. Liear-Address Traslatio to a 4-KByte Page usig IA-32e Pagig Itel 64 ad IA-32 Architectures Software Developer s Maual から引用 14

ページングによる仮想記憶 p 仮想アドレス空間の一部だけ, 物理アドレス空間に保持する ページ枠の集合 ページイン ( 読み込み ) 補助記憶 (HDD など ) ページの集合 ( ページファイル ) ページアウト ( 使用解除 ) プロセス A 仮想アドレス空間 主記憶物理アドレス空間 プロセス B 仮想アドレス空間 15

ページテーブルのフラグ 31 ページ テーブル エントリ (4K バイト ページ ) 12 11 9 8 7 6 5 4 3 2 1 0 ページのベースアドレス 使用可能 G P A T D A P C D P W T U / S R / W P Dirty: 内容変更済み Preset: ページがメモリ内に存在 システム プログラマが使用可能グローバル ページページテーブル属性インデックスダーティアクセスキャッシュ ディスエーブルライトスルーユーザ / スーパーバイザ読み取り / 書き込み存在 IA-32 インテル アーキテクチャソフトウェア デベロッパーズ マニュアル から引用 16

ページングによる仮想記憶の実現 p ページファイル 主記憶に読み込みきれないページを保持しておくためのファイル ( または独立のディスクパーティンション ) Widows の場合 C: pagefile.sys ( 設定を変えないと不可視 ) 仮想記憶の容量 物理メモリ容量 + このファイルの容量 p ページフォールト プロセスが仮想アドレスにアクセスしたとき, そのページに対応するページ枠がページテーブルにない ( 物理アドレス空間にない ) こと 例外トラップ ( 一種の割り込み ) というしくみで,OS に通知される p ページの置き換え カーネルのページ置き換え機能が, 主記憶のページをどれかひとつ追い出して, 仮想記憶のアクセスされたページと交換する 17

ページ置換方式 p ページ置換処理 ページアウト : ページ枠を空けるために, 主記憶に読み込まれているどれかのページを補助記憶に退避すること ページイン : 実行中のプロセスがアクセスしたページを補助記憶から主記憶のページ枠に読み込むこと p ページ置換アルゴリズム では, ページフォルトが起きたとき, どのページをアウトすべきか? ランダム : 追い出すページは乱数で決める ( 性能比較の基準 ) FIFO: 先に入ったページを, 先に追い出す OPT: 最適な方法, 今後一番先まで使わないページを追い出す LRU: 最も長い時間使われなかったページを追い出す NRU: 一定時間使われなかったページからランダムに決める LFU: 使用頻度 ( 回数 ) が最低のページを追い出す 18

FIFO アルゴリズム p 到着順ページ置き換え方式 First I, First Out ( 先入れ, 先出し ) 先に入ったページを, 先に追い出す性能はまあまあで, 処理が簡単で高速である Widows はこれの改良版 ( らしい ) p FIFO アルゴリズムによるページングの例 ページ参照順 0 1 2 3 0 1 4 0 1 2 3 4 ページフォルト発生 v v v v v v v v v ページ枠の内容 ( 主記憶 ) 0 0 0 0 3 3 3 4 4 4 4 4 4 1 1 1 1 0 0 0 0 0 2 2 2 2 2 2 2 1 1 1 1 1 3 3 19

OPT アルゴリズム p 最適アルゴリズム Optimum 理論上 の最適な方法 ( 他の方法の評価用 ) 今後一番先まで使わないページを追い出す 未来を予知していないと決められない 実現不可能! p OPT アルゴリズムによるページングの例 ページ参照順 0 1 2 3 0 1 4 0 1 2 3 4 ページフォルト発生 v v v v v v v ページ枠の内容 ( 主記憶 ) 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 2 3 3 2 2 3 3 3 4 4 4 4 4 4 20

LRU アルゴリズム p 最長不使用ページ置き換え方式 Least Recet Used 最も長い時間使われなかったページを追い出す 置換回数の性能は良いが, 実現しようとすると処理が複雑で遅い Liux や Mac は, これを簡単化した NRU(Not Recet Used) p LRU アルゴリズムによるページングの例 ページ参照順 0 1 2 3 0 1 4 0 1 2 3 4 ページフォルト発生 v v v v v v v v v v ページ枠の内容 ( 主記憶 ) 0 0 0 0 3 3 3 4 4 4 2 2 2 1 1 1 1 0 0 0 0 0 0 3 3 2 2 2 2 1 1 1 1 1 1 4 21

参照の局所性 p 仮想記憶がうまく動く理由 実メモリにプロセスの一部しか読み込まなくてもなぜうまく動くか? プロセスが参照するアドレスは, 空間的 時間的に偏る傾向がある p 空間局所性 プログラムが同時に使うメモリは,( 空間的に ) 近くにあることが多い例 ) 逐次処理のプログラムコード, ローカル変数の配置など ただし, オブジェクト指向プログラミングではそうならないことも多い p 時間局所性 プログラムは, 同じメモリを ( 時間的に ) 使い続けることが多いある時間を見ると, 同じ領域のメモリを繰り返しアクセスしている 例 ) ループ実行中のプログラムコード, 関数内での変数アクセス 22

スラッシング p スラッシング OS がページ置換処理に忙殺され, 他の処理が滞ってしまう状態 多数のプロセスを実行させると, プロセス切り替えによって, 頻繁にページフォールトが起こり, ページ置換処理が追いつかなるなる 主記憶に対して仮想記憶を大きく取りすぎた場合に発生しやすい 処理能力 0( スループット ) プロセス数 ( 多重度 ) システムがほとんど停止 ディスクがカリカリカリカリ 23

仮想記憶の弱点 p 処理の遅延 ページ置換処理 (HDD 等からの読み込み ) は時間がかかる特に, リアルタイム処理では, 予測できない遅延は問題になる p 処理が複雑 専用のハードウェア機能 (MMU) が不可欠組み込み用マイコンの多くでは,MMUの機能がないページ置換アルゴリズムも含めて, プログラムが複雑化する p 補助記憶装置の使用が前提 多くの組み込み OS ゲーム機では仮想記憶をサポートしない 24

演習課題 ( 後日提出 ) p 課題 11a ページ置換方式 以下の表は, ページ枠が 3 つしかないコンピュータにおける仮想記憶のページ参照順を示している このページ参照順の場合に,FIFO,LRU,OPT の各ページ置換方式によって, どのようにページ枠の内容が変化するか, それぞれの表を完成させよ ページフォルトが発生する場合には, チェック印 (v) を記入すること ページ参照順 0 1 3 0 2 0 3 4 2 0 1 2 ページフォルト発生 ページ枠の内容 ( 主記憶 ) 0 1 2 25