スラッシングとは何ですか?
1. 序章
このチュートリアルでは、スラッシングの概念について説明します。
2. スラッシング
オペレーティングシステムでは、ページングはプロセスをセカンダリストレージからメインメモリにページの形式で取得するために使用されるストレージメカニズムです。
その結果、それはすぐに何度も何度も何度も失敗し、すぐに戻さなければならないページを置き換えます。 この高いページングアクティビティは、スラッシングと呼ばれます。
3. スラッシングの原因
CPU消費量は、オペレーティングシステムによって監視されます。 CPU使用率が低すぎる場合は、マルチプログラミングを改善するために新しいプロセスが導入されます。どのプロセスに属しているかに関係なく、ページを置き換えるグローバルページ置換技術が使用されます。
プロセスが実行の新しいフェーズを開始し、より多くのフレームを必要とすると仮定しましょう。 障害が発生し、他のプロセスからフレームを盗み始めます。 ただし、これらのプロセスにはこれらのページが必要であり、その結果、他のプロセスからフレームを盗んで失敗します。
ページを入れ替えるには、これらの障害のあるプロセスでページングデバイスを使用する必要があります。 レディキューは、ページングデバイスのキューに入ると空になります。 プロセスがページングデバイスを待機すると、CPU使用率が低下します。
CPUスケジューラーは、CPU使用率の低下を認識し、その結果、マルチプログラミングの度合いを高めます。 新しいプロセスは、実行中のプロセスからフレームを取得することで開始しようとします。これにより、ページフォールトが増え、ページングデバイスのキューが長くなります。 その結果、CPU使用率はさらに低下し、CPUスケジューラーはマルチプログラミングの度合いをさらに高めようとします。 スラッシングが発生し、システムスループットが急落しました。
4. スラッシングの解決策
4.1. ローカル置換アルゴリズム
ローカル置換を使用する場合、あるプロセスがスラッシングを開始すると、別のプロセスからフレームを盗むことはできず、別のプロセスもスラッシングを引き起こす可能性があります。
4.2. ワーキングセットモデルまたはローカリティモデル
プロセスが実行されると、ローカリティからローカリティに移動します。ローカリティは、一緒にアクティブに使用される一連のページです。 このモデルは、パラメーターを使用してワーキングセットウィンドウを定義します。 最新のページ参照のページのセットがワーキングセットです。 ページがアクティブに使用されている場合、そのページはワーキングセットに含まれます。 使用されなくなった場合は、最後の参照後、ワーキングセットの時間単位から削除されます。
ワーキングセットの精度は、選択したものによって異なります。小さすぎる場合、地域全体を網羅することはできません。 大きすぎると、いくつかの地域と重複する可能性があります。 したがって、ワーキングセットの最も重要なプロパティはそのサイズです。
プロセスがある場合は、システム内の各プロセスのワーキングセットサイズを計算します。 次に、それを考慮することができます。ここで、はフレームの総需要です。 各プロセスは、ワーキングセット内のページを積極的に使用しています。 したがって、プロセスにはフレームが必要です。 合計需要が使用可能なフレームの合計数()より大きい場合、一部のプロセスに十分なフレームがないため、スラッシングが発生します。
Δを選択した後、オペレーティングシステムは各プロセスのワーキングセットを監視し、そのワーキングセットにワーキングセットサイズを提供するのに十分なフレームを割り当てます。 十分な追加フレームがある場合は、別のプロセスを開始できます。 ワーキングセットサイズの合計が増加し、使用可能なフレームの総数を超えた場合、オペレーティングシステムは一時停止するプロセスを選択します。
次の図では、一連の番号はプロセスに必要なページです。 ワーキングセットのサイズを9とすると、ワーキングセット内のページが時間と:で表示されます。
4.3. ページフォールト頻度戦略
目的のページフォールト率の上限と下限を設定できます。 実際のページフォールト率が上限を超えると、別のフレームがプロセスに割り当てられます。 ページフォールト率が下限を下回ると、フレームがプロセスから削除されます。
5. 結論
この記事では、スラッシングの概念、その原因、およびスラッシングに対処するための戦略について説明しました。