はじめに(おすすめの学習手順)
待ち状態というのは、タスクの状態遷移における3状態のうちの1つのことです。そのため、タスクの状態遷移全体を体系的に学ぶ方がすっきり理解することができます。
【イラストでわかる】タスクの状態遷移 (待ち状態, 実行・実行可能状態の遷移)【例豊富】
・そもそもタスクってなに??・イラスト使わない説明はくそっ!!・専門用語の説明ないのもくそっ!! 今回の記事では、このようなペンギンでも満足の解説記事になっています。イラスト豊富で専門用語はすべて解説して…
こちらの記事で一から体系的に解説しています。5~10分程度で学ぶことが可能ですので、先にこちらの記事を読むのが非常にお勧めです。
ここから先は、「待ち状態だけを重点的に知りたいんだ」という人向けに解説します。
待ち状態とは
待ち状態というのは、「入出力処理」などのタスク自体ではどうしようもない処理の終了を待っている状態です。例えば、C言語の scanf 関数などがこれに該当します。他にも、「タスク間の同期」のために待っている状態なども待ち状態になります。
このようなイメージです。
ちなみに、タスクの遷移状態全体をイラストで表すと
このようになります。
待ち状態には、実行状態からのみ遷移する
つまり、待ち状態は、実行状態のタスクが「入出力処理」や「タスク間同期」のために遷移するのみであり、実行可能状態のものがいきなり待ち状態に遷移するということはありません。
待ち状態からいきなり実行状態にはならない
また、待ち状態のタスクは、入出力処理などの終了後、すぐに実行状態になるということもありません。必ず実行可能状態に遷移し、CPU割り当てされるのを待つことになります。この時の順番は、どのようなスケジューリング方式であるかによります。
まとめ
待ち状態とは、「入出力処理」や「タスク間同期」などのタスク自体ではどうしようもない処理の終了を待っている状態。
また、以下の2点に注意する必要がある。
- 待ち状態には、実行状態からのみ遷移する
- 待ち状態からいきなり実行状態にはならない
お疲れ様でした。
コメント