プロセスのコマンドを実行するのはカーネルですか、それともCPUですか?

プロセスのコマンドを実行するのはカーネルですか、それともCPUですか?

コンピュータシステム:プログラマの観点からは、次のように言います。

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

図8.14に、プロセスAとBのペア間のコンテキスト遷移の例を示します。この例では、プロセスAは、読み取りシステム呼び出しを実行してカーネルにトラップされるまで、最初にユーザーモードで実行されます。カーネルのトラップハンドラはディスクコントローラからDMA転送を要求し、ディスクコントローラがディスクからメモリへのデータ転送を完了した後にディスク割り込みハンドラを予約します。

ディスクはデータを取得するのに比較的長い時間(数十ミリ秒)かかり、この間何もせずに待たず、カーネルはプロセスAからBへのコンテキスト切り替えを実行します。移行中は、次の点に注意してください。コアユーザーモード(つまり、別のカーネルプロセスなし)でプロセスAの代わりにコマンドを実行します。スイッチの最初の部分では、コアカーネルモードで命令を実行するプロセスAを示します。その後、ある時点でプロセスBの代わりにコマンドの実行を開始します(まだカーネルモードになっています)。切り替え後、コア ユーザーモードでコマンドを実行するプロセスBを示します。

次に、プロセスBは、ディスクがデータがディスクからメモリに転送されたことを示す割り込み信号を送信するまで、しばらくの間ユーザモードで実行される。カーネルは、プロセスBが十分に長い間実行されたと判断し、プロセスBからAへのコンテキスト切り替えを実行し、プロセスAの制御を読み取りシステムコールの次のコマンドに戻します。プロセスAは、次の例外が発生するまで実行され続けます。

何ですか」コア「ユーザー/カーネルモードでプロセスに代わってコマンドを実行する」とはどういう意味ですか?

命令を実行するのはCPUだけではないか?

ありがとうございます。

答え1

はい、CPUのみがコマンドを実行します。

作家がこの特別なフレーズで何を説明しようとしたのかわかりません。

関連情報