私はオペレーティングシステムについて学んでいますが、理解できない小さな概念があります。プロセス1がCPUで実行されていて、ディスクから読み取るためのI/O要求を発行するとします。効率を上げるために、この要求が処理されると、CPUはプロセス2の実行を開始します。それはすべて理にかなっていますが、I / OはCPUを使用する必要はありませんか?
私の質問:プロセス1の要求を処理するためにCPUが必要ないのはなぜですか?
私はオペレーティングシステムについて学んでいますが、理解できない小さな概念があります。プロセス1がCPUで実行されていて、ディスクから読み取るためのI/O要求を発行するとします。効率を上げるために、この要求が処理されると、CPUはプロセス2の実行を開始します。それはすべて理にかなっていますが、I / OはCPUを使用する必要はありませんか?
私の質問:プロセス1の要求を処理するためにCPUが必要ないのはなぜですか?
コンピュータアーキテクチャにおけるI/Oの3つの重要な側面(割り込み、DMA、およびハードウェアコントローラ)の役割を理解するのに役立ちます。
CPUがハードディスクにI/O要求を発行する場合、ハードディスクには、ディスクからの読み取りなど、CPUからのコマンドを処理するためだけに設計されたデバイス(またはハードウェア)コントローラーと呼ばれる専用のチップがあります。もともとこれらはCPUに対して特定の操作を実行する単純なチップでしたが、最近のハードウェアコントローラーは基本的にファームウェアとすべてを備えた独自のマイクロプロセッサーであるため、メインCPUの助けがなくても非常に複雑な操作が可能です。ハードドライブのコントローラーが要求の実行でビジー状態にある間、メインCPUは、例のプロセス2の実行など、自由に実行できます。コントローラは、ダイレクトメモリアクセス(DMA)コントローラと呼ばれるものを使用して、システムRAMとの間で直接読み取りおよび書き込みを行うことができます。
ハードドライブが要求を処理し、関連するデータがDMAを介してRAMにロードされると、割り込み要求を発行して、データがRAMにロードされたことをCPUに通知します。この時点で、CPUは制御をプロセス1に戻すことができます。したがって、CPUはI/Oに関連するすべてのタスクを細かく管理する必要はありません。かつてはこれが当てはまりましたが、これらのトリック(割り込み、DMA、特殊コントローラー)は、CPUパフォーマンスを向上させ、処理を効率化するために考案されました。
CPUは、すべてのio要求を開始し、準備ができたらそれを受け入れるために使用されます...cpuがio操作に関与していない場合はそうではありません。
たとえば、2GBのファイルをcドライブからdドライブにコピーし、タスクマネージャを開きます。パフォーマンスタブで、ディスク使用率とCPU使用率の両方が表示されます。
my.pointを証明します。
アサン