4

オペレーティング システムのデュアル モード操作とは何かを理解しようとしています。私がさまざまな情報源から得たのは、これは、ユーザーによる基本的な誤用からシステム自体と他のコンポーネントを保護するためのシステムの方法であるということです。

(モード ビットについて漠然と見たので、私は推測します) すべてのプロセスには、ユーザー モード プロセスとカーネル モード プロセスを区別するためのモード ビットが割り当てられます。モード ビットは、プロセス制御ブロックに格納されます。

したがって、これは、どのプロセスがユーザーによって開始され、どのプロセスが OS によって開始されたかを示す方法にすぎません。特定の特権を付与するには? (なぜOSモードではなくカーネルモードと呼ばれるのですか)?

4

2 に答える 2

2

プロセスモードごとのビットはありません。プロセッサ(CPU)には2つのモードがあります(2つ以上ですが、この説明では2つだけであると想定しています)-ユーザーモードと特権モード。プロセッサは、ユーザーモードでユーザースペースプロセスを実行します。これは基本的に、ユーザースペースプロセスが必要以上に制御できないようにするためです(したがって、悪意のあるユーザーがシステムのハードウェアをいじるのを防ぎます)。これで、ユーザープロセスがハードウェア(ファイルシステムやIOなど)を使用する必要がある場合、カーネルに代わってそれを実行するように要求する必要があります。これは、システムコールを使用して行います。これにより、内部でCPUモードが特権に変更され、システムコールコードにシステムへのフルアクセスが提供されます。

于 2013-02-14T00:46:42.007 に答える
0

デュアルモード動作により、OS はそれ自体と他のシステム コンポーネントを保護できます ハードウェアによって提供されるモード ビットと呼ばれるものがあり、システムがユーザー コードまたはカーネル コードを実行しているときを区別する機能を提供します :)

于 2013-10-25T08:53:35.880 に答える