私は複数のスレッドを持つプロセスを持っています。私のスレッドの1つがgettimeofday()
のようなシステムコールを呼び出すと、カーネルはそのスレッドをコンテキストから切り離してシステムコールを処理するだけですか、それともプロセス全体(そして他のすべてのスレッド)をコンテキストから切り離しますか?スレッドがシステムコールを呼び出すときのコンテキスト切り替え
2
A
答えて
2
ほとんどの場合、system callsにコンテキスト切り替え(他のタスクが実行可能な場合)があり、プロセッサの状態をカーネルモードに切り替えることがあります。
しかし、gettimeofday
(たとえば、getpid()
)は珍しいです。最近のカーネルでは、それを避けるためにVDSOを使用しています(そして、syscall
またはsysenter
命令をカーネルモードに切り替えることさえも避けます)。
1
Linuxカーネルのスレッドはプロセスです。そのため、カーネルはプロセスの他のスレッドに興味がなく、そのうちの1人がシステムコールを作成します。
関連する問題
- 1. 呼び出し規約がコンテキスト切り替えに影響しますか?
- 2. スレッド切り替え
- 3. コンテキスト切り替えデッドロック
- 4. スレッドを切り替える
- 5. Linuxのコンテキスト切り替えカーネルプロセス
- 6. Symfony:コンテキスト切り替えの問題
- 7. コンテキスト切り替えのgccインラインアセンブリ
- 8. C++システムコールでtskillを呼び出すことができない
- 9. スレッドを切り替える方法
- 10. アプリケーションを切り替えるときにviewWillDisappear/viewDidDisappearが呼び出されますか?
- 11. ユーザプロセスはコンテキスト切り替えを行わずにシステムコールをどのように実行しますか?
- 12. コンテキスト切り替えネイティブスレッドはJVMにアタッチできません
- 13. Android - 2つのアクティビティの切り替え中に、アクティビティライフサイクルメソッドの呼び出し順
- 14. jQueryクラスの切り替えとクッキーの値の切り替え?
- 15. portraitモードで表示に切り替えるときにwillHideViewControllerが呼び出されない
- 16. recvシステムコールを呼び出すときにsigprocmaskが呼び出されるのはなぜですか?
- 17. WinDbgの管理スレッドに切り替えることができません
- 18. 例外処理コンテキスト切り替えとSEH
- 19. タスク間のコンテキスト切り替えを容易にする習慣
- 20. tabBarControllerのタブを切り替えると、どのメソッドが呼び出されますか?私はtabBarController</p>私はそれが私が知りたい、viewDidLoadメソッドを呼び出します初めてで知っ <p>でタブを切り替えるときにメソッドが呼び出されます
- 21. ビューを切り替えるとacceptsFirstResponderが2度呼び出されるのはなぜですか?
- 22. CPUが多い、コンテキスト切り替えの可能性がありますか?
- 23. 最初に呼び出すときにハンドラを切り離す
- 24. スレッドを切り替える方法はありますか?
- 25. Visual Studio Team Explorerのソース管理コンテキストの切り替え
- 26. ユーザーが別のブラウザタブに切り替えると検出できますか?
- 27. ユーザーがブラウザのタブを切り替えるときのイベント
- 28. 他のビューの切り替えに切り替えるapp xcode
- 29. メニューの切り替えの切り替え
- 30. コンテキスト切り替え時間を短縮することは可能ですか?
Linuxは1:1スレッドです。システムコールですべてのスレッドを切り替えるN:1やM:Nのような他のものについては、[Wikipediaのスレッドモデル](http://en.wikipedia.org/wiki/Thread_%28computing%29#Models)を参照してください。 1≦some≦allが影響を受ける可能性があります。 – ephemient