2016-12-06 3 views
0

私は研究の一部としてプロセススケジューリングを研究しています。そうすることで、私は以下の情報を参照しています:プロセスはいつ必要なリソースを取得しますか?

アブラハムシルバーチャッツ、グレッグガネー、ピーターベアガルビンによると、 "Operating System Concepts, Ninth Edition ", Chapter 3;

プロセスレディ状態のとき:

プロセスは、それが実行する必要があることを利用可能なすべてのリソースを持っていますが、CPUは現在、このプロセスの指示に機能していません。

短期スケジューラは、次のプロセス[CPUを使用して準備完了状態からと前]を選択し、ディスパッチャルーチンができます:私はまた、講義から通知されていますが

はと指摘しますそれはCPUを制御する。プロセスが実際にディスパッチされる前に、プロセスは競合フェーズを経なければなりません。 (これまでのところ良いことだけど..)

"この競合フェーズの一面は、新しいプロセスが実行するために必要なリソースの取得です。"

プロセスが準備状態ディスパッチャルーチン定義によって準備状態から選択された場合は、「プロセスが実行する必要があることを利用可能なすべてのリソースを持っている」ということです。

なぜ「紛争フェーズの側面はリソースの獲得」である必要がありますか?

どの時点で、正確にプロセスが必要なリソースを取得していますか?

答えて

0

このすべてはシステムによって異なります。まず、プロシージャを理解するために、スケジューラがあります。一部のOSの書籍では、長期、中期、短期のスケジューラについて説明していますが、この部門はシステム固有のものです。

一般的な観点から、プロセスには3つの状態しかありません。(1)実行中。 (2)実行準備ができており、(3)実行準備が整っていない状態。惑星上のすべてのオペレーティングシステムは、私が#3に匹敵する状態をさらに持ちます。ただし、これらの追加の状態は完全にシステム固有のものです。

私は混乱し、この定義を見つける:

プロセスがレディ状態にあるとき:

プロセスは、実行する必要があることを利用可能なすべてのリソースを持っていますが、CPUは現在作業されていませんこのプロセスの指示。

プロセスが実行する必要がある主なリソースはCPUです。したがって、実行する必要があるすべてのリソースがプロセスに存在する場合、プロセスは実行されています。

また、「リソース」という用語の使用を待っているプロセスを説明するのが混乱しています。システム中立的な観点から、プロセスが実行する必要のある唯一のリソースは、(1)現在の命令を実行するために必要なCPUと(2)物理メモリです。これらを持つ以外に、プロセスは通常、イベントが発生するのを待っているため「実行準備ができていません」という状態です。利用可能なリソースではありません。

これは、実行するのに必要な他のリソースを持つシステムもありますが、これはシステム固有のものです。

あなたが直面している問題は、あなたが与えている(または与えられている)説明が、理論と実装の欺かれた記述であるということです。オペレーティングシステムには、記述しているすべての時点で競合フェーズがない可能性があります。一方、いくつかの特定のオペレーティングシステムは、あなたが記述している方法で実装されるかもしれません。

要するに、高水準の理論を必要以上に複雑にしているように見えますが、特定のオペレーティングシステムに関係なく、オペレーティングシステムの仕様を混乱させてしまいます。

関連する問題