1

これは、CIS-21: オペレーティング システム クラスの宿題からの質問です。インストラクターが教えてくれたので、私は既に答えを持っていますが、彼はなぜこれが答えなのかを説明しませんでした。だからここに質問があります:

システムで実行されているジョブは、キューごとに可変の時間単位で実行され、完了するまでに 30 ミリ秒かかります。最初のキューのタイム クォンタムが 5 ミリ秒で、その後の各キューのタイム クォンタムが前のキューの 2 倍の場合、ジョブは何回中断され、どのキューで実行が終了しますか?

2 番目の部分は簡単です。ジョブは第 3 レベルのキューで実行を終了します (第 1 レベルのキューは 5 ミリ秒、第 2 レベルのキューは 10 ミリ秒、第 3 レベルのキューは 20 ミリ秒です)。ジョブには 30 ミリ秒かかるため、第 1 レベルのキューで 5 ミリ秒、次に第 2 レベルのキューで 10 ミリ秒、第 3 レベルのキューで 15 ミリ秒実行されます。

質問の最初の部分は、クラスの全員、つまり全員が得られなかったものです。インストラクターは、合計3回の中断があると言いました。でも、みんなで割り込み2回って言ったら、怒って先に行っちゃって……変でしょ?適切な教育のために私のお金を払ってくれたのに。

とにかく、私たちが考えていたのは、ジョブが最初のキューで 5 ミリ秒間実行された後、割り込みが発行され、その PCB (個人制御ブロック) が更新され、10 ミリ秒のキューである次の下位のキューに移動されるということです。 . 順番が来ると、ジョブは第 2 レベルのキューで 10 ミリ秒間実行され、割り込みが発行されます。情報は PCB で更新され、ジョブは次に低いキュー (20 ミリ秒のキュー) に移動されます。これまでのところ、中断は 2 回です。ジョブが第 3 レベルのキューの先頭に到達すると、ジョブは 15 秒間実行され、キューのタイム クォンタムが期限切れになる前に実行を終了します。

では、彼はどこで 3 回目の割り込みを受けたのでしょうか? プログラムの実行が終了すると、3 番目の割り込みが発行されますか? ジョブの割り込みは、I/O 要求などの内部割り込みがある場合、タイム クォンタムが期限切れになってジョブのサイクルが完了していない場合、またはジョブ内に不正な操作/命令がある場合にのみ発生すると考えていました。

では、ジョブの中断が 2 つまたは 3 つあるのはなぜですか?

編集:インターネットで相反する回答を得た後、講師にメールを送信しましたが、彼は間違いを犯したことを認めました。ジョブは 20 ミリ秒のキューで終了するため、割り込みは 2 回だけです。誰かが疑問に思っている場合に備えて。

4

2 に答える 2

0

3 割り込み - 第 3 レベル、つまり 20 ミリ秒で完全なクォンタムを使用する前にジョブが実行を完了したとき - 別のプロセスをスケジュールするためにスケジューラを親密にします。

于 2013-03-17T20:30:28.257 に答える