• ベストアンサー

実時間処理ってなんですか?

実時間処理の意味を教えてください。 自分の解釈では、コンピュータにデータを入力した瞬間に データの処理と計算がほぼ同時に進行すること、、、という ふうに思っていますが、曖昧でよくわかりません。 つまり、計算するまえになんらかのデータの生成という 過程があるということでしょうか? よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • Fooky
  • ベストアンサー率71% (59/82)
回答No.4

どうも、2つの軸が混ざってる気がするんですが。 リアルタイムか否か、ということと、バッチ処理か 否かというのは、確かに無関係ではないですが、 別の軸じゃないですか? リアルタイムというのは、ぶっちゃけて言うと、 「じゅうぶんに速い」ってだけのことでしょう。 例えば、リアルタイムOSなんかでは、計測機器や 制御機器を制御するために、数10μ秒ごとに 機器からデータを取ったり機器に制御信号を 送ったりしないといけないわけで、そのために、 機器への入出力のための割り込みイベントが、必ず、 ある一定の時間ごとに実行されることを 保証します。この例では、リアルタイム(十分な 速さ)とは、「数10μ秒」であるわけです。 他の例として、私はソフトウェア関係の基礎研究を しているんですが、こういった分野でも、よく 「実時間でできる」とか言い方をします。これは、 「この技術をシステムに応用したときに、利用シーンから 考えて、なんとか待つことができる時間、現実的な時間」 といったような意味合いです。 例えば、現在ほどに検索エンジンが流行っていない時代に、 「100万件のデータベースから、1単語をキーにして 全文検索をするのに、たった3分で可能です!」というのは、 驚くべき実時間性だった、と言えるんじゃないでしょうか? 当然、現在では使い物にならない、即ち、非現実的、 実時間じゃない、ということになります。 これらの差は、上で言った、利用シーンの差であるわけです。 100万件/3分でも、例えば、研究者が過去の研究論文を検索する、 と言った利用シーンを想定すると、全く現実的な時間ですが、 現在のように、世界中の人がちょっとした調べものにも利用する、 というシーンを想定すると、到底、許容できない時間に なってしまうわけです。 実時間とは、機器制御だったり、文献調査であったり、趣味の ホームページを探すことだったり、という利用シーンに対して、 「じゅうぶんに速い」ことだ、という主張は、こういうこと だったわけです。 一方、 バッチ(オフライン)処理<->インタラクティブ(オンライン) 処理という軸は、その名の通り処理方式の差です。 たいていのプログラムは、入力→処理→出力という流れですが、 ユーザや環境からのデータ入力および結果出力が、処理と平行して (入力→処理→出力→ユーザの解釈・行動→次の入力→処理→…) 行われるのがオンライン、まず一旦、必要なデータをまとめて 入力して、処理して、最後に完全な出力を出す、というのが オフライン処理です。 前半のリアルタイム性と後半のインタラクティブ性が 無関係でない、と言ったのは、リアルタイムなバッチ処理、 というものはあり得るが、リアルタイムでない インタラクティブ処理というのは(ユーザに余程の忍耐を 強いない限り)あり得ないといったことから来ています。

putimobics
質問者

お礼

さすが専門家さん、詳しく教えて下さって ありがとうございます。 検索エンジンの例、とても分かりやすいです。

その他の回答 (5)

  • Fooky
  • ベストアンサー率71% (59/82)
回答No.6

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.5

No.4の回答者:Fookyさんが言われる「2つの軸が混ざってる気がする」と言う意見に賛成です。ただ、理由は少し違います。 私は、話をわかりにくくしているのは、オンライン、オフラインと言う言葉だと思います。もともとは線でつながっていると言う意味の「オンライン」が今では「リアルタイム」とか「インタラクティブ」と言う意味に使われています。初期の頃の「オンライン」と言うのはむしろ「リモート」「テレコミュニケーション」に近い 言葉でした。 世間では「オンライン処理」と「バッチ処理」を対語とすることが多いですが、私は「リアルタイム処理」と「バッチ処理」も対語として扱っていいと思っています。「バッチ処理」には「束にして処理する」と言う意味と「間欠的に処理する」と言うニュアンスが含まれています。貯めてからやる、つまり、すぐにやらないというところが、まさに「リアルタイム処理」に対比できると思うのですが。

putimobics
質問者

お礼

オンラインと「インタラクティブ」、「リアルタイム」が 同義語になっているなんて、初めて知りました。 ありがとうございます。

  • SLEEP
  • ベストアンサー率17% (7/39)
回答No.3

実際には、そのコンピュータで処理を行う優先度が違います。 バッチ処理は、実行優先順位が低く、他の優先順位の高い処理が途切れた空き時間を利用して実行されます。 それに対して、リアルタイム処理は、実行要求に対し最優先に実行されるようにスケジューリングされた処理です。 汎用機では、バッチ処理とリアルタイム処理では明らかにOSの扱いが異なっていますが、パソコンでは両者は単純に優先度の違いだけで、やっていることは変わりません。

putimobics
質問者

お礼

OSのことまで考えていませんでした。 勉強になりました!

  • ymmasayan
  • ベストアンサー率30% (2593/8599)
回答No.2

実時間処理はリアルタイム処理とも言います。 例えば、JRの座席予約や銀行のCDやATMのようにデータを入力すると即座に計算・照会・処理をして答えを返してくれるものを言います。又、航空機の管制や鉄道の列車集中制御などもそうですね。通信回線でつないで行うものを特にオンラインリアルタイム処理と言います。 同時進行は処理と計算ではなく、現実とコンピュータ処理が「掛け合いで:補い合って:協力して」同時進行なのです。 実時間処理の反対はバッチ処理で、1日分や1ヶ月分のデータをまとめて処理します。 バッチ処理とリアルタイム処理は目的に合わせて使い分けられています。 JRでも昼間はリアルタイム処理で切符を売って、夜中にバッチ処理で売上計算や売上統計を出しているわけです。

putimobics
質問者

お礼

わかりやすいお答え、ありがとうございました。 これを参考に学校の宿題を終えました。

  • kougasha
  • ベストアンサー率32% (34/105)
回答No.1

「実時間」っていうのは、「リアルタイム」を 無理矢理日本語に訳した結果ですね。 要するに「リアルタイム処理」のことです。   昔は、計算するデータやプログラムをカードに パンチしてコンピュータに読み込ませ、それを ホストコンピュータのオペレーターが、バッチ ジョブとしてスケジューリングしてから実行さ れたものですから、全然「リアルタイム」では なかったのです。   今でも膨大な計算量の必要なものは、リアルタ イムではなく、バッチ処理などで行われます。 (さすがにカードをパンチする事はないですが)   「リアルタイム」の詳細な定義については、 なんともいえませんね。私にはお答えできません。

putimobics
質問者

お礼

こんなに早くお返事くださってありがとうございます。 まさに実時間処理ですね。

関連するQ&A

  • バラツキが大きすぎたデータの処理

    泣きたいです。 誰か助けていただけるかたいませんか。 統計処理を勉強し直し中ですが、今までの実験データの変動係数(CV)を計算してみたら、大きい方で40%にまで達してしまっています。 一年あまりも取り組んで集めてきたデータです。 どういう風に処理(?)、或いは解釈すれば良いでしょうか。 もしかして、0からやり直すしかないかと思うと、時間もないし、おしまいです.......

  • アプリケーションソフトの処理時間について

    こんにちは。 XP上で数値計算をやっています。同一のプログラムの実行にも関わらず、計算させる度に処理時間にばらつきがあって、通常4時間程度かかる処理が4日もかかったりすることがあります。入力データの量もほとんど変わらず、基本的に全く同じ計算の繰り返しです。 自分の推測ですが、Windowsのアプリケーションに対する設定が悪さしてるのでは、と思ってます。 長時間の数値計算を実行させるとき、計算に影響が出るようなOSの要素として、どのようなものが考えられるでしょうか? なお、アプリケーションはmatlabで、スクリーンセーバーは切っています。 よろしくお願いします

  • Visual c++でダイアログと処理の切り離し

    初心者ですので簡単なものですが質問させてください。 Visual c++2005のMFCのダイアログベースで作られたタイマーで周期処理されるプロジェクトがあります。 ダイアログと処理を別々のプロジェクトに切り離してUDPで通信したいと考えています。 まずは簡単なモノで試したいのですが、どうすればよいのかわからないのでご教授いただけたらと思います。 例えば、処理としてはテキストボックスに数字を入力しボタンを押したら計算結果が表示される簡単なものです。 まずは、これが動作するモノを作りました。 そして同じものをコピペしてソケットを利用してプロジェクト間で通信を行えばよいと考えています。 内部処理としては下記のようになると思うのですが、、、 1.入力した変数をまとめてパケットに変換(ダイアログ側) 2.パケットを送信(ダイアログ側) 3.パケットを受信(処理側) 4.受信したパケットを解釈(処理側) 5.解釈したデータを計算処理(処理側) 6.計算処理結果をパケットに変換(処理側) 7.パケットを送信(処理側) 8.パケットを受信(ダイアログ側) 9.受信したパケットを解釈(ダイアログ側) 10.解釈したデータをダイアログに表示(ダイアログ側) ※通信ではafxsock.hを利用すればよいとのことでした。

  • 処理時間について

    今、仕事で既存の処理のレスポンス調査をしているのですが、 行き詰ってしまったので質問させていただきます。 本番環境とテスト環境で全く同じ処理を実行した所、テスト環境では 1分程度で処理が正常終了するのに本番環境だと 2時間経過しても処理が終わらず、なぜ同じ処理なのに本番環境と テスト環境で処理時間に違いがありすぎるのか分からず困っています。 処理としては25万件程あるデータ(テキストベース)を PL/SQLで読み込みTable_AにInsert または キーが同じデータが 存在しているならUpdateをし、 それと同時にトリガーで更新前と更新後の値を Log_TableにInsertします。 検証したときの手順としては、 (1)Table_AとLog_TableをCreate (2)トリガーのコンパイル (3)Table_Aのインデックスの作成 (4)PL/SQLのコンパイル (5)Table_AとLog_Tableの統計情報の取得 となっております。 ちなみに、テスト環境と本番環境の両方について、 実行されたSQLの実行計画を取得し比較したのですが、 同じ実行計画になっていました。 また、統計情報を取らずに処理を実行した場合は、テスト環境でも 2時間経過しても処理が終わりませんでした。

  • バッチ処理するには?

    初心者です。 DOS窓で動くデータの変換プログラムでフォルダ内の膨大なデータ(ファイル名ばらばら)をバッチ処理でまとめて変換したいんですが、時間も無くどうしていいかわかりません。 例えばd:\export.exe d:\dat\sozaia001.dat > d:\dat\sozai001.text というふうに手入力でやってます。 これを一括処理できますでしょうか? よろしくお願いします。

  • 量子コンピュータについて

    昔、量子論の解説書の中で、イギリスの物理学者ドイッチュの以下の言葉が引用されていました。 「量子コンピュータが並行処理を行えるのは、同時並行して存在する複数の世界で計算処理をしているからだ。つまり量子コンピュータが完成すれば、それは多世界解釈の正しさの証拠になる」 そこで、D-Waveが量子コンピュータを作成したと聞いたのですが、上の発言通りに多世界解釈は現実味を帯びてきたのでしょうか? または、もう多世界解釈は廃れてしまったのでしょうか。

  • ダイス鋼の熱処理の時間

    SKD61を電気炉で熱処理したいのですが、 電気炉の説明書などで25tで約15分と書いて あるのですが、旋盤で加工したテーパー状の肉厚が変化してるのはどういう様な計算をするのでしょうか? 重量とかで焼き入れ(焼き戻し)時間が決まるのですか? 戻しの時も2時間を二回戻すのと一度に4時間戻すのとでは意味が違うのでしょうか? また、2時間を二回戻すのを4時間で2回戻した時は硬度下がってしまうのですか? よろしくお願いします。

  • [Windowsプログラミング] スレッドでリアルタイムにキーボード入力を処理したいのですが

    いつもお世話になっております。 最近Windowsプログラミングを始めたばかりです。 今スレッドの勉強をしているのですが、キーボードの入力をスレッドが処理したいと考えております。 受け渡しでは生成時点での入力しか処理できず、うまくいきません。 プロシージャとスレッドでリアルタイムにデータをやり取りする方法はないでしょうか? ご指導よろしくお願いします。

  • ガントチャートが作れません。細かい作業が同時進行で

    ガントチャートが作れません。細かい作業が同時進行で行われ、行ったり来たりします。ほかに良いツールはありませんか? 例 データ受け取る ⬇︎ データ入力 ⬇︎ データ確認 これを3日で200件処理します。 データを受け取る期間が決まってないので、来たら随時やる、だからガントも五月雨式になるというか、1日目は、これ、2日目はこれ、と言えないのです。

  • プログラムの処理速度について

    プログラムを拡張してみたですが、実行してみると処理は5秒以上かかります。あまり望ましくない-.-;;。どこの部分が(例えばどの関数)時間を食うのか?どうやって調べますか? ファイル処理や計算処理をやっていて、ファイル処理時間を抑えるため一応二分探索やってますが。。。それでもまだ時間かかるんです。。。ちなみにネストのデータ構造は結構処理に影響でるんでしょうか? よろしくお願いします。