コンテキスト切り替えとモード切り替え

コンテキスト切り替えとモード切り替え

コンテキスト切り替えにはモード切り替えが含まれますか?私はこうするべきだと思います。なぜなら、私の考え方は、コンテキスト切り替えが発生するたびにプロセスが実行されている保存状態についてPCBを参照することに関連しているからです。 PCBはメモリに保存され、カーネルだけがメモリにアクセスできるため、モード切り替えを実行する必要があります。私は正しいですか?

PS:モード切り替えにコンテキスト切り替えが含まれているかどうかを尋ねるものではありません。 (できないかもしれません)

答え1

はい、コンテキスト切り替えは、カーネルがあるプロセスから別のプロセスに実行を切り替えるときのモード切り替えを意味します。コンテキスト切り替えには、メモリマップ、レジスタなど、実行を再開するプロセスの状態を復元することが含まれます。これはカーネルモードでのみ実行できます。

答え2

モードスイッチなしでコンテキストスイッチがあります。現在CPUで実行されている2つのプロセスを見てみましょう。各プロセスはシステムコールを処理するため、特権モードで実行されます。今、プロセススケジューラは、それらの間のコンテキスト遷移を決定することができます。どちらも特権モードで実行され、コンテキスト切り替えを担当するプロセスも特権モードで実行されているため、2 つのプロセス間のコンテキスト切り替えにはモード切り替えは含まれません。

関連情報