ITパスポート過去問 平成30年度(2018年)問59
マルチスレッドの説明として,適切なものはどれか。
選択肢
- ア:CPUに複数のコア(演算回路)を搭載していること
- イ:ハードディスクなどの外部記憶装置を利用して,主記憶よりも大きな容量の記憶空間を実現すること
- ウ:一つのアプリケーションプログラムを複数の処理単位に分けて,それらを並列に処理すること
- エ:一つのデータを分割して,複数のハードディスクに並列に書き込むこと
- ア
- イ
- ウ
- エ
正解と解き方・学習ポイント(AI解説)
マルチスレッドは、1つのアプリケーションプログラムの中で複数のスレッド(処理単位)を動かし、同時に処理を進める方式です。選択肢では、プログラムを複数の処理単位に分けて並列に処理すると説明している「ウ」が該当します。
Point
マルチスレッドの定義を正しく説明できるかを確認します。あわせて、選択肢に出てくるマルチコア、仮想記憶、RAID(ストライピング)と混同せずに区別できることを狙いとしています。
解くために必要な知識
この問題を解くには、マルチスレッドと、紛らわしい用語(マルチコア、仮想記憶、RAID)の違いを理解している必要があります。
用語の整理
| 用語 | 意味 | 分割する対象 | 目的の例 |
|---|---|---|---|
| マルチスレッド | 1つのプログラム(プロセス)の中に、複数のスレッド(実行単位)を作って同時並行に実行する方式です。 | プログラムの処理の流れ(実行単位) | 応答性の向上、処理の効率化など |
他の選択肢に出てくる用語
| 用語 | 意味 | 分類 |
|---|---|---|
| マルチコアCPU / コア | 1つのCPUに複数のコア(演算回路)を搭載し、複数の処理を同時に実行しやすくする仕組みです。 | CPUのハードウェア構成 |
| 仮想記憶 | 主記憶の不足分を外部記憶装置で補い、見かけ上大きなメモリ空間を提供する仕組みです。 | 記憶管理 |
| RAID(ストライピング) | 複数のハードディスクにデータを分割して並列に読み書きし、主に性能向上を狙う方式です。一般にRAID 0とされます。 | 補助記憶装置の構成 |
問題の解法手順
各選択肢の整理
| 選択肢 | 述べている内容 | 該当する用語 | 判定 |
|---|---|---|---|
| ア | CPUに複数のコアを搭載 | マルチコアCPU | × |
| イ | 外部記憶を使って主記憶より大きい記憶空間を実現 | 仮想記憶 | × |
| ウ | 1つのプログラムを複数の処理単位に分けて並列に処理 | マルチスレッド | ○ |
| エ | データを分割して複数ディスクへ並列に書き込み | RAID(ストライピング、RAID 0) | × |
判断の手順
1. 問われている用語を確認する
マルチスレッドは、プログラム内部の実行単位(スレッド)を複数に分ける話です。
2. 「分割する対象」が何かで切り分ける
-
プログラムの処理の流れを分割するならマルチスレッドです。
-
CPUの構造を増やす話ならマルチコアです。
-
メモリ容量を見かけ上増やす話なら仮想記憶です。
-
ディスク上のデータ配置を分割する話ならRAIDです。
選択肢ごとの解説
- ア:不正解
「CPUに複数のコアを搭載していること」は、CPUのハードウェア構成であるマルチコアCPUの説明です。マルチスレッドの説明ではありませんので誤りです。
- イ:不正解
「外部記憶装置を利用して、主記憶よりも大きな容量の記憶空間を実現すること」は仮想記憶の説明です。マルチスレッドの説明ではありませんので誤りです。
- ウ:正解
「一つのアプリケーションプログラムを複数の処理単位に分けて、それらを並列に処理すること」は、スレッドに分割して同時並行に実行するマルチスレッドの説明として適切であるため正解です。
- エ:不正解
「一つのデータを分割して、複数のハードディスクに並列に書き込むこと」はRAIDのストライピング(一般にRAID 0とされます)の説明です。マルチスレッドの説明ではありませんので誤りです。
まとめ
マルチスレッドは、1つのアプリケーションプログラムの中で複数のスレッド(処理単位)を動かし、同時に処理を進める方式です。選択肢では、プログラムを複数の処理単位に分けて並列に処理すると説明している「ウ」が該当します。
テクノロジ系 > コンピュータシステム > ソフトウェア
「CPUに複数のコアを搭載していること」は、CPUのハードウェア構成であるマルチコアCPUの説明です。マルチスレッドの説明ではありませんので誤りです。
「外部記憶装置を利用して、主記憶よりも大きな容量の記憶空間を実現すること」は仮想記憶の説明です。マルチスレッドの説明ではありませんので誤りです。
「一つのアプリケーションプログラムを複数の処理単位に分けて、それらを並列に処理すること」は、スレッドに分割して同時並行に実行するマルチスレッドの説明として適切であるため正解です。
「一つのデータを分割して、複数のハードディスクに並列に書き込むこと」はRAIDのストライピング(一般にRAID 0とされます)の説明です。マルチスレッドの説明ではありませんので誤りです。