発生過程
- フレーム不足
- 過度な多重プログラミングや不適切な割り当てにより、現在必要なページを保持するフレームが不足する。
- ページフォールトの増加
- 必要なページがRAMに存在せず、メモリへ読み込む回数が増える。
- 過度なページ置換
- 追い出したページの再読み込みが繰り返され、ページングI/Oと待ちが増える。
- 性能低下
- 処理量が減少し、応答が遅くなる。CPU使用率も低下する場合がある。
CPU使用率の曲線
メモリ容量を一定とした定性的な概念図です。3つの区間は理解を助ける説明であり、正式な3段階のアルゴリズムや正確なしきい値ではありません。
- 上昇区間
- 同時実行数の増加 → CPU使用率の上昇
- 頂点付近
- フレーム不足 → ページフォールトの増加
- 急降下区間
- 繰り返す置換とI/O待ち → CPU使用率の低下
予防と管理
- ワーキングセット管理
- 直近の観測窓で参照したページ集合を保持できるだけのフレームを割り当てる。
- ページフォールト頻度(PFF: Page Fault Frequency)の管理
- 上限を超えたらフレームを追加し、下限を下回ったら回収を検討する。
- 同時実行数の調整
- 追加できるフレームがなければ、一部のプロセスを一時停止してフレームを回収する。
管理上の条件
- 観測窓の設定
- 短すぎると必要なページが漏れ、長すぎると過去の処理のページまで含まれる。
- 総需要の判断
- ワーキングセットの大きさの合計が割り当て可能な総フレーム数を超えたら、同時実行数を減らす。