dポイントプレゼントキャンペーン実施中!

OSのタスク管理について、ある問題集で不明な点が…。以下その問題です。
「プロセスを、実行状態、実行可能状態、待ち状態、休止状態の4つの状態で管理するプリエンプション方式のOS上で、A、B、Cの3つのプロセスがロードされている。各プロセスの現在の状態は、Aが待ち状態、Bが実行状態、Cが実行可能状態である。プロセスAの待ちを解消する事象が発生すると、それぞれのプロセスの状態はどのようになるか。ここで、プロセスの優先順位は、A>B>Cの順に高いものとする」
正解はA:実行状態、B:実行可能状態、C:実行可能状態、となっています。ただ、以前他の文献で「待ち状態から直接、実行状態に移ることはなく、必ず実行可能状態を経由して実行状態になる」といった主旨の説明を読んだ記憶があります。すると、Aが待ち状態から実行状態に移るのは正しくないということになりますが、これはどのように解釈すればいいのでしょう?

A 回答 (3件)

「プリエンプション」というところに鍵があります。



プリエンプション方式はOSが実行中のプロセスから自由にCPUを取り上げられます。
だから、Aに対する入出力完了割込みが入ると、OSはAを
入出力待ち状態→実行状態に瞬時に遷移させます。

ノンプリエンプション方式の場合、Aは実行可能状態になって待ちます。
今、実行中のプロセスがCPUを離すと、再スケジューリングでAが実行状態になります。

プリエンプション方式の場合、参考URLの図1とは違う遷移図になります。
理解としては、待ち→実行可能→実行を瞬時に遷移すると見てもいいでしょう。

参考URL:http://www.multisoft-lab.com/os/process.html
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
問題文の解釈が今一つ足りませんでした。
丁寧に解説していただいて、よくわかりました。

お礼日時:2005/04/20 06:20

プロセスAの待ちを解消



A:実行可能状態、B:実行状態、C:実行可能状態
になりますが、ここで
プロセスの優先順位は、A>B>Cの順に高い
ということなので、
A:実行状態、B:実行可能状態、C:実行可能状態
になる
ということだと思います
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
よく問題文を解釈するよう努めます。

お礼日時:2005/04/20 06:17

>プロセスAの待ちを解消する事象が発生すると、


とありますね。つまり、
実行状態:B
実行可能状態:A,C
こうなりました。さてこの後どうなるのでしょう?
という問題なんですよ。Aが実行可能状態に移った
事は問題文で既に書かれている、前提です。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
よく問題文を解釈するよう努めます。

お礼日時:2005/04/20 06:17

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!