ITパスポート 2012年 春期 問71
問題文
マルチタスクの説明として、適切なものはどれか。
選択肢
ア:CPUに演算回路などから構成されるプロセッサコアを複数個実装する方式
イ:ネットワークを介して接続された複数のコンピュータを連携させて、高性能なシステムを実現する方式
ウ:一つの命令で、複数のデータに対して同じ処理を行わせる方式
エ:複数のプロセスにCPUの処理時間を順番に割り当てて、プロセスが同時に実行されているように見せる方式(正解)
🔒 解説は解答すると表示されます
マルチタスクの説明 +【ITパスポート 解説】
正解の理由
選択肢の説明を読んで、複数のプロセスにCPUの処理時間を順番に割り当てて、あたかも同時に実行しているように見せる方式が正しい定義です。ここでいうCPU(CPU:Central Processing Unit=中央処理装置)はコンピュータの「頭脳」で、複数のプログラム(プロセス)を交互に実行することで並行に動いているように見せます。したがって、正解は エ の説明です。
ポイントは「順番に短い時間(タイムスライス)を割り当てる」ことで、利用者からは複数が同時に動いているように見える点です。これを「マルチタスク(multitasking)」と呼びます。
解法ステップ
- 問題文のキーワードを探す:ここでは「複数のプロセス」「CPUの処理時間」「順番に割り当て」「同時に実行されているように見せる」が重要です。
- 各選択肢の意味を一つずつ確認する:
- ア:プロセッサコア(プロセッサコア:CPUの演算処理を行う単位)を複数実装する方式 → マルチコア(並列処理)についての説明。
- イ:ネットワークで複数のコンピュータを連携 → 分散処理やクラスタの説明。
- ウ:一つの命令で複数のデータを処理 → SIMD(SIMD:Single Instruction Multiple Data=一命令で複数データを処理) の説明。
- エ:プロセスに処理時間を順番に割り当てる → マルチタスクの定義に合致。
- キーワードと照らし合わせて、最も該当する選択肢を選ぶ(今回は エ)。
選択肢別の誤答解説
-
ア: 「CPUに演算回路などから構成されるプロセッサコアを複数個実装する方式」
→ これはマルチコア(multi-core)や並列処理の説明です。物理的に複数のコアがあれば、本当に同時に複数の処理を行えます。マルチタスクとは別の概念で、並列実行(parallelism)に該当します。 -
イ: 「ネットワークを介して接続された複数のコンピュータを連携させて、高性能なシステムを実現する方式」
→ これは分散処理やクラスタリング、グリッドコンピューティングの説明です。コンピュータが物理的に分かれていて協調することで性能を上げます。マルチタスクとは違います。 -
ウ: 「一つの命令で、複数のデータに対して同じ処理を行わせる方式」
→ これはSIMD(Single Instruction Multiple Data:一命令で複数データを処理)です。ベクトル演算やGPUの一部処理で使われます。マルチタスクの「プロセスを切り替える」という仕組みとは異なります。 -
エ: 「複数のプロセスにCPUの処理時間を順番に割り当てて、プロセスが同時に実行されているように見せる方式」
→ これは典型的なマルチタスク(multitasking)の定義です。OS(オーエス:Operating System=基本ソフト)がスケジューラでタイムスライスを割り当て、コンテキストスイッチ(処理の切替)を行います。
よくある誤解
-
「マルチタスク=物理的に同時に動く」
→ 実際にはマルチタスクは「短時間ごとに切り替えて同時に見せる」方式です。物理的に同時に動くのはマルチコアのような並列処理です。 -
「マルチタスクとマルチスレッドを同じものと考える」
→ マルチタスクは複数のプロセス(プログラム単位)を切り替えること。マルチスレッドは一つのプログラム内で複数のスレッド(軽い処理単位)を並行処理することです。似ていますが対象が違います。 -
「SIMDはマルチタスクの一種」
→ SIMDは一命令で複数データを同時に処理する技術で、マルチタスクとは目的も仕組みも異なります。
補足コラム
-
プリエンプティブ(preemptive)マルチタスクと協調(cooperative)マルチタスク:
プリエンプティブはOSが強制的に処理を切り替える方式です。現代の多くのOS(例:Windows、Linux)はプリエンプティブです。協調は各プロセスが自分で切り替えのタイミングを譲る方式で、古いOSや組込みで使われることがあります。 -
コンテキストスイッチ(context switch):
プロセスを切り替える際、CPUのレジスタや実行位置などの情報を保存・復元する処理です。切替が頻繁だとオーバーヘッド(余分な時間)が増え、性能に影響します。 -
「並行(concurrency)」と「並列(parallelism)」の違い:
並行は複数の処理が同じ時間範囲に存在していて切替で実現すること(マルチタスク)。並列は複数の処理が同時に実行されること(マルチコア)。
FAQ
Q1. マルチタスクとマルチコアはどちらが速いですか?
A1. 比較は目的次第です。マルチタスクはユーザーが複数プログラムを同時に使えることを重視します。マルチコアは物理的に同時実行できるため、並列処理をする作業では速くなります。どちらも組み合わせて使われることが多いです。
A1. 比較は目的次第です。マルチタスクはユーザーが複数プログラムを同時に使えることを重視します。マルチコアは物理的に同時実行できるため、並列処理をする作業では速くなります。どちらも組み合わせて使われることが多いです。
Q2. スマホはマルチタスクできますか?
A2. はい。スマホのOSもマルチタスク機能を持ち、複数アプリを切り替えて使えるようにしています。多くはプリエンプティブ方式です。
A2. はい。スマホのOSもマルチタスク機能を持ち、複数アプリを切り替えて使えるようにしています。多くはプリエンプティブ方式です。
Q3. マルチタスクでプロセス同士がぶつかったらどうなる?
A3. OSがメモリ保護や同期機能で管理します。例えば共有資源を安全に扱うためにロック(mutex)などの仕組みを使います。
A3. OSがメモリ保護や同期機能で管理します。例えば共有資源を安全に扱うためにロック(mutex)などの仕組みを使います。
関連キーワード: マルチタスク、マルチコア、マルチスレッド、プロセス、スケジューリング、コンテキストスイッチ、SIMD、プリエンプティブ、協調マルチタスク

\ せっかくなら /
ITパスポートを
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

