オペレーティング システムのレビューのためのプロセッサ スケジューリング

目次

2.2.1 スケジューリングの概念

2.2.2 プロセスのスケジューリング方法

2.2.3 スケジュール評価指標

2.2.4 典型的なスケジューリングアルゴリズム✳

【エクササイズ】:


2.2.1 スケジューリングの概念

(1) 基本的な考え方

マルチプログラミング システムでは、プロセスはプロセッサを取得して、プロセッサによってスケジュールされた後にのみ実行できるため、プロセッサをプロセスにどのように割り当てるかがオペレーティング システムの中心的な問題になります。

プロセッサのスケジューリングは、特定のスケジューリング アルゴリズムに従ってプロセッサを取得するために、レディ キューからプロセスを選択するプロセスです。これは、マルチプログラミング オペレーティング システムの基礎であると同時に、オペレーティング システム設計の中核でもあります。

(2) 3段階のスケジューリング

    オペレーティング システムが異なれば、必要なスケジュール設定のレベルも異なりますが、通常、ジョブは送信から完了まで 3 つのレベルのスケジュール設定を経る必要があります。

    ①高度なスケジューリング(ジョブスケジューリング)。特定のアルゴリズムに従って、外部メモリのバックアップキューからいくつかのジョブが選択されてメモリに転送され、プロセスが作成され、必要なリソースが割り当てられます。新しく作成されたプロセスは準備完了キューに挿入され、プロセッサーをめぐって競合する権利を獲得します。簡単に言えば、高度なスケジューリングはメモリとストレージ間のスケジューリングであり、ジョブの送受信を 1 回だけ行う必要があります。マルチチャネル バッチ システムでは、ほとんどのジョブがジョブ スケジューリングの対象となりますが、他のシステムでは通常、ジョブ スケジューリングを設定する必要はありません。ジョブのスケジューリングは実行頻度が低く、通常、ジョブのスケジューリングには数分かかります。

②中間スケジューリング(メモリスケジューリング)。本質的な使用率とシステム スループットを向上させるために、中間レベルのスケジューリングが導入されています。すなわち、システムは、メモリ上で一時的にブロックされているプロセスを外部メモリに転送して待機させると同時に、プロセスの状態をサスペンド状態に変更する。プロセスの実行準備が整い、メモリが空くと、中間スケジューリングは、特定のスケジューリング アルゴリズムに従って、実行準備ができている外部ストレージ上の準備完了プロセスをメモリに再ロードし、その状態を準備完了に変更し、準備完了キューにハングして待機します。

③低レベルスケジューリング(プロセススケジューリング)。その主な機能は、特定のアルゴリズムに従ってレディキュー内のプロセスを選択し、それにプロセッサを割り当てることです。プロセス スケジューリングは、オペレーティング システムの最も基本的なスケジューリングです。実行頻度が高く、プロセス スケジューリングにかかる​​時間はわずか数十ミリ秒です。このスケジューリングは、マルチプロセッシング、タイムシェアリング、およびリアルタイム オペレーティング システムで構成する必要があります。

[3 レベルのスケジュールの比較]:

 (3) スケジューリングタイミングと切り替え処理

       プロセスのスケジューリング プログラムとスイッチング プログラムはどちらもオペレーティング システムのカーネル プログラムです。スケジューリングを要求するイベントが発生すると、ディレクションはプロセス スケジューラを実行でき、新しい準備完了プロセスがスケジュールされると、プロセス間の切り替えを実行できます。プロセスの切り替えはスケジューリング完了直後に発生することが多く、元のプロセスの現在の切り替えポイントのサイト情報を保存し、スケジュールされたプロセスのサイト情報を復元する必要があります。サイトが切り替わると、オペレーティング システムのカーネルは、元のプロセスのサイト情報を現在のプロセスのカーネル スタックにプッシュして保存し、スタック ポインタを更新します。カーネルは、新しいプロセスのカーネル スタックからロードされた新しいプロセスのオンサイト情報を完了し、現在実行中のプロセス空間ポインタを更新し、PC レジスタおよびその他の関連作業をリセットした後、新しいプロセスの実行を開始します。

       ただし、実際のオペレーティング システムの設計では、システム カーネル プログラムの実行中に、ある時点でプロセスのスケジューリングを引き起こす要因が発生し、必ずしもすぐにスケジューリングと切り替えが実行されるとは限りません

①割り込み処理のプロセスにおいて:割り込み処理プロセスは複雑であり、実装時にプロセス切り替えを実現することが困難であり、割り込み処理はシステム作業の一部であり、論理的には特定のプロセスに属さず、プロセッサリソースを奪われるべきではありません。

②プロセスはオペレーティング システムのカーネル プログラムのクリティカル エリアにあります。クリティカル エリアに入った後は、共有データに排他的にアクセスする必要があります。理論的には、他の並列プログラムが入らないようにロックする必要があります。ロックを解除する前に、共有データのリリースを高速化するために、他のプロセスに切り替えて実行すべきではありません。

③割り込みを完全にシールドする必要があるその他のアトミック操作: ロック、ロック解除、サイト保護の中断、リカバリなどのアトミック操作など。アトミック操作中はすべての割り込みをマスクする必要があり、当然ながらプロセスのスケジューリングや切り替えは実行できません。

上記のプロセスでスケジューリングを引き起こす条件が発生した場合、システムのリクエスト スケジューリング フラグを設定する必要があり、上記のプロセスが終了するまで、対応するスケジューリングと切り替えは実行されません。

最新のオペレーティング システムでは、プロセスのスケジューリングと切り替えの条件は次のようになります

① スケジューリング条件が発生し、現在のプロセスが実行を継続できなくなった場合、即座にスケジューリングと切り替えを実行できます。この場合にのみオペレーティング システムがプロセスをスケジュールする場合、それは非プリエンプティブ スケジューリングです。

②割り込み処理が完了したとき、またはセルフトラップ処理が完了したとき、割り込まれたプロセスのユーザステートプログラム実行サイトに戻る前に、リクエストスケジューリングフラグがセットされていれば、即座にプロセスのスケジューリングと切り替えを行うことができます。この場合、オペレーティング システムがスケジューラの実行をサポートしている場合、プリエンプティブ スケジューリングが実現されます。

[本当の質問]:

1. [2012 年統一試験問題] シングルプロセッサ マルチプロセス システムに複数の準備完了プロセスがある場合、プロセッサのスケジューリングに関する次の記述は誤りです ( )。C

A. プロセッサのスケジューリングはプロセスの最後に実行できます。        

B. プロセッサのスケジューリングは、新しいプロセスを作成した後に実行できます。

C. プロセスがクリティカルセクションにある場合、プロセッサのスケジューリングは実行できません。

D. システムが呼び出してユーザーモードに戻るときに、プロセッサのスケジューリングを実行できます。

[分析]:

·プロセスのスケジュール設定はいつ必要ですか?

現在実行中のプロセスがプロセッサを積極的に放棄します。プロセスは正常に終了し、実行中のプロセスはブロックされ、プロセスは積極的にブロックを要求します (I/O を待機します)。

現在実行中のプロセスは受動的にプロセッサを放棄します。プロセスに割り当てられたタイム スライスが使い果たされ、より緊急に処理する必要があるもの (I/O 割り込みなど) が存在し、より優先度の高いプロセスが準備完了キューに入ります

・プロセススケジューリングができない場合は?

割り込み処理の過程において:割り込み処理プロセスは複雑であり、ハードウェアと密接に関連しているため、割り込み処理中にプロセスを切り替えることが困難です。

プロセスはオペレーティング システムのカーネル プログラムのクリティカル セクションにあります

アトミック操作中 (原始言語): アトミック操作は中断できず、一度に完了する必要があります (PCB 内のプロセス ステータスを変更し、PCB を対応するキューに入れるなど)

プロセスがクリティカル領域にある場合、プロセスはプロセッサを占有しています。クリティカルリソースの使用ルールが破られていない限り、プロセッサのスケジューリングには影響しません。

2.2.2 プロセスのスケジューリング方法

(1) 非剥奪的なスケジューリング

プロセッサ上でプロセスが実行されている場合、優先度の高いプロセスがレディ キューに入っても、現在のプロセスは新しいプロセスにプロセッサを割り当てず、プロセスが完了するか、何らかのイベントの発生を待ってブロッキング状態になるまで実行を続け、その後、プロセッサは優先度の高いプロセスに割り当てられます。

実装が簡単でシステムのオーバーヘッドが小さいという利点があり、ほとんどのバッチ処理システムに適しています。ただし、レガシー システムやほとんどのリアルタイム システムでは使用できません。

(2) 剥奪スケジューリング

プロセッサ上でプロセスが実行されているときに、より優先度の高いプロセスがレディ キューに入ると、現在のプロセスは実行中のプロセスを直ちに一時停止し、プロセッサをより優先度の高いプロセスに割り当てます。

この利点により、システムのスループットや応答効率はある程度向上しますが、「剥奪」は任意に実行できるわけではなく、優先度、短時間処理優先度、タイムスライスなどの原則に従う必要があります。

2.2.3 スケジュール評価指標

(1) CPU使用率

CPU はオペレーティング システムの最も重要かつ高価なリソースであるため、可能な限りビジー状態に保つ必要があります。CPU 使用率は、スケジューリング アルゴリズムの品質を評価するための重要な指標です。

(2) システムスループット

システム スループットは、単位時間あたりに CPU によって完了されたジョブの数を示します。ジョブの長さによって、システムのスループットがある程度決まります。したがって、ジョブの長さに応じて異なるスケジューリング アルゴリズムを選択することも、システムのスループットにある程度大きな影響を与えます。

(3) 所要時間

システムでは、ジョブごとに、そのジョブの完了に必要な時間がシステムのパフォーマンスを測る指標となり、一般にターンアラウンドタイムや加重ターンアラウンドタイムで測定されます。

①所要時間

所要時間は、ジョブの送信からジョブの完了までに経過した時間です。ジョブの待機時間、プロセッサ上で実行するための準備完了キューのキューイング時間、および入出力操作の実行に費やされた時間の合計が含まれます。

所要時間 T = ジョブ完了時間-ジョブ送信時間

②平均納期

平均所要時間は、複数のジョブの所要時間の平均です。

n 個のジョブの平均所要時間 T=(T 1 +T2 +... +T n ) /n

③ 権利付き納期

重み付けされた所要時間は、ジョブの実際の実行時間に対するジョブの所要時間の比率を指します。

ジョブの加重所要時間w=ジョブの所要時間 T/実際の実行時間 T s

④平均加重所要時間

平均加重所要時間は、複数のジョブの加重所要時間の平均です。

平均加重所要時間 W = ( w1 + w 2 +... + wn ) /n

(4) 待ち時間

待機時間は、プロセスがプロセッサの獲得を待機している時間の合計です。プロセッサーのスケジューリング アルゴリズムは、実際にはジョブの実行時間や入出力操作には影響せず、ジョブが準備完了キューで待機する時間にのみ影響します。したがって、待ち時間もスケジューリング アルゴリズムの長所と短所を測る基準の 1 つとなります。

(5) 応答時間

応答時間は、ユーザーがジョブ要求を送信してからシステムが最初に応答するまでの時間です。ユーザーにとって、応答時間がユーザーの許容範囲内になるように、スケジュール戦略は応答時間を最小限にする必要があります。

2.2.4 典型的なスケジューリングアルゴリズム✳

(1) 先着順 FCFS

FCFS スケジューリング アルゴリズムは、ジョブ スケジューリングとプロセス スケジューリングの両方に使用できる最も単純なスケジューリング アルゴリズムです。

ジョブのスケジューリングでは、アルゴリズムは毎回バックアップ ジョブ キューから最初にキューに入る 1 つまたは複数のジョブを選択し、それらをメモリに転送し、必要なリソースを割り当て、プロセスを作成してレディ キューに入れます。

プロセスのスケジューリングでは、FCFS スケジューリング アルゴリズムは、毎回レディ キューから最初にキューに入るプロセスを選択し、それにプロセッサを割り当てて動作させ、完了するか何らかの理由でブロックされるまでプロセッサを解放します。

特徴:

① FCFS は不可譲アルゴリズムに属し、アルゴリズムは単純ですが、効率が低いです。

②長いジョブには有利ですが、短いジョブには不利です(SPFと高い応答率と比較して)長いジョブが最初にシステムに到着すると、後ろにある多くの短いジョブを長時間待たせることになるため、タイムシェアリングシステムやリアルタイムシステムの主なスケジューリング戦略として使用することはできません。

③ CPU ビジーなジョブには有益ですが、I/0 ビジーなジョブには役に立ちません。

(2) ショートジョブ優先SJF

ショートジョブ(プロセス)優先スケジューリングアルゴリズムとは、ショートジョブ(プロセス)を優先的にスケジューリングするアルゴリズムをいう。このアルゴリズムは、推定実行時間が最も短い 1 つまたは複数のプロセスを準備完了キューから選択し、それにプロセッサーを割り当ててすぐに実行し、完了するかイベントによってブロックされるまでプロセッサーを解放します。

特徴:

① このアルゴリズムは長時間ジョブに不利であり、SJF スケジューリング アルゴリズムにおける長時間ジョブの所要時間は増加します。長いジョブがシステムのバックアップ キューに入ると、スケジューラは常に短いジョブのスケジュールを優先するため、長いジョブは長期間スケジュールされず、「スタベーション」が発生する可能性があります。

② 仕事の緊急性は考慮されていないため、緊急の仕事が時間内に処理されるという保証はありません。

③ ジョブの長さは、ユーザーが提供した推定実行時間に従ってのみ決定され、ユーザーが意図的または意図せずにジョブの推定実行時間を短縮する可能性があり、アルゴリズムは真に短いジョブ優先スケジューリングを実現できない可能性があります。

④ SJF スケジューリングアルゴリズムの平均待ち時間と平均所要時間は最小です。

(3) 高応答率優先

    高応答率優先スケジューリング アルゴリズムは、FCFS スケジューリング アルゴリズムと SPF スケジューリング アルゴリズムを総合的にバランスさせたもので、各ジョブの待機時間と推定実行時間を同時に考慮します。各ジョブのスケジューリングでは、まずバックアップ ジョブ キュー内の各ジョブの応答率が計算され、最も応答率の高いジョブが選択されて実行されます。

応答率 = (待ち時間 + 要求されたサービス時間) / 要求されたサービス時間

特徴:

① ジョブの待ち時間が同じ場合、サービス時間が短いほど応答率が高くなり、短いジョブの方が有利になります。

②同じサービス時間を要求する場合、ジョブの応答率は待ち時間で決まり、待ち時間が長いほど応答率が高くなるため、早い者勝ちのアルゴリズムとなります。

③ 長いジョブの場合、待ち時間が長ければ長いほどジョブの応答率が高くなりますが、待ち時間が長い場合には応答率を高くすることができ、プロセッサも確保できます。したがって、飢餓状態を克服し、長期的な雇用が考慮されます

(4) 優先スケジューリング

プロセスのスケジューリングでは、優先スケジューリング アルゴリズムにより、毎回レディ キューから最も優先度の高いプロセスが選択され、プロセッサが割り当てられ、実行されます。

新しい優先度の高いプロセスが実行中のプロセスをプリエンプトできるかどうかに応じて、スケジューリング アルゴリズムは次の 2 つのタイプに分類できます。

① 非プリエンプティブ優先スケジューリングアルゴリズム。プロセッサ上でプロセスが実行されている場合、より重要または緊急のプロセスが準備完了キューに入った場合でも、実行中のプロセスは、タスクが完了するまで、またはプロセッサがより重要または緊急のプロセスに割り当てられる前にイベントを待ってプロセッサが積極的に放棄されるまで実行を継続できます。

②剥奪優先スケジューリングアルゴリズム。プロセッサ上でプロセスが実行されているときに、より重要または緊急のプロセスが準備完了キューに入ると、実行中のプロセスは直ちに中断され、プロセッサはより重要または緊急のプロセスに割り当てられます。

プロセスの優先度は作成後に変更できるかどうかにより、以下の 2 種類に分けられます。

① 静的優先度。優先順位はプロセスの作成時に決定され、プロセスの存続期間中は一定のままです静的優先度を決定する主な基準は、プロセスの種類、プロセスのリソース要件、およびユーザーの要件です。

② 動的優先度。プロセスの実行中、プロセス状況の変化に応じて優先度が動的に調整されます。優先度を動的に調整する主な基準は、プロセスが占有する CPU 時間の長さと、準備完了プロセスが CPU を待機する時間の長さです。

プロセスの優先順位の設定は、次の原則を指します。

・システムプロセス>ユーザープロセス。システムの管理者としては、システム プロセスの優先順位を高くする必要があります。

• 対話型プロセス > 非対話型プロセス。通常、携帯電話を使用する場合、ユーザーと対話しているフォアグラウンドで実行されているプロセスは、より速く応答する必要があるため、当然のことながら、優先順位を付ける必要があります。つまり、優先度が高くなります。

• I/O タイプのプロセス > コンピューティング (CPU) タイプのプロセス。I/0 デバイスの処理速度は CPU の処理速度よりもはるかに遅いことがわかっていますが、I/0 タイプのプロセスの優先順位を高く設定すると、I/0 デバイスができるだけ早く動作を開始する可能性が高くなり、システム全体の効率が向上します。

(5) タイムスライスの回転

タイム スライス ラウンドロビン スケジューリング アルゴリズムは、主にタイムシェアリング システムに適用されます。このアルゴリズムでは、プロセス スケジューラは常に、到着時間の順序、つまり先着順の原則に従って、実行可能キュー内の最初のプロセスを選択しますが、実行されるのは 1 つのタイム スライスのみです。タイム スライスを使用した後は、プロセスが実行を完了していない場合でも、プロセッサを次の準備完了プロセスに解放 (剥奪) する必要があり、剥奪されたプロセスは準備完了キューの最後に戻って再度キューに入れて、再度実行されるのを待ちます。

特徴:

① タイムスライスが十分に大きく、すべてのプロセスを 1 つのタイムスライスで実行できる場合は、FCFS アルゴリズムに縮退します。

②タイムスライスが小さい場合、プロセッサが頻繁に切り替わり、オーバーヘッドが増加し、プロセスの使用時間が減少します。

(6) マルチレベルフィードバックキュー

マルチレベル フィードバック キュー スケジューリング アルゴリズムは、タイム スライス ラウンドロビン スケジューリング アルゴリズムと優先度スケジューリング アルゴリズムを統合および発展させたもので、プロセスの優先度とタイム スライス サイズを動的に調整することで、さまざまなシステム目標を考慮することができます。たとえば、短いプロセスを処理してシステムのスループットを向上させ、平均所要時間を短縮したり、I/0 タイプのプロセスを処理して I/O デバイスの使用率を向上させ、応答時間を短縮したりできます。同時に、プロセスの実行時間を事前に見積もる必要もありません。

特徴:

①ターミナル型ジョブユーザーは短時間のジョブが多いため、短時間のジョブが優先され双方向性が良い。

②バッチ処理ジョブが短いユーザーの場合、ジョブは基本的に最初のキューの指定されたタイムスライスで完了し、所要時間は短くなります。

③ 長時間のバッチ処理ジョブのユーザーの場合、長時間のジョブにはタイム スライス ローテーションが使用され、ユーザーは最終的にすべての処理を完了します。

【エクササイズ】:

1. 次のプロセスの実行をスケジュールする必要があります (下の表を参照)。

1) 非プリエンプティブなショートプロセス優先度スケジューリングアルゴリズムが使用されている場合、これら 5 つのプロセスの平均所要時間はどれくらいですか?

2) プリエンプティブなショートプロセス優先スケジューリングアルゴリズムが使用されている場合、5 つのプロセス名の到着時間、見送り時間のプロセスの平均所要時間はどれくらいですか?

A. 8.62; 6.34 B.8.62; 6.8

C.10.62; 6.34         D.10.62; 6.8

2. 【2012年度統一試験問題】 マルチチャネルバッチ処理システムにはジョブP1とP2の2つしかありません. P2はP1より5ms遅れて到着します. その計算とI/Oの動作順序は以下のとおりです.

P1:演算60ms、I/O80ms、演算20ms

P2: 計算 120ms、I/O 40ms、計算 40ms

スケジュールと切り替え時間を考慮しない場合、2 つのジョブを完了するのに必要な最小時間は ( ) ですB

A.240ms B.260ms C.340ms D.360ms

3. 【2016年度統一試験問題】 1つのCPUシステムに入力装置1台、出力装置1台があり、同時に実行されるジョブは3つあり、各ジョブの入力、計算、出力時間はそれぞれ2ms、3ms、4msで、入力、計算、出力の順に実行され、3つのジョブの実行に必要な最小時間は( )となります。B

A.15ms B.17ms C.22ms D.27ms

 

4. 【2017年度統一試験問題】タイムスライスベースのプロセススケジューリングに関する以下の記述のうち、誤りは( )です。B

A. タイム スライスが短いほど、プロセスの切り替え回数が多くなり、システムのオーバーヘッドが大きくなります。

B. 現在のプロセスのタイム スライスが使い果たされると、プロセスの状態は実行状態からブロック状態に変わります。

C. クロック割り込みが発生した後、システムはタイム スライス内の現在のプロセスの残り時間を変更します。

D. タイム スライスのサイズに影響を与える主な要因には、応答時間、システム オーバーヘッド、プロセス数が含まれます。

現在のプロセスのタイム スライスが使い果たされた後、プロセスが実行を終了していない場合は、レディ キューの最後に戻って再度キューに入れられ、プロセスのステータスが実行中から準備完了に変わります。

5. [2018 年統一試験問題] システムは優先度ベースの非プリエンプティブ プロセス スケジューリング戦略を採用しており、プロセス スケジューリングとプロセス切り替えを完了するためのシステム時間オーバーヘッドは 1μs です。時刻 T の準備完了キューには 3 つのプロセス P、P、および P3 があります。キュー内での待機時間、必要な CPU 時間、および優先度は次の表に示されています。優先度の値が大きいプロセスが最初に CPU を獲得し、システムが時刻 T からプロセスのスケジューリングを開始すると、システムの平均所要時間は ( ) になります。D.

A.54μs B.73μs C.74μs D.75μs

·優先度の値に従ってスケジュールを設定すると、P2 プロセスが実行を開始します。P2 ターンアラウンド タイム = 15+1+24=40μs、次に P3 プロセスを実行し、P3 ターンアラウンド タイム=18+1+36+1+24=80μs、最後に P1 ターンアラウンド タイム=30+1+12+1+24+1+36=105μs、したがって、平均ターンアラウンド タイム=(40+80+105)/3=75μs。

6. [2019 年統一試験問題] システムはプロセスのスケジューリングに第 2 レベルのフィードバック キュー スケジューリング アルゴリズムを使用します。レディ キュー Q1 はタイム スライス ラウンドロビン スケジューリング アルゴリズムを採用し、タイム スライスは 10ms です。レディ キュー Q2 はショート プロセス優先スケジューリング アルゴリズムを採用しています。システムは最初に Q1 キュー内のプロセスをスケジュールします。Q1 が空の場合、システムは Q2 にプロセスをスケジュールします。新しく作成されたプロセスは最初に Q に入ります。 1. システムはプロセス P1、P2 を順に作成した後、プロセスのスケジューリングを開始します。P1、P2 に必要な CPU 時間はそれぞれ 30ms、20ms です。システム内のプロセス P1、P2 の平均待ち時間は ( )C となります。

A.25ms B.20ms C.15ms D、10ms

7.[2020 年統一試験問題] プロセス スケジューリングに関連する次の要素のうち、マルチレベル フィードバック キュー スケジューリング アルゴリズムを設計する際に考慮する必要があるのは ( ).ABCD です。

A. レディキューの数 B. レディキューの優先度 C. 各レディキューのスケジューリングアルゴリズム D. レディキュー間のプロセスの移行条件

マルチレベルフィードバックキューのスケジューリングアルゴリズムは、優先度の数、優先度間の変換規則などを総合的に考慮する必要があります。レディキューの数は長いプロセスの最終完了時間に影響します。A が正解です。レディキューの優先度はプロセスの実行順序に影響します。B が正解です。各レディキューのスケジューリングアルゴリズムは、各キュー内のプロセスのスケジューリング順序に影響します。C が正解です。レディキュー内のプロセスの移行条件は、各キュー内の各プロセスの実行時間に影響します。Dは正しいです。

8. 【2021年統一試験問題】以下のカーネルデータ構造またはプログラムでは、タイムシェアリングシステムは().ABCを使用する必要があります。

A. プロセス制御ブロック B. クロック割り込みハンドラー C. プロセスレディキュー D. プロセスブロッキングキュー

タイムシェアリングシステムのタイムスライスラウンドロビンスケジューリングでは、システムがクロック割り込みを検出すると、クロック割り込みハンドラが起動され、レディキューからプロセスを選択してタイムスライスを割り当て、そのプロセスのプロセス制御ブロック内のプロセス情報を変更するとともに、タイムスライスが不足したプロセスはレディキューに投入または終了されます。ABCは正しいです。ブロッキング チーム ペアのプロセスは、ウェイクアップされてレディ キューに入った後にのみスケジューリングに参加できるため、スケジューリング プロセスはブロッキング キューを使用しません。

9. 【2021年度統一試験問題】 以下のイベントのうち、プロセススケジューラが実行される可能性があるものは( )です。あいうえお

A. 割り込み処理が終了する B. プロセスがブロックされる C. プロセスの実行が終了する D. プロセスのタイムスライスが使い果たされる

タイム スライス スケジューリング アルゴリズムでは、割り込み処理の完了後、システムは現在のプロセスのタイム スライスが使い果たされたかどうかを検出します。使い果たされた場合は、レディ状態に設定されるか、実行を停止します。レディ キューが空でない場合は、レディ キューの先頭プロセスの実行をスケジュールします。A が可能です。現在のプロセスがブロックされている場合は、ブロッキング キューに入れます。レディ キューが空でない場合は、新しいプロセスの実行をスケジュールします。プロセスが終了すると、現在のプロセスは CPU を解放し、CPU を取得するために準備完了キューからプロセスを選択します (C が行う場合があります)。プロセスのタイムスライスが使い果たされると、現在のプロセスは CPU を放棄し、同時にレディキューの先頭にあるプロセスが選択されて CPU を獲得することが可能です。

おすすめ

転載: blog.csdn.net/weixin_46516647/article/details/124499666