タスク管理について

ごましおさん  
(No.1)

お世話になります。
表題の件、質問がございます。

参考書には
"あるタスクが実行状態のとき、入出力処理が発生するとそのタスクは待機状態になる。"
と書かれています。
このタスクがなぜ待機状態になるのかがわかりません。
(入出力処理が発生しようが、そのままタスクを実行状態にしておくことはできないのでしょうか)

もし何か具体的な例(仮に入出力処理があるにも関わらずタスクが実行状態だったら、こんな弊害が生まれるなど)がございましたらお答えいただけますと大変助かります。

よろしくお願いいたします。

2017.04.10 19:11
昨年合格者さん 
(No.2)
「あるタスクが実行状態のとき、入出力処理が発生するとそのタスクは待機状態になる。」とは、「タスクがそれ自体の処理過程で入出力処理を発生させた場合、そのタスクは待機状態になる」という意味だと思います。たとえば、ファイルを読み込んでその内容を集計するというタスク(実際はタスクでなくてジョブだが、例えとして説明するためにここではタスクとします)があった場合、ファイルをすべて読み込まないと「集計」という次の処理に移れません。入出力処理はCPUでの演算と比較した場合、非常に長い時間になるので、その間そのタスクを実行状態にしておくというのは単にCPUを処理待ち状態にする結果となります。従って、そのタスク自体を待機状態にして、入出力処理が終わるまでの間、CPUには別のタスクの処理をさせる方が効率がよくなるので、このような流れになるのだと思います。
2017.04.10 20:53

返信投稿用フォーム

スパム防止のためにスレッド作成日から30日経過したスレッドへの書込みはできません。

その他のスレッド


Pagetop