第七章 情報処理システム
7.1 データ処理形態
□情報処理システムとは
企業の中で用いられる情報処理システムとは、文字どおり、企業にとっての有用なデータ(つまり「情報」を加工変換「処理」するために用いられる仕組み(すなわち「システム」)である。
情報処理システムは、一般に、ハードウェア、ソフトウェア、通信設備などから構成されている(図7−1)。情報処理システムとしての働きを効果的に実現するために、これらの構成要素が機能を分担しあい、うまい具合に結合させている。
□システムの利用形態
情報処理システムをその利用形態で分類すると、バッチ処理、リアルタイム処理、タイムシェアリング処理、分散処理に分けられる。
◇バッチ(一括)処理(batch processing)
ある周期(日、週、月、年)のうちで発生したデータを、まとめて処理すること。
<バッチ処理の特徴>
・(対話型処理と違い)人間の介入がないので、人間の生産性が問題となることは少ない
・このため、主としてコンピュータの生産性だけが問題になる
・処理手順をあらかじめ確定しているので、コンピュータ(CPU)の使用効率を高めることができる
・通信回線や端末機がそれほど普及していない頃は、この処理形態が多く用いられた
・現在でも、その特性を活かして大量のデータをまとめて処理したい場合、かつ即時性を求められない場合に用いられている
・代表的な例として、給与計算があげられる
バッチ処理は、通信回線を使用するかどうかにより、次の2つに分けることができる。
センタバッチ処理(center batch processing):
データをセンタ(CPUのある場所)へ集める際に、通信回線を介さずに人手によって集める。
その後、一括処理する。
単に、バッチ処理というときは、このセンタバッチ処理をさす。
リモートバッチ処理(remote batch processing):
センタから離れた拠点に集められてデータを、通信回線経由でセンタに送って一括処理する。
なお、リモートバッチ処理やTSSにおいて、遠隔地から端末を用いてジョブが投入されることを、リモートジョブエントリ(RJE:Remote Job Entry)という。
<バッチ処理にできる条件>
次の条件をすべて満たすときには、バッチ処理にできる。
・リアルタイム(即時)性が、要求されない
・処理手順が確定している
・処理対象(データ)がすべてそろっている
・処理の途中での人手の介入がまず必要ない
・仕事をコンピュータに任せきりにすることができる
◇リアルタイム処理
データが発生するつど、あるいは蓄積されているデータを加工する要求が発生するつど、瞬時(実時間=リアルタイム)に処理し、一定時間内に処理結果を返す処理形態である。
<リアルタイム処理の特徴>
・レスポンスタイム(response time:応答時間)を重視する
・バッチ処理システムと違い、処理プログラムは、常時、コンピュータ上にある
・厳しい即時性と信頼性がある(要求される)
・このため、システムコストが高くつく
・データの発生場所でデータを入力し、その場に処理結果を返すために、通信回線を経由して処理を行う場合が多くある。
これをオンラインリアルタイム処理という
・実例としては、JRの「みどりの窓口」や、銀行のキャッシュディスペンサーによる入出金業務などのように、大量のデータ(トランザクション)を処理するシステム、工場のプロセス制御や電力制御、列車制御などがあげられる。
いずれの場合もかなりの処理速度が要求される。
◇ターンアラウンドタイムとレスポンスタイム
ターンアラウンドタイム、レスポンスタイム(応答時間)は、どちらもコンピュータの処理の速さを示す指標だが、
・バッチシステムを評価する場合→ターンアラウンドタイム
・リアルタイムシステムを評価する場合→レスポンスタイム
を用いるのが、一般的である。
・ターンアラウンドタイム(turnaround time)
ジョブ(仕事)が投入されてから、処理結果を完全に受け取るまでの時間のこと(図7−2)。
turnaroundとは、「(飛行機・船などの)往復所要時間」という意味である。
バッチ処理では、プログラムをコンピュータに与えてから、処理結果を完全に受け取るまでの時間となる。
・レスポンスタイム(response time:応答時間)
質問(処理要求)をしてから、その答え(処理結果)が返ってくるまでの時間のこと(図7−3)。
正確には、処理要求の最後の文字をコンピュータに送ってから、コンピュータから処理結果の最初の文字が送られてくるまでの時間のことである。
responseとは、「応答、返答」という意味である。
対話型処理では、人間がコンピュータに指令を出してから、その結果がもどされる(ディスプレイに表示されるなど)までの時間である。
・ターンアラウンドタイムとレスポンスタイム
バッチ処理のターンアラウンドタイムは、対話型処理のレスポンスタイム(応答時間)に対応している。
◇スループット
単位時間当たりのコンピュータシステムの処理量のこと。
<スループット(処理能力)の向上>
コンピュータの処理能力は、その個々の装置の処理速度だけでなく、個々の装置を効率よく運用するようにして向上させる。
スループットを向上させる手段として、次の2つがある。
ジョブの連続処理:
利用者からコンピュータに与えられるひとかたまりの仕事をジョブという。
このジョブを実行する前準備や後始末を、オペレータの介入なしに次々と連続処理させることによってスループットを向上させることができる。
多重プログラミング:
CPU処理に比べて入出力は、時間がかかり、入出力の間CPUに空き時間ができてしまう。
この空き時間を利用して別のジョブを実行させることで、見かけ上ジョブを並行実行させる。
◇タイムシェアリング処理(Time Sharing System:TSS)
1台のコンピュータを、多くの利用者が使うためのシステムである。
具体的には、CPU時間をとても短い時間で分割し、別々のプログラムに切り替えている。
このため、利用者は、あたかもコンピュータを独占しているかのように、コンピュータを利用することができる。
時分割処理ともいう。
TSSは「対話型処理(interactive processing)」を行うが、必ずしも「対話型利用」ばかりを意味しない。
TSSは、大規模なプログラム開発によく用いられている。
現在は、CPU時間をタイムシェアリングすることも対話型利用もほとんど常識である。
このため、とりたてて「タイムシェアリングシステム」といわなくても、ほとんどが「タイムシェアリングシステム」になっている。
・対話型処理(interactive processing)
interactiveとは、「相互に作用する(inter:相互の+active:活動的な)」という意味である。
つまり、人間とコンピュータが「相互に作用=対話」しながら仕事を進めていくコンピュータの使い方である。
会話型処理、デマンド(demand:要求)処理とよぶこともある。
<対話型処理の生産性>
操作する人間の生産性を大きく作用する項目として、次の2つがあげられる。
・応答時間
・使いやすさ
ユーザインタフェースをよくするようなハードウェアを選び、ソフトウェアを設計することが重要である。
<対話型処理とバッチ処理の長所、短所>
一般に、レスポンスタイムは、ターンアラウンドタイムより短いので、その分だけ対話型処理のほうがバッチ処理より人間の生産性を高めてくれる。
原則として、バッチ処理では、処理手順が100%明確でなくてはならない。
しかし、対話型処理では、処理手順が100%明確でなくても、人間の判断を加えながら、人間とコンピュータが一体となって仕事ができる。
□クライアントサーバシステム
◇クライアントサーバモデル
クライアントとサーバの意味は、次のとおり。
クライアント(client:顧客):サービスを要求するもの。
サーバ(server:仕える人):クライアントが要求したサービスを提供するもの。
クライアントがサーバを使いながら仕事を進めていくという考え方を、クライアントサーバモデルという。
具体的にいうと、図7−4のように、プリントアウトを要求したプログラム(プロセス)をクライアントといい、クライアントの要求でプリントアウトサービスを行ったプログラム(プロセス)をサーバという。
・サーバの種類
図7−4のようなプリントサーバのほかに、ファイルサーバ、データベースサーバなどがある。
従来から、汎用コンピュータのオペレーティングシステムは、ファイルサーバ機能やプリントサーバ機能をもっていた。
しかし、クライアントサーバシステムは、同種、異種のさまざまな規模のコンピュータ、別々に構築されたコンピュータシステムを、効果的に利用してアプリケーションシステムを構築する方法である。
7.2 コンピュータシステムの信頼性
□RASIS
◇コンピュータシステムの評価
コンピュータシステムの優劣を評価する尺度として、RASISがある。
RASISとは、次の5つの尺度の頭文字である。
このうち、RAS(信頼性、可能性、保守性)は数値化して、優劣を評価できる。
・信頼性(Reliability)
機器や装置が故障なしに動作できること。
この指標として、MTBFが用いられる。
・可用性(Availability)
故障が起きたときでも、可能な限り処理を続けること。
この指標として、稼働率がある。
・保守性(Serviceability)
故障個所をすばやく見つけて、早期に故障回復を行うこと。
保守性を数値化しているのが、MTTRである。
・保全性(Integrity)
偶発、故意によるデータの破壊が起きず、もし起きても修復できる。
・機密性(Security)
システムやデータに対する不正・不当な行為ができないように、保護・保証されていること。
◇RASの計算式
・MTBF(Mean Time Between Failures:平均故障間隔)
故障が起きてから、次の故障が起きるまでの平均時間のこと(図7−5)。
この値が大きいほど信頼性が高いといえる。
MTBF= 全正常稼働時間
故障回数
MTBFの逆数を故障率という。
故障率= 1
MTBF
・MTTR(Mean Time To Repair:平均修理時間)
故障が起きてから(修理を行い)再度利用できる状態になるまでの平均時間のことをいう。
MTTR= 全修理時間
故障回数
MTTRの逆数を修理率という。
修理率= 1
MTTR
・稼働率
コンピュータシステムを、利用者がどのくらいの割合で使えるかを示す指標のことをいう。
つまり、全時間(全正常稼働時間+全修理時間)のうち、全稼働時間がどのくらいの割合を占めているかを求めることになる。
稼働率は、次の計算式で示される。
稼働率= 平均故障間隔
平均故障間隔+平均修理時間
= MTBF
MTBF+MTTR
= 修理率
故障率+修理率
◇コンピュータシステムの構成に基づく稼働率の計算方法
コンピュータシステムを直列に構成したときと並列に構成したときとでは、稼働率の計算方法が異なるので注意が必要である。
しかし、構成がどんなに複雑でも直列と並列の組合せなので、この2つの計算方法を知っておけば、あとは組合せで計算できる。
・直列方式
図7−6の構成では、装置1と装置2の両方が稼動しているときのみ、システム全体が稼動できることになる。
逆に、どちらか一方でも故障すると、システム全体が稼動しなくなってしまう。
このようなシステムの稼働率は、次のようになる。
システムの稼働率=(装置1の稼働率)×(装置2の稼働率)
次にこの応用として、n個の装置が直列でつながれているときを考えてみよう(図7−7)。
装置2個が直列でつながれているときと同様に考えればよいので、次のような計算式が成り立つ。
システム全体の稼働率
=すべての装置が稼動している確率
=(装置1の稼働率)×(装置2の稼働率)×・・・×(装置nの稼働率)
◇並列方式
図7−8の構成では、装置1と装置2のどちらか一方でも稼動していれば、システム全体が稼動できることになる。
逆に、両方が故障したときだけ、システム全体が稼動できなくなるともいえる。
このようなときのシステムの稼働率は、次のように示される。
システム全体の稼働率
=1−全装置が稼動しない確率
=1−(1−装置1の稼働率)(1−装置2の稼働率)
↑
装置1、装置2が同時に故障している確率
この応用として、n個の装置が並列でつながれているときを考えてみよう(図7−9)。
装置2個が並列でつながれているときと同様に考えればよいので、次のような計算式が成り立つ。
システム全体の稼働率
=1−全装置が稼動しない確率
=1−(1−装置1の稼働率)(1−装置2の稼働率)・・・(1−装置nの稼働率)
◇信頼性向上のためのコンピュータシステム構成
・シンプレックスシステム(simplex system)
最も単純で安価なシステム構成である(図7−10)。
構成要素のどれか1つが故障すると、システムダウンしてしまう。
コンピュータシステムの果たす役割が重要度を増してくると、それに合わせて高度な信頼性が必要とされてくる。
そこで、信頼性を向上させるために、CPUや通信制御装置、記憶装置などを複数個組み合わせる。
このようにして、システムダウン(停止)を防ごうとしている。
システム構成として代表的なものに、次のような種類がある。
・デュプレックスシステム(duplex system)
主機と予備機からなる2系列の処理システムが用意されている(図7−11)。
主機:オンライン処理などの高い信頼性を要求される処置を行わせる。
予備機(スタンバイシステム):通常、バッチ処理やプログラム開発などを行わせる。
主機に異常が発生した場合、予備機を主機の代替えとして使用できるように切り替えて処理を実行させる。
この切替えには、多少の中断時間が生じる。
デュプレックスシステムは、シンプレックスシステムよりも、当然コストは高くつくが、信頼性が向上するので、銀行のシステムなどでよく用いられる。
信頼性がどのくらい必要か、コストはいくらまでかけられるかによって、シンプレックスシステムかデュプレックスシステムを選ぶことになる。
・デュアルシステム(dual system)
2系統のシステム構成であることは、デュプレックスシステムとよく似ているが、その系統でまったく同一の処理を行うところが違う(図7−12)。
正常時:常に同一データを2つのシステムで並列処理して、その結果を照合し(クロスチェック)、一致したときに結果を返す。
障害時:障害のあるシステムを切り離して、他方の系統のみで運転を続ける。
ここで紹介しているシステム構成の中で、コストは1番かかるが、信頼性は最も高い。
・マルチプロセッサシステム(multiprocessor
system)
複数のCPUが主記憶装置や外部記憶装置を共用して、1つのOSの下でシステム全体を制御し、複数の処理を並列実行させる(図7−13)。
障害が発生したCPUを切り離して処理を続行することができる。
ただし、主記憶装置や外部記憶装置を共用しているため、信頼性はデュアルシステムよりも劣る。
・ロードシェアシステム(load share system)
デュプレックスシステムのように、2つの処理システムで構成される(図7−14)。
処理する仕事のピーク時や、メッセージの種類によって、1台のCPUにかかる負荷を分散するために、予備機にも処理を振り分けるシステムである。
通常時:2つの処理システムは、まったく別の処理を行う。
障害時:生涯の発生していないシステムだけで処理を行う。
・タンデムシステム(tandem system)
tandemは、「縦につないだ馬」という意味。
タンデムシステムとは、複数のCPUを直列につなぎ、それらの間で負荷分散するように構成されたシステムのことである(図7−15)。
一般に、1台のCPU(ホスト)とそれより小さなCPU(機能別プロセッサ)とで構成されている。
これによって、CPU(ホスト)は、アプリケーション業務の実行に専念できる。
機能別プロセッサには、通信制御用のFEPとファイル管理用のBEPがある。
◇信頼性の考え方
・フェイルセーフ(failsafe)
ある装置に故障が生じても、予備の機器に切り替えるなどして、システムの性能を低下させないで正常に稼動させる考え方である。
・フェイルソフト(failsoft)
ある装置に故障が生じたとき、故障によってシステムが稼動できなくならないように、故障した装置を切り離して、性能は低下するがある程度の処理を続行できるようにする考え方である。
・フォールトトレラント(fault tolerant)
障害時でも常にシステムを稼動状態に維持しようとする考え方である。
広い意味で、フェイルソフトやフェイルセーフの概念もふくまれる。
7.3 情報処理システムの性能評価
□性能評価の指標
◇性能評価
コンピュータの利用者にとって、コンピュータシステムの性能を知ることは、システムを選択する場合の判断基準になり、かつシステムの能力改善に役立つ。
コンピュータの性能は、スループット、平均命令実行時間、平均命令実行回数などによって求められる。
しかし、総合的な評価をするためには、これら以外にもRASISや使いやすさといった点も考慮する必要がある。
◇CPUの性能評価の単位
CPUの命令実行能力を命令の実行時間ではなく、単位時間における命令実行回数で表したものである。
代表的なものとして、次の2つがある。
・MIPS(Million(Mega)Instructions Per
Second)
1秒間に実行できる命令の回数を、100万単位で表したものである。
例)1秒間に50万個の命令を実行できるなら、0.5MIPSとなる。
・FLOPS(FLoating-point Operations Per
Second)
1秒間に実行できる浮動小数点演算の回数を表したものである。
科学技術演算用コンピュータでは、浮動小数点演算を使う計算が非常に多いので、MIPSではなく、このFLOPSを使うことが多い。
□性能評価法
◇性能評価法
コンピュータシステムの性能を評価する手法としては、各種の測定法、指数、ツールがある。
これらのものは、基本的に、予測的に使われる場合と、実際のシステムがどの程度目標値を満足しているかをみる場合とに分けられる。
◇モニタリング(monitoring)
コンピュータの内部動作状況を測定し、データを収集する。
モニタリングの手段としては、ハードウェア的手段によるものとソフトウェア的手段によるものとがある。
・ハードウェアモニタリング
測定用のハードウェアを使用する。
ソフトウェア的には負荷がかからない。
構成ハードウェアの利用率や命令・コマンドレベルの実行頻度が測定可能である。
・ソフトウェアモニタリング
測定用のソフトウェアを用いて、必要な情報を収集する。
このために、ハードウェアモニタリングと違い、システムに多少の負荷がかかる。
ハードウェアモニタリングでは測定できないプログラム、ジョブ、タスクに関する情報を収集することもできる。
◇プログラムの処理時間による評価
実際に使用する環境に近い条件のもとでプログラムを実行させ、その処理時間によって評価する。
・テストプログラム(test program)
実際のプログラムと同一の性質ではあるが、規模の小さいプログラムを使う。
・カーネルプログラムテスト(kernel program
test)
基本的な計算問題について、対象とするコンピュータでプログラム(カーネル)をつくり、その実行時間を測定し、ほかのシステムでの結果と比較して評価を行う。
・ベンチマークテスト(benchmark test)
各応用分野を代表する標準的なプログラムを使用し、その実行時間によってコンピュータシステムの性能を調査、比較する。
カーネルプログラムと違い、すでに完成して直ちに実行できるプログラムを使用する。
◇命令ミックス(instruction mix)
「命令」には、いろいろな種類があり、それぞれの実行時間は異なっている。
つまり、どの命令でMIPS値を求めるかによって、MIPS値が異なってくる。
このため、プログラム中の各命令に対し、その使用頻度に応じて重み付けを行う。
代表的なものには、次の2つがある。
・コマーシャルミックス(commercial mix)
事務計算能力を評価するために、事務計算で使用頻度の高い命令の平均実行時間を求める。
・ギブソンミックス(gibson mix)
技術計算能力を評価するために、科学技術計算用の命令の平均実行時間を求める。