システムコールの勉強を始めたばかりです。システムコールが行われたときのオーバーヘッドの原因を知りたいです。
たとえば、getpid() を考えると、システム コールが getpid() に対して行われるとき、コントロールが現在子プロセスにある場合、親プロセスに入って pid を取得するためにコンテキスト切り替えを行う必要があると思います。 . それはオーバーヘッドに貢献できますか?
また、getpid() が呼び出されると、ユーザー空間の境界を越えてメタデータが転送され、カーネルに出入りします。したがって、ユーザー空間とカーネルの間の絶え間ない切り替えもオーバーヘッドを引き起こしますか?