なぜI / Oを待たなければならないのですか?
ディスク操作が遅いことは常に知られており、それらが遅い理由はわかっています。ここでの質問は、なぜI / Oを待たなければならないのか、なぜIOWaitなどのようなものがあるのかということです。 バックグラウンドでいくつかのI / Oタスクを実行しているとき、コンピューターが基本的にかなり遅くなることに気づいたことを意味します。Linuxを使用している場合、より長いI / Oタスクを実行している場合は特に、OSは完了するまでほとんど使用できなくなります。 確かに、私は記事でもこのトピックを見つけました、スニペットがあります: I / O待機は12.1%です。このサーバーには8つのコアがあります(cat / proc / cpuinfoを使用)。これは非常に近い(1/8コア= 0.125) つまり、基本的にはコンピューターの速度がかなり低下しているということです。なぜですか?つまり、通常のコンピューターは少なくとも2コアであり、ハイパースレッディングなどの理由で4コア以上である場合もあります。しかし今、問題はCPUが実際にそこに留まらなければならない理由であり、実際にはIOを待つ以外に何もしませんか?私はプロセス管理の基本的なアイデアやアーキテクチャを意味しますが、今ではそれがOSに起因するのか、それともハードウェアの部分に起因するのかわかりませんが、CPUが待機したり、定期的にチェックし、実際には他の多くのタスクを実行し、準備ができたときにのみIOプロセスに戻ります。確かに、それがそのような困難なタスクであり、CPUが待たなければならないのであれば、なぜ ハードウェアによってより効率的に管理されていますか?たとえば、ある種のミニCPUがあり、それを待って、プロセスに戻ったらすぐにデータのごく一部を実際のCPUに配信します。そのため、プロセスが繰り返されます。実際にデータコピープロセスにCPUコア全体を捧げる...または、この種のものを発明し、そのためにノーベル賞を受賞すべきだろうか?:S さてさて、私は今、オブザーバーの観点から実際にそれを入れています、そして私は本当にそのトピックに深く入っていませんが、CPUがHDDの速度で動作しなければならない理由を本当に理解していません別のことをして、準備ができたらHDDに戻ってください。そのアイデアは、そのIO操作またはコピープロセスなどを必要とするアプリケーションを高速化することではありませんが、その操作の実行中にCPU消費に最小限の影響を与え、OSが他のプロセスおよびユーザーに利用できるようにすることですコピー操作を行うときに一般的なコンピューターの遅延を感じる必要はありません...