各プロセスには、コードセグメント、データセグメント、ヒープ、スタックを含むメモリブロックが与えられていることを理解しています。また、コードセグメントは読み取り専用であることも理解しています。しかし、プロセスが実行を開始すると、この読み取り専用メモリはどこに割り当てられ、どのようにOSはプロセスごとにメモリの読み取り専用部分を区別しますか?
1 に答える
0
各プロセスには、実際の物理 RAM をプロセスの仮想メモリ空間にマップするページ テーブルと呼ばれるものがあります。このテーブルは、通常 4kb のメモリの各「ページ」に属性を割り当てます。これらの属性には、ページを読み取り専用、実行不可、特権コードを持つなどの設定が含まれます。オペレーティング システムは基本的にハードウェアに属性を伝え、すべてのメモリ アクセスを細かく管理する必要がないようにします。非常に非効率になります。
低レベルの詳細について は、典型的な x86 マシンでの説明と例について、この osdev wikipageを参照してください。
于 2012-07-19T16:05:12.953 に答える