2016-08-04 4 views
0

私はシステムプログラムが何であるかを知っていると思いますが、ユーザーモードと部分的にカーネルモードで部分的に実行される理由を理解したいと思います。システムプログラムが実行されるモード

他のソフトウェアにサービスを提供するように設計されたコンピュータソフトウェアなので、カーネルモードで完全に動作すると思っていました。ユーザーモードで実行するカセットはどれですか?

答えて

0

ユーザソフトウェアがシステムとその機能を損なうのを防ぐために、カーネルモードとユーザモードが存在します。

低レベル命令の実行方法は?

ANS - 使用してシステムのユーザ・モード・プログラムは、カーネルモードに切り替えるが、カーネルモードで実行される命令を制御することはできませんでき

を呼び出します。 これが起こる唯一の方法は、ユーザモードで低レベルのリソース(ハードウェア)と通信するために使用されるシステムコールを使用することです。

唯一の例外は、プロセスが "ioperm"システムコールを使用している場合です。この場合、デバイスに直接アクセスするには、 ユーザモードプロセス(IRQは使用できません)を使用します。プロセス中

ユーザ・モード・プログラムは、オペレーティング・システムから必要とする特定何のサービスを示すために、レジスタの値を配置し、または引数とスタックフレームを作成し、 。トラップ命令を実行します。

直ちに、CPUはカーネルモードに切り替わり、メモリ内の固定された場所にある命令にジャンプします。

トラップ命令またはシステムコールハンドラでは、要求されたサービス+引数の詳細を読み取り、次に をカーネルモードで実行します。

最後にシステムコールを実行すると、オペレーティングシステムはモード をユーザーモードにリセットし、システムコールから戻ります。

関連する問題