- ベストアンサー
実時間処理ってなんですか?
実時間処理の意味を教えてください。 自分の解釈では、コンピュータにデータを入力した瞬間に データの処理と計算がほぼ同時に進行すること、、、という ふうに思っていますが、曖昧でよくわかりません。 つまり、計算するまえになんらかのデータの生成という 過程があるということでしょうか? よろしくお願いします。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
どうも、2つの軸が混ざってる気がするんですが。 リアルタイムか否か、ということと、バッチ処理か 否かというのは、確かに無関係ではないですが、 別の軸じゃないですか? リアルタイムというのは、ぶっちゃけて言うと、 「じゅうぶんに速い」ってだけのことでしょう。 例えば、リアルタイムOSなんかでは、計測機器や 制御機器を制御するために、数10μ秒ごとに 機器からデータを取ったり機器に制御信号を 送ったりしないといけないわけで、そのために、 機器への入出力のための割り込みイベントが、必ず、 ある一定の時間ごとに実行されることを 保証します。この例では、リアルタイム(十分な 速さ)とは、「数10μ秒」であるわけです。 他の例として、私はソフトウェア関係の基礎研究を しているんですが、こういった分野でも、よく 「実時間でできる」とか言い方をします。これは、 「この技術をシステムに応用したときに、利用シーンから 考えて、なんとか待つことができる時間、現実的な時間」 といったような意味合いです。 例えば、現在ほどに検索エンジンが流行っていない時代に、 「100万件のデータベースから、1単語をキーにして 全文検索をするのに、たった3分で可能です!」というのは、 驚くべき実時間性だった、と言えるんじゃないでしょうか? 当然、現在では使い物にならない、即ち、非現実的、 実時間じゃない、ということになります。 これらの差は、上で言った、利用シーンの差であるわけです。 100万件/3分でも、例えば、研究者が過去の研究論文を検索する、 と言った利用シーンを想定すると、全く現実的な時間ですが、 現在のように、世界中の人がちょっとした調べものにも利用する、 というシーンを想定すると、到底、許容できない時間に なってしまうわけです。 実時間とは、機器制御だったり、文献調査であったり、趣味の ホームページを探すことだったり、という利用シーンに対して、 「じゅうぶんに速い」ことだ、という主張は、こういうこと だったわけです。 一方、 バッチ(オフライン)処理<->インタラクティブ(オンライン) 処理という軸は、その名の通り処理方式の差です。 たいていのプログラムは、入力→処理→出力という流れですが、 ユーザや環境からのデータ入力および結果出力が、処理と平行して (入力→処理→出力→ユーザの解釈・行動→次の入力→処理→…) 行われるのがオンライン、まず一旦、必要なデータをまとめて 入力して、処理して、最後に完全な出力を出す、というのが オフライン処理です。 前半のリアルタイム性と後半のインタラクティブ性が 無関係でない、と言ったのは、リアルタイムなバッチ処理、 というものはあり得るが、リアルタイムでない インタラクティブ処理というのは(ユーザに余程の忍耐を 強いない限り)あり得ないといったことから来ています。
その他の回答 (5)
- Fooky
- ベストアンサー率71% (59/82)
4> データを入力すると即座に計算・照会・処理をして答えを 4> 返してくれるものを言います。 5> すぐにやらないというところが、まさに「リアルタイム処理」に対比できる 以上のことから、リアルタイムの定義として、「仕事をためて置かないで、 すぐにやることである」と考えておられるんですよね。 全ての相違はそこなんですね。逆にオンライン・オフラインの話は どうでもよくて、元の意味は回線がつながってるかどうかである、 なんてことに異論を唱える人はいないでしょう。拡大解釈だ、という なら同意します。 私は,実時間という言葉は,仕事を溜めないという点より、 速い、という点に力点がある、と考えているわけです。 例えば, 「現在のシステムは実時間性に乏しい。だから、次のバージョンでは よりリアルタイムに処理するシステムにしてください」と言われた ときに,どこに注目して頑張ってつくりますか?データの溜め方 ですか?それとも処理速度ですか?この質問の答えは明らかなような 気がするんですが。そうすると、「実時間」のメインの意味 内容も明らかなのでは? と、まあ、私はこう思う、というのを繰り返しても、基本となる 意味の理解に相違があるので埒があきません。で、いくつか 調べてみると、 広辞苑 リアル‐タイム【real time】 即時。同時。実時間。「―で放送する」 リアル‐タイム‐しょり【―処理】 (real time processing) コンピューターの処理方式の一。 データを蓄積せずに、即時に処理すること。実時間処理。 ⇔バッチ処理 ASCII GLOSSARY HELP リアルタイム処理 real-time operation 実時間処理。他のデバイスからの入力信号や、 プログラムからの要求に対して、即座に (リアルタイムに)これを処理する方式。 制御システムなどでは、一定時間内に処理を 確実に終了しなければならない場合がある。 このような実時間性を保証し、許容される 時間内に処理の完了を保証する処理方式が リアルタイム処理である。 以上のことから見てみると、私の言う、「じゅうぶん速い」 というだけという定義も少し、乱暴すぎのような気もします。 また、広辞苑の、即座にやる(⇔バッチ処理(即座にやらない))、 というのも同様に乱暴なのでは。私は、ASCIIが紹介している 定義を採用したいと思います。 「実時間性」「リアルタイム性」とは「ある一定の時間内 (一般的に極短い時間内)に処理を終了することを保証する こと」、「リアルタイム処理」とは、「あるタスクを 受け取った際に、ある一定の時間内にその処理を終了する ことを保証する処理方式」である、ということでは ないでしょうか。 この定義で、全て包含できるように思いますがどうでしょう。 例えば,広辞苑の例のリアルタイム放送も、現実に起こっている 現象からある一定内の遅延でその映像を届けること(=一定の 時間内で「放送」という処理を終了)、と捉えられます。 「データを溜めない」という性質も以上の定義の結果として 導かれますし、「速い」というのも、必要条件として包含されます。
- 参考URL:
- http://yougo.ascii24.com/gh/
- ymmasayan
- ベストアンサー率30% (2593/8599)
No.4の回答者:Fookyさんが言われる「2つの軸が混ざってる気がする」と言う意見に賛成です。ただ、理由は少し違います。 私は、話をわかりにくくしているのは、オンライン、オフラインと言う言葉だと思います。もともとは線でつながっていると言う意味の「オンライン」が今では「リアルタイム」とか「インタラクティブ」と言う意味に使われています。初期の頃の「オンライン」と言うのはむしろ「リモート」「テレコミュニケーション」に近い 言葉でした。 世間では「オンライン処理」と「バッチ処理」を対語とすることが多いですが、私は「リアルタイム処理」と「バッチ処理」も対語として扱っていいと思っています。「バッチ処理」には「束にして処理する」と言う意味と「間欠的に処理する」と言うニュアンスが含まれています。貯めてからやる、つまり、すぐにやらないというところが、まさに「リアルタイム処理」に対比できると思うのですが。
お礼
オンラインと「インタラクティブ」、「リアルタイム」が 同義語になっているなんて、初めて知りました。 ありがとうございます。
- SLEEP
- ベストアンサー率17% (7/39)
実際には、そのコンピュータで処理を行う優先度が違います。 バッチ処理は、実行優先順位が低く、他の優先順位の高い処理が途切れた空き時間を利用して実行されます。 それに対して、リアルタイム処理は、実行要求に対し最優先に実行されるようにスケジューリングされた処理です。 汎用機では、バッチ処理とリアルタイム処理では明らかにOSの扱いが異なっていますが、パソコンでは両者は単純に優先度の違いだけで、やっていることは変わりません。
お礼
OSのことまで考えていませんでした。 勉強になりました!
- ymmasayan
- ベストアンサー率30% (2593/8599)
実時間処理はリアルタイム処理とも言います。 例えば、JRの座席予約や銀行のCDやATMのようにデータを入力すると即座に計算・照会・処理をして答えを返してくれるものを言います。又、航空機の管制や鉄道の列車集中制御などもそうですね。通信回線でつないで行うものを特にオンラインリアルタイム処理と言います。 同時進行は処理と計算ではなく、現実とコンピュータ処理が「掛け合いで:補い合って:協力して」同時進行なのです。 実時間処理の反対はバッチ処理で、1日分や1ヶ月分のデータをまとめて処理します。 バッチ処理とリアルタイム処理は目的に合わせて使い分けられています。 JRでも昼間はリアルタイム処理で切符を売って、夜中にバッチ処理で売上計算や売上統計を出しているわけです。
お礼
わかりやすいお答え、ありがとうございました。 これを参考に学校の宿題を終えました。
- kougasha
- ベストアンサー率32% (34/105)
「実時間」っていうのは、「リアルタイム」を 無理矢理日本語に訳した結果ですね。 要するに「リアルタイム処理」のことです。 昔は、計算するデータやプログラムをカードに パンチしてコンピュータに読み込ませ、それを ホストコンピュータのオペレーターが、バッチ ジョブとしてスケジューリングしてから実行さ れたものですから、全然「リアルタイム」では なかったのです。 今でも膨大な計算量の必要なものは、リアルタ イムではなく、バッチ処理などで行われます。 (さすがにカードをパンチする事はないですが) 「リアルタイム」の詳細な定義については、 なんともいえませんね。私にはお答えできません。
お礼
こんなに早くお返事くださってありがとうございます。 まさに実時間処理ですね。
お礼
さすが専門家さん、詳しく教えて下さって ありがとうございます。 検索エンジンの例、とても分かりやすいです。