平成27年度 春期 ITパスポート試験 公開問題 問65 解説 マルチコアの活用
一つのアプリケーションプログラムの中で,並列処理が可能な部分を複数の処理単位に分け,それらを並行して処理することで,マルチコアCPUを使用したコンピュータの処理能力の有効活用を図る方式はどれか。
- ア マルチウィンドウ
- イ マルチキャスト
- ウ マルチスレッド ✓ 正答
- エ マルチブート
解説
解答のポイント
この問題は、プログラムの処理を細分化して効率化する技術の名称を問うものです。キーワードは「一つのアプリケーション内」「並列処理」「処理単位に分ける」です。これらから、プログラム実行の最小単位であるスレッドを複数利用する「マルチスレッド」を選択するのが正解です。
マルチスレッドの仕組みと目的
コンピュータのCPUは、一度に実行できる命令の数に限りがあります。しかし、現代のCPUは複数のコア(処理ユニット)を搭載しており、同時に複数の作業をこなす能力を持っています。
プログラムを一本の線のように順番に実行していくのではなく、タスクを小さな塊(スレッド)に分解し、それらを同時に走らせることで、複数のコアをフル活用して処理時間を短縮するのがマルチスレッドの考え方です。
例えば、Webブラウザを想像してください。画像を表示している間に、別のタブで音楽を再生したり、新しいページの読み込みを行ったりできます。もしマルチスレッドがなければ、ある一つの処理が終わるまで他の操作が完全に止まってしまい、ユーザーは非常に不便を感じることになります。
誤った選択肢の整理
試験対策として、紛らわしい他の用語との違いを明確にしておきましょう。
- マルチウィンドウ:一つの画面上に複数のウィンドウを同時に表示する、OS(オペレーティングシステム)のユーザーインターフェース機能です。
- マルチキャスト:ネットワーク上の特定のグループに対して、一度の送信で複数の相手に同時にデータを送る通信方式です。
- マルチブート:一つのコンピュータに複数のOS(例:WindowsとLinuxなど)をインストールしておき、起動時にどちらを動かすか選べる仕組みです。
これらはすべて「マルチ(複数の)」という言葉が付いていますが、役割が全く異なります。ITパスポートでは、カタカナ用語が似ているため混同しやすくなりますが、文脈(画面表示なのか、ネットワークなのか、起動設定なのか、プログラム内部の処理なのか)を読み解くことが重要です。
実践的な視点
マルチスレッド化されたプログラムは高速ですが、開発の難易度は上がります。複数の処理が同時に共有資源(メモリ上のデータなど)にアクセスしようとすると、計算結果が矛盾したり、プログラムが予期せず終了してしまったりすることがあるからです。このため、プログラミングの世界では「排他制御」という仕組みを使って、複数のスレッドが同じデータを同時に壊さないように調整する技術も併せて活用されています。