0

プロセススケジューラは、現在CPUによって処理されているプロセスを優先度の高いプロセスに置き換えます。CPU が優先度の低いプロセスの実行でビジー状態のときに、スケジューラーが CPU に優先度の高いプロセスについて通知するために実行されている場合、いつでも 1 つのプロセスのみがプロセッサーによって実行されますか?

4

2 に答える 2

2

プロセス スケジューラはオペレーティング システムのコンポーネントであり、現在実行中のプロセスの実行を継続するかどうか、継続しない場合は次にどのプロセスを実行するかを決定します。

スケジューラprocessesが使用する CPU 時間を監視しやすくするために、a programmable interval timer interrupts the processor periodically (typically 50 or 60 times per second). このタイマーは、オペレーティング システムがそれ自体を初期化するときにプログラムされます。割り込みごとに、オペレーティング システムのスケジューラが実行され、現在実行中のプロセスの実行を継続できるようにするか、中断して別の準備ができているプロセスの実行を許可するかを決定します。これは、プリエンプティブ スケジューリングに使用されるメカニズムです。

したがって、基本的に、プロセススケジューラは同じメインメモリで実行されwhen activeますが、割り込みによって呼び出された後にのみアクティブになります。したがって、それらは常に実行されているわけではありません。

ところで、それは答えるのに最適な概念的な質問でした。あなたのトピックをよろしくお願いします。

于 2014-07-24T17:07:02.087 に答える
0

優先度の高いスレッド/プロセスは、割り込みによってスケジューラが実行されて次に実行するスレッドのセットが決定されると、優先度の低いスレッドを横取りし、スケジューラのアルゴリズムは優先度の低いスレッドを置き換える必要があると判断します。優先度の高いもの。

割り込みには 2 つの種類があります。

  1. すでに実行中のスレッドからのソフトウェア割り込み (syscall) と、スレッドの状態の変更。別のスレッドが待機しているイベント、ミューテックス、またはセマフォにシグナルを送り、実行の準備を整えます。

  2. I/O 操作が完了したか、実行中のスレッドのセット (ディスク、NIC、KB など) を変更する必要があるタイムアウト間隔が切れたために、ドライバーが終了時にスケジューラーを呼び出すことを選択したドライバーを実行させるハードウェア割り込み。 、マウス、タイマー)。

于 2014-07-26T14:02:41.500 に答える