2015年1月28日水曜日

応用情報対策 午後試験 その1

問題は応用情報技術者試験 平成24年度 秋問題 午後試験 問4から
https://www.jitec.ipa.go.jp/1_04hanni_sukiru/mondai_kaitou_2012h24_2/2012h24a_ap_pm_qs.pdf#page=16

解答
設問1
プログラム改良により,全体の処理がどれくらい改善されたかを問う問題.

以下に設問から読み取れる情報を示す.




変換処理が??倍の性能向上が達成されたか,なので,
図を参考にすると,求める式は,
...(1)
です.

x,yを用いて,Aを表すと,x+yでAの50%を占めているわけですから,
と表せます.

Bに関しても,x,yを用いて,表現します.
データ入力,データ出力に関しては,改善されていませんので,Aの半分,つまり,(x+y)で表現できますし,改善された部分に関しても,それぞれx/4とy/3と表現されていて,それらの和がBとなります.

ここで,x,yの関係を考えると,xは全体の20%,yは全体の30%なので,

と表現できるので,(1)は,


となり,この値は1.53846154 なので,答えは1.5倍

設問2
(1)
分析サーバを増やした際の,処理の割り当て方を件数が均等になるように以下のように割り当てる.

この時,分析サーバ間の処理時間のばらつきの最大値を知りたい.
処理時間は最短で1時間,最長で3時間.
15件の処理を3つのサーバに均等に分配するので,各サーバには5件ずつの処理が割り振られる.
その際,分析サーバ1には処理に時間がかかるものばかり来て,分析サーバ2,3には,処理がすぐ終わる場合を想定する.
よって,
分析サーバ1の5件の処理時間は5(件)×3(時間)=15時間
その他のサーバは         5(件)×1(時間)=5時間
なので,処理時間の差の最大値は15-5=10時間になる.

(2)
以下の図のように分析サーバ間のばらつきが小さくなるように,(      )した
分析サーバに,順次,次の処理を割り当てる.
図から読み取れるように,「分析処理の終了」順に処理を割り振っていく.

(3)
図4の際の,処理時間のばらつきの最大値を知りたい.
分析サーバ1が最も遅くなる場合を考える.処理数が6の場合を例にとると,最悪の場合となるのは,以下の状況
よって,3時間が最大値.

設問3
(1)
以下のシステム構成において,分析サーバが増えた場合,ボトルネックになりうるものを考える.




この構成では,
"変換処理結果のファイルを,全分析サーバに対し,それぞれ別のファイル転送する"・・・(1)
"複数のファイル転送処理を同時に実行する"・・・(2)
とある.

ここで,分析サーバが増えたとき,ボトルネックとして心配されるものを選択肢から選ぶ.
[ d ]に関しては
ア,ネットワークの帯域→(2)より,大量のファイルを同時にネットワーク上に流すことがあり得る
イ,ファイルサーバのディスク入出力→図5にファイルサーバは存在しない
ウ,分析サーバのCPU処理能力→方法Bを採用しているため,各分析サーバには均一に負荷がかかる.→しかも,分析サーバが増えれば,一つあたりの負担は減る.
エ,分析サーバの内蔵ディスクからの読み込み→ウと同じ理由で負担は減る
オ,変換サーバの内臓ディスクへの書き込み→分析サーバが増えても,書き込み量は変わらない

よって [ d ]はア

[ e ]に関して,
問題文の中に
"[ d ]だけでなく[ e ]についても,ボトルネックにならないか考慮する必要がある"
とのことなので,アは除外.
ウ,オそれぞれに関しても,構成1と同じ理由で除外できる.
エに関しては,構成2では,分析サーバが内蔵ディスクを持っていないので,
答えはイ.

(2)
システムの稼働率を考える.

ここで覚えておかなければいけない公式と,
日本語とシステム図の変換に関して.

○システム図の考え方.
稼働率を考える際に,サーバやCPU(資源)が並列か,直列かを考えなければならない.
あるシステムの資源が 
直列の場合→その資源が故障したら,システムが止まる
並列の場合→その資源が故障しても,システムは動き続ける

○公式
稼働率の計算に必要な二つの公式
下記の図におけるa,bは稼働率,A,Bを直列システム,並列システムそれぞれの全体の稼働率とする.





A=a×b
B=1-(1-a)(1-b)
というのが公式.

システム図の考え方から,問題文で問われているのは,以下のような図になる.

このように,直列と,並列が混在している場合,並列を先に計算して,図のように考えると,
わかりやすい.

以上より,求める稼働率はxy(1-(1-x)(1-x)(1-x))となる.

※ネットワークの稼働率がnの場合は,これにnを掛ければいい.なぜなら,ネットワークが故障すると,システムが止まる→直列なので.


(3)
ファイルサーバの稼働率を高めるための対策として適切なものを全て選ぶ.
稼働率=壊れにくさ なので,故障耐性が強くなりそうなものを選ぶ.


ア,ファイルサーバのディスクコントローラ装置を二重にする
→何かを二重にすると,壊れたときにもう一つで処理が続行できるので稼働率が上がる

イ,ファイルサーバのディスクを,よりシークタイムが短いものに交換する
→シークタイム(データの読み出し時間)が短くなると,処理は早くなるが,信頼性は上がらない

ウ,RAID0で構成する
→RAID0はストライピングなので,高速化には向くが,信頼性は上がらない

エ,RAID1で構成する
→RAID1はミラーリング.同じデータを複数のディスクに書くことで,ディスクが壊れても,データを他から読み込めるようになるので,信頼性向上.

オ,RAID6で構成する.
→あまり聞かないが,RAID5の進化系(らしい).RAID5はパリティ付きストライピングで,
ディスクが壊れても,他のディスクの情報とパリティから情報を復元できる.

以上より,ア,エ,オが正解


あとがき
午後問題は,しっかり問題を読んでいけば,あまり知識がなくても何とかなる.
実際,自分は基本情報を受験した際,午後対策は皆無で,何とか通った.

重要なのは,文章からいかに図やイメージを描けるかだと思う.













2015年1月24日土曜日

応用情報対策 その1

自分なりに難しかった問題を解説していきたいと思う.

問題
コンピュータシステムにおいて、性能改善手法を適用した機能部分の全体に対する割合をR (0 < R < 1)、その部分の性能改善手法適用前に対する適用後の性能比をA とする。 このとき、システム全体の性能改善手法適用前に対する適用後の性能比を表す式はどれか。



解答

一般に性能比は,処理時間が半分になれば,2倍になったといわれるため,
簡単のため,システム改善前を1(ms),改善後をx(ms)とすると,
求めたい値は,

...(1)
となる


以下の図で,xはシステムの処理時間(ms)とする.
R,Aは比率(%=次元なし)であることに注意されたい.(0<R<1,0<A<1)

"その部分の性能改善手法適用前に対する適用後の性能比をA "
なので,数式は,

...(2)

となる.

最終目標はxをR,Aと定数で表すことなので,

図を参照しながら,nを考える.

まず,mは1(ms)のR(%)なので,

...(3)
となる.

(3)を(2)に代入して,整理すると,
となる.

改善を適用していない部分に関しては,適用前と処理時間は変わらないので,(1-R)(ms)である.

以上より,xは,



と表せる.

これを式(1)に当てはめると,選択肢"イ"が答えとなることがわかる.


あとがき

自分は理系(笑)なのだが,文系でもないので,日本語読解に難がある.
そのため,問題文を読んだときに,図が思い浮かばずに苦労をした.

加えて,"Aに対するBの比率"という表現を数式に示すと,B/Aというのが一般的だが,
性能比のこととなると若干違うらしい.