3

オペレーティング システム関連の質問がわかりません。ここで質問できますか

しかし、このフォーラムで適切な説明が得られると思いました

プロセスがユーザーコンテキストで実行されると...カーネルコンテキストで優先度の高いプロセスが常にユーザーコンテキストでプロセスをブロックすることはありません...

私にはぼんやりしています...コンセプト

……

4

4 に答える 4

3

オペレーティング システムには、主にプリエンプティブ スケジューラと非プリエンプティブ スケジューラの 2 種類のスケジューラがあります。

非プリエンプティブ スケジューラはあなたが思うように動作します。より高い権限と優先度を持つプロセスは、終了するまで、またはブロックされるまで CPU を使用し続けます (たとえば、ミューテックス上で、またはスケジュールのために明示的に CPU を解放する yield の呼び出しで)もう一つ。)

しかし、非プリエンプティブ スケジューラはまれであり、Linux スケジューラはそのようなものではありません。タイム スライスを使用して、プロセスをスケジュール解除する前に短時間動作させます。これには優先度も含まれますが、優先度の低いプロセスのスケジュールを維持します。この Linux スケジューラの記事を参照してください。

于 2009-04-17T08:41:49.550 に答える
2

この Stackoverflow の投稿には、カーネル モードがどのように機能するかの概要と、いくつかの専門用語の説明を含むディスカッションがあります。特に、「カーネル モードとユーザー モードの概要」というタイトルのセクションを見てください。あなたの質問に光を当てるのに役立つかもしれません。

于 2009-04-17T08:48:36.727 に答える
1

カーネル モードのプロセスは、クォンタムに到達するとプリエンプトされる可能性があります。

ウィキペディア:プリエンプション

于 2009-04-17T08:00:51.117 に答える
1

http://en.wikipedia.org/wiki/Ring_0

于 2009-04-17T08:01:13.610 に答える