■1.タスクとは
ジョブとタスクがあります。どちらも「仕事」という意味です。
では、どう違うのでしょうか。
ザックリ説明すると、
・ジョブ:人間からみた仕事の単位
・タスク:コンピュータから見た仕事の単位(なので、読みだしたり、演算したり、書きこんだりと工程が増える)

また、ジョブステップという言葉がある。ジョブを工程ごとに分解したものである。「違うぞ」という突っ込みがあるが、ジョブステップ=タスクとざっくり理解しておいて、それほど間違ってはいない。

ジョブ→ジョブステップ1=タスク1
   →ジョブステップ2=タスク2
   →ジョブステップ3=タスク3
   
■2.タスク管理
タスク管理に関して、過去問(H20秋FE午前問28)では、(複数のタスクがある場合に、)「マルチプログラミングの制御を行い,CPUを有効に利用する」とあります。

応用情報技術者試験を勉強する成子

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

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

■マルチプログラミング
見かけ上、複数のタスクを同時に実行し、CPUを効果的に使う。
CPUが処理したあと、I/Oなどの待ち時間がある。
そのときに、別のプログラムを処理させるのだ。
似たような概念にパイプライン処理がある。
・パイプライン処理:CPUの命令単位
・マルチプログラミング:プログラム単位

タスク管理に関して、応用情報技術者試験のシラバスでは、以下の記載があります。
(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が待ち状態となった。





正解は、 ウです。