オペレーティングシステム - メモリ管理

第四章メモリ管理

要約:近年、コンピュータ技術、システムソフトウェアおよびアプリケーション・ソフトウェアの開発とは種類の面で急速に拡大しているとfunctions.Although記憶容量が継続的に拡大している、それはまだ、現代のソフトウェアdevelopment.Thusのニーズを満たすことができません、メモリは、直接メモリの利用率に影響するだけでなく、メモリ管理の主な目的をperformance.Theシステムに重大な影響がメモリであるのみならず、それを効果的に管理するための貴重な希少resource.Howまま。

*メモリの階層

メモリの三層構造、CPUレジスタ(レジスタ)、メインメモリ(キャッシュ、メインメモリ、ディスクキャッシュ)、二次記憶装置(固定ディスク、取り外し可能な記憶媒体)

ハンドラは、データがデータレジスタに、命令レジスタにメインメモリから命令およびデータ取得指示を取得し、アドレス変換の速度を加速するための記憶オペランドアドレスレジスタレジスタ、リラクゼーションのためのキャッシュメモリと処理マシン間の矛盾、一時的にディスクの一部を格納するディスクキャッシュは、頻繁にディスクアクセスの数を減らすために、データおよび情報を使用しました

*負荷と収束プログラム

コンパイラによって生成されたオブジェクトモジュール - >リンカ - >ロード・モジュール - >ロードプログラム - >メモリ

プログラムローダ

絶対負荷モード、プログラムは、プログラムがメモリに常駐するどの位置を知っているであろう、コンパイルされ、ロードされたメモリアドレス位置に応じて各リロケーション・エントリ・アドレスを変更するために、再配置可能なロード方法、適切なバイアスを加えますシフト量;絶対アドレスに相対アドレスを変換する際に、実行時に動的にロードされ、延期するアドレス変換プログラムは、実際に実行したいです

リンカ

動的リンクがロードされ、ユーザは、負荷をソースコードをコンパイルします。実行可能ファイル、ターゲットモジュールに記録されたシンボリックアドレス、および実行可能ファイルに直接使用書き換える命令数が場合静的リンク、実行メモリ、収束のエッジにエッジ場合、ターゲット・モジュールの実行中に使用されなかった実行時ダイナミックリンクは、メモリにロードされず、唯一ローダをスピードアップすることができないように、ロードモジュールにリンクされていますこのプロセスは、だけでなく、メモリ空間の節約します

*連続割り当てるストレージ管理

単一の連続的な分布は、単一のユーザ、シングルタスクのオペレーティングシステムのために使用することができ、固定パーティションが割り当てられている、メモリをパーティションの等しいまたは等しくないサイズの数に分割され、各アプリケーション・プロセスは、1つまたはいくつかのパーティションは、オペレーティングシステムがゾーンを占有する占有します;動的パーティション割り当ての数、パーティションサイズ可変パーティションと、パーティションを動的に分割する操作のサイズおよび数に応じて、可変です

固定されたパーティションが破片に存在する、固定されたパーティションの合計数は、同時に行われる手順の数、---パーティションテーブル記録パーティションのサイズおよび使用を制限します

動的分割細胞外破片の存在下、フリーパーティションテーブルがまだテーブルエントリ(パーティション番号、パーティションサイズ、セクタアドレス、状態)、フリーパーティションチェーンを設定---パーティションに割り当てられていない---フリーパーティション割り当ておよびリンクを達成

検索要素の順序に基づいて動的なパーティション割り当てアルゴリズム

最初のフィットアルゴリズムFF、空きパーティションYaoan無料パーティションテーブルをアドレス(フリーエリア・チェーン)ローからハイランクにある、大きなパーティションを保持し、フリーゾーンの高いサイトの大部分を保持しますが、使用される低アドレス範囲を離れることは困難無料のパーティションと探し始めるための低から各サイト、ファンタジー最初のフィットアルゴリズムNF、より均一に分布探して、無料のパーティションを起動して、小さなコストが、大きな予備のパーティションの欠如を探すために、最後の空き領域から次の空き領域を見つけ、最も適応アルゴリズムBF、昇順にフリーパーティション良好な残りの空きが最小になるように、外側部分ができるだけ小さくなる。WF最悪適合アルゴリズムは、すべての選択されたパーティションから割り当てられていないと等しい、最大のジョブサイズ部門よりも大きいですメンバーに必要な、大きさの降順でソートフリーパーティション、最大の残り空き領域、大きな自由パーティションの欠如

動的なパーティション割り当てアルゴリズムベースのインデックス検索要素

迅速(クイックフィット)アルゴリズムを適応させる必要なメモリの長さに基づいて、最も適切なフリーリスト管理インデックステーブルを見つけ、バディシステム(バディシステム)アプリケーションテーブル1024分割し、パーティションまたはフリーパーティションのサイズは、この電源の2 Kで割り当てられていますリサイクル、ハッシュアルゴリズム、ハッシュテーブルのパーティションサイズがアイドルのキーワードではありません構築するためにハッシュ関数を確立します。フリーリストの先頭ポインタリストパーティション各エントリ

動的なパーティション割り当て再配置可能

コンパクト、ユーザプログラムメモリの変更が必要なリロケーションで起こる;動的再配置、動作中に動的な方法、アドレス変換命令実行、アドレス変換メカニズムをサポートするために必要なハードウェアは、相対アドレスプロセッサを提供する、メモリ・リロケーションを提供しますレジスタ、動的パーティション割り当てアルゴリズムに基づいて、動的再配置パーティション割り当てアルゴリズムは、コンパクトな追加

*スワップ

ディスク(外部記憶装置)に保存されているすべてのユーザのジョブへのシステム、あなただけそれが山を待ってバックアップメモリ​​キューに転送され、からされ、タイムスライスの仕事を使い切ったとき、仕事にメモリを読み込むことができますバックログは、メモリに実行するために別の仕事に転送します

種類変更する交換にページは、デマンドページング要求とセグメント化メモリ管理の基礎である。全体的にスワップ、中間プロセッサスケジューリング実際にメモリ不足の問題を解決するためのメモリ機能をスワップされ

プロセスがスワップアウト(中断)及びトランスデューサ(活性化)プロセスを選択しは、スリープ状態または遮断状態選択処理は、最低の優先度を選択する複数の、プロセスをスワップアウトされた場合にスワップアウトされる; 2.プロセスを唯一の非共有プログラムやデータセグメント、アプリケーション・スワップ領域のため、プロセスをスワップアウト、アプリケーションが正常起動ディスク、ディスク・スワップ領域への転写プログラムとデータの処理であります

ディスクにスワップアウトされた最長のプロセスへの変化の過程など、時間、およびアプリケーションのメモリを選択し、複数の場合には、プロセスをスワップアウトされています見つける準備ができて、すべてのPCB収集プロセスの状態を見ます

*ページメモリ管理

コンパクトなければ、メモリ空間3離散分布をフルに活用することができます:ページングストレージ管理、ストレージ管理セグメント、セグメントページングメモリ管理を

ページ:いくつかのページへのプロセスのページングストレージ管理論理アドレス空間、各ページにゼロから番号、アドレス構造:ページ番号P +変位量Wが、ページテーブル:物理ブロック番号にページ番号からアドレスマッピングを実装

そして、2つのマルチレベルページテーブル方法2ページテーブルを離散アロケーション・ページ・テーブルを実行するためには、連続したメモリ・ページ・テーブル・スペースの広大を必要とせずに問題を解決しますが、大規模なページテーブルを格納するためのより少ないメモリ空間に対応していません。問題;

2ページの表には適していません64ビットマシンについては、

ページテーブルを反転プロセスID及びページ番号に従って、ページテーブルが反転検索;占有ページテーブルメモリ空間を低減するために、それぞれ1つの物理ブロック(フレーム)は、ページテーブルエントリ、プレスソート物理ブロックが設けられています。一致した場合、ページ・テーブル・エントリ番号iはページここでの物理ブロック番号を特定します

*セグメント化されたメモリ管理

システムの基本的な原理は、セグメント化され、各セグメントに0からアドレス指定され、連続したアドレス空間を使用しています。論理ブロックの長さに対応するセグメントの長さによって決定される、各セグメントの長さは等しくありません。システムでは、ページングシステムと同様、必要性が改善されたスイッチング速度を容易にするために、村、レジスタのアリール基に、各プロセス・セグメント、即ちセグメント・テーブルのマッピングテーブルを確立します。

ページングとセグメンテーションの間の差のページ1の情報;. 2及びシステムによって決められた固定ページサイズの物理的な単位である3ページングユーザプログラムのアドレス空間は一次元であり、セグメントのセグメントであって、情報の論理単位であります情報の比較的完全なセットを意味する、セグメントの長さが固定されていない、サブシステム、ユーザプログラムのアドレス空間は2次元である、それはセグメント名に必要であるが、セグメントアドレス

情報共有セグメントは情報の論理ユニットであるため、凸部システムは、共有セグメントの利点を実現することは容易です。すなわち、いくつかのプロセスが1つまたは複数のセグメントを共有することができ、セグメントの保護も非常に簡単です。ページングシステムでは、プログラムやデータの共有を実現することができるが

章の演習の概要

4.1 なぜ階層メモリを設定するには?

メモリの複数が並列にメモリの両端で動作するハードウェアができることがあり、マルチレベルメモリ構造、特定のキャッシュ技術では、構造は、システム性能のメモリ帯域幅への影響を軽減するための最良の方式であるマイクロプロセッサの内部に設けられた各種バッファメモリ、メモリアクセスへの圧力を減らします。CPUメモリ内のレジスタの数を増加させると大幅に圧力を緩和します。

4.7 なぜ動的な再配置をご紹介!どのように達成するために?

アクセス命令又はデータ、物理アドレスにプログラムやデータがアクセスする論理アドレスが、動的再配置を導入するたびに、プログラムの実行中に、具体的な方法は、システムにロードするために使用される再配置レジスタを添加します実メモリアドレスが動的再配置を実現するために、相対アドレス移転・レジスタ・アドレスとの和にアクセスする際に、メモリ内のインスピレーションプログラムアドレスは、プログラムが実行されます。

4.9 いくつかの可能なシナリオを持っているメモリを再利用するためのアルゴリズムを適応させるために最初に使用した場合?これらの状況に対処するには?

メモリの回復は、我々は最初のサイトを入れたとき(スペアパーティション・チェーンを構築するためのアルゴリズムに従って)挿入ポイントを見つけることよりも、無料のパーティションのリストを取得するためにメモリ領域を回復するために、左にあなたがメモリと挿入ポイントの権利を取り戻すしたい場合や双方は、次に隣接する別個の領域として、それに挿入され、関連するデータ構造の値を変更して、領域に隣接する領域内にないマージし、隣接しています。

4.21 ページングシステムのアドレス変換を達成するためにどのように?

まず、プロセスは、プロセスが論理アドレスのデータにアクセスするときに、インデックスタブのアドレスは自動的に有効な手段であるページテーブル長レジスタにプロセス・ページ・テーブルとページテーブルの先頭アドレスにPCBから実行されます業界のページ番号とアドレスへのアドレス(論理アドレス)。ページ番号とページテーブルは、ページ番号が中断スローアクセス違反し、大きい場合に比べて、ページテーブルに登録します。そうでない場合は、物理ブロック番号を取得するページテーブルの計算された位置の長さに対応するアドレスおよびページテーブルのページテーブルエントリを起動し、ページ番号を使用します。ブロック番号と物理アドレスとを組み合わせると同時に物理アドレスレジスタに物理ページアドレス、。

おすすめ

転載: www.cnblogs.com/SHNLQS-1273196803/p/11070165.html