スワップスペースは単一のプロセスに対応できますか?

スワップスペースは単一のプロセスに対応できますか?

私が理解したのは、スワップスペースを使用して非アクティブプロセスをスワップしてメモリを解放することです。しかし、単一のプロセスでスワップスペースを利用できますか?たとえば、メモリはほとんどありませんが、大きなスワップ領域を持つ大規模なハードドライブを持つシステムがある場合、大きなディスクスワップ領域を利用して、多くのメモリを必要とするプロセスを(遅くても)実行できますか?どのような措置を講じるべきですか? Linuxはこの問題を自動的に処理しますか?

ベストアンサー1

スワップスペースを提供してマウントする以外に、特別な作業を行う必要はありません。

MMU(1990年代初頭以降、ほとんどのプロセッサであるメモリ管理デバイス)を持つプロセッサでは、完全なアドレス空間を使用できますが、物理メモリ(RAM)がすべてのアドレス範囲位置に必ずしも存在するわけではありません。メモリ位置が指定されると、RAMはルックアップ機構を使用して「接続」される。空きRAMが利用できない場合は、その内容をスワップ領域に書き込むことで一部のブロックが解放されます。

もちろん、プロセッサは書き込まれたメモリアドレス範囲を追跡するので、その範囲内のアドレスが再び必要なときに正しいブロックが「交換」されます(通常、そのアドレスを書き込んで別のRAMを取得した後)。以降の内容)。

実際の詳細はオペレーティングシステムによって異なります。 Wikipedia 記事ページングもっと学びたいのであれば、ここから始めることをお勧めします。

実行する作業には事前に注意してください。競合するスワップアプリケーションはシステムの速度を低下させやすく、システムが停止しているように見えるようにします。

おすすめ記事