24

プロセスから複数のスレッドを作成すると、各スレッドには独自のスタックがありますか、それとも親プロセスのスタックを共有していますか。スレッドがシステム コールを行うとどうなりますか? スレッドは、プロセスのような独自のカーネル スタックも維持しますか?

4

1 に答える 1

19

はい、スレッドには独自のスタックと独自のカーネル スタック (Linux など) があります。

スレッドがシステム コールを行うと、(ユーザー モードから) カーネル モードにトラップされ、カーネルに引数が渡され、引数がチェックされ、カーネルは (カーネル スタックで) 必要な処理を行い、戻ります。最終的な値がスレッドに返され、ユーザー モードに戻ります。

于 2013-08-21T06:29:12.690 に答える