応用情報処理技術者試験の対策サイトです。 応用情報処理技術者試験の午前問題を中心とした基礎用語の解説を中心に掲載します。書き始めたばかりなので、内容はまだまだ不十分です。
カテゴリ:

4.ソフトウェア > 4.3 タスク管理

タスク管理に関して、過去問(H20秋FE午前問28)では、「マルチプログラミングの制御を行い,CPUを有効に利用する」とあります。
応用情報技術者試験を勉強する成子

なぜそんな制御が必要なのですか?
CPUは頭脳に例えられるという話をしたと思います。
人間と同じで、コンピュータであっても、複数のことを同時には考えることができません。
応用情報技術者試験を勉強する成子

そうなんですか?
パソコンでは、インターネットで動画を見ながら、メールを書いたりしていますし、その間にプリンタで印刷をかけたりもできますけど。
はい、パソコンでは複数のことを同時に実施しています。
ただ実際には、CPUが短い時間で瞬時に複数の仕事を切り替えています。それがあまりに高速なので、我々には同時に実行しているように見えるのです。
このように、CPUにはいくつものジョブがやってきて、それを効率的に管理する仕事がOSが実行すべきタスク管理です。

タスク管理に関して、応用情報技術者試験のシラバスでは、以下の記載があります。
(4)タスク管理
タスクと状態遷移
タスクとジョブステップ,スレッドとの関係,タスクの生成から実行,消滅までの状態遷移,ディスパッチャの役割を理解する。

用語例 軽量プロセス,実行可能状態,実行状態,待ち状態,プロセス,スレッド

多重(マルチ)プログラミング(マルチタスク)とスケジューリング
多重(マルチ)プログラミングの考え方,タスクのスケジューリングの代表的な方式について,スケジューリングの方法,特徴,スケジューリングにおけるトリガと優先順位の役割,同期制御・排他制御の必要性,実現方法を理解する。また,タスクとタスクの同期,タスク間でのデータの受け渡し,マルチスレッドの考え方,並列処理などを理解する。

用語例 プリエンプティブ方式,ノンプリエンプティブ方式,タイムスライス方式,イベントドリブン方式,フィードバック待ち行列方式,処理時間順方式,優先順,静的優先順位方式,動的優先順位方式,ラウンドロビン,SJF(Short Job First),最短時間順,割込み禁止,マルチCPU,排他制御,FCFS(First Come First Served),タイムクウォンタム,リソーススタベーション,SVC(SuperVisorCall)割込み,入出力終了割込み,ディスパッチ

では、過去問(H20秋FE午前)を見てみましょう。
問28 タスク管理の役割として,適切なものはどれか
ア 各種の補助記憶装置へのアクセス手段を,装置に依存しない形態で提供し,応用プログラム作成の負担を軽減する。
イ 仮想記憶空間を提供し,実記憶を有効に利用する。
ウ 入出力装置の制御を行い,正確かつ効率よく入出力装置を動作させる。
エ マルチプログラミングの制御を行い,  CPUを有効に利用する。
正解は、エです。ウは入出力管理、イは記憶管理、アはデータ管理です。

過去問(H21秋AP午前問19)
問19 リアルタイムOSのマルチタスク管理機能において,タスクAが実行状態から実行可能状態へ遷移するのはどの場合か。
ア タスクAが入出力要求のシステムコールを発行した。
イ タスクAが優先度の低いタスクBに対して,メッセージ送信を行った。
ウ タスクAより優先度の高いタスクBが実行状態となった。
エ タスクAより優先度の高いタスクBが待ち状態となった。
正解は、 

プロセスの状態には、「待ち行列に登録されているプロセスの状態を実行可能状態,実行中のプロセスの状態を実行状態」の他に、「待ち状態」があります。

過去問(H20FE秋午前問29)では、コンピュータのタスクの状態遷移として、次の図が記載されています。
状態遷移
また、実行状態のタスクが、「自分より優先度の高いタスクが実行可能状態になった」ことで、実行可能状態に遷移するともあります。
応用情報技術者試験を勉強する成子

なんかややこしいですね。
なぜ、そんな3つの状態があるのですか?



例えがいいか分かりませんが、以下と考えてはどうでしょう。
大きな病院で初診受付をしたとします。
・最初は、病院側の先生が決っていない状態で、今すぐ診察を受けられない状態ですから、受付でしばらく待ちます(⇒待ち状態)
・病院側は、問診票や先生の空き状況などを踏まえて先生が決ったら、患者さんに連絡します「○○先生の診察になりますので、第△診察室の前でお待ちください。これで、先生が空いたら診察を受けることができます。(⇒実行可能状態)
・前の患者さんの診察が終わったら、診察を受けられます(⇒実行状態)
※ここで、実行状態にあっても、途中で検査したりすると、もう一度診察を受けるまで、診察室の前で待つことがあります。(⇒実行可能状態に戻ります)

患者さんの数に対し、先生の数は圧倒的に少ないものです。よって、患者さんの状態(優先度)も確認しながら、患者さんを先生に割り当てていく作業が必要になります。

コンピュータも同じで、CPUにはいくつものプロセスがやってきます。CPUの数は限られていますから、そのプロセスの実行順序を決めるのがOSの役割であり、これがタスク管理です。
また、プロセスの実行順序を決定する方式にはいくつかの方式があり、到着順方式や、ラウンドロビン方式、優先度順方式などがあります。

過去問
過去問(H21秋AP午前問19)
問19 リアルタイムOSのマルチタスク管理機能において,タスクAが実行状態から実行可能状態へ遷移するのはどの場合か。
ア タスクAが入出力要求のシステムコールを発行した。
イ タスクAが優先度の低いタスクBに対して,メッセージ送信を行った。
ウ タスクAより優先度の高いタスクBが実行状態となった。
エ タスクAより優先度の高いタスクBが待ち状態となった。
正解は、ウです。
優先度の高いタスクBが実行状態となると、タスクAは実行可能状態になります。

タスクのスケジューリング方式には、到着順方式、ラウンドロビン、優先度方式など、いくつかの方式があります。
到着順方式
到着順にタスクを実行状態にします。

処理時間順(残余処理時間順)方式
過去問(H27春FE午前問19不正解選択肢)では、「新しいタスクが実行可能状態になるたびに,各タスクの残りの実行時間を評価し,その時間が短いものから順に実行する」とあります。

ラウンドロビン
過去問(H27春FE午前問19不正解選択肢)では、「実行状態としたタスクが決められた時間内に待ち状態に遷移しないときに,そのタスクを中断して実行待ち行列にある次のタスクを実行状態とする」とあります。

優先度順
過去問(H27春FE午前問19不正解選択肢)では、「タスクが実行可能状態になったときに,そのタスクの優先度と,その時,実行状態であるタスクの優先度とを比較して,優先度が高い方のタスクを実行状態とする」とあります。

では、具体的な内容を過去問(H23春FE午後問2)で確認しましょう。
問2 CPUの割当て方式に関する次の記述を読んで,設問1,  2に答えよ。
オペレーティングシステムの役割の一つとして,プロセスにCPUを割り当てることがある。そして,プロセスの実行順序を決定する方式には,次のようなものがある。
(1)到着順方式
到着順にプロセスを待ち行列の末尾に登録する。実行中のプロセスが終了すると,待ち行列の先頭からプロセスを一つ取り出して実行を開始する。
到着順方式を図1に示す。待ち行列に登録されているプロセスの状態を実行可能状態,実行中のプロセスの状態を実行状態と呼ぶ。
プロセス
(2)ラウンドロビン方式
到着順にプロセスを待ち行列の末尾に登録する。実行中のプロセスが終了すると,待ち行列の先頭からプロセスを一つ取り出して実行を開始する。また,実行中のプロセスが一定時間(以下,タイムクウォンタムという)を経過したら,実行を中断して,待ち行列の末尾に再登録し,待ち行列の先頭からプロセスを一つ取り出して実行を開始する。
ラウンドロビン方式を図2に示す。
ラウンドロビン
これらの方式の効率を示す指標としてター'ンアラウンドタイムがある。ここで,ターンアラウンドタイムとは,プロセスが待ち行列に到着してから実行が終了するまでの時間であり,プロセスの実行順序に影響される。

(中略)

プロセスの実行順序を決める別の方式に優先度順方式がある。優先度順方式の例を図3に示す。プロセスにはあらかじめ優先度が付けてあり,待ち行列は優先度ごとに用意してある。ここで,優先度は1~10の10種類で,値の大きい方が優先度は高い。

優先度
この方式では,次のとおりにプロセスの実行を制御する。
プロセスを優先度に対応した待ち行列の末尾に登録する。
プロセスが登録されている優先度の最も高い待ち行列の先頭からプロセスを一つ取り出して実行を開始する。
実行中のプロセスの優先度が2以上のとき,実行時間が20ミリ秒経過するごとに優先度を一つ下げる。優先度を下げた結果,実行中のプロセスの優先度が実行可能状態にある優先度の最も高いプロセスよりも低くなった場合,実行中のプロセスを中断して,,北瓩襦
実行中のプロセスが終了した場合,△北瓩襦


H27春AP午前
問17 プロセスのスケジューリングに関する記述のうち,ラウンドロビン方式の説明とし
  て,適切なものはどれか。
ア 各プロセスに優先度が付けられていて,後に到着してもプロセスの優先度が実行
 中のプロセスよりも高ければ,実行中のものを中断し,到着プロセスを実行する。
イ 各プロセスに優先度が付けられていて,イベントの発生を契機に,その時点で最
 高優先度のプロセスを実行する。
ウ 各プロセスの処理時間に比例して,プロセスのタイムクウォンタムを変更する。
エ 各プロセスを待ち行列の順にタイムクウォンタムずつ実行し,終了しないときは
 待ち行列の最後につなぐ。
 
H17秋SW午前
問24 ジョブスケジューリングに関する記述として,適切なものはどれか。
ア FCFS (First Come First Served)方式は,ジョブの到着順に処理を行うもので,長大なジョブがあってもスループットが高い。
イ SPT (Shortest Processing Time First)方式は,処理時間の短いジョブの順に処理を行うので,対話型処理の平均応答時間を最小にできる。
ウ デッドラインスケジューリング方式は,目標の時間帯内に処理を完了することを目的に処理の優先度を決定するので,タイマ割込みのオーバヘッドが影響し,時間の制約の厳しいリアルタイム処理には向いていない。
工 優先度順方式は,バッチ処理の優先度を高く設定し,リアルタイム処理の優先度を低くして運用するのが一般的である。

H19春DB午前
問3 ラウンドロビン方式のタスクスケジューリングの説明として,適切なものはどれか。
ア 一定時間ごとにタイマ割込みを発生させ,実行可能の待ち行列の先頭のタスクにCPU資源を割り当てる。
イ 各タスクの優先度に従ってCPU資源を割り当てる。
ウ 処理時間の短いタスクから順にCPU資源を割り当てる。
工 何らかの割込みが発生したときに,直ちに起動する必要のあるタスクにCPU資源を割り当てる。

H23秋SM午前
問3 コンピュータシステムにおけるジョブスケジューリングの特徴のうち,適切なものはどれか。
ア CPUに割り当てるジョブをOSが強制的に切り替えるタイムスライス方式では,タイマ割込みが多発するので,スループットが低下する。
イ FCFS (first-come first-served)方式のジョブスケジューリングは,ジョブ間にCPUを公平に割り当てるので,スループットや応答時間の保証が可能となる。
ウ 対話型処理とバッチ処理が混在するシステムでは,対話型処理の優先度を高くすることによって,対話型処理の応答性能の向上が期待できる。
エ 入出力を多用するジョブよりもCPUを多用するジョブの処理優先度を上げた方が,CPUの待ち時間が少なくなるので,全体のスループットの向上が期待できる。

皆さんもお仕事されているとき、仕事は山のように降ってきますから、受け取った順に仕事をするのではなく、優先順位などをつけて仕事を調整されますよね。
コンピュータでも同じで、マルチタスク環境では、このように優先度に応じた仕事をする機能は必須になります。これがプリエンプティブです。
※preemptiveとは「先買権のある」という意味です。出典は、EXCEED 英和辞典(goo 辞書)より

プリエンプティブではない(=ノンプリエンプティブ)であれば、あるタスクがCPUを独占すると、他のタスクが実行できなくなってしまいます。過去問(H27春FE午前問19)では、「ノンプリエンプティブなスケジューリング方式の説明」として、「実行状態としたタスクが自ら待ち状態に遷移するか終了するまで,他のタスクを実行状態とすることができない」とあります。
応用情報技術者試験を勉強する成子

タスクスケジューリングには、到着順やラウンドロビンなど、いくつかの方式がありましたよね?
具体的にどれがプリエンプティブなのでしょうか。
では、過去問(H28春AP午前問19)をみてみましょう。
問19 ノンプリェンプティブだけのスケジューリング方式はどれか。
ア 残余処理時間順 ウ 優先度順
イ 到着順       エ ラウンドロビン
正解はイです。
ここにありますように、到着順だけがノンプリエンプティブで、それ以外はすべてプリエンプティブです。

先ほど紹介しましたが、過去問(H27春FE午前問19)を再度紹介します。
問19 ノンプリエンプティブなスケジューリング方式の説明として,適切なものはどれか。
ア 新しいタスクが実行可能状態になるたびに,各タスクの残りの実行時間を評価し,その時間が短いものから順に実行する。
イ 実行状態としたタスクが決められた時間内に待ち状態に遷移しないときに,そのタスクを中断して実行待ち行列にある次のタスクを実行状態とする。
ウ 実行状態としたタスクが自ら待ち状態に遷移するか終了するまで,他のタスクを実行状態とすることができない。
エ タスクが実行可能状態になったときに,そのタスクの優先度と,その時,実行状態であるタスクの優先度とを比較して,優先度が高い方のタスクを実行状態とする。
⇒正解は、ウ
ア:処理時間順(残余処理時間順)方式
イ:ラウンドロビン
エ:優先度順

H27春ES午前
問10 優先度に基づくプリエンプティブなスケジューリングで動作する,二つの周期タスクA,Bがある。AはBよりも優先度が高く,周期は2ミリ秒,実行時間は1ミリ秒である。Bの周期が10ミリ秒のとき,1周期中に実行を完了できるBの実行時間は最大何ミリ秒か。ここで,A,B以外のタスクはなく,タスク切替えによるオーバヘッドはないものとする。
ア 3  イ 5  ウ 7  工 9
 
H27秋AP午前
問16 プリエンプション方式のタスクスケジューリングにおいて,タスクBの実行中にプリエンプションが発生する契機となるのはどれか。ここで,タスクの優先度は,タスクAが最も高<, タスクA>タスクB =タスクC>タスクDの関係とする。
アイウエ
タスクAが実行可能状態になった。タスクBが待ち状態になった。
タスクCが実行可能状態になった。タスクDが実行可能状態になった。

このページのトップヘ