だから私は質問をしたのです。教科書では、「各CPU(またはコア)は一度に1つのプロセスで動作できる」という内容を読みました。
私はこれが正しいと仮定しますが、もはや完全に真実ではありません。マルチスレッドはどのように機能しますか?それともこれはまだ真実であり、LinuxのCPUコアは一度に1つのプロセスでしか機能できませんか?
答え1
単一 CPU は一度に 1 つのプロセスを処理します。しかし、「プロセス」はオペレーティングシステムの構成です。オペレーティングシステムはVLCでビデオを単一のプロセスとして再生することを意味しますが、実際には多くの個々のコマンドで構成されています。したがって、CPUの使命はビデオを再生するのではなく、実行中のすべての作業を放棄する必要があります。 CPUは、ビデオ再生→キーボードまたはマウス入力確認に切り替え→画面に何かを描画→デバイスが既知のポートに接続されているか確認→などの操作を行うことができます。すべてのことは、瞬く間に起こります。
現代のコンピュータはマルチタスクに優れています。これがVLCでビデオを起動し、コンピュータが100の異なる奇妙なタスクを「同時に」実行している間でもビデオを再生し続けることができる理由です。
答え2
私は一つを信じるシングルスレッドプロセス(プログラム)は、マルチコアCPUを搭載したシステムで実行されていても、単一のCPUコアでのみ実行されるように制限されています。
プロセスがマルチスレッドでマルチコアCPUを持つシステムで実行されている場合、個々のスレッドの実行が別のCPUコアに渡される可能性があるため、プログラムは並列処理の利点を享受できます。
2000年代初頭にマルチコアCPUが初めて登場したとき、多くのプログラムがまだシングルスレッドアーキテクチャを使用していたため、マルチコアCPUのパフォーマンス上の利点はありません。
システム全体では、異なるCPUコアで異なるプロセスを実行できるため、利点があります。