Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
プロセス内のスレッドがシステム コールを行う場合、ユニスレッド プロセスでは、プロセスはカーネル モードを切り替えます。しかし、マルチスレッド プロセスの場合はどうなるでしょうか。つまり、プロセス内のスレッドがシステム コールを行う場合、そのスレッドを含むプロセスのモードは何ですか? -- カーネルモード/ユーザー モード?
Linux では、スレッドは単純に、たまたま他のいくつかのプロセス (同じプロセス内の他のスレッド) とメモリを共有するプロセスです。
そのため、CPU は syscall 中はシステム モードになりますが、現在実行中のプロセスが syscall を実行している場合でも、通常はプロセスからプロセスに切り替わるように、タイム スライスが期限切れになると、実行は他のスレッドまたはプロセスに切り替わります。