HOME»応用情報技術者試験掲示板»平成30年秋期問16について
投稿する

平成30年秋期問16について [3619]

 penさん(No.1) 
〔スケジューリング方式〕
・一定時間(これをタイムクウォンタムと呼ぶ)内に処理が終了しなければ,処理を中断させて,待ち行列の最後尾へ回す。
・待ち行列に並んだ順に実行する。
・タイムクウォンタムは,ジョブの処理時間に比べて十分に小さい値とする。
・ジョブの切替え時間は考慮しないものとする。

こちらの説明のどの部分から「同時並行的に実行されていく」ことがわかるか教えていただきたいです。
2つ目から順番に実行するのではないかと考えました。
2022.09.05 22:42
nsさん(No.2) 
AP ブロンズマイスター
コンピュータにおける「スケジューリング」とは何かを調べた方がいいです。
ミクロな視点で見れば順番に実行しますし、マクロな視点で見れば同時並行的に実行します。

例えばタイムクウォンタムを20ms、待ち行列にABCの順に並べたとします。

処理開始から20ms後にはAの処理が20ms分終了しています。Aの残りは299980msです。しかし、このタイミングで(1)のルールに従って、Aは待ち行列の最後尾に回されます。待ち行列はBCAになります。
同様に20ms~40msの間はBを処理し、40ms~60msの間はCを処理します。ここで、待ち行列は最初と同じ状態ABCに戻ります。それぞれの処理は20ms分進んだ状態です。
ここまでをまとめると、60msの間に3つの処理を20msずつ行うことができました。
ある瞬間を切り取れば1つの処理しかしていませんが、長い目で見れば3つの処理を同時に行っていますね。

これを繰り返すと、最初の15分間で3つの処理を5分ずつ行うことになります。ここで処理Aは処理完了となるため、次からはBとCが交互に処理されることになります。
次の10分でBとCの処理が5分ずつ行われます。合計の処理時間が10分になったので、Bの処理は完了します。この時、全体で何分使ったかと言えば、15 + 10 = 25分になります。
2022.09.05 23:03
chihiroさん(No.3) 
AP シルバーマイスター
例えばタイムクウォンタムが1秒でジョブA→ジョブB→ジョブCの順に処理すると仮定すると、
ジョブAを1秒処理→ジョブBを1秒処理→ジョブCを1秒処理→ジョブAを1秒処理→…
を処理が終わるまで繰り返します。
上の例ではタイムクォンタムは1秒でしたが、実際はもっと短い時間(ミリ秒レベル)なので人から見ればジョブA、B、Cはあたかも同時にゆっくりと(ジョブ単体の1/3の速度で)処理されているように見えます。これが同時並行的の意味です。
2022.09.05 23:04
 penさん(No.4) 
nsさん、chihiroさんありがとうございます!
確かにミリ秒単位だと体感としては同時並行に感じますね!
お二方の助言で理解できました。
2022.09.06 19:30

返信投稿用フォーム

スパム防止のためにスレッド作成日から30日経過したスレッドへの書込みはできません。
© 2010-2024 応用情報技術者試験ドットコム All Rights Reserved.

Pagetop