30

私は結合されたページング/セグメンテーション システムを研究していましたが、私の本にはこれに対する 2 つのアプローチがありました。

1.paged segmentation
2.segmented paging

両者の違いがわかりませんでした。ページ分割ではセグメントがページに分割され、分割ページングではページがセグメントに分割されていると思いますが、正しいか間違っているかはわかりません。一方、インターネット上では、ページングとセグメンテーションの組み合わせは、1 つのスキームのみを使用して記述されています。私のコースブックには、このための 2 つのスキームがある理由がわかりません。どんな助けでも大歓迎です。

4

3 に答える 3

3

セグメンテーションにより、ページの翻訳とスワッピングが遅くなる

これらの理由により、セグメンテーションは x86-64 では大幅に削除されました。

それらの主な違いは次のとおりです。

  • ページングは​​メモリを固定サイズのチャンクに分割します
  • セグメンテーションにより、チャンクごとに異なる幅が可能

構成可能なセグメント幅を持つ方がスマートに見えるかもしれませんが、プロセスのメモリ サイズを増やすと、断片化は避けられません。たとえば、次のようになります。

|   | process 1 |       | process 2 |                        |
     -----------         -----------
0                                                            max

プロセス1が成長するにつれて、最終的には次のようになります。

|   | process 1        || process 2 |                        |
     ------------------  -------------
0                                                            max

分割が避けられなくなるまで:

|   | process 1 part 1 || process 2 |   | process 1 part 2 | |
     ------------------  -----------     ------------------
0                                                            max

この時点で:

  • ページを変換する唯一の方法は、プロセス 1 のすべてのページに対してバイナリ検索を実行することです。これには許容できないログ (n) が必要です
  • そのセグメントが巨大になる可能性があるため、プロセス1パート1のスワップアウトは巨大になる可能性があります

ただし、固定サイズのページの場合:

  • すべての 32 ビット変換は、ディレクトリとページ テーブル ウォークの 2 つのメモリ読み取りのみを行います。
  • すべてのスワップは許容可能な 4KiB です

固定サイズのメモリ チャンクはより管理しやすく、現在の OS 設計を支配しています。

参照: x86 ページングは​​どのように機能しますか?

于 2017-06-11T15:05:45.067 に答える