モードスイッチが必要ですか?アクションをコンテキストスイッチと呼ぶために、ユーザーモードからカーネルモードへ?
3 に答える
いいえ。すべてのプロセッサに特権レベルがあるわけではありません。
コンテキスト スイッチは通常、プロセス コントロール ブロックから実行状態を復元することを意味します。ただし、コンテキストの概念は実装定義です。ウィキペディアから:
コンテキストを構成するものは、プロセッサとオペレーティング システムによって決まります。
...
オペレーティング システムでユーザー モードとカーネル モードの間の移行が必要な場合、コンテキスト スイッチは必要ありません。モード遷移自体はコンテキスト スイッチではありません。ただし、オペレーティング システムによっては、この時点でコンテキスト スイッチも発生する場合があります。
コンテキスト スイッチは、カーネル モードでのみ発生します。2 つのユーザー モード プロセス間でコンテキストの切り替えが発生した場合、最初に CPU をカーネル モードに変更し、コンテキストの切り替えを実行してから、ユーザー モードに戻す必要があります。そのため、コンテキスト スイッチに関連付けられたモード スイッチが必要です。
モードの切り替え - 単一のプロセス モードがユーザー レベルからカーネル レベルに、またはその逆に切り替えられた場合。これは、システム コールを通じて発生します。プロセスがシステム コールを呼び出すと、プロセス モードがカーネル モードに変わり、カーネルがユーザー プロセスに代わって動作を開始します。システム コールが返されると、プロセス モードはカーネル モードからユーザー モードに変更されます。「モード」は、プロセスに関連付けられたプロパティです。したがって、モードスイッチは単一プロセスのモードのスイッチです。
Context Switch - 実行中のプロセスの現在の状態がどこかに保存され、実行する新しいプロセスが選択され、すでに保存されている状態が CPU レジスタにロードされるときです。そして今、新しいプロセスが実行を開始します。この「コンテキスト切り替え」手順全体は、「プロセス スケジューラ」によって実行されます。