オペレーティングシステムのコンピュータサイエンスにおいて、エージング(英語:aging)またはエージングは、リソース不足を回避するために使用されるスケジューリング手法です。固定優先度スケジューリングは、システムリソースを利用するためにキューに入れられたタスクにそれぞれ優先度を割り当てるスケジューリング手法です。優先度の高いタスクは、優先度の低いタスクよりも先に、特定のシステムリソースにアクセスできます。このアプローチの欠点は、優先度の高いタスクが多数キューに入れられている場合、優先度の低いタスクがリソース不足になる可能性があることです。エージングは、準備完了キューでの待機時間に基づいて、タスクの優先度を徐々に上げるために使用されます。
問題
優先度ベースのスケジューリング アルゴリズムでは、大きな問題として無期限のブロック、つまり飢餓状態が挙げられます。実行準備が整っているが CPU を待っているプロセスは、ブロックされているとみなされます。優先度スケジューリング アルゴリズムでは、優先度の低いプロセスが無期限に待機状態になることがあります。優先度の高いプロセスが次々と実行されると、優先度の低いプロセスが CPU を利用できなくなることがあります。[1]
応用
エージングは、優先度の低いジョブが最終的に実行を完了することを保証するために使用されます。この手法は、優先度の低いタスクの飢餓を減らすために使用できます。 [2] エージングを実装する方法は多数ありますが、すべて、プロセスの優先度は準備完了キューで待機するにつれて増加するという同じ原則に基づいています。優先度の増加は、プロセスの待機時間と等しい場合も、等しくない場合もあります。
例
優先度の範囲が 0 ~ 511 のシステムを想定します。このシステムでは、0 が最高の優先度を意味します。優先度 127 のプロセスについて考えてみましょう。15 分ごとに優先度を 1 ずつ増やすと、32 時間を超えるとプロセスは優先度 0 になり、実行されます。
参考文献
- ^ Silberschatz、Galvin、Gagneオペレーティングシステムの原則、第 7 版、p.159
- ^ プロセッサ スケジューリング – ノート – オペレーティング システム – Computer Science Now
^ Silberschatz、Galvin、Gagne オペレーティングシステムの原則、第 6 版、p.162
