はじめに
あくまで自分が躓いたところであるため、他の人からしたら「え、当たり前じゃん?」って感じだとは思います。
だから、読んだところであんまり得られるものはないよ。
後、基本情報技術者試験の午後の部の問題文ってとんでもなく長いから、一部抜粋という形をとらせてもらうよ。
完全版については下記をご参照ください。
https://www.jitec.ipa.go.jp/1_04hanni_sukiru/mondai_kaitou_2018h30_2/2018h30a_fe_pm_qs.pdf
問2 設問1
躓いた問題と、躓く要因となった箇所(赤文字で示す)
プロセスのスケジューリングに関する次の記述を読んで,設問1,2に答えよ。
OSの機能の一つに,プロセスのCPUへの割当てがある。プロセスをCPUに割り当てる順序(以下,実行順序という)を決定する方式として,本問で示すラウンドロビン方式と優先度順方式を考える。プロセスが実行されるコンピュータのCPUは一つであり,CPUは一度に一つのプロセスしか実行できないものとする。
図2に示す処理順序をもつプロセスXを,図1に示すラウンドロビン方式で実行する場合を考える。プロセスXの処理時間及び待ち時間を表1に示す。
表1において,処理時間とは,処理1,処理2及び処理3のそれぞれが実行を開始してから終了するまでに必要なCPUの使用時間である。待ち時間とは,入出力待ち1及び入出力待ち2のそれぞれが入出力を開始してから完了するまでに要する時間であり,その間CPUを使用しない。
タイムクウォンタムが20ミリ秒のとき,プロセスXが生成されてから消滅するまでに,図3に示す①~④の遷移が起こる回数の組合せとして正しい答えを,解答群の中から選べ。
勘違い:プロセスはそもそも1つ
当たり前じゃん。
問題文で出てきてるのプロセスXだけじゃん。
と、思われるかもしれない。
いやホントにその通りなんです……。
それなのに僕は、あろうことかプロセスXの処理と入出力を一つのプロセスと考えてしまっていたのです。
だから「入出力待ち1を待っている間に、処理2を実行できるな!」なんて馬鹿なことを考えていました。
解いている時のノートのカオスっぷりといったらヤバイです。
超簡単な問題なのに、書いているうちに頭がこんがらがるくらいごちゃごちゃなものになっていました。
まとめ
基本情報技術者試験の午後は、よく言われるように、ちゃんと基礎が備わっているかどうを問う問題よりも、国語力が問われる問題が多いです。
ラウンドロビン方式ってなんだ?って状態で試験に臨んでも、その概要については問題文に書かれているってケースがほとんどです。
で、僕が今回躓いたのも、知識不足というよりも、問題の内容を理解できていないことに原因があります。
試験本番まで時間ないけど、数こなせばきっと慣れてくるはず……。
ぼちぼち頑張ります。