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

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

Microsoft PowerPoint mm

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

Microsoft PowerPoint - No6note.ppt

10-vm1.ppt

Operating System 仮想記憶

Microsoft PowerPoint - OS09.pptx

OS

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

Microsoft PowerPoint - OS08.pptx

OS

Microsoft PowerPoint ppt

PowerPoint プレゼンテーション

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

メモリ管理

C5

Microsoft PowerPoint - No7note.ppt

Microsoft PowerPoint mm2

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

Microsoft PowerPoint - OS11.pptx

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

Microsoft PowerPoint - OS07.pptx

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

メモリ管理

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

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

Microsoft PowerPoint - OS08 [互換モード]

PowerPoint Presentation

スライド 1

Microsoft PowerPoint - OS12.pptx

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)

ComputerArchitecture.ppt

PowerPoint プレゼンテーション

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

020105.メモリの高機能化

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

計算機概論

Microsoft PowerPoint - ARC2009HashiguchiSlides.pptx

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

Microsoft PowerPoint - ICD2011TakadaSlides.pptx

スライド 1

Microsoft PowerPoint - OS12.pptx

21 章のお話

<4D F736F F D20342E899E D2091E52D81848FAC82D682CC88F8897A2E646F6378>

OS

C プログラミング 1( 再 ) 第 5 回 講義では C プログラミングの基本を学び演習では やや実践的なプログラミングを通して学ぶ

必要なコンピュータの能力 基本的に ここ 1,2 年の間に発売された普通の PC であれば 問題なく動作する CPU ここ 1 2 年に発売された PC に搭載されている CPU であれば問題ない 基本的には 32 ビット 64 ビットの CPU であれば OK ディスク... 空きが少なくとも 4

今週の進捗

Microsoft PowerPoint - OS10.pptx

コンピュータのしくみ

計算機アーキテクチャ

< B8CDD8AB B83685D>

Microsoft PowerPoint - pc11.ppt

Microsoft PowerPoint - 11Web.pptx

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

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

Microsoft PowerPoint - ARCEMB08HayashiSlides.ppt [互換モード]

Microsoft PowerPoint - 09_2008_0619.pptx

第 7 章 ユーザー データ用表領域の管理 この章では 表や索引を格納するユーザー データ用表領域の作成や 作成後のメンテナンスに ついて解説します 1. ユーザー データ用表領域の管理概要 2. ユーザー データ用表領域作成時の考慮事項 3. ユーザー データ用表領域の作成 4. ユーザー データ

スライド 1

目次 1 VirtualBoot for Hyper-V とは バックアップを実行するマシンの設定 確認すべきこと SPX によるバックアップ VirtualBoot for Hyper-V を実行するマシンの設定 確

情報工学Ⅰ-02

Microsoft PowerPoint - mp11-06.pptx

- 主な機能 - 設定機能キャッシュメモリをキャッシュセグメントに分割し 業務で使用する論理ディスクを割り付けるための設定を行います WebSAM istoragemanager のクライアント画面から操作が可能です キャッシュセグメント作成 削除機能キャッシュセグメントの作成 削除を可能にします

オペレーティングシステム

-2 外からみたプロセッサ GND VCC CLK A0 A1 A2 A3 A4 A A6 A7 A8 A9 A10 A11 A12 A13 A14 A1 A16 A17 A18 A19 D0 D1 D2 D3 D4 D D6 D7 D8 D9 D10 D11 D12 D13 D14 D1 MEMR

PeopleJpeg2Bmpマニュアル

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション

スライド タイトルなし

01-introduction.ppt

PowerPoint プレゼンテーション

Microsoft Word - nvsi_050110jp_netvault_vtl_on_dothill_sannetII.doc

プログラミングI第10回

PowerPoint Template

Veritas System Recovery 16 Management Solution Readme

Microsoft Word - eRecovery v3-1.doc

Microsoft PowerPoint - ARC-SWoPP2011OkaSlides.pptx

CPUスケジューリング

Microsoft Word - クライアントのインストールと接続設定

情報処理学会研究報告 IPSJ SIG Technical Report Vol.2014-DPS-159 No.31 Vol.2014-MBL-71 No /5/16 仮想化環境における読込み書込み比率を考慮した動的 VM メモリ割り当て 1 坂本雅哉 1 山口実靖 近年, サーバの

手順書 20 イメージ最小化作業 はじめに JumboSpot を動かすために使用している RaspberryPi( 以下 ラズパイ という ) に Pi-Star という OS 兼ソフトウェアを microsd カードにセットアップして利用しているが バックアップイメージを残す際に利用するソフトウ

Microsoft PowerPoint - install_NGSsokushu_windows(ver2.1).pptx

スライド 1

secuprint5 Watermark( セキュプリント 5 ウォーターマーク ) とは secuprint5 Watermark( セキュプリント 5 ウォーターマーク ) は 印刷文書内 に 社外持ち出し禁止です などのテキスト 誰が いつ 何を印刷した か 等のセキュリティ情報 また マル秘

PowerPoint プレゼンテーション

CommCheckerManual_Ver.1.0_.doc

Microsoft PowerPoint - Windows10へのアップグレィド.pptx

Simplant インストールマニュアル テックサービス専用窓口 デンツプライシロナ株式会社 東京都品川区勝島 東神ビルディング別館 11 号館 TEL: 受付時間 :9:00~17:00( 土 日 祝祭日を除く ) FAX:

Microsoft PowerPoint - No3.ppt

Page1

PowerPoint プレゼンテーション

Microsoft PowerPoint - OS02.ppt

(ch2 + i)->next = ch1 + r; doit(ch1, ch2); 図 1 ランダムアクセスする C ソース 時間 (elapsed) 32 ビットプログラム (gcc -O2 -m32 でコンパイル ) 6.23 秒 秒 64 ビットプログラム (gcc -O2 -m

Microsoft PowerPoint - 05.pptx

V8_教育テキスト.dot

Microsoft PowerPoint - ad11-09.pptx

改版履歴 Ver. 日付履歴 1.0 版 2014/5/30 新規作成 目次 0 はじめに 本文中の記号について Hyper-V 2.0 をインストールするための準備 インストール前に確認が必要なもの Hyper-V 2.0 の

Section 16-7 Mac で Windows も使う (Boot Camp) 光学式ドライブ DVD が読み取れる光学式ドライブを使った方がスムーズにインストールできます 光学式ドライブの付 いていない Mac は Windows インストールディスクの ISO イメージデータを使ってもイン

目次 第 1 章はじめに 本ソフトの概要... 2 第 2 章インストール編 ソフトの動作環境を確認しましょう ソフトをコンピュータにセットアップしましょう 動作を確認しましょう コンピュータからアンインストー

Transcription:

システムプログラム概論 メモリ管理 (1) 第 x 講 : 平成 20 年 10 月 15 日 ( 水 ) 2 限 S1 教室 今日の講義概要 メモリ管理の必要性 静的メモリ管理と動的メモリ管理 スワッピング, 仮想記憶 ページングとセグメンテーション 中村嘉隆 ( なかむらよしたか ) 奈良先端科学技術大学院大学助教 y-nakamr@is.naist.jp http://narayama.naist.jp/~y-nakamr/ 第 4 講メモリ管理 (1) 2 メモリはコンピュータの 5 大構成要素 なぜメモリ管理が必要か 入力装置 ( キーボード, マウス ) CPU ( 中央演算装置 ) 主記憶装置 ( メインメモリ ) 外部記憶装置 (HDD) 出力装置 ( モニタ, プリンタ ) メモリ管理が必要な理由 プログラムを実行するためにはメモリが必要 メモリ技術の進歩の速さ < プログラムの巨大化の速さ パーキンソンの法則 : プログラム量は与えられたメモリのスペースを満たすまで膨張する 1980 年代 : 4MB VAX で 10 人以上が同時ログイン 現在 : 512MB PC でシングルユーザ (Vista) 理想 : 高速メモリが無制限に使用可能 現実 : 少量 高速のキャッシュメモリ, 中容量 中速のメインメモリ (RAM), 低速 大容量のディスクストレージ OS によるメモリ管理が必要 第 4 講メモリ管理 (1) 3 第 4 講メモリ管理 (1) 4 メモリ階層 メモリ階層 超高速 高速 中速 Register CPU On-chip cache Off-chip cache Main memory 低速 Hard disk/ Solid state disk メモリ技術 アクセス速度, 容量, 価格のトレードオフ Latency Size Price Register 0.13 ns 512 bytes On chip On-chip cache 4.7 ns 2 MB On chip Main memory 20 ns 1 GB $0.1 /MB HDD 13 ms 500 GB $0.3 /GB 第 4 講メモリ管理 (1) 5 第 4 講メモリ管理 (1) 6 システムプログラム概論 1

メモリ管理機構 ( メモリマネージャ ) メモリ管理機構の種類 メモリ階層を管理する OS 内の機構 メモリの使用部分と未使用部分を管理 プロセスへのメモリの割当て, 解放のため メインメモリとディスク間のスワッピングを実行 メインメモリだけでは必要容量が足りないとき, メインメモリ内のあまり使用されていない部分をディスクに退避したり必要な部分をディスクからメモリに復元 モノプログラミング マルチプログラミング ( 固定区画 ) スワッピング 仮想記憶動的な割当 静的な割当 第 4 講メモリ管理 (1) 7 第 4 講メモリ管理 (1) 8 モノプログラミング 一度に 1 つのプログラムを実行する最も原始的なメモリ管理 アドレス固定, 境界チェックなし メモリ上に他のプログラムがない Protection はない メインフレーム PDA, 組込みシステム初期の PC 第 4 講メモリ管理 (1) (MS-DOS) 9 マルチプログラミング ( 固定区画 ) 各区画のサイズは手動で決める ( 不変 ) 各プロセスには収容可能な最小の区画を割当 メモリに空きがあるのに, 小さなプロセスは待たされる 空区画のうち収容可能な最小の区画を割当 小さなプロセスに大きな区画を割当てると効率悪い 第 4 講メモリ管理 (1) 10 リロケーションとプロテクション リロケーション プログラムはどの区画で実行されるか分からない その区画で実行するかで, プログラム内のジャンプ先アドレスの書き換えが必要 プロテクション 区画 1 が割り当てられているプロセスが, 区画 2( 別の実行中プロセスに割当済 ) を読み書きできてしまう マルチユーザシステムでは特に問題 解決策 ベースレジスタ : 区画の先頭アドレスを入れると, プログラム内のジャンプ先, メモリアクセス先に自動的に足してくれる リミットレジスタ : 区画の長さを指定して, それを超えるアドレスへのアクセスはハードウェア的にできなくしてくれる 初のスパコン CDC6600 で採用 初代 IBM PC の Intel 8088 はベースレジスタのみ 第 4 講メモリ管理 (1) 11 スワッピング 各プロセスについて, メモリにロードし, 一定時間実行し, ディスクに退避 ( スワップアウト ) する, を繰り返す方法 メモリサイズの制限を受けないが, ディスク I/O のオーバヘッドが問題 メリット : メモリの利用効率が向上デメリット : メモリの管理が複雑に スワップアウト ホール スワップアウトで領域にホールができる どう解消? ある区画のデータ ( ヒープ ) 領域が増大する場合 どう増やす? 第 4 講メモリ管理 (1) 12 システムプログラム概論 2

スワッピングにおけるメモリ管理 メモリの動的割当 スワップアウトでホール ( 空き ) ができてしまう メモリコンパクション (Disk のデフラグに類似 ) 処理重い ある区画のデータ ( ヒープ ) 領域が大きくなる時 ( プロセスが動的にメモリ割当てした時など ) ヒープ領域が大きくなるのに備えて余分な領域を割り当てておく 使い果たした時, 大きなホールに移動 ホールができるまでスワップアウト 打ち切り ヒープ領域, スタック領域のどちらが増大しても対処できる構造 第 4 講メモリ管理 (1) 13 動的なメモリ区画の割当 OS によるメモリの使用 / 空き状況の追跡 管理 ビットマップを用いたメモリ管理 連結リストを用いたメモリ管理 第 4 講メモリ管理 (1) 14 ビットマップを用いたメモリ管理 メモリ全体 割当ユニット ( 数バイト ~ 数 K バイト ) に分割 各ユニット使用状況を 1 ビットで表現 : 1 使用,0 未使用 連結リストを用いたメモリ管理 メモリ区画 ( プロセスまたはホール ) を連結リストで管理 ビットマップ 割当ユニットのサイズが小さい ビットマップ大きくなる 割当ユニットのサイズが大きい プロセスへのメモリ割当サイズがユニットの倍数でないと, より大きな無駄が生じる 問題点 : k 個の割当ユニット必要 ビットマップ内で k 個の連続した 0 を検索 時間がかかる 連結リスト 第 4 講メモリ管理 (1) 15 第 4 講メモリ管理 (1) 16 以下の場合が存在 リストの更新 (a) の場合,P H に書き換えるだけ (b)-(d) の場合, エントリが一つ削除される 第 4 講メモリ管理 (1) 17 連結リストでのメモリ割当アルゴリズム First fit リストを先頭から順に辿り, 最初に見つかった十分な空き容量のホールを割り当てる Next fit 前回ホールを見つけた場所 ( リストの途中 ) を覚えておき, 次回の割り当ては, 途中から探す First fit より若干性能が悪い Best fit リスト全体を検索して十分かつ最小のホールを割り当てる ホールのサイズが小さい順にソートしておくと, 効率が良くなる ( リストを最後まで見なくて良い ) 第 4 講メモリ管理 (1) 18 システムプログラム概論 3

仮想記憶 (Virtual Memory) 登場の背景 利用可能メモリ容量より大きいプログラムの実行 オーバレイ : プログラムを手動で断片に分割し, 順にメモリにロードして実行 自動化 (1961 年 ) したものが仮想記憶 仮想記憶の基本アイデア プログラム, データ, スタックの合計サイズが物理メモリ ( 実記憶 ) 容量を超えても良い プログラムの実行に必要な一部だけをメモリに置き, 残りはディスクにスワップアウトする 仮想記憶と実記憶のマッピング 仮想記憶 (virtual memory) 仮想アドレス, 仮想アドレス空間 実記憶 ( 物理メモリ ) より広大, 各部分は物理メモリ, ディスクなどから構成 実記憶 (physical memory) 実アドレス, 実アドレス空間 物理メモリのみから構成 仮想アドレス空間でプログラム実行 仮想メモリへの読み書きが発生 アドレス変換が必要 Address translation 仮想アドレスから実アドレスへのマッピング Memory Management Unit (MMU) が実行 第 4 講メモリ管理 (1) 19 第 4 講メモリ管理 (1) 20 アドレス変換 ページテーブル アドレス変換仮想アドレス実アドレス 仮想アドレス空間をページに分割 ( ページサイズは固定 ) 物理アドレス CPU CPU パッケージ MMU アドレス変換なし 実記憶 ページを単位としたアドレス変換 ( 仮想ページ番号, オフセット ) ( 物理ページ番号, オフセット ) ページテーブル ( 変換表 ) を実メモリ上に保持 第 4 講メモリ管理 (1) 21 第 4 講メモリ管理 (1) 仮想アドレス 22 ページングの問題点 ページテーブルサイズ 主メモリを消費. プロセス毎に必要 ページサイズが小さいとテーブルサイズ増大 アドレス空間 2 64 bytes,4kb ページ 2 52 エントリ必要 要求ページの検索 ページテーブル大きい場合に, 目的ページの検索に時間がかかる TLB (translation look-aside buffer) TLB (translation look-aside buffer) 変換早見表 よく使うページテーブルをキャッシュ 主メモリへのアクセスなしにアドレス変換 機構 ハッシュ関数を用いて実現 ハッシュ関数 : 検索の平均オーダ O(1) ミスすると MMU を使ってページテーブルから検索 小さなサイズの TLB でも 90% のアドレス変換を高速化可能 TLB の検索 10ns, ページテーブルの検索 500ns, ヒット率 90% とすると, 平均 10ns 0.9 + (500ns + 10ns) 0.1 = 60ns 第 4 講メモリ管理 (1) 23 第 4 講メモリ管理 (1) 24 システムプログラム概論 4

セグメンテーション セグメンテーションの問題 可変長の物理メモリ区画 ( セグメント ) を確保, それらを組合せて仮想アドレス空間を構成 ページングの問題を解決 ページング 各セグメントの動的サイズ変更が容易 セグメンテーション メモリへのアクセス セグメント番号 + オフセットを指定 第 4 講メモリ管理 (1) 25 物理メモリの連続領域を確保する必要がある物理メモリ 断片化 (fragmentation) を招く 断片化 内部断片化 セグメント内部の空き領域 外部断片化 主メモリのセグメント間の空き領域 ページングでは外部断片化が起きない 第 4 講メモリ管理 (1) セグメント 26 外部断片化の例 セグメントの割当, 解放を繰り返すと発生コンパクション後 第 4 講メモリ管理 (1) 27 ページングとセグメンテーション ページング ページサイズは固定 ( 多くの OS では 4KB) 割当てる領域が連続していなくてもよい 外部断片化が起きない ページ単位でスワッピングでき, メモリを有効利用可能 ページテーブルサイズ, メモリ動的割当時の問題 セグメンテーション セグメントサイズは可変 セグメント間でデータの保護が可能 セグメントとして, ひとまとまりになっているため 外部断片化 (external fragmentation) 第 4 講メモリ管理 (1) 28 ページ化セグメンテーション セグメントとページを併用 今日のプロセッサアーキテクチャでの主流 プロセスなどに割り当てるメモリ区画はセグメントで確保 メモリ領域間の保護が容易 セグメント内の領域はページング メモリの有効利用 TLB を用いて, 検索効率化 第 4 講メモリ管理 (1) 29 ページ化セグメントのアドレス変換 仮想アドレス = セグメント番号, ページ番号, オフセット Seg# Page# offset Segment table Physical page# Page table offset 第 4 講メモリ管理 (1) 30 システムプログラム概論 5

まとめ メモリ管理の必要性 メモリ管理機構の種類 : 静的管理, 動的管理 スワッピング プロセスに割当てたメモリをディスクに退避 動的なメモリ割当 : ビットマップ, 連結リスト 仮想記憶 物理メモリ容量より大きなプログラムの実行 アドレス変換 ページング セグメンテーション ページ化セグメンテーション 第 4 講メモリ管理 (1) 31 システムプログラム概論 6