Web Analytics Made Easy - StatCounter

工業大学生ももやまのうさぎ塾

うさぎでもわかるをモットーに大学レベルの数学・情報科目をわかりやすく解説!

バッチ処理・対話処理・リアルタイム処理の違いについて

こんにちは、ももやまです。
今回はバッチ処理、対話処理、リアルタイム処理の3つの処理の特徴についてまとめました。

1.バッチ処理

バッチ処理は、ある程度のまとまったデータユーザー(操作する)側と一切やりとりせずに処理する方式です。
一切ユーザー側でやり取りはしないので応答性は必要ないですが、ひたすらまとまったデータを処理するために処理速度*1が重要視されます。
人間でいうと、引きこもって黙々と作業をするタイプです。

バッチ処理をするようなものには以下のようなものがあります。

(1) 天気予報の予想のための計算

天気予報の予想の際には膨大なデータをもとにスーパーコンピューターなどで計算します。
計算が始まってしまえば、計算時にユーザー側の入力などは必要ないので応答性は必要ありません。また、天気予報は膨大なデータを素早く処理する必要があるので、処理速度が重要視されます。よってバッチ処理に適した処理と言えます。

(2) 毎月の各種料金請求業務

料金請求、例えば電気料金やクレジットカードの料金請求業務などを思い浮かべてください。
「誰がどこでいくら使ったかなど」の膨大なデータを処理し、素早くかつ正確に利用者の料金を計算する必要がありますね。
(1)と同様に計算が始まればあとは結果を出すだけなのでバッチ処理に適した処理と言えます。

2.対話処理

対話処理は、名前の通りユーザーとやりとりをしながらデータを処理していく形式です。
ユーザー側とコミュニケーションをするため、応答性が求められます。
人間とやり取りをするためか、我々人間が一番なじみのある処理とも言えます。

人間でいうと、相手とコミュニケーションをしながら様々な作業をするタイプです。

対話処理に適したものは以下のようなものがあります。

(1) Wordなどによる文書作成

Wordなどで作業をする際に、入力した文字や操作が何秒も反応しないとイライラしますよね。
このように、応答性が必要な処理は対話処理が適しています。

(2) ATM操作

ATMを操作している際に、突然何も応答していなかったら(1)と同じようにイライラしますね。
「ちゃんと取引できたかなぁ」などのように心配になりますよね。

このように、人間とやり取りをする処理には対話処理が向いています。

3.リアルタイム処理

リアルタイム処理は、名前の通りリアルタイム、即時に処理する必要があるものに使われます。
組み込み機器に多く使われます。
人間でいうと、反射神経が必要な仕事をするタイプです。

リアルタイム処理にはバッチ処理以上に応答性が厳しいです。厳しい理由は下の例で紹介します。

リアルタイム処理は以下のような処理に適しています。

(1) 車の自動ブレーキなどの制御

最近の車は、障害物などを検知すると自動ブレーキが勝手に働いて止まりますね。
ですが、自動ブレーキが反応するまでに1秒や2秒かかってたらどうなるでしょうか…。
きっと色んなところで大事故ですよ。

このように、0.001秒レベルで応答性が大事なものにはリアルタイム処理が使われています。

(2) Pepperくん(などのロボット)の障害物回避

Pepperくん(やほかのロボット)は動けます。
しかし、ちゃんと障害物をよけてますね。もしこのPepperくんの障害物をよける部分にリアルタイム処理以外が使われてたらどうなるでしょうか。
おそらく、全Pepperくんが激突しまくりですよ。

なのでロボットの障害物の回避にもリアルタイム処理が使われています。

以上3つの処理を表にまとめるとこのようになります。

Left align バッチ処理 対話処理 リアルタイム処理
応答性 ×
処理速度

4.練習

では、実際に何問かもってきましたので、実際に解いてみましょう!

第1問

バッチ処理に適したものを1つ選びなさい。

  1. ゲーム処理
  2. 自動車の自動運転の制御
  3. 自動車保険の毎月の請求業務
  4. 本ブログの作成

第2問

[2010年度(平成22年度)春季試験 基本情報技術者試験 問18]
エンジン制御、ハードディスク制御などの制御系ハードリアルタイムシステムでリアルタイムOSを活用する理由はどれか。

ア ウイルス侵入の防御のためにメモリ保護機能が必要だから。
イ 定められた時間内にイベントに対応した処理を完了させる機構が必要だから。
ウ システム全体のスループットを向上させる機構が必要だから。
エ 複数の独立したプログラムを並行して動かす機構が必要だから。

第3問

[2018年度秋季試験 ITパスポート 問94]
バッチ処理の説明として、適切なものはどれか。

ア 一定期間または一定量のデータを集め、一括して処理する方式。
イ データの処理要求があれば即座に処理を実行して、制限時間内に処理結果を返す方式。
ウ 複数のコンピュータやプロセッサに処理を分散して、実行時間を短縮する方式。
エ 利用者からの処理要求に応じて、あたかも対話するようにコンピュータが処理を実行して作業を進める処理方式。

解答

第1問
答えは3。

  1. ゲーム処理はユーザー側で操作するので対話処理。バッチ処理使うゲームって放置ゲーですかね…?
  2. 運転制御はリアルタイム処理じゃないと事故る。
  3. 正しい。バッチ処理の典型例。
  4. ブログの作成はユーザーが入力とかをするので対話処理。

第2問
答えはイ。リアルタイム処理ではとにかく定められた(応答)時間内に処理を完了させる必要があるため。

第3問
答えはア。

ア:正解。一定量のデータを集めてコツコツと一括処理するのがバッチ処理。
イ:リアルタイム処理の説明。
ウ:今回紹介した3つの処理以外の処理(分散処理のこと)
エ:対話処理の説明。

5.さいごに

今回はプログラムの主な3つの処理形態についてまとめました。
どのプログラムがどの処理に適しているかは丸暗記せずに、きちんと理由を考えながら選べるようになるといいと思います!

*1:処理速度の評価は、基本的にターンアラウンド時間で評価をします。