2017年3月11日土曜日

ラウンドロビン方式

平成28年秋季 問19. ラウンドロビン

問題文「タイムクウォンタムが2秒のラウンドロビン方式で処理されるタイムシェアリングシステムにおいて、プロセス1~3が逐次生成されるとき、プロセス2が終了するのはプロセス2の生成時刻から何秒後か。ここで、各プロセスはCPU処理だけで構成され、OSのオーバヘッドは考慮しないものとする。また、新しいプロセスの生成と中断されたプロセスの再開が同時に生じた場合には、新しく生成されたプロセスを優先するものとする。」


解答群
ア. 12
イ. 14
ウ. 16
エ. 17

何回か同じ勉強をしているつもりだが、結局用語の意味がわからなかったので調べてみた、が、結構色々あるものの端的に答えてくれるサイトが見つからない。
テニスの総当たり戦の解説なんかも出てきて何が何だかわからない結果の中から、次のサイトを見つけた。

タスクスケジューリング(ラウンドロビン方式)

簡単にまとめてしまうと、到着したプロセスに平等に同じ時間だけ処理をさせ、終わったら一番待っているプロセスの一番後ろに待たせる、という処理だ。

では、実際に行ってみようではないかっ( ゚Д゚)

※俺の解答

ここでいつもお世話になっている応用情報技術者試験ドットコムと俺の解釈が以下の文言で解釈が割れた。

「新しいプロセスの生成と中断されたプロセスの再開が同時に生じた場合には、新しく生成されたプロセスを優先」

応用情報技術者試験ドットコムさんの解答は以下のようだ。

※応用情報技術者試験ドットコムさんの解答

どちらを信じるかは見てる人にお任せしたい。
俺の解釈は以下の通り。

6秒時点で「プロセス3」が生成される。この時点で待ち行列には「プロセス1」が待っていて、6秒の最後に処理が中断した「プロセス2」がその後にいる。

このような場合が生じた際に、「新しく生成されたプロセスを優先」とあるので、「中断されたプロセスの再開」である「プロセス1」は待たされ、「プロセス3」を行うと解釈している。

応用情報技術者試験ドットコムさんの解釈では、競合が発生するのは処理が終了した直後で、待ち行列に加わる「プロセス2」が新たに生成された「プロセス3」と競合し、待ち行列の順番は「プロセス1」、「プロセス3」、「プロセス2」となる。

そして恐ろしいことにプロセス2が生成された時間から終了までが問われているこの問題では回答がどちらも「14秒後」になるのだ。。。

そこで、他のサイトも見てみると「IT試験ドットコム」では俺の解釈で間違いないようだ、が、解説がほとんどないためよくわからない。

ここはどちらも正解だが、同じような問題が出た時、俺は俺のやり方で行こうと思う。何故か?俺は俺を含めて誰も信じないが、どちらも信用できないならば俺のが正しいと思うからだっ( ゚Д゚)

2 件のコメント:

  1. 某サイトでの解説でプロセス2の生成が3.0s開始が4.0sなのに、プロセス3の生成が6.0s、開始が6.0sなのがタイムクォンタム2.0sのラウンドロビン方式としっくりしなくて検索してこのサイトにたどり着きました。俺的IT支援Labさんの解釈で腑に落ちました。ありがとうございました。

    返信削除
    返信
    1. コメントありがとうございますっ (*´▽`*)
      お役に立ててうれしいです。未だにどちらが正しいかわからないですが、解釈が異なる問題に当たると苦労しますよねw
      試験頑張ってください!

      削除