基本情報技術者 PR

【基本情報】タスク管理の全てを解説

記事内に商品プロモーションを含む場合があります

CPUが行う処理をタスクと呼ぶ

私たちはプログラムにデータや命令を入力し、CPUが計算や処理した結果を受け取ります。
私たちはプログラムに対して1つずつ命令を指示していきますが、CPU内ではその命令を処理するために複数の計算や処理を行います。

ユーザがコンピュータに指示する命令の単位をジョブ、CPUが命令を分解して処理する単位をタスクと言います。

CPUのタスク管理

私たちがパソコンを使うとき、複数のアプリを立ち上げて並行して作業しますよね。ということは、CPUも同時に複数のタスクを持った状態になります。しかし、1つのCPUが同時に実行できるタスクは1つだけなので、優先順位を決めて効率よくタスクをこなす必要があります。

タスクには3つの状態がある

タスクの状態には「実行状態」「実行可能状態」「待ち状態」の3つがあり、タスクが生成されてから、この3つの状態を経てタスクが完了し消滅します。

実行状態  :CPUがタスクを実行している状態
実行可能状態:CPUがタスクを実行するのを待っている状態
待ち状態  :他のタスクが入出力装置を使用しているので待っている状態

タスクが生成されると実行可能状態になります。そして、CPUがタスクを実行できるようになれば実行状態に遷移します(①)。しかし、物凄く優先度が高いタスクが生成されると、先にそちらを処理しなければいけません。なので、その場合は実行可能状態に戻されます(②)。

実行可能状態と実行状態を行き来してCPUの計算が完了しました。後はユーザに見える形で結果を表示するだけですが、ここで他のタスクが入出力装置を使用していました。すると、今後は入出力装置が空くまで待つ必要がありますので、待ち状態に遷移します(③)。そして、他で実行していた入出力処理が完了したら再度、実行可能状態に遷移します(④)。

CPUがタスクを実行できるようになれば再度、実行状態に遷移して(①)、入出力装置も空いていれば、CPUが入出力処理を行い、タスクが完了します。

ちなみに、タスクを実行可能状態から実行状態にすることをディスパッチと言い、逆に実行状態から実行可能状態にすることをプリエンプションと言います。

実行可能状態と待ち状態の違い

実行可能状態はCPUが空くのを待ちますが、待ち状態は入出力装置が空くのを待ちます。

実行状態でタスクの計算処理が完了したら、最後は入出力処理を実行してユーザに結果を返す必要がありますが、入出力装置はCPUに比べて処理速度が遅いので一旦待ち状態に移しておきます。

実行可能状態→実行状態に移す方式

実行可能状態にある複数のタスクの中で、どのタスクを実行状態に移すのかを決める方式には優先度方式ラウンドロビン方式があります。

優先度方式    :優先度が高いタスクから実行します
ラウンドロビン方式:あらかじめCPUの使用時間を決めておきます。実行可能状態になった順番でタスクを実行状態に移しますが、使用時間内に処理が完了しなければ再度実行可能状態に戻して、次のタスクを実行状態に移します。

CPUが効率よく処理をするためのスプーリング

CPUに比べて入出力装置は処理速度がかなり遅いです。低速の入出力装置に合わせてCPUが動いていると、CPUは効率よく処理が出来ません。

そこで、入出力したいデータを一時的に別の磁気ディスクに置いておき、入出力装置はそこから入出力するようにします。この仕組みをスプーリングと言います。

スプーリングを行うことでCPUは入出力装置を待つ必要が無くなり、効率よく処理が進みます。

割込み処理

割込み処理とは実行中のプログラムを中断して強制的に実行される処理のことです。アラームや入出力の完了連絡、プログラム内でのゼロ除算によるエラーメッセージの表示など、ユーザにどうしても知らせないといけない事態が起きた時に割込み処理が発生します。

割込み処理の中には、実行中のプログラムが原因で生じる内部割込みと実行中のプログラムに関係なく生じる外部割込みがあります。

内部割込み:実行中のプログラムが原因の割込み
・ゼロで除算を実行したことによる割込み

外部割込み:実行中のプログラムと関係ない割込み
・タイマによる時間経過の通知

基本情報技術者試験での出題例

令和元年度秋期問13

基本情報技術者
午前試験 
令和元年度秋期問13

メイン処理,及び表に示す二つの割込みA,Bの処理があり,多重割込みが許可されている。割込みA,Bが図のタイミングで発生するとき,0ミリ秒から5ミリ秒までの間にメイン処理が利用できるCPU時間は何ミリ秒か。ここで,割込み処理の呼出し及び復帰に伴うオーバヘッドは無視できるものとする。

ア 2
ウ 3.5

イ 2.5
エ 5

正解と解説

正解は”ア”

割込み処理が発生した場合、メイン処理を中断して割込み処理を実行します。
また、割込み処理の中でも、優先度が高い処理は優先的に処理を実行します。

よって、CPUの処理時間は下のようになります。よってメイン処理は2ミリ秒です。

令和元年度秋期問18、平成29年度秋期問18

基本情報技術者
午前試験 
令和元年度秋期問18、平成29年度秋期問18

優先度に基づくプリエンプティブなスケジューリングを行うリアルタイムOSで,二つのタスクA,Bをスケジューリングする。Aの方がBより優先度が高い場合にリアルタイムOSが行う動作のうち,適切なものはどれか。

ア Aの実行中にBに起動がかかると,Aを実行可能状態にしてBを実行する。

イ Aの実行中にBに起動がかかると,Aを待ち状態にしてBを実行する。

ウ Bの実行中にAに起動がかかると,Bを実行可能状態にしてAを実行する。

エ Bの実行中にAに起動がかかると,Bを待ち状態にしてAを実行する。

正解と解説

正解は”ウ”

Aの方がBより優先度が高いので、
・Aの実行中にBに起動がかかると、そのままAを実行し続けます。
・Bの実行中にAに起動がかかると、Bを実行可能状態にしてAを実行します。

入出力装置が原因で待ちが発生する訳ではないので、待ち状態にはなりません。

サンプル問題問10、平成31年度春期問9

基本情報技術者
科目A サンプル問題問10、午前試験
平成31年度春期問9

外部割込みの原因となるものはどれか。

ア ゼロによる除算命令の実行

イ 存在しない命令コードの実行

ウ タイマによる時間経過の通知

エ ページフォールトの発生

正解と解説

正解は”ウ”

実行中のプログラムに関係ない割込みなので答えは”ウ”です。

平成31年度春期問16

基本情報技術者
午前試験 
平成31年度春期問16

タスクのディスパッチの説明として,適切なものはどれか。

ア 各タスクの実行順序を決定すること

イ 実行可能なタスクに対してプロセッサの使用権を割り当てること

ウ タスクの実行に必要な情報であるコンテキストのこと

エ 一つのプロセッサで複数のタスクを同時に実行しているかのように見せかけた状態のこと

正解と解説

正解は”イ”

平成30年度秋期問16

基本情報技術者
午前試験 
平成30年度秋期問16

三つのタスクの優先度と,各タスクを単独で実行した場合のCPUと入出力装置(I/O)の動作順序と処理時間は,表のとおりである。優先度方式のタスクスケジューリングを行うOSの下で,三つのタスクが同時に実行可能状態になってから,全てのタスクの実行が終了するまでの,CPUの遊休時間は何ミリ秒か。ここで,CPUは1個であり,1CPUは1コアで構成され,I/Oは競合せず,OSのオーバヘッドは考慮しないものとする。また,表の( )内の数字は処理時間を示すものとする。

ア 2
ウ 4

イ 3
エ 5

正解と解説

正解は”イ”

CPUでは優先度が高いタスクから処理を実行します。よって、下の図のような処理になるので、CPUの遊休時間は3ミリ秒になります。

平成30年度秋期問17

基本情報技術者
午前試験 
平成30年度秋期問17

スプーリング機能の説明として,適切なものはどれか。

ア あるタスクを実行しているときに,入出力命令の実行によってCPUが遊休(アイドル)状態になると,ほかのタスクにCPUを割り当てる。

イ 実行中のプログラムを一時中断して,制御プログラムに制御を移す。

ウ 主記憶装置と低速の入出力装置との間のデータ転送を,補助記憶装置を介して行うことによって,システム全体の処理能力を高める。

エ 多数のバッファからなるバッファプールを用意し,主記憶にあるバッファにアクセスする確率を上げることによって,補助記憶装置のアクセス時間を短縮する。

正解と解説

正解は”ウ”

平成30年度秋期問18

基本情報技術者
午前試験 
平成30年度秋期問18

スケジューリングに関する記述のうち,ラウンドロビン方式の説明として,適切なものはどれか。

ア 各タスクに,均等にCPU時間を割り当てて実行させる方式である。

イ 各タスクに,ターンアラウンドタイムに比例したCPU時間を割り当てて実行させる方式である。

ウ 各タスクの実行イベント発生に応じて,リアルタイムに実行させる方式である。

エ 各タスクを,優先度の高い順に実行させる方式である。

正解と解説

正解は”ア”

平成30年度春期問10

基本情報技術者
午前試験 
平成30年度春期問10

内部割込みに分類されるものはどれか。

ア 商用電源の瞬時停電などの電源異常による割込み

イ ゼロで除算を実行したことによる割込み

ウ 入出力が完了したことによる割込み

エ メモリパリティエラーが発生したことによる割込み

正解と解説

正解は”イ”

平成30年度春期問16

基本情報技術者
午前試験 
平成30年度春期問16

三つのタスクA~Cの優先度と,各タスクを単独で実行した場合のCPUと入出力装置(I/O)の動作順序と処理時間は,表のとおりである。A~Cが同時に実行可能状態になって3ミリ秒経過後から7ミリ秒間のスケジューリング状況を表したものはどれか。ここで,I/Oは競合せず,OSのオーバヘッドは考慮しないものとする。また,表の()の数字は処理時間を表すものとし,解答群の中の”待ち”はタスクが実行可能状態にあり,CPUの割当て待ちであることを意味する。

正解と解説

正解は”ウ”

平成29年度秋期問10

基本情報技術者
午前試験 
平成29年度秋期問10

外部割込みに分類されるものはどれか。

ア インターバルタイマによって,指定時間経過時に生じる割込み

イ 演算結果のオーバフローやゼロによる除算で生じる割込み

ウ 仮想記憶管理において,存在しないページへのアクセスによって生じる割込み

エ ソフトウェア割込み命令の実行によって生じる割込み

正解と解説

正解は”ア”

平成29年度春期問16

基本情報技術者
午前試験 
平成29年度春期問16

四つのジョブA~Dを次の条件で実行し印刷する。全ての印刷が完了するのは,ジョブを起動してから何秒後か。

〔条件〕
(1) ジョブは一斉に起動され,多重度1で実行される。
(2) 優先順位はAが最も高く,B,C,Dの順に低くなる。
(3) 各ジョブの実行後,スプーリング機能が1台のプリンタを用いて逐次印刷を行う。
(4) 各ジョブを単独で実行した場合の実行時間と印刷時間は,表のとおりである。
(5) その他のオーバヘッドは考慮しない。

ア 100
ウ 190

イ 160
エ 280

正解と解説

正解は”ウ”