マルチタスク処理、マルチスレッド処理、およびマルチプロセッシング
- 更新日2025-08-27
- 3分で読める
マルチタスク処理とは、オペレーティングシステム上で複数タスクが同時に実行されているように見えるほどすばやく切り替える機能です。Windows 3.1では、タスクはMicrosoft Word、Microsoft Excel、LabVIEWなど、アプリケーション全体を指します。各アプリケーションは、次のアプリケーションに移行するまでの間、短い時間実行されます。Windows 3.1では、協調的マルチタスクと呼ばれる技術が使用されています。この技術では、実行中のアプリケーションが一定の間隔でプロセッサの制御をオペレーティングシステムに明け渡します。Windowsでは、現在実行中のアプリケーションの状態に関係なく常にオペレーティングシステムがプロセッサを制御するプリエンプティブマルチタスクが使用されています。プリエンプティブマルチタスクでは、応答が高速になりデータスループットが向上します。
マルチスレッド処理は、単一のアプリケーションの特定の操作が個々のスレッドに分割され、それぞれが理論的に並列に実行されるよう、マルチタスク処理の発想をアプリケーションに広げたものです。オペレーティングシステムによって、さまざまなアプリケーション間だけでなく、1つのアプリケーション内のスレッド間で、処理時間の分割が可能となります。たとえば、LabVIEWのマルチスレッド処理プログラムでは、アプリケーションは、インタフェーススレッド、データ収集スレッド、計測器制御スレッドの3つのスレッドに分割することが可能です。それぞれのスレッドには優先度を割り当てることができ、また、スレッドはそれぞれ独立して動作します。このように、マルチスレッド処理のアプリケーションでは、複数のタスクを他のアプリケーションと並列に進行させることができます。
マルチプロセシング (マルチコアプログラミング) とは、別のスレッドを同時に実行できる1つのコンピュータの複数のプロセッサのことです。シングルスレッドのアプリケーションでは、一度に1つのプロセッサしか実行できません。マルチスレッド処理のアプリケーションでは、複数のプロセッサで同時に実行する複数の別々のスレッドを使用することができます。LabVIEWのマルチスレッド処理の例では、ユーザインタフェーススレッドが1つのプロセッサで実行している間、データ収集スレッドがもう1つのプロセッサで実行することができます。シングルスレッドのアプリケーションはシステムのパフォーマンスに大きな影響を及ぼす可能性があります。