Microsoft PowerPoint - OS08.pptx

Similar documents
Microsoft PowerPoint - OS07.pptx

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

Microsoft PowerPoint - No6note.ppt

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション

TFTP serverの実装

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

04-process_thread_2.ppt

バイオプログラミング第 1 榊原康文 佐藤健吾 慶應義塾大学理工学部生命情報学科

Taro-ポインタ変数Ⅰ(公開版).j

Microsoft PowerPoint - 09.pptx

PowerPoint プレゼンテーション

COMET II のプログラミング ここでは機械語レベルプログラミングを学びます 1

02: 変数と標準入出力

スライド 1

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

プログラミングI第10回

02: 変数と標準入出力

Fortran 勉強会 第 5 回 辻野智紀

memo

PowerPoint プレゼンテーション

スライド 1

次に示す数値の並びを昇順にソートするものとする このソートでは配列の末尾側から操作を行っていく まず 末尾の数値 9 と 8 に着目する 昇順にソートするので この値を交換すると以下の数値の並びになる 次に末尾側から 2 番目と 3 番目の 1

使用する前に

ESMPRO/ServerManager Ver. 6 変更履歴

PowerPoint Template

Oracle Un お問合せ : Oracle Data Integrator 11g: データ統合設定と管理 期間 ( 標準日数 ):5 コースの概要 Oracle Data Integratorは すべてのデータ統合要件 ( 大量の高パフォーマンス バッチ ローブンの統合プロセスおよ

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

生成された C コードの理解 コメント元になった MATLAB コードを C コード内にコメントとして追加しておくと その C コードの由来をより簡単に理解できることがよくありま [ 詳細設定 ] [ コード外観 ] を選択 C コードのカスタマイズ より効率的な C コードを生成するベストプラクテ

Microsoft PowerPoint - install_NGSsokushu_windows(ver2.1).pptx

Microsoft PowerPoint - DEXCS2015_Salome_Installation pptx

OS

<< 目次 >> 1 PDF コンバータのインストール ライセンスコードの入力 PDF にフォントを埋め込みたい場合の設定 PDF オートコンバータ EX で使用しない場合 PDF コンバータ単体で使用する場合の説明 PDF コンバータのアン

起動する 起動方法は ご使用の OS により異なります 同一ネットワーク内で 本ソフトを複数台のパソコンから起動すると 本ソフト対応の LAN DISK にアクセスが集中し エラーとなる場合があります [ スタート ] メニュー [( すべての ) プログラム ] [I-O DATA] [LAN D

Microsoft PowerPoint ppt

PowerPoint Presentation

MODBUS ユーザーズマニュアル 페이지 1 / 23

Microsoft Word - ssVPN MacOS クライアントマニュアル_120版.doc

マニュアル訂正連絡票

Microsoft Word - CygwinでPython.docx

ソフト活用事例③自動Rawデータ管理システム

Microsoft PowerPoint - mp11-06.pptx

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

今週の進捗

Ontrack EasyRecovery 11 基本的な使い方

24th Embarcadero Developer Camp

RX ファミリ用 C/C++ コンパイラ V.1.00 Release 02 ご使用上のお願い RX ファミリ用 C/C++ コンパイラの使用上の注意事項 4 件を連絡します #pragma option 使用時の 1 または 2 バイトの整数型の関数戻り値に関する注意事項 (RXC#012) 共用

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

データ移行ツール ユーザーガイド Data Migration Tool User Guide SK kynix Inc Rev 1.01

PowerPoint プレゼンテーション

Transcription:

この資料は 情報工学レクチャーシリーズ松尾啓志著 ( 森北出版株式会社 ) を用いて授業を行うために 名古屋工業大学松尾啓志 津邑公暁が作成しました 管理 割り当て パワーポイント 27 で最終版として保存しているため 変更はできませんが 授業でお使いなる場合は松尾 (matsuo@nitech.ac.jp) まで連絡いただければ 編集可能なバージョンをお渡しする事も可能です 復習 復習 管理 ユーザに独立した論理アドレス空間を提供 論理アドレス空間の要件 無限大 プロセス事に固有 プロセス間で共有可能 複数の 次元アドレス ( プログラム部, データ部等の分離 ) 下限レジスタ機構 ユーザ領域の下限を設定,OS 領域とユーザ領域を分離 実行モードに応じてアクセス可否を判断 下限レジスタ LL 比較器 不正アクセスで例外として処理 ADR LL OS 領域 アドレスレジスタ ADR 実行モードユーザモード

復習 ロック / キー機構 アドレスの上位数桁で分割, 各領域ごとに権限を設定 アドレスに応じた権限 ( ロック値 ) と実行モードからアクセス可否を判断実行モードとロックアクセス権が一致すれば許可 OS 領域比較器 2 ユーザ領域 8. プログラムの領域確保 実行モード ADR OS 領域 3 アドレスレジスタ ADR 自由領域 プログラムの実行 領域の確保 実行時 二次記憶装置からへプログラムを転送 確保は, 他プロセスとの協調 上には他のプロセスも領域を持っている プログラム 二次記憶装置 ( ハードディスクなど ) CPU 領域要求のタイミング 静的要求 プログラム実行開始時に必要領域を要求 インストール 上にプログラムを格納できる領域を確保する必要 実行 動的要求 プログラム実行開始時は最低限の領域を要求 実行につれて更に必要となった場合はその都度要求

静的領域確保 可変区画方式 固定区画方式 プロセスに割り当てる領域の大きさをあらかじめ決めておく ( 固定区画 ) プロセスから要求があった際, その決められた大きさの領域を割り当てる プロセス 3Mくれさいなら 2Mくれ 総容量は余っていてもプロセスが使えない大きさの小さな連続領域が増えていく 可変区画方式 プロセスは, 必要な分だけ領域を要求 プロセスごとに要求サイズは異なる 要求があった分だけ割り当てる M くれ 3M くれ 可変区画方式の問題点 空き領域の検索コスト 処理が進行するに従い, さまざまな大きさの空き領域が発生 新しいプロセスの要求に合う大きさの空き領域を探すコストが増大 空き領域の断片化 処理の進行に伴い, 小さな空き領域が増加空き領域が断片化 ( フラグメンテーション ) 全体の空き容量が十分でも, 新しいプロセスに連続した領域を割り当てられない フラグメンテーション 空き領域の断片化 処理の進行とともに, 小さい使用できない領域が増加 統計的には, 全領域数の約 /3( 使用領域の半数 ) が無駄に ( 注 全容量の/3 ではない ) 解決法 メモリコンパクション プロセス実行を停止し, 断片化した領域をひとつの連続した領域にまとめる参考 Windows の デフラグ は, ディスク領域のフラグメンテーションに対してコンパクションを行うプログラムで, 考え方は同じ 動作中のほぼ全てのプロセスを停止する必要があり, 現実的には困難

/2ルール

可変区画方式における管理 可変区画方式における管理 空き領域割り当て 領域管理 空き領域割り当て 領域管理 ベストフィット リスト方式 ベストフィット リスト方式 ファーストフィット ビットマップ方式 ファーストフィット ビットマップ方式 ワーストフィット ワーストフィット 割当方式 ベストフィット 割当方式 ワーストフィット ベストフィット方式 割り当てた残り領域が最も少なくなる空き領域に割当 必要量 ワーストフィット方式 割り当てた残り領域が最も大きくなる空き領域に割当 必要量 効率的に見えるが... 空き容量の探索コストが大きくなる場合がある 残った領域が小さすぎて他のプロセスが使用できない確率が高い必要量 必要量必要量 残った領域は, ベストフィット方式より比較的大きくなる 処理が進むにつれ空き領域の大きさが均一化し, 大きい要求に応えられない 必要量 必要量 必要量

上位 割当方式 ファーストフィット 空き領域の割り当て方式 ファーストフィット方式 要求された量を確保できる最初に見つかった領域を割り当てる 必要量 割り当て方式 ベストフィット ワーストフィット ファーストフィット 探索コスト小領域の全てを調べる必要がない アドレス上位に大きい領域が残りやすくなり, 大きい要求にも対応しやすい必要量 注意すべき点 プロセスは要求と解放を繰り返す 空き領域の数は常に増減 これを高速管理する必要 空き領域の高速な検索も必要 領域管理方式に工夫が必要 可変区画方式における管理 領域管理 リスト方式 空き領域割り当て ベストフィット ファーストフィット ワーストフィット 領域管理 リスト方式 ビットマップ方式 アドレス A サイズ S next アドレス A2 サイズ S2 next A A2 A3 S 空き S2 空き2 アドレス A3 サイズ S3 next S3 空き3

領域管理 リスト方式 領域管理 ビットマップ方式 構造体 空き領域の先頭アドレス 空き領域の大きさ 次情報へのポインタ アドレス A サイズ S next 単位ブロックに分割 空き領域フラグ 空き空き空き 空き 上記構造体のリストとして全空き領域を管理 アドレス順リストの場合 ファーストフィット方式での検索が高速 大きさ順リストの場合 ベストフィット方式での検索が高速 各ブロックに対応づけられたフラグで領域ブロックの状態を管理 空き空き空き 領域管理 ビットマップ方式 ビットマップ 記憶領域を単位ブロックに分割 例 ) アドレスの上位数ビットが共通の部分など 各領域に対応するビット ( フラグ ) を用意 ビット配列により, 全体の空き領域を表現 大きい連続した空き領域を検索する際は フラグに が続いている部分を探す 各要素へのアクセスは高速だが, 空き領域の検索コストは大きくなりがち 2 x xff x xff x2 x2ff 8.2 プログラムのロードと領域の再配置

ロードモジュール 実行可能形式 一般にソースプログラムからコンパイラ & リンカが生成する システム上で実際に実行されるプログラム ソース #include<> コンパイラ オブジェクトモジュールオブジェクトモジュールオブジェクトモジュールオブジェクトモジュール foo.a bar.a リンカ ロードモジュール foo.a bar.a 複数のプログラムで共通して使用する機能 ( 静的 ) リンクにより各ロードモジュールに内包される 領域の浪費 ( ディスク領域も ) プログラム A foo.a プログラム B foo.a プログラム C foo.a 共有 共有 複数のプログラムにより共有可能な リンカはロードモジュールにの埋め込みを行わない 共有に対するリンク情報のみロードモジュールに書き込む ソース #include<> コンパイラ オブジェクトモジュールオブジェクトモジュールオブジェクトモジュールオブジェクトモジュール foo.so bar.so リンカ リンク情報 ロードモジュール 共有 (shared) ロードモジュールには実体を内包しない へのリンク情報のみをロードモジュールに埋め込む における使用領域の削減 実際のリンクは実行時に行う ( 動的リンク ) foo.so プログラム A プログラム B プログラム C

まとめ 共有に必要な性質 静的 リンク時にロードモジュールに埋込み ( 静的リンク ) 複数プログラムで使用されるがある場合, 領域の無駄 共有 ロードモジュールはリンク情報のみを持ち, 実行時にリンク ( 動的リンク ) 複数プログラムで使用される場合でも, 各は つのイメージだけ上に存在すればよい 領域 ( およびディスク領域 ) の有効活用 リエントラント性 プログラム A 内の関数 F でプリエンプションが発生した場合, 他のプログラム B は同じその関数 F を実行できなければいけない ( 共有してるから ) もちろんプログラム A は後に関数 F を再開できなければいけない 各呼び出しごとに, 作業領域を保存する仕組みが必要 関数内でグローバル変数をアクセスしない 関数内で static な変数を使わないなど 再配置可能 ( リロケータブル ) 上のどの位置にロードされた場合でも同じように実行可能であること 復習 アドレス空間 物理アドレス空間 28 番地 は, メモリ上のまさに 28 番地 を指す 物理空間 28 論理アドレス空間 28 8.3 オーバレイ 28 番地 は, メモリ上のどこかの番地 ( 物理アドレス ) を指すが, 実際の 28 番地 とは限らない プロセスによって異なる場合も 論理空間 28 MMU(Memory Management Unit) が, 論理 物理アドレスの変換を行う

き領域 復習 理想的な論理アドレス空間 大きい論理アドレス空間 大きさが無制限 プロセスはの空き容量を考慮する必要なし プログラムの簡単化, バグの可能性減少 プロセスごとに固有 他のプロセスからのアクセスに対し保護 プログラム部, データ部, スタック部など分離 用途ごとに空間を分けることで, 自プロセス内での不正アクセスの可能性を低減 必要時にはプロセス間で共有も可能 並列動作するプロセス間で共有し, 高速な通信機構として使用 } funca(); funca(){ funcb(); } funcb(){ funcc(); } ( 論理空間 ) main ret; funca ret; funcb ret; funcc ret; (物空理空 間)main(){ 大きい論理アドレス空間 オーバレイ 論理アドレス空間 > 物理アドレス空間 そのままでは実現不可能 時間的に 共有 CPU の場合, つしかないリソースをどうやって無限に見せたか? 論理空間のうち, まさに今必要である部分だけを物理空間にマッピング 必要な箇所が変わるたびにマッピングを変更すればよい オーバレイ 指定した時刻に, アプリケーションのどの部分が上に存在すべきかをプログラマが指定するしくみ 前に実行されたコード ( 親関数など ) のうち, さしあたり必要のなくなったコードがロードされている領域に対して, 新しく必要となったコードを上書き (overlay) できる次回以降の 欠点 仮想記憶 非常に複雑でエラーを起こしやすいで解決 プログラマの負担が増大

まとめ まとめ 管理 プログラムの実行には, ディスクからへのプログラムのロードが必要 マルチプログラミング環境では複数プロセスが並行してを使用 上でプログラムおよびデータを格納するための領域を管理する必要 記憶領域確保の方式 固定区画方式 可変区画方式 可変区画方式 空き領域の割り当て方式 ベストフィット ワーストフィット ファーストフィット 割当を適切に行わないと, プロセスが使用できない断片的な空き領域が多く発生 ( フラグメンテーション ) 空き領域の管理方式 リスト方式 ビットマップ方式 まとめ 静的 リンク時にロードモジュールに埋込み ( 静的リンク ) 複数プログラムで使用されるがある場合, 領域の無駄 共有 ロードモジュールはリンク情報のみを持ち, 実行時にリンク ( 動的リンク ) 複数プログラムで使用される場合でも, 各は つのイメージだけ上に存在すればよい 領域 ( およびディスク領域 ) の有効活用