非協調的マルチタスクとは?プリエンプティブマルチタスクの基本概念をわかりやすく解説
プログラムの処理が複数同時に実行される「マルチタスク」には、いくつかの種類があります。そのうちの2つ、「非協調的マルチタスク」と「プリエンプティブマルチタスク」について、今回は詳しく解説します。
非協調的マルチタスクとは?
まずは「非協調的マルチタスク」について説明しましょう。これは、複数の処理が同時に実行されている状態で、どの処理が優先されるか決められていないものです。つまり、何らかの切り替え処理がない場合、どの処理も永遠に実行され続けるということになります。
例えば、Windowsの古いバージョンであるWindows 3.1などでは、非協調的マルチタスクが採用されていました。この場合、アプリケーションの起動順序や終了順序によって、処理がロックされてしまうことがありました。そのため、1つの処理が完了するまで他の処理が行われない、という状況が発生することがありました。
プリエンプティブマルチタスクとは?
次に、「プリエンプティブマルチタスク」について解説しましょう。こちらは、複数の処理が同時に実行されている状態で、あらかじめ優先度が設定されているものです。そして、優先度の高い処理が常に優先的に実行されるように、処理の切り替えが行われます。
例えば、スマートフォンなどでは、プリエンプティブマルチタスクが採用されています。これにより、ユーザーが操作中のアプリケーションが最優先され、必要に応じて他の処理が中断されたり、再開されたりすることが可能になっています。
以上、非協調的マルチタスクとプリエンプティブマルチタスクの基本的な違いについて解説しました。プログラマーであれば、非協調的マルチタスクとプリエンプティブマルチタスクを正しく理解することは必須です。