コンピューターサイエンスでは、 スラッシュ これは、同じページをメモリ内に保持するためのメイン メモリが不足しているために、同じページが繰り返し読み込まれるときに、仮想メモリ (またはページング) システムのパフォーマンスが低下することです。構成とアルゴリズムによっては、システムの実際のスループットが数桁低下する可能性があります。
コンピューターサイエンスでは、 スラッシング これは、コンピュータの仮想メモリ リソースが過剰に使用されると発生し、ページングとページ フォールトが継続的に発生し、ほとんどのアプリケーション レベルの処理が阻害されます。コンピュータのパフォーマンスが低下したり、壊れたりする原因になります。この状況は、ユーザーが実行中のアプリケーションを閉じるか、アクティブなプロセスが追加の仮想メモリ リソースを解放するまで、無期限に続く可能性があります。
スラッシングについてさらに詳しく知るには、まずページ フォールトとスワッピングについて知る必要があります。
スラッシング これは、ページ フォールトとスワッピングがより高いレートで非常に頻繁に発生し、オペレーティング システムがこれらのページのスワップにさらに多くの時間を費やす必要がある場合です。オペレーティング システムのこの状態はスラッシングとして知られています。スラッシングにより、CPU 使用率は低下するか、無視できる程度になります。
基本的な概念は、プロセスに割り当てられるフレームが少なすぎると、ページ フォールトが多すぎて頻繁に発生するということです。その結果、CPU は価値のある作業を行わなくなり、CPU 使用率が大幅に低下します。
その後、長期スケジューラは、メモリにさらにいくつかのプロセスをロードすることで CPU 使用率を改善しようとし、それによってマルチプログラミングの度合いを高めます。残念ながら、これにより CPU 使用率がさらに低下し、ページ フォールトの増加とそれに続くスラッシングと呼ばれるマルチプログラミングの度合いの増加という連鎖反応が引き起こされます。
スラッシング時のアルゴリズム
スラッシングが開始されると、オペレーティング システムはグローバル ページ置換アルゴリズムまたはローカル ページ置換アルゴリズムのいずれかを適用しようとします。
1. グローバルページ置換
グローバル ページ置換では任意のページを取得できるため、スラッシングが見つかるたびにさらに多くのページを取得しようとします。しかし、実際に起こることは、どのプロセスも十分なフレームを取得できないことになり、その結果、スラッシングがますます増加することになります。したがって、グローバル ページ置換アルゴリズムは、スラッシングが発生した場合には適していません。
2. ローカルページの置換
グローバル ページ置換アルゴリズムとは異なり、ローカル ページ置換では、そのプロセスにのみ属するページが選択されます。したがって、スラッシングを減らす可能性があります。しかし、ローカル ページ置換を使用すると多くの欠点があることが証明されています。したがって、ローカル ページ置換は、スラッシング シナリオにおけるグローバル ページ置換の代替手段にすぎません。
スラッシングの原因
プログラムまたはワークロードによってスラッシングが発生する可能性があり、その結果、次のような深刻なパフォーマンス問題が発生します。
- CPU 使用率が低すぎる場合は、新しいシステムを導入してマルチプログラミングの度合いを高めます。グローバル ページ置換アルゴリズムが使用されます。 CPU スケジューラは、CPU 使用率の低下を認識し、マルチプログラミングの度合いを高めます。
- CPU 使用率がマルチプログラミングの程度に対してプロットされます。
- マルチプログラミングの度合いが増すにつれて、CPU 使用率も増加します。
- マルチプログラミングの度合いがさらに増加すると、スラッシングが発生し、CPU 使用率が急激に低下します。
- したがって、現時点で CPU 使用率を高め、スラッシングを停止するには、マルチプログラミングの程度を下げる必要があります。
スラッシングをなくす方法
スラッシングは、ハードドライブの健全性とシステムのパフォーマンスに悪影響を及ぼします。したがって、それを回避するためにいくつかのアクションを実行する必要があります。スラッシングの問題を解決するには、次のような方法があります。
スラッシングを防ぐテクニック
ローカル ページの置換はグローバル ページの置換よりも優れていますが、ローカル ページの置換には多くの欠点があるため、場合によっては役に立ちません。したがって、スラッシングを処理するために使用される他のテクニックを以下にいくつか示します。
1. 局所性モデル
ローカリティとは、アクティブに一緒に使用されるページのセットです。ローカリティ モデルは、プロセスが実行されると、あるローカリティから別のローカリティに移動することを示します。したがって、プログラムは通常、重複する可能性のあるいくつかの異なる場所で構成されます。
たとえば、関数が呼び出されると、関数呼び出し命令、ローカル変数およびグローバル変数などへのメモリ参照が行われる新しいローカリティが定義されます。同様に、関数が終了すると、プロセスはこのローカリティを離れます。
2. ワーキングセットモデル
このモデルは、前述の局所性モデルの概念に基づいています。
基本原則は、現在のローカリティに対応するのに十分なフレームをプロセスに割り当てると、プロセスが新しいローカリティに移動するときのみ障害が発生するというものです。ただし、割り当てられたフレームが現在のローカリティのサイズより小さい場合、プロセスは必ずスラッシングします。
このモデルによれば、パラメータ A に基づいて、ワーキング セットは、最新の「A」ページ参照内のページのセットとして定義されます。したがって、アクティブに使用されているすべてのページは、常に最終的にワーキング セットの一部になります。
knn アルゴリズム
ワーキング セットの精度はパラメータ A の値に依存します。A が大きすぎる場合、ワーキング セットが重複する可能性があります。一方、A の値が小さい場合、局所性が完全にはカバーされない可能性があります。
D がフレームと WSS の合計需要である場合私プロセス i のワーキング セット サイズです。
D = ⅀ WSS私
ここで、「m」がメモリ内で利用可能なフレーム数である場合、2 つの可能性があります。
- D>m、つまり総需要がフレーム数を超えると、一部のプロセスが十分なフレームを取得できないため、スラッシングが発生します。
- D<=m, then there would be no thrashing.< li> =m,>
十分な追加フレームがある場合は、さらにいくつかのプロセスをメモリにロードできます。一方、ワーキング セット サイズの合計がフレームの利用可能量を超える場合、一部のプロセスを一時停止する (メモリからスワップ アウトする) 必要があります。
この技術により、可能な限り最高レベルのマルチプログラミングが保証されるとともに、スラッシングが防止されます。したがって、CPU 使用率が最適化されます。
3. ページフォールトの頻度
スラッシングを処理するためのより直接的なアプローチは、ページフォールト頻度の概念を使用するものです。
スラッシングに関連する問題はページ フォールト率が高いことであるため、ここでの概念はページ フォールト率を制御することです。
ページ フォールト率が高すぎる場合は、プロセスに割り当てられているフレームが少なすぎることを示します。逆に、ページ フォールト率が低い場合は、プロセスに含まれるフレームが多すぎることを示します。
図に示すように、必要なページ フォールト レートの上限と下限を設定できます。
ページ フォールト率が下限を下回る場合、フレームはプロセスから削除される可能性があります。同様に、ページフォールト率が上限を超えた場合、より多くのフレームをプロセスに割り当てることができます。
言い換えれば、システムのグラフィック状態は、与えられた図内に形成される長方形の領域に限定される必要があります。
ページ フォールト率が高く、空きフレームがない場合、一部のプロセスが一時停止され、それらに割り当てられていたプロセスが他のプロセスに再割り当てされる可能性があります。一時停止されたプロセスは後で再開できます。