0

オペレーティング システムでのセグメンテーションは、さまざまなセグメント (プログラムの場合、これらはシンボル テーブル、ソース テキスト、スタックなどを表すことができます) を論理メモリ アドレス 0 から始まるユニットに分割することに基づいていることを学んでいます。 MMU (?) がオフセットに加えて実数を取得するために使用する仮想アドレス。

セグメンテーションの明らかな利点は、各セグメントがアドレス 0 から開始されるため、複数のプロセスが単一のセグメントを同時に利用できることです (共有ライブラリがその例です)。

ただし、セグメンテーションがプログラマーにどのように役立つかはわかりません。いくつかの例は何ですか?

ありがとう!

4

1 に答える 1

2

セグメンテーションはプログラマーに何の利益ももたらしません。セグメンテーションは、アーキテクチャの限界を克服するために開発されたものです。16 ビット PDP-11 コンピュータは、64K のメモリしかアドレス指定できませんでした。セグメンテーションを使用することで、プログラマはメモリをアドレス空間の内外にマップして、より多くのメモリにアクセスできるようになりました。

8086 チップはレトログラードでした。IBM は、68000 ではなく PC に IBM を使用して、コンピューター業界を数年後退させました。8086 は、命令のサイズを縮小するためにセグメントを使用しました。アドレスに 32 ビットを使用する代わりに、命令はセグメント レジスタからのオフセットを使用できます。

64 ビット モードでは、Intel プロセッサのセグメントの嫌悪感がついに解消されました。

于 2014-11-30T16:22:35.957 に答える