2016-12-28 7 views
0

私のテキストブックでは、コンテキストスイッチはカーネルモードでのみ実行されるスレッドがあるためにモード切り替えを意味しません。コンテキストスイッチはモードスイッチを意味します

cpuがカーネルモードで実行されている場合にのみコンテキストスイッチが実行できることは本当ですか?

そうでない場合、なぜですか? Unixライクなオペレーティングシステムでは本当ですか?

最後に、すべての割り込みはカーネルモードで常に実行される割り込みハンドラでしか処理できないのは本当ですか?

答えて

1

CPUがユーザモードで実行されているときに、割り込み、トラップ、および例外が発生することがあります。通常は、CPUがカーネルモードに切り替わります。それは文脈を部分的にまたは完全に切り替えるかもしれない。たとえば、x86 CPUは、割り込みや例外の処理専用のタスク(CPU内部のタスク)を持つことがあるため、これらのタスクが使用されている場合は、それらのタスクとの間でコンテキスト切り替えが行われる可能性があります。

通常、割り込みハンドラはカーネルモードで実行されます。しかし、CPUおよび/またはOSは、それらを部分的または全体的にユーザモードで処理することができる。 CPUとOSによって異なります。

関連する問題