この概念が出た関連問題

この試験の対策ガイド

基本情報技術者試験 対策ガイド

合格率・勉強法・参考書の選び方をまとめています

見る →
答えと解説を見る(先に解くのがおすすめ)

正解は イ

解説

タスク管理の用語問題です。ディスパッチとは、OSのタスク管理機能のうち、実行可能状態(Ready)で待っているタスクに対して、CPU(プロセッサ)の使用権を割り当てて実行状態(Run)に移す操作のことです。この役割を担うOSのモジュールをディスパッチャと呼びます。イの「実行可能なタスクに対してプロセッサの使用権を割り当てること」がまさにこの定義であり、正解です。タスクは「実行可能状態→(ディスパッチ)→実行状態→(タイムスライス消費や割込みで)→実行可能状態」や「実行状態→(入出力待ちで)→待ち状態」のように状態遷移します。どのタスクに使用権を与えるかの順序を決めるのはスケジューリング(アの内容)であり、決定された順序に従って実際に使用権を割り当てるのがディスパッチです。「スケジューラが決め、ディスパッチャが渡す」という役割分担で覚えると、両者を混同せずに済みます。タスクの状態遷移図とセットで理解しておくべき頻出テーマです。

なぜ他の選択肢は違うのか

選択肢 ア
各タスクの実行順序を決定することは、スケジューリングの説明です。優先度順、到着順、処理時間順(SPT)、ラウンドロビンなどの方式で「次にどのタスクを実行すべきか」を決定します。ディスパッチはその決定結果を受けて、選ばれたタスクに実際にCPU使用権を割り当てる操作です。「順序を決める」のと「使用権を渡す」のとは別の段階の処理である点を区別しましょう。
選択肢 ウ
タスクの実行に必要な情報であるコンテキストとは、プログラムカウンタやレジスタの内容など、タスクの実行状態を表すデータのことです。タスク切替え時にこれを保存・復元する処理はコンテキストスイッチングと呼ばれます。コンテキストは切替えに伴って退避・復元される「情報」であり、CPU使用権を割り当てる「操作」であるディスパッチとは品詞レベルで異なる概念です。
選択肢 エ
一つのプロセッサで複数のタスクを同時に実行しているかのように見せかける機能は、マルチタスク(マルチプログラミング)の説明です。CPU時間を細かく区切って複数タスクに順番に割り当てることで、見かけ上の同時実行を実現します。ディスパッチはマルチタスクを実現するための個々の割当て操作であり、見せかけの同時実行という全体的な機能そのものではありません。

解くときのポイント

スケジューリング=実行順序を決める、ディスパッチ=決まったタスクにCPU使用権を渡す、コンテキスト=実行状態の情報。タスクの状態遷移図(実行可能⇄実行⇄待ち)とセットで覚えよう。