66

私はオペレーティングシステムについて学んでいますが、理解できない小さな概念があります。プロセス1がCPUで実行されていて、ディスクから読み取るためのI/O要求を発行するとします。効率を上げるために、この要求が処理されると、CPUはプロセス2の実行を開始します。それはすべて理にかなっていますが、I / OはCPUを使用する必要はありませんか?

ここに画像の説明を入力してください

私の質問:プロセス1の要求を処理するためにCPUが必要ないのはなぜですか?

4

2 に答える 2

126

コンピュータアーキテクチャにおける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パフォーマンスを向上させ、処理を効率化するために考案されました。

于 2012-11-28T08:16:36.343 に答える
-7

CPUは、すべてのio要求を開始し、準備ができたらそれを受け入れるために使用されます...cpuがio操作に関与していない場合はそうではありません。

たとえば、2GBのファイルをcドライブからdドライブにコピーし、タスクマネージャを開きます。パフォーマンスタブで、ディスク使用率とCPU使用率の両方が表示されます。

my.pointを証明します。

アサン

于 2016-05-01T07:26:15.083 に答える