私はLinuxがマルチタスクをサポートしていないCPUで実行できると聞きました。
しかし、コアが1つだけでマルチタスクがサポートされていない場合、Linuxはどのようにマルチタスクを実装しますか?
それぞれ終了するのに1時間かかる2つのプログラムを実行したいとしましょう。 Linuxで約100ミリ秒後に最初のプログラムを一時停止して2番目のプログラムに切り替えるには?
次の2つの状況を考えることができます。
- 複数のジョブを同時に実行することはできません。
- Linuxはハードウェアタイマーを使用して実行中のプロセスを停止します。
答え1
マルチタスクをサポートするCPUが何を意味するのかわかりません。マルチコアCPUについて考えていますが、マルチタスクオペレーティングシステムはマルチコアCPUよりも先にあります。
しかし、別のプロセスを実行するためにあるプロセスを一時停止する場合、Linuxはハードウェアタイマーを含むさまざまな技術を(間接的に)使用します。本質的に、カーネルが呼び出されるたびに実行中のプロセスを変更することを決定できます。詳しくは、次の投稿をご覧ください。