平成26年秋期 午後問3 設問3

午前試験免除制度対応!基本情報技術者試験のeラーニング【独習ゼミ】
にぎやかしさん  
(No.1)
解説を何度読み返しても、次の内容が雲を掴むような話で全く理解できません。

  Cの完了=120
  Bの完了=190
  Aの完了=300

取りあえず、Cの完了がなぜ120になるのかを詳しく優しく解説していただけないでしょうか。
よろしくお願いいたします。

https://www.fe-siken.com/kakomon/26_aki/pm03.html
2021.10.11 23:26
高橋さん 
(No.2)
おおよそ表から読み取れている部分もあると思いますが、前提条件の確認のため順に説明します。
前提として、プロセスCの到着時間が30msで処理時間が60msということですが、到着時点でプロセスAの残余処理時間が110ms、プロセスBの残余処理時間が70msであるため、処理時間が一番短いプロセスCが到着と同時に開始されます。
プロセスCの処理を開始してから20ms、つまり全体の経過時間が50msのところでプロセスDが到着します。このときプロセスCの残り処理時間は40ms、プロセスDの処理時間は30msということで、プロセスDの方が優先的に処理が割り当てられます。そして、30msの処理時間を経て経過時間は80msとなります。
プロセスDが終わったことで、現時点で残りの処理時間が一番短いプロセスCに処理が戻ってきます。先ほど確認したようにこの時点での経過時間は80ms、プロセスCの残り処理時間は40msですので
80ms+40msで120msとなります。
2021.10.12 09:27
KanaSatoさん 
(No.3)
>残余処理時間順方式は,一定の時間ごとに実行状態と実行可能状態にあるプロセスの残余処理時間を比較し,その時間が最も短いプロセスにCPUを割り当てる方式である。
>表1に示すプロセスA~Dを,残余処理時間順方式で実行した場合のターンアラウンドタイムについて考える。
>ターンアラウンドタイムとは,プロセスが最初に待ち行列に登録されてから処理が完了するまでの時間である。

簡単に言えば処理を終了するまでの時間が短いプロセスを優先的に処理する方式です。
>プロセスAが登録されてから10ミリ秒ごとに残余処理時間を比較しながら実行した
とあるので、今回の場合は10ミリ秒ごとに到着しているプロセスの残り処理時間をチェックして、処理時間が短いものを優先的に処理します。

文章で書いても理解がやや難しく、解説のように図を描くのが非常にわかりやすく理解できると思います。
実際の試験でも解説と同じように図を描いて答えを導き出すこととなるでしょう。

ただ、ここではあえて文章で説明してみようと思います。
2021.10.12 09:45
にぎやかしさん  
(No.4)
高橋さん
KanaSatoさん

回答ありがとうございます。
しかし・・・正直はまってしまいあまり理解できていません。

>前提として、プロセスCの到着時間が30msで処理時間が60msということですが、
>到着時点でプロセスAの残余処理時間が110ms、プロセスBの残余処理時間が70ms
>であるため、処理時間が一番短いプロセスCが到着と同時に開始されます。


★上記の、「処理時間が60ms」は、
  ○○---○  が各10msなので、60msでよろしいでしょうか

★上記の、「プロセスBの残余処理時間が70msである」は、
  Bの総処理時間60ms  -  既処理時間20ms  +  Dの処理時間30ms
  =70ms  であっているでしょうか。

★上記の、プロセスAの残余処理時間が110ms  はどのような計算でもとめられる
  でしょうか。


不躾な内容ですが、なんとか最後まで面倒をみてください。。
よろしくお願いします。
2021.10.12 22:42
GPさん 
(No.5)
この投稿は投稿者により削除されました。(2021.10.13 13:02)
2021.10.13 13:02
GPさん 
(No.6)
>★上記の、「処理時間が60ms」は、
>  ○○---○  が各10msなので、60msでよろしいでしょうか

違います。表1よりプロセスCの処理時間は60msということが読み取れます。
図5における◯は10msの実行状態を、ーは10msの実行可能状態を表しており、”○○---○”では30ms分の処理を実行しています。


>★上記の、「プロセスBの残余処理時間が70msである」は、
>  Bの総処理時間60ms  -  既処理時間20ms  +  Dの処理時間30ms
>  =70ms  であっているでしょうか。

違います。設問3の文中にある通り”残余処理時間とは,プロセスの残りの処理が完了するまでに必要なCPUの割当時間である。”と定義されています。
また、プロセスCが到着した30msの時点でプロセスA,B,Cの残余処理時間を比較しますので、プロセスDはまだ到着していません。

よって、30ms経過時点でのプロセスA,B,Cの残余処理時間は、表1と図5より以下の通り式に表せます。
Aの残余処理時間 = Aの総処理時間120ms - Aの既処理時間10ms = 110ms
Bの残余処理時間 = 90ms - 20ms = 70ms
Cの残余処理時間 = 60ms - 0 = 60ms

加筆修正の為に投稿を1度削除させて頂きました。
2021.10.13 13:24
にぎやかしさん  
(No.7)
先に回答をいただいた皆様
GP  様

問題文をよく読みましたら、「表1」が必要なことに全く気が付きませんでした。
改めて問題文を読み、皆様の解説を読んだところストンと落ち、理解できました!

問題文を読んだつもりになっていただけでした。
皆様のお力添えに本当に感謝いたします。
2021.10.13 21:29

返信投稿用フォーム

スパム防止のためにスレッド作成日から30日経過したスレッドへの投稿はできません。

その他のスレッド


Pagetop