応用情報技術者 平成25年春期 午前問17

マエダさん  
(No.1)
五つのジョブA~Eに対して,ジョブの多重度が1で,処理時間順方式のスケジューリングを適用した場合,ジョブBのターンアラウンドタイムは何秒か。ここで,OSのオーバヘッドは考慮しないものとする。

との問題ですが、これはノンプリエンプションなんでしょうか?私の解釈ではプリエンプションというのは割り込みの優先権のあるものです。解説では、タスクの処理「中」で、もっと短い処理のタスクが到着したとしても、割り込めません。
到着順方式はノンプリエンプションであるとテキストに書いてありますが、到着順という、処理の優先順位=プリエンプションがあるではないか、と疑問でした。そこで、到着順という処理の優先順位はあっても、割り込めない場合をノンプリエンプションと言う、と理解することにしました。
そうではなくて、到着順に優先処理順位がある場合、それをわざわざ優先順位があるとはみなさない、だからノンプリエンティブという解釈なんでしょうか?
それ以外の処理はすべて優先順位のあるプリエンブションの処理であり、トリガーが生じて割り込めるかどうかは条件次第で変わると解釈すればいいのでしょうか?
本問では、処理時間順方式がプリエンプションの条件になるが、一度処理に入ればトリガーは生じず処理は最後まで続く、という風に
ちなみにあるテキストでは

到着順方式    タスクに優先順位をもたせず、実行可能状態になった順に実行する方式です。
タスクの実行が終了するまでプリエンプションが発生しないという特徴があります
到着順方式はプロエンプションが発生しないということから、ノンプリエンプション方式
とも呼ばれる

と書いてあります。ややこしいです。
2016.12.15 05:04
マエダさん  
(No.2)
ちなみに、割り込み可能にして解いても答えは11で同じにはなりました
他の解説サイトでも管理人さんのように解いているので、やっぱり自分は間違っているの
ではないかと
2016.12.15 05:16
kokoroさん 
(No.3)
僕も処理時間順方式について知識が曖昧でしたのでテキストにて確認してみました。
すると、とりあえず処理時間順方式は「プリエンプティブ」なスケジューリング方式であるということと、実行可能状態のプロセスは優先順位による待ち行列で管理されるとありました。
ここで問題文を見てみます。マエダさんの文章に、「タスクの処理『中』で、もっと短い処理のタスクが到着したとしても、割り込めません。」とありますが、この問題では次に処理予定のタスクと「同じ」優先度のタスクが到着することはあっても、優先度の「高い」タスクが到着することはないと思います(始めのほうのBは除くきます、明らかに優先度が低いので)。なので例えば、3秒後の時点を見てみますと、処理中の「C」と同じ優先度の「D」が到着しているのでどちらを処理するかといわれると、「C」を処理することになります。3秒後の時点で「C」の処理に割り込めるのは「C」より処理時間の短いタスク(「C」より優先度の高いタスク=残処理時間が1のタスク)のみなので。
ですので、この問題においても「一度処理に入ればトリガーは生じず処理は最後まで続く」というわけでありません。ただ単に「処理中」のプロセスよりも優先度の高いタスクが到着するというトリガーが発生しなかっただけではないでしょうか。
わかりにくい文章になってしまってすみません。疑問点があればまた回答させていただきます。マエダさんの言わんとするところは理解できているつもりですので。では。
2016.12.15 19:41
マエダさん  
(No.4)
他のテキストでも、割り込みが起きるパターンがプリエンプションだと説明があるのでここはこれで間違いないのではないかと納得しました
さて、処理時間順方式ですが、これはどうやらその「時点」での処理時間のことを言ってるようですね
私は元の処理時間のことを言ってると思っていたのですが、処理時間が3のC処理が1秒経過すれば処理時間は2になります  処理時間が2のDが待ちに入っても、同じ処理時間ならすでにCPU処理に入っているCが優先されるでしょうね
にしても、テキストも問題文もそうですが、もう少し説明が欲しいと思います。簡単なことも難しくなってしまいますから。
            B4   
         B4 D2 B4
   B4 B4 D2 E1 D2 B4 B4
A2 A1 C3 C2 C1 E1 D2 D1 B4 B3 B2 B1

ずれてるかもしれませんが、こーいうことでしょうか?  数字はCPU投入後、0秒後、1秒後・・・・の残り時間を指します
また何かあればぜひご指摘お願いします
ありがとうございました
2016.12.16 08:53
管理人 
(No.5)
マエダさん

ご指摘ありがとうございます。
処理時間順方式について多少調べました。その結果、処理時間順方式は予め予想される処理時間に基づいて処理順を決める方式で、より短いタスクが実行可能状態になった場合にはタスクの切替えが発生するという認識に至りました。
なお、残りの処理時間に基づいて処理順を決める方式は「残余処理時間順(Shortest Remaining Processing Time First)」と呼ばれているため、この設問の処理時間順(Shortest Processing Time First)とは異なる方式と考えました。したがってこの設問では表の「単独実行時の処理時間」だけに注目して処理順を決定すれば良いのではないかと思います。

これを踏まえて解説および図を修正しました。
  http://www.ap-siken.com/kakomon/25_haru/q17.html
2016.12.17 11:50
マエダさん  
(No.6)
管理人様、レスありがとうございます
よその解説サイトでも、以前のここの説明と同じ内容でしたので、てっきりこれは間違いないと
思っていました
調べてくれてありがとうございます
2016.12.18 08:04

返信投稿用フォーム

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

その他のスレッド


Pagetop