2016-10-02 6 views
1

私はメモリ管理についてオペレーティングシステム上の恐竜の本を読んでいました。私はこれが最高の本の1つだと思うが、私が得ない本に書かれたページングについては何かがある。ページングは​​、CPUのアドレスポインタの長さでアドレス指定できる物理メモリよりも大きな物理メモリを使用しますか?

本書では、「32ビットのCPUは32ビットのアドレスを使用しているため、所与のプロセス空間は2^32バイト(4 TB)しかないことになります。何がCPUのアドレスポインタの長さによって対処できるか」

CPUが2^32の異なる物理アドレスのみを参照できる場合は、2^32 + 1の物理アドレスがある場合、最後のアドレスに到達できないため、この部分はあまり得られません。 CPU。だから、どのようにページングがこれを助けることができますか?

また、「32ビットCPUでは、頻繁に各ページテーブルエントリは4バイト長ですが、そのサイズも変わる可能性があります」32ビットエントリは2^32個の物理ページフレーム。フレームサイズが4 KB(2^12)の場合、4バイトのエントリを持つシステムは2^44バイト(または16 TB)の物理メモリをアドレス指定できます。

理想的な/理論的な状況で私が理解しているようにそれがどのように可能であるかはわかりませんが、仮想アドレスの一部はページテーブルのエントリを参照し、そのページのその特定の型のオフセットに置き換えます。だから、たとえCPUが2^32の異なるページエントリを指し示すことができたとしても、そのページ内の特定のバイトを読み取ることはできません。それはオフィスを指定していません。

多分私は本を誤解しているか、私が逃した部分があります。私はあなたの助けに感謝します!どうもありがとう!

答えて

0

あなたの本を焼く必要があるようです。無駄だ。

"[P]エージングでは、CPUのアドレスポインタの長さでアドレス指定できる物理メモリよりも大きな物理メモリを使用できます。"というのは完全なナンセンスです(ただし、本では「ページング」という用語に2つの異なる意味を割り当てている場合を除きます)。それはまだ役に立たない)。

論理アドレッシングから始めましょう。論理アドレスは、ページセレクタとページ内のオフセットで構成されます。いくつかのビット数(P)がページセレクタに割り当てられ、残りのビットがオフセットに割り当てられます。ページが2^9ビットの場合、ページセレクタに23ビット、ページ内にバイトオフセットが9ビットあります。

9/23ピックは私のところでは任意です。最近のシステムでは、大きなページを使用していますが、これは過去に使用されていた値です。

ページセレクタの23ビットは、プロセスページテーブルのインデックスです。

ページテーブルのエントリのサイズは、2の累乗になります(そして、私は1つも4未満ではありません)。我々の目的のために、各エントリが8バイト長であるとしましょう。

ページテーブルエントリのビットは、物理ページフレームと制御ビットをインデックスするビットに分割されます。 32ビットインデックスページフレームと32ビットが制御に使用されるという任意の選択をしましょう。

これは、理論的には2^32バイトのページを2^9バイトまたは合計2^41バイトで管理できることを意味します。ページサイズを2^9から2^20に増やす場合、システムは理論的には2^52(32 + 20)バイトのメモリを管理できます。

各プロセスはまだ2^32バイトしかアクセスできないことに注意してください。しかし、私の9ビットページシステムでは、2^9プロセスは2^41物理バイトのメモリを持つシステム上で2^32ページに同時にアクセスすることができます(この過度の単純化では共有システムアドレススペースの必要は無視します)。

私がページテーブルを32ビットに変更し、そのビットの9つを制御に、23をページフレームの選択に割り当てると、システムは2^32バイトのメモリしか管理できないことに注意してください2^32バイト以上を管理する)。

「32ビットCPUでは、各ページテーブルのエントリは4バイトの長さですが、そのサイズも変わることがよくあります.32ビットのエントリは2^32物理ページの1つを指すことができますフレームサイズが4 KB(2^12)の場合、4バイトのエントリを持つシステムは、2^44バイト(または16 TB)の物理メモリに対処できます。

これは理論上のBSです。ページ・テーブル・エントリの32ビットすべてをページ・フレームのインデックスとして使用したシステムは機能しませんでした。ページテーブルにはいくつかの制御ビットが必要です。

この本から引用している引用は、誤解を招きやすいものです。アドレスラインの制約のため、32ビットプロセッサは2^32バイトのメモリにもアクセスできません。

論理ページを使用すると、プロセッサが論理アドレスサイズが示すより多くのメモリを管理できる可能性がありますが、これはページ内のメモリを管理する目的ではありませんでした。

物理ページ・フレームとセカンダリ・ストレージ間の仮想メモリ・ページの移動を、通常の慣習で使用するページングの目的は、プロセスがシステム上の物理メモリよりも多くの仮想メモリにアクセスできるようにすることです。

メモリ管理のシステムが追加されています(ありがたいことに)死んでいる:セグメント。セグメントはまた、論理アドレス空間が許容するよりも多くの物理メモリをシステムが管理する手段を提供しました。

+0

ハハ、答えてくれてありがとう!それは私自身の理解を確かにしています。私は、本が非常に権威あるxDであるように見えるので、あなたが情熱的に本を非難するほど大胆ではありません。だから私は本が奇妙だと感じる唯一の人ではない.. 本はSilberschatz、ガルビン、ガニエにより、オペレーティングシステムのコンセプトである、私は感謝:) Amazonで – sosostris

+0

マン$ 160ドルを、他の初心者も少なく、とにかくブック= = に惑わさ得ることができると思います。 VAX/VMS内部構造とデータ構造のコピーが$ 5以下で、日付がある場合はより良い情報が得られます。 – user3344003

関連する問題