私はいくつかのSOの質問が結論に来るのを見た:各プロセスは、独自のカーネルスタックを持っています。しかし、このコードはどうですか?各プロセスには独自のカーネルスタックがあります。
main()
{
while(1)
;
}
これはどうですか?
main()
{
}
このプログラムにも対応するカーネルスタックがあるかどうか。
詳細: 上記の1番目のコードでは、以下のようにテストしました。 Ctrl + Cキーを押して停止し、システム時間が1ms未満であることを確認します。
私が知りたいことは、ユーザースペースプログラムの実行パスがカーネルスペースを経由する必要があるかどうかです。私のコード例では、実行時にプロセス自体がカーネル空間を通過しないと思いますが、これは正しいですか?
$ time ./a.out
^C
real 0m24.953s
user 0m24.942s
sys 0m0.000s
カーネルは、ユーザー空間に対して**実行環境**を提供するプロセスオブジェクトを作成します。 – Tsyvarev
私はあなたをよく理解できません。あなたは言う: "プロセスオブジェクトを完全に構築することが必要です"、これはカーネルで行われますか?それでも、これは対応するカーネルスタックが割り当てられていることを意味しますか? –
本当にありがとう!いい答えだ。 –