2017-11-15 8 views
0

ラウンドロビンCPUプロセススケジューリングの基本概念と混同しています。ここでは、短期スケジューラがプロセスをレディキューに追加します。ラウンドロビンスケジューリングの結びつき

システム内に3つのプロセスP0、P1およびP2があり、5秒間にP1に対してコンテキストスイッチが発生し、同時にP2が到着する(すなわち、5秒目に)。このような場合、どのプロセスが最初にレディキューP1またはP2に挿入されますか? 両方のケースで全体の平均待機時間が異なることはありませんが、プロセスの個々の待機時間は異なります。

+0

最初にロックを取得した人はいますか? –

+0

@ M.ShawCanあなたは詳細を教えてください – user3256888

+0

一般にコンピューティングでは、同時に何も起こりません。それは本当に近いかもしれませんが、何かが常に前に起こります。 –

答えて

0

P1とP2の両方を同時にレディキューに追加することはできません。レディキューにプロセスを追加する場合は、がレディキューにのアクセスを同期させる必要があるため、それらが追加される順番がある必要があります(P1がP2の前に追加されるか、P1がP2の前に追加されます)。キューの破損を避けるためです。単一のコアシステムでは、キューを変更している間に割り込みを無効にすることでこれを行うことができます。マルチコアシステムでは、カーネルの実装に応じて、いくつかのロックの組み合わせと割り込みを無効にすることでこれを行うことができます。

たとえば、単一コアの例として、P1を先取りするタイマー割り込みが発生したとします。タイマー割り込みが受信されると割り込みを無効にします。 P1をキューに追加している間は、P2のために完了した入出力、またはP2の起動などのユーザーのために、P2が使用可能になることはできません。割り込みが無効になっているため、カーネルが勝ったP1をキューに追加して割り込みを有効にするまで、P2に関するあらゆるイベントに煩わされることはありません。同じことがP2にも当てはまります.P2をキューに追加しているときにP1が優先されるようなタイマー割り込みが到着した場合、P2割り込みがキューに追加されるまで、タイマ割り込みは無視されます。

関連する問題