Linuxのメモリアドレス

  

Q1。物理アドレスとは何ですか?仮想アドレスとはリニアアドレスとは何ですか?

A:

1)マザーボード上の物理メモリモジュールが提供するメモリ空間を物理メモリ空間として定義します。ここで、各メモリユニットの実際のアドレスは物理アドレスです。
< p> 2)アプリケーション・プログラマから見たメモリ空間を仮想アドレス空間(またはアドレス空間)として定義する。ここで、アドレスは仮想アドレス(または仮想アドレス)と呼ばれ、一般に<; segment:offset"の形をとる。例えば、A815:CF2D;

3)リニアアドレス空間とは、0〜4 GBの範囲の連続したセグメント化されていないアドレス空間を指します。リニアアドレスとは、リニアアドレス空間の絶対アドレスのことです。 。


Q2。MMUはプロテクトモードで仮想アドレスを物理アドレスに変換する方法を教えてください。 A:プロテクトモードでは、メモリ管理ユニット(MMU)は1つまたは複数のチップのグループで構成され、その機能は仮想アドレスが物理アドレス、つまりアドレス変換にマッピングされることで、MMUはハードウェア回路です。セグメンテーションメカニズムとページングメカニズムと呼ばれるセグメンテーションコンポーネントとページングコンポーネントの2つの部分で構成され、セグメント化メカニズムは仮想アドレスを線形アドレスに変換し、ページングメカニズムは線形アドレスを物理アドレスに変換します。


Q3。32ビットリニアアドレス空間に2レベルのページテーブルを使用するのはなぜですか。

A:ページテーブルは線形アドレスを物理アドレスにマッピングするデータ構造で、4 GBの線形空間は1 M 4 KBページに分割でき、各ページテーブルエントリは4バイトかかります。 1Mページテーブル項目のページテーブルは4MBのスペースを占める必要があり、要件は連続的であるため、2レベルページテーブルは実装に使用され、2レベルページテーブルはページテーブルを再度ページングすることになり、最初のレベルはページディレクトリと呼ばれます。それはページテーブルに関する情報を格納します; 4MBページテーブルは再びページングされ、4KBサイズの1Kページに分割することができます。


Q4。ページキャッシュの役割は何ですか? Linuxが仮想ストレージ管理の実装にページングメカニズムを主に使用するのはなぜですか? 2レベルではなく3レベルのページングモードを使用するのはなぜですか?

A:

1)ページキャッシュはプロセッサが最近使用した32ページのページエントリを自動的に保持するため、128KBのメモリをカバーできます。

2)主にLinuxページングメカニズムは、次のような理由で仮想メモリ管理を実装するために使用されます。

A. Linuxのセグメンテーションメカニズムにより、すべてのプロセスが同じセグメントレジスタを使用するため、メモリ管理が簡単になります。

B. Linuxの設計目標の1つは、最も一般的な処理プラットフォームに移植できるようにすることですが、多くのRISCプロセッサは非常に限られたセグメンテーションをサポートしています。プロセッサはすべて64ビット構造を使用しており、Linuxではページディレクトリ(PGD)、中間ディレクトリ(PMD)、およびページテーブル(PT)の3種類のページテーブルが定義されています。

Copyright © Windowsの知識 All Rights Reserved