1

プロセス内のスレッドがシステム コールを行う場合、ユニスレッド プロセスでは、プロセスはカーネル モードを切り替えます。しかし、マルチスレッド プロセスの場合はどうなるでしょうか。つまり、プロセス内のスレッドがシステム コールを行う場合、そのスレッドを含むプロセスのモードは何ですか? -- カーネルモード/ユーザー モード?

4

1 に答える 1

1

Linux では、スレッドは単純に、たまたま他のいくつかのプロセス (同じプロセス内の他のスレッド) とメモリを共有するプロセスです。

そのため、CPU は syscall 中はシステム モードになりますが、現在実行中のプロセスが syscall を実行している場合でも、通常はプロセスからプロセスに切り替わるように、タイム スライスが期限切れになると、実行は他のスレッドまたはプロセスに切り替わります。

于 2012-11-23T23:14:02.130 に答える