基本情報技術者試験 平成31年度 春期 午前 問16
スケジューリング、ディスパッチ、プリエンプションについての問題。
--------------------------
平成31年度 春期 午前 問16
タスクのディスパッチの説明として、適切なものはどれか。
ア
各タスクの実行順序を決定すること
イ
実行可能なタスクに対してプロセッサの使用権を割り当てること
ウ
タスクの実行に必要な情報であるコンテキストのこと
エ
一つのプロセッサで複数のタスクを同時に実行しているかのように見せかける機能のこと
--------------------------
解説
選択肢ア「各タスクの実行順序を決定すること」はスケジューリングのこと。
複数存在するタスクの各々に優先順位をつけて、実行待ちのタスクの行列をつくる。
選択肢イ「実行可能なタスクに対してプロセッサの使用権を割り当てること」が正解となるディスパッチのこと。
タスクにプロセッサ(タスク実行に必要なリソース)の使用権を割り当てるので、そのタスクが実行されることになる。
スケジューリングにより決定されたタスクの行列の先頭にいるタスク(=最も優先度が高いタスク)を実行する。
①タスクの優先順位を決定(スケジューリング)
②優先順位の先頭タスクを実行(ディスパッチ)
③実行中のタスクを一時停止(プリエンプション)
複数のタスクが②と③を繰り返しながら、複数のタスクが完了されていく。
なぜ③のプリエンプションがあるのかは後半にて。
選択肢ウ「タスクの実行に必要な情報であるコンテキストのこと」におけるコンテキストは文脈とか状況、背景といった意味をもつ英単語である。
OS におけるタスク管理の分野では、タスクの実行に必要となる情報や状態(データ構造やメモリ、レジスタの状態など)を示す言葉として使われる。
選択肢エ「一つのプロセッサで複数のタスクを同時に実行しているかのように見せかける機能のこと」はマルチプロセッシングの説明。
プリエンプションはここで活躍する。
上の②ディスパッチと③プリエンプションを複数のタスクが高速に、交互に実行することで、一つのプロセッサで複数のタスクが同時に実行されているように見せている。
②と③を繰り返すとき、各々のタスクの実行に必要な情報(コンテキスト)がプロセッサ上で次々に入れ替えられていて、この入れ替えをコンテキストスイッチと呼ぶ。
回答の選択肢が 4 つとも関連している問題。
ディスパッチの英単語を調べてみると
dispatch:
急派する、特派する、発送する、さっさと済ます、処刑する、殺す
思いの外怖い単語だった。
前後の問題はこちら。