スワップせずにページングを管理する方法は?

スワップせずにページングを管理する方法は?

スワップせずにページングを管理する方法。このような場合は、ページエラーをどのように管理する必要がありますか?

使用可能なスワップがない場合は、ページングを管理する方法を意味します。 free_pagesリストと割り当てられた_pagesリストの2つのページリストがあることを知っています。 free_pagesリストのページが低くなると、割り当て_ページリストのLRUページをスワップパーティションに移動します。スワップパーティションがないとどうなるか知りたいです。

ベストアンサー1

あなたの問題を理解する限り、通常は次のように発生します。

メモリが割り当てられている場合:

  • メモリは割り当てられているとマークされますが、物理メモリは割り当てられません(したがって、アクセス時にページエラーが発生します)。 Linuxではこの段階で停止しますが、システムは物理スペースをすぐに割り当てることができます。その後、OOMが発生しないことを除いて、最後にページエラーに似たアルゴリズムを実行します。

ページ障害がある場合(マッピングされていないページにアクセスする)

  1. メモリが割り当てられていることを確認し、そうでない場合はエラーを返します。
  2. 無料の実際のページがあることを確認してください。ある場合は5に進みます
  3. ディスクに書き換え可能な部分(キャッシュ内のファイルなど)があるか、スワップ領域に空き容量があるか(スワップ領域がない場合はそのサイズのスワップ領域と見なされます)。ディスクに書き換えられたファイル/ブロック、またはディスクに書き込まれたページがある場合は、マッピングを解除して5に進みます。両方が利用可能な場合は、どちらかを選択します。
  4. OOM条件を返します。これはカーネルで発生する状況によって異なります。ユーザーに、エラー、カーネルパニック/ブルースクリーン、終了するプロセスの検索などが表示されることがあります。
  5. 問題を引き起こしているページを解放されたページにマップします。ページがスワップされると、スワップからページを読み取ってページに入れます。ページがファイルに裏付けられている場合、ファイルが読み取られ、コンテンツがファイルに配置されます。

一般に、スワップがないことはスワップ全体と同じであると言えます。

おすすめ記事