植物 植物
直前対策講座:オンラインシステムのファイル処理

AOBA's Information Processing Education



1997/09/28

注意1:このページは、回線を切断した後でゆっくりご覧になってください(テキストを印刷する場合は、その取り扱いに注意してください)。

注意2:背景が白地の画面を長時間見つめていると頭が痛くなってしまいますので、ここは背景をグレーにしています。


「昭和63年 第1種 午前 問3」

問3 オンラインシステムのファイル処理に関する次の記述中の(   )に入れるべき適切な字句を解答群の中から選べ。

 図1は、1件のトランザクションに対するオンライン処理の概要を示すものである。ここで処理X,Y,Zの内容は、表1に示すとおりである。

図1

表1 処理内容
処 理内  容
処理XファイルAから読み取ったレコードからファイルBの
検索キーを算出し、ファイルB読取りの前処理を行う。
処理YファイルBの更新処理を行う。
処理Z後処理を行う。

 システム構成概要は図2のとおりであり、各ディスク装置の仕様は表2のとおりである。ファイルAは磁気ディスク装置A(1台)を、ファイルBは磁気ディスク装置B(15台)を使用する。

図2

表2 磁気ディスク装置仕様
項 目磁気ディスク装置
平均シーク時間30 ミリ秒
回 転 速 度3,000回転/分
データ1件当た
りの転送速度
2 ミリ秒5 ミリ秒

 チャネルは、データ転送の間だけ占有され、ファイルBにおいては、データの読取り後、書込みが完了するまで、ディスクヘッドの移動はないとする。また、入出力については毎回物理入出力を行うものとする。

 磁気ディスク装置Bの15台へのアクセスが均等とし、一つのトランザクションの処理が完了するまでは同一の磁気ディスク装置へのアクセスはないと仮定すると、ファイルAの単位時間当たりのデータ処理件数は( a )件/時間、ファイルBの単位時間当たりのデータ処理件数は約90万件/時間である。

 ただし、CPU処理時間は、無視できるものとする。また、1件当たりのファイル処理時間は、
    平均シーク時間+平均回転待ち時間+データ転送時間
とする。

 このシステムでは、ファイルAの処理能力がボトルネックとなっている。

 いま、ファイルAの磁気ディスク装置の回転速度を2倍にすると、最大約( b )件/時間の処理が可能となる。

 また、表2の仕様のままで、ファイルAを二つのボリュームに分けて配置し、二つのボリュームに均等にアクセスされるようにする(二つのボリュームはともにチャネル1に接続する)と、最大約( c )件/時間の処理が可能となる。

解答群

ア 85,700  イ 95,700  ウ 100,000  エ 120,000  オ 171,400
カ 191,400  キ 200,000  ク 240,000  ケ 300,000

第2種受験の方のためのヒント:チャネルの待ち行列を考慮する必要はありません。


解説

 最初に、以下の事項を確認します(これはとっても重要)。

平均シーク時間(平均位置決め時間)
 読込む(または書き込む)レコードが存在するトラックまで、ディスクヘッドが移動する平均時間(問題文中に明記されるので、これを計算する必要はない)。

平均サーチ時間(平均回転待ち時間)
 シークが終了してから、読込む(または書き込む)レコードの先頭にディスクヘッドが位置付けられるまで、ディスクが回転している平均時間(この時間はディスクが1/2回転する時間に等しい。回転速度から求めることができる)。

データ転送時間
 サーチが終了してから、読込む(または書き込む)レコードの末尾が通り過ぎるまで、ディスクが回転している時間。つまり、実際にレコードをアクセスしている時間(この問題では問題文中に明記されていたが、レコード長と転送速度から計算しなければならない場合もある)。

磁気ディスクのアクセス時間
 平均シーク時間+平均回転待ち時間+データ転送時間

aについて

 平均シーク時間=30ミリ秒(表2より)

 平均回転待ち時間は1/2回転に要する時間です。表2の回転速度を見ると、ディスクは1分間に3000回転することが分かります。したがって、
 平均回転待ち時間=(60/3000)/2=0.01秒=10ミリ秒 です。

 データ転送時間=2ミリ秒(表2より)

 ファイルAは読取りしか行いませんので、ファイルAの1件当たりの処理時間は単純にこれらを加算した時間です。すると、

 ファイルAの1件当たりの処理時間
=平均シーク時間+平均回転待ち時間+データ転送時間
=30ミリ秒+10ミリ秒+2ミリ秒=42ミリ秒 となります。

 次に、1件当たりの処理に42ミリ秒要するということから、1時間に何件の処理を行うかを求めます。これが求める答えです。

 3600/(42*10-3)=85714.28...(件/時間)

(注)
 ファイルBは読取りと書込みを行いますので、ファイルBの1件当たりの処理時間は、平均シーク時間+2*(平均回転待ち時間+データ転送時間)=60ミリ秒です(データ読取り後、書込みが完了するまでディスクヘッドの移動はない、という記述がありますので、平均シーク時間は2倍しません)。

bについて

 ファイルAの磁気ディスクの回転速度を2倍すると、平均回転待ち時間が1/2になります。つまり5ミリ秒ですね。これは誰でも分かると思います。
 ところが、ここからが引っかけなのですが、回転速度を2倍にすると、データ転送時間も1/2になるのです。つまり1ミリ秒です。これがなぜか分からない方は、解説の最初に記述した重要事項の”データ転送速度”の項を参照してください。

 後は設問aと同じように考えて、ファイルAの単位時間当たりのデータ処理件数を求めます。

 (回転速度を2倍にした)ファイルAの1件当たりの処理時間
=平均シーク時間+平均回転待ち時間+データ転送時間
=30ミリ秒+5ミリ秒+1ミリ秒=36ミリ秒

 3600/(36*10-3)=100000(件/時間)

 ファイルAのデータ処理件数(10万)<ファイルBのデータ処理件数(90万) なので、システム全体からみたトランザクションの処理能力は10万(件/時)です。もしファイルAのデータ処理件数が90万(件/時)を超えれば、システム全体からみたトランザクション処理件数は90万(件/時)となります。次の設問cの解説も参考にしてください。

cについて

 難しく考えてしまった方は答えが出なかったかもしれません。
 まず、「ファイルAの処理能力がボトルネックになっている」という記述に注目してください。この記述の意味は分かりました?。これはファイルBの処理能力が90万件/時なのに対して、ファイルAの処理能力がわずか85700件/時であるため、ファイルAの処理能力の低さが、システム全体に対する処理能力の低下につながっている、ということを意味します(ファイルA->ファイルBと、時系列に処理することに注意)。
 つまり、システム全体で見た場合、トランザクションの単位時間当たりの処理能力は85700(件/時)しかないのです。

 次にこの問題文を注意深く見ると、「チャネルはデータ転送の間だけ占有され...」という記述があることが分かります。これは、ファイルAのアクセス時間42ミリ秒の内、データ転送時間の2ミリ秒しかチャネルを占有していないことを意味します。
 したがって、ファイルAをたった二つのボリュームに分けて配置したところで、チャネルに待ち行列は発生しません(こうしても、わずか4ミリ秒しかチャネルを占有せず、残りの38ミリ秒が空いているため)。

 とすれば、ファイルAを二つのボリュームに分ければ、42ミリ秒の間に2件のデータを処理しますので、システムは2倍の処理能力になりますね。
 そこで求める答えは、85700*2=171400(件/時) です。

 問題文が長くてうんざりしますが、解答は簡単でしたね。こういうことはよくありますよ。


解答

a−ア  b−ウ  c−オ