メモリ管理
テスト:基本概念
1、ストレージ管理の範囲:システム・メモリは、領域(メモリに格納されたオペレーティングシステム、ローエンド)、ユーザ領域(高メモリに格納されたユーザデータやプログラム)に分けることができ、ユーザメモリ領域は、オブジェクトストレージによって管理されています。
- プロセス空間のプログラムを実行するためにメモリ内に配置する必要があります
- CPUのメモリに直接アクセスするだけで、メモリとプロセッサのレジスタ
2結合、メモリへの命令とデータは、3つの異なる段階に取り組みます
- コンパイル時
- メモリアドレス位置が分かっている場合、絶対コードを生成することができ、開始位置は、コードを再コンパイルする必要が変更された場合。
- ロード時間
- メモリ位置はコンパイル時に知られていない場合は、再配置可能なコードを生成する必要があります。
- このような静的再配置プログラムとして
- ランタイム
- プロセスは、実行時にメモリに移動させることができる場合は、アドレスは実行時まで遅らせることにバインドされています。このようなベースレジスタとして、アドレスマッピングのためのハードウェアサポートを必要とし、長いレジスタを制限します。
- このような動的再配置プログラムとして
3、プログラムローダー
- 論理アドレスは:CPU生成されたアドレスは、論理アドレス、すなわち、仮想アドレスと呼ばれています。「論理アドレス空間」と呼ばれるプログラムによって生成されたすべてのアドレスのセット
- 物理アドレス空間:論理アドレスの調和に対応する物理アドレスのセット。論理アドレスの物理アドレス=ベースアドレスレジスタの内容
- アドレス変換:仮想アドレスとメモリアドレスの関係の確立
- 住所移転:プログラムは、論理アドレスを物理アドレスに変換
- 静的移転 - 組立手順が完了し、メモリへのプログラム。前のプログラム実行への完全なアドレス変換。メモリ内のプログラムの開始アドレスの+ =物理アドレス論理アドレス。
- 利点
- 実装が簡単で、ハードウェアのサポートを必要としません。
- 短所
- 再配置プログラムアドレスがメモリを再割り当てすることはできませんので、移動、およびされることはありませんした後、それはメモリの有効利用を助長されていません
- これは、共有プログラムやデータを達成することが困難である連続したメモリ空間を占有しなければなりません。
- 利点
- ダイナミック移転 -アドレス変換作業プログラム実行中に動的アドレス変換機構は、ハードウェア・アドレス変換によって実装されます。+ =物理アドレス論理アドレス移転・レジスタの内容。
- 利点
- これは、メモリの非連続割り当て可能
- 各ブロックに分散統一プロセスのために、メモリブロック内の最初のアドレスは異なる均一なベースレジスタに格納されている限り、あなたは、コンバータの自由度によって変換されたアドレスによって右メモリアドレスを取得することができます。
- 動的な再配置が仮想ストレージのための基礎を提供します
- すべての操作にかかわらず、メモリを動的に割り当てることができ、そのうちのメモリを割り当てるための動的位置決めは、先行する再実行が必要とされません
- 共有プログラムセグメントを助長します
- これは、メモリの非連続割り当て可能
- 短所
- 追加のハードウェアサポートの必要性
- ストレージ管理アルゴリズムの実装もより複雑です
- 利点
- 静的移転 - 組立手順が完了し、メモリへのプログラム。前のプログラム実行への完全なアドレス変換。メモリ内のプログラムの開始アドレスの+ =物理アドレス論理アドレス。
- 保護メモリ:完成比較CPUのハードウェアによって生成されたプログラムのアドレスと、各アドレスレジスタ
リンカ
- スタティック&ダイナミックリンクリンク
- ダイナミックリンク
- メインプログラムの組み立て作業中、
- 静的リンク
- 実行ファイル行われたとき
- スペースの無駄、時間を過ごします
- ダイナミックリンク
図4に示すように、メモリ拡張方法
- スイッチング技術
- 中央のスケジューリングスケジューリング階層
- 技術をカバー
- 制限にすべての情報を分割した後でプログラムを実行するために、ストレージにロードする必要があります
4.5、破片
- 内部フラグメンテーション
- これは、必要なメモリ容量よりも大きなメモリ空間を割り当てられています
- 外部断片化
- それは、しかし、理由は小さすぎるの分配されておらず、新しいアプリケーションプロセスのメモリ空間の空きブロックに割り当てることはできません
図5に示すように、メモリの割り当て
- 連続分布(単一チャネルのプログラミング環境)
- 単一の連続配信
- 静的割り当て:一度メモリ内のプロセス、彼はリリースの終わりまで待たなければならないそのあと
- シングル:ジョブだけを残して、メモリ、。
- 連続操作は、メモリに格納されています
- 長所:この方法は簡単で、実装が容易です
- 短所:のみシングル・チャネル・プログラムに適用されます
- 固定割り当てゾーン(ゾーニング法) - 内部断片
- データ構造:パーティションの仕様表
- 長所:シンプルな管理、低オーバーヘッド
- 短所:
- 柔軟性のない、大規模なプログラムは読まないかもしれません
- 廃棄物の低利用率、大規模な内部断片
- 動的割当領域(パーティション方式) - 外部フラグメンテーション
- データ構造:
- パーティション仕様表
- 利用可能なパーティションテーブル
- 長所:管理プロセスは比較的単純です
- 短所:テーブルのサイズを決定することは困難で、いくつかのメモリ使用可能なテーブルを取り込みます
- 利用可能なパーティションの空きチェーン
- 長所:追加のメモリを占有せずに
- 短所:使用可能なテーブルよりも見つける難しさ
- 最初の適応アルゴリズム
- 開始アドレスの昇順に配置されています
- 利点
- 単純な算術
- 簡単に大規模な操作のスペースのニーズを満たします
- 短所
- スペースデブリの廃棄物があります。
- ベストフィット
- パーティションサイズの単位で形成され
- 利点
- 大規模な操作のための大規模なストレージスペースのために小さな収納スペースとの最初の
- 短所
- サイズに応じて利用可能なテーブル/無料の連鎖フリーゾーンを再調整するたびに、アルゴリズムの複雑さは、廃棄物に起因する小さなスペースデブリを活用しないままに
- 最悪の適応
- 容量モードの減少でパーティションを形成します
- 利点
- wの少なくとも残骸を残して、空間の結果として廃棄物の利点を取ることができない小さな断片を放置しないでください
- 短所
- 大きさに応じて再調整可能なテーブル/空きチェーンの空き領域にするたびに、複雑なアルゴリズム
- 断片化の問題を解決するための締め付け
- すべての空き領域がマージするように動的に、メモリの内容を移動します
- データ構造:
- 単一の連続配信
- 非連続分布(マルチプログラミング環境)
|
|連続分布を避けるために、破片を解決するために試してみてください
|
- ページの管理
- 内部フラグメンテーションがあります。
- 形成するために、ページの物理アドレスのマッピングロジック
- 利点
- 分布と回復シンプル
- 高いメモリ使用量
- 外部断片化しません
- 短所
- 弱い共有し、あなたは静的な接続が必要
|
|ユーザーのニーズ、シェア&保護
|
- 管理セグメント - セグメント要求 - セグメントテーブル
- 利点
- ユーザーフレンドリーなプログラミング
- 共有が簡単
- 動的に接続されています
- アプリケーションのダイナミックな成長を処理することができたときにデータ
- 短所
- その他のハードウェアサポート
- 外部断片化、デフラグ大きなオーバーヘッドがあります。
- ダイナミックな成長とコストをもたらすことの難しさを許可します
- 各セグメントの長さは、領域の使用可能なメモリサイズによって制限され
- 利点
|
|システムおよびユーザーの両方
|
- ページ管理部 - 結合ページ要求セグメント - セグメント・テーブル・ページ・テーブルを+
- 命令またはデータメモリアクセスに一度、少なくとも3倍以上のメモリがアクセスされます
- 最初、これによりセグメントを除去するために、対応するセグメント・テーブル・ページ・テーブル・アドレスにアクセスするセグメント・テーブル・セグメントテーブルアドレスレジスタから得られました
- 全ての物理アドレスへのアクセスを取得するには、ページテーブルへの第二の訪問
- 必要な物理ユニットへのアクセスを得るために3回目の試み
- 速度を向上させることにより、TLBのアドレス変換
- 利点:
- 外部断片化しません
- 高いメモリ使用量
- リサイクル単純な代入
- ユーザーフレンドリーなプログラミング
- 共有が簡単
- 動的に接続されています
- アプリケーションが処理できるデータのダイナミックな成長
- 短所
- 管理ソフトウェアは、複雑さとコスト増加を追加します
- 必要なハードウェアと、メモリの量を増やします
- 増加したCPUの高速アクセスメモリを介して、Lenovoの登録をした場合、実行速度が大幅に削減されます
- 命令またはデータメモリアクセスに一度、少なくとも3倍以上のメモリがアクセスされます
ダイナミックパーティション比較アルゴリズム
検索の速度:最高に最高の無料のパーティションのサイズによって最悪の並べ替えを適応する最初のアルゴリズム
リサイクルプロセス:最高と最悪は空最初のパーティションの位置を再調整するため、最初の、最高のアルゴリズムを適応させます
フリーエリアの利用:フリーゾーンのベストフィットを見つけるためには最高ですが、あまりにも多くのメモリの断片化、メモリ使用量に影響を与え、かつ最小限に適応するための最悪のメモリの断片化のアルゴリズムが、より多くのメモリ割り当て要求プロセスが失敗することがあります。
のセグメント管理&ページ管理の比較
- セグメントは、彼がユーザのニーズに応じて分割され、情報の論理単位であるページ情報の物理単位、管理システムは、分割を容易にすることです。これは、ユーザーに対して透過的です。
- ページサイズはシステムによって決まる、固定されています。セグメントのサイズは固定されておらず、それは、その完全な機能によって決定されます。
- ユーザーのアドレス空間に設けられたステージでは、ページ内のオフセットとイェ・マシンのハードウェア機能しているユーザーのアドレス空間に提供され、p型、2です
- セグメントは、情報の論理単位であるので、それによってストレージと共有情報の保護を容易にします。保護し、ページを共有することも限られています。
第二に、仮想メモリ
1、テスト:置換アルゴリズム大きな問題
試験方法のために特定のメモリ参照配列、アルゴリズムを実行し、ページフォールトの数を計算します
ページ置換アルゴリズム
- FIFOアルゴリズムの交換ページは最長内のメモリに残ります
- アルゴリズムを積み重ねたりしないで、例外Beladyがあります
- ページ数を増やし、エラー率が増加します
- 最古のメモリページのLRU置換がアクセスされていません
- スタックアルゴリズムは、異常なBeladyはありません
- 最適なページ置換アルゴリズムをOPT:ページが最も遠い将来に変位するだけでアクセスできました
- スタックアルゴリズムは、異常なBelayedはありません
- 近似LRU:順列のビットフラグを使用して
- グローバル置換アルゴリズム
- 交換用のフレームのすべてのフレームのセットから選択
- 短所:ページフォルト率は、プロセスを制御することはできません
- 部分的な置換アルゴリズム
- 彼の割り当て枠から選択
- 短所:あなたは、他のプロセスに一般的に使用されていないメモリ空間を使用することはできません
ページフォルト率の計算:
Sへのランタイム智成功した訪問、Fに失敗したの訪問での操作を設定するには、訪問数の合計は、Aは、
そして、ジョブ実行智ページフォルトレートf = F / A、A = S + F
2、カーネルメモリ割り当てアルゴリズム
- ユーザーモードプロセス - 無料のリストを取得します
- カーネルメモリ - フリープールを取得
カーネルプロセスのメモリ管理の二つの方法
- バディシステム:断片化
- 連続したセグメントの固定された物理的サイズから分与
- 2割り当ての大きさの電力を用いて
- スラブの割り当て:いいえ破片
- 一の以上の物理的に連続したページ組成物の