私は複数のスレッドを持つプロセスを持っています。私のスレッドの1つがgettimeofday()
のようなシステムコールを呼び出すと、カーネルはそのスレッドをコンテキストから切り離してシステムコールを処理するだけですか、それともプロセス全体(そして他のすべてのスレッド)をコンテキストから切り離しますか?スレッドがシステムコールを呼び出すときのコンテキスト切り替え
2
A
答えて
2
ほとんどの場合、system callsにコンテキスト切り替え(他のタスクが実行可能な場合)があり、プロセッサの状態をカーネルモードに切り替えることがあります。
しかし、gettimeofday
(たとえば、getpid()
)は珍しいです。最近のカーネルでは、それを避けるためにVDSOを使用しています(そして、syscall
またはsysenter
命令をカーネルモードに切り替えることさえも避けます)。
1
Linuxカーネルのスレッドはプロセスです。そのため、カーネルはプロセスの他のスレッドに興味がなく、そのうちの1人がシステムコールを作成します。
関連する問題
- 1. 呼び出し規約がコンテキスト切り替えに影響しますか?
- 2. 経路を切り替えるときにリアクションルータがコンポーネントコンストラクタを呼び出す
- 3. スレッド切り替え
- 4. TensorFlowデバイスのコンテキスト、ストリーム、およびコンテキストの切り替え
- 5. std :: this_thread :: sleep_for - このスレッドへのコンテキスト切り替えですか?
- 6. コンテキスト切り替えデッドロック
- 7. FreeRTOSコンテキスト切り替え
- 8. C++:スレッドプールとコンテキスト切り替えのスローダウン
- 9. ajaxから切り替えたときにjqueryが呼び出されない
- 10. スレッドを切り替える
- 11. Android Switch - onCheckedChangeListenerを呼び出す前にUIの切り替えを切り替える方法
- 12. コンテキスト切り替えのgccインラインアセンブリ
- 13. Linuxのコンテキスト切り替えカーネルプロセス
- 14. Symfony:コンテキスト切り替えの問題
- 15. C++システムコールでtskillを呼び出すことができない
- 16. コンテキストを切り替えるときにcmdでカーソルがジャンプする
- 17. スレッドを切り替える方法
- 18. REACT:クラスonClickを切り替えて、他の関数を呼び出す
- 19. iOS 11のキーボードを切り替えるときにUIKeyboardWillShowの通知が呼び出されない
- 20. JVMでコンテキストの切り替えやスレッドの起動に費やす時間を見つけ出す
- 21. アプリケーションを切り替えるときにviewWillDisappear/viewDidDisappearが呼び出されますか?
- 22. ユーザプロセスはコンテキスト切り替えを行わずにシステムコールをどのように実行しますか?
- 23. いくつかのView Controllerを切り替えるときにdidMoveToView()の曲を呼び出す方法
- 24. Huaweiの電話機に切り替えるときにonCreateが呼び出されない
- 25. コンテキスト切り替えネイティブスレッドはJVMにアタッチできません
- 26. silence gdb "スレッドに切り替える"出力メッセージ
- 27. Android - 2つのアクティビティの切り替え中に、アクティビティライフサイクルメソッドの呼び出し順
- 28. jQueryクラスの切り替えとクッキーの値の切り替え?
- 29. portraitモードで表示に切り替えるときにwillHideViewControllerが呼び出されない
- 30. recvシステムコールを呼び出すときにsigprocmaskが呼び出されるのはなぜですか?
Linuxは1:1スレッドです。システムコールですべてのスレッドを切り替えるN:1やM:Nのような他のものについては、[Wikipediaのスレッドモデル](http://en.wikipedia.org/wiki/Thread_%28computing%29#Models)を参照してください。 1≦some≦allが影響を受ける可能性があります。 – ephemient