オペレーティング システムには多くのスケジューリング アルゴリズムがあり、ジョブ スケジューリングに適したもの、プロセス スケジューリングに適したもの、両方に適したものがあります。以下に、一般的に使用されるいくつかのスケジューリング アルゴリズムを紹介します。
先着順 (FCFS) スケジューリング アルゴリズム FCFS スケジューリング アルゴリズムは、ジョブ スケジューリングとプロセス スケジューリングの両方に使用できる最も単純なスケジューリング アルゴリズムです。ジョブ スケジューリングでは、アルゴリズムは毎回、バックアップ ジョブ キューから最初にキューに入る 1 つまたは複数のジョブを選択し、それらをメモリにロードし、必要なリソースを割り当て、プロセスを作成して、それらを準備完了キューに入れます。 プロセス スケジューリングでは、FCFS スケジューリング アルゴリズムは、毎回、準備完了キューからキューに入る最初のプロセスを選択し、それにプロセッサを割り当て、完了するか何らかの理由でブロックされるまで、それを動作させます。 次の例は、FCFS スケジューリング アルゴリズムのパフォーマンスを示しています。システム内に 4 つのジョブがあり、それぞれの送信時間が 8、8.4、8.8、9、実行時間がそれぞれ 2、1、0.5、0.2 であるとします。システムは FCFS スケジューリング アルゴリズムを使用します。このジョブ グループの平均待機時間、平均ターンアラウンド時間、平均加重ターンアラウンド時間を表 2-3 に示します。 平均待ち時間 t = (0+1.6+2.2+2.5)/4=1.575 平均所要時間 T = (2+2.6+2.7+2.7)/4=2.5 平均加重回転時間 W = (1+2.6+5.13.5)/4=5.625 FCFS スケジューリング アルゴリズムは非プリエンプティブ アルゴリズムです。表面的には、すべてのジョブに対して公平ですが、長いジョブが最初にシステムに到着すると、後続の多くの短いジョブが長時間待機することになります。したがって、タイムシェアリング システムやリアルタイム システムの主なスケジューリング戦略として使用することはできません。しかし、他のスケジュール戦略と組み合わせて使用されることもよくあります。たとえば、優先度をスケジューリング戦略として使用するシステムでは、同じ優先度を持つ複数のプロセスが FCFS 原則に従って処理されることがよくあります。 FCFS スケジューリング アルゴリズムの特徴は、アルゴリズムは単純だが効率が低いこと、長いジョブには適しているが短いジョブには適していないこと (SJF および高応答率と比較して)、CPU がビジーなジョブには適しているが I/O がビジーなジョブには適していないことです。 最短ジョブ優先 (SJF) スケジューリング アルゴリズム 短いジョブ(プロセス)優先スケジューリング アルゴリズムとは、短いジョブ(プロセス)のスケジューリングを優先するアルゴリズムを指します。 Short Job First (SJF) スケジューリング アルゴリズムは、バックアップ キューから推定実行時間が最も短い 1 つ以上のジョブを選択し、実行のためにメモリにロードします。 Short Process First (SPF) スケジューリング アルゴリズムは、実行時間が最短と推定されるプロセスを準備キューから選択し、そのプロセスにプロセッサを割り当てて即時実行します。プロセッサは、完了するかイベントによってブロックされるまで解放されません。 たとえば、表 2-3 に示すジョブ セットを考えます。システムがショート ジョブ優先スケジューリング アルゴリズムを採用した場合、平均待機時間、平均ターンアラウンド時間、平均加重ターンアラウンド時間は表 2-4 に示されます。 平均待ち時間 t = (0+2.3+1.4+1)/4=1.175 平均回転時間 T = (2+3.3+1.9+1.2)/4=2.1 平均加重回転時間 W = (1+3.3+3.8+6)/4=3.525 SJF スケジューリング アルゴリズムには無視できない欠点もあります。
SJF スケジューリング アルゴリズムでは、平均待機時間と平均ターンアラウンド時間が最も短くなることに注意してください。 優先度スケジューリングアルゴリズム 優先度スケジューリング アルゴリズムは、優先度スケジューリング アルゴリズムとも呼ばれます。このアルゴリズムは、ジョブ スケジューリングとプロセス スケジューリングの両方に使用できます。このアルゴリズムの優先度は、ジョブ実行の緊急性を表すために使用されます。 ジョブ スケジューリングでは、優先度スケジューリング アルゴリズムによって、バックアップ ジョブ キューから優先度が最も高い 1 つまたは複数のジョブが毎回選択され、メモリにロードされ、必要なリソースが割り当てられ、プロセスが作成されて準備完了キューに配置されます。プロセススケジューリングでは、優先度スケジューリングアルゴリズムによって、毎回、準備完了キューから優先度が最も高いプロセスが選択され、プロセッサが割り当てられ、処理が開始されます。 新しい高優先度プロセスが実行中のプロセスをプリエンプトできるかどうかに応じて、スケジューリング アルゴリズムは次のように分けられます。
プロセスの作成後にプロセスの優先度を変更できるかどうかによって、プロセスの優先度は次の 2 種類に分けられます。
高応答率優先スケジューリングアルゴリズム 高応答率優先スケジューリング アルゴリズムは、主にジョブ スケジューリングに使用されます。このアルゴリズムは、各ジョブの待機時間と推定実行時間を考慮しながら、FCFS スケジューリング アルゴリズムと SJF スケジューリング アルゴリズムを総合的にバランスさせたものです。ジョブがスケジュールされるたびに、まずバックアップ ジョブ キュー内の各ジョブの応答率が計算され、応答率が最も高いジョブが選択されて実行されます。 応答比率の変化法則は次のように記述できます。 式によれば:
タイムスライスラウンドロビンスケジューリングアルゴリズム タイムスライス ラウンドロビン スケジューリング アルゴリズムは、主にタイムシェアリング システムに適用されます。このアルゴリズムでは、システムはすべての準備完了プロセスを到着時間順にキューに配置します。プロセス スケジューラは常に準備完了キューの最初のプロセスを選択して実行します。つまり、先着順の原則ですが、実行できるのは 100 ミリ秒などのタイム スライスのみです。タイム スライスを使用した後、プロセスが操作を完了していなくても、(奪われた) プロセッサを次の準備完了プロセスに解放する必要があり、奪われたプロセスは準備完了キューの最後尾に戻り、再度キューイングされて、再度実行を待機します。 タイムスライス ラウンドロビン スケジューリング アルゴリズムでは、タイムスライスのサイズがシステム パフォーマンスに大きな影響を与えます。タイム スライスが十分に大きく、すべてのプロセスを 1 つのタイム スライス内で実行できる場合、タイム スライス ラウンドロビン スケジューリング アルゴリズムは先着順スケジューリング アルゴリズムに退化します。タイム スライスが小さすぎると、プロセッサはプロセス間を頻繁に切り替えるため、プロセッサのオーバーヘッドが増加し、ユーザー プロセスの実行に実際に使用される時間が短縮されます。したがって、タイムスライスのサイズは適切に選択する必要があります。 タイム スライスの長さは通常、システムの応答時間、準備完了キュー内のプロセス数、システムの処理能力などの要因によって決まります。 マルチレベルフィードバックキュースケジューリングアルゴリズム(以前のアルゴリズムの利点を組み合わせたもの) マルチレベルフィードバックキュースケジューリングアルゴリズムは、図 2-5 に示すように、タイムスライスラウンドロビンスケジューリングアルゴリズムと優先度スケジューリングアルゴリズムを組み合わせて開発したものです。プロセスの優先度とタイムスライスのサイズを動的に調整することにより、マルチレベル フィードバック キュー スケジューリング アルゴリズムは複数のシステム目標を考慮できます。たとえば、短いプロセスはシステムのスループットを向上させ、平均ターンアラウンド時間を短縮するために処理されます。また、I/O タイプのプロセスは、I/O デバイスの使用率を向上させ、応答時間を短縮するために処理されます。同時に、プロセスの実行時間を事前に見積もる必要はありません。 図2-5 マルチレベルフィードバックキュースケジューリングアルゴリズム マルチレベルフィードバックキュースケジューリングアルゴリズムの実装の考え方は次のとおりです。 1. 複数の準備完了キューを設定し、各キューに異なる優先順位を割り当てる必要があります。第 1 レベルのキューの優先順位が最も高く、次に第 2 レベルのキューの優先順位が続き、残りのキューの優先順位は順に低くなります。 2. 各キュー内のプロセスに割り当てられる実行タイムスライスのサイズも異なります。キューの優先度が高いほど、各プロセスの実行タイムスライスは小さくなります。たとえば、第 2 レベルのキューのタイム スライスは、第 1 レベルのキューのタイム スライスの 2 倍の長さです。...i+1 レベルのキューのタイム スライスは、i レベルのキューのタイム スライスの 2 倍の長さです。 3. 新しいプロセスがメモリに入ると、まず第 1 レベルのキューの最後尾に配置され、FCFS 原則に従ってスケジュールのためにキューに入れられます。プロセスの実行順番が来たら、タイムスライス内に完了できればシステムからの退避準備ができます。タイムスライスの終了時に完了していない場合、スケジューラはプロセスを第 2 レベル キューの最後に転送し、FCFS 原則に従ってスケジューリング実行を待ちます。第 2 レベル キューでタイムスライスの実行後に完了していない場合、同様に第 3 レベル キューに配置されます...など。長いプロセスが第 1 レベル キューから第 n レベル キューに順番に落とされると、タイムスライス ローテーション方式で第 n レベル キューで実行されます。 4. スケジューラは、第 1 レベルのキューが空の場合にのみ、第 2 レベルのキューのプロセスが実行されるようにスケジュールします。また、スケジューラは、第 1 レベルから (i-1) レベルのキューがすべて空の場合にのみ、i 番目のレベルのキューのプロセスが実行されるようにスケジュールします。プロセッサが i 番目のレベルのキューでプロセスを実行しており、新しいプロセスがより高い優先度のキュー (1 から (i-1) までの任意のキュー) に入ると、新しいプロセスは実行中のプロセスのプロセッサをプリエンプトします。つまり、スケジューラは実行中のプロセスを i 番目のレベルのキューの最後に戻し、新しく到着したより高い優先度のプロセスにプロセッサを割り当てます。 マルチレベルフィードバックキューの利点は次のとおりです。
|
<<: 人間がロボットや AI より得意とする 7 つの仕事
>>: ロボットの黄金時代が来るのか?協働ロボットが主流になりつつある
2018年の初め、アリババは人工知能の分野での最新の成果を発表しました。人工知能に関するトップ学術...
少し前にスタンフォード大学の「エビ揚げロボット」が数え切れないほどの人々をため息まじりにさせた。20...
大規模言語モデル (LLM) は、学界と産業界の両方で大きな進歩を遂げてきました。しかし、LLM の...
StarCraft 2 のプレイヤーのうち、AI にまだ負けていないのはわずか 0.2% です。これ...
製造業の実際の発展状況は、国の経済発展と社会の安定に関係しています。伝統的な製造業のインテリジェンス...
人工知能の活発な発展は大きな論争を引き起こしています。発展の一般的な傾向からすると、これはデメリット...
韓国のソウルで人間の翻訳者と人工知能(AI)翻訳機の対決が行われる。人間の翻訳者が明らかに有利である...
ニューアトラス誌の報道によると、海洋ゴミは、海に漂うゴミと海岸に打ち上げられるゴミの両方の形で大きな...
この記事を読んでいただければ、確率の基本原理を機械学習に応用できる可能性が 100% あります。機械...
ワンクリック着せ替えがGoogleで実現しました!このAIフィッティングモデルTryOnDiffus...
[[439421]] [51CTO.com クイック翻訳]近年、人工知能(AI)は私たちの日常生活...
人間も他の動物も、目覚めるたびに過去の記憶を整理し、新しい記憶を迎える準備をします。私たちは、以前の...