平成23年度 春期 応用情報技術者試験 問1−20 解答編




このページは

応用情報

(応用情報技術者試験)

解答と解説のページです。

問題だけで勉強したい方は目次へ戻ってください



問1 整数Aを整数Bで割った余りrem(A,B)が次のとおり定義されているとき、適切な式はどれか。

[rem(A,B)の定義]
rem(A,B)は、除数Bと同じ符号をもつ整数又は0であり、その絶対値は、Bの絶対値よりも小さい。ある整数Nを選ぶことによって、
A=B×N+rem(A,B)

が成立する。
rem(11,5)=2
rem(11,−5)=−1
rem(12,−5)=−3
rem(−11,5)=1
解答
解説 それぞれの選択肢を検証していきます。

選択肢ア:11=5×N+2 → (11−2)/5=N → N=1.8
選択肢イ:11=−5×N−1 → (11+1)/(−5)=N → N=−2.4
選択肢ウ:12=−5×N−3 → (12+3)/(−5)=N → N=−3
選択肢エ:−11=5×N+1 → (−11−1)/5=N → N=−2.4
なお、A=QB+R(0≦R<B)となるQ,Rの組合せが唯一つ存在するということを除法の原理といいます。

問2 次の論理演算が成立する時に、aに入るビット列はどれか。
画像(問2_1)を表示できません

画像(問2_2)を表示できません
1011
1100
1101
1110
解答
解説 まず、排他的論理和は、各ビットが同じ場合には0、異なる場合には1を出力する演算です。(文字コードの関係上、排他的論理和をEORと表記します)
例えば、1101 EOR 0001 = 1100という風になります。

また、
1101 EOR 0001 = 1100
1101 = 1100 EOR 0001
のように、移項も可能です。

よって、式を変形すると [ a ] = 1111 EOR 1101 EOR 0001 EOR 1101となります。
あとは、この式の右辺を順番に計算していきます。
[ a ] = 0010 EOR 0001 EOR 1101
[ a ] = 0011 EOR 1101
[ a ] = 1110

問3 相関係数に関する記述のうち、適切なものはどれか。
すべての標本点が正の傾きを持つ直線上にあるときは、相関係数が+1になる。
変量間の関係が線形のときは、相関係数が0になる。
変量間の関係が非線形のときは、相関係数が負になる。
無相関のときは、相関係数がー1になる。
解答
解説 相関係数とは、相関図などにおいて、二つの関係の強さを表す係数です。係数は−1から+1の間で表されます。以下に相関関係をまとめます。

散布図を表示できません

問4 あるプログラムにおいて、識別子(identifirer)は、先頭が英字で始まり、それ以降に任意個の英数字が続く文字列である。これをBNFで定義したとき、aに入るものはどれか。

画像(問4)を表示できません
画像(問4ans)を表示できません
解答
解説 BNF(Backus Naur Form)とは文脈自由言語を定義する言語で、正規表現などを記述するのに用いられています。

<A>:=<a><b>の場合は、Aはabをそれぞれを置き換えるという意味です。
<B>:=<c>|<d>の場合は、BはA又はbで置き換えるという意味です。
<C>:=<C><e>の用に、元の記号がある場合は、再帰的な表現となります。

まず、選択肢ア、イは、|<digit>|があるので、先頭に数字が来る可能性があります。
選択肢ウとエの違いは、|<identifier><leter>|があるかないかですが、これがないと、最後が文字列で終わるものを作れないので必要です。
よって、選択肢ウでは不十分であり、選択肢エが正解となります。

問5 組込みシステムにおけるリアルタイムシステムにおいて、システムへの入力に対する対応のうち、最も適切なものはどれか。
OSを使用しないで応答する。
定められた制限時間内に応答する。
入力された順序を守って応答する。
入力時刻を記録する。
解答
解説 リアルタイムシステムとは、入力を与えるとすぐに処理が行われる(対話的な処理)システムの形態をいいます。(処理をためてから行う形態はバッチシステムといいます。)

リアルタイムシステムは一般に3つに分類されます。なお、デッドラインとはそれまでに終了しなければならない時間を指します。

@ハードリアルタイムシステム:デッドラインを超えたときに、システムに甚大な被害を及ぼす
Aファームリアルタイムシステム:デッドラインを超えたときに、システムの処理価値がなくなる
Bソフトリアルタイムシステム:デッドラインを超えはじめると、システムの処理価値が徐々に低下していく

問6 葉以外の節点はすべて二つの子をもち、根から葉までの深さがすべて等しい木を考える。この木に関する記述のうち、適切なものはどれか。ここで、深さとは根から葉に至るまでの枝の個数を表す。
枝の個数がnならば、葉を含む節点の個数もnである。
木の深さがnならば、葉の個数は2n-1である。
節点の個数がnならば、深さはlog2nである。
葉の個数がnならば、葉以外の節点の個数はn−1である。
解答
解説 まず、木構造を以下にまとめます。今回は完全二分木の問題です。

木構造を表示できません

深さをnとした時の枝、葉、節点の個数を確認していきます。
n=1 → 枝:2、葉:2、節点:1+2=3
n=2 → 枝:2+4=6、葉4、節点:1+2+4=7
n=3 → 枝:2+4+8=14、葉:8、節点:1+2+4+8=15

これを元に各選択肢を調べていきます。
選択肢ア:枝がnならば、節点はn+1となります。
選択肢イ:木の深さがnならば、葉の個数は2nとなります。
選択肢ウ:節点の個数がnならば、深さは、(log2(n+1))−1となります。
選択肢エ:葉の個数がnならば、葉以外の節点の数はn−1となります。

よって、選択肢エが正解となります。

問7 PUSH命令でスタックにデータを入れ、POP命令でスタックからデータを取り出す。動作中のプログラムにおいて、ある状態から次の順で10個の命令を実行したとき、スタックの中のデータは次のようになった。1番目のPUSH命令でスタックに入れたデータはどれか。

画像(問7)を表示できません
29
326
55
解答
解説 スタックは、先入れ先出しのデータ構造です。PUSHでスタックの一番上にデータを入れ、POPでスタックの一番上のデータを取り出します。
スタックに、X,Y,Zがつまれていると仮定して10個の命令を実行していきます。

1.PUSH A → スタックの中身[A,X,Y,Z]
2.PUSH B → スタックの中身[B,A,X,Y,Z]
3.POP → スタックの中身[A,X,Y,Z]
4.PUSH C → スタックの中身[C,A,X,Y,Z]
5.PUSH D → スタックの中身[D,C,A,X,Y,Z]
6.PUSH E → スタックの中身[E,D,C,A,X,Y,Z]
7.PUSH F → スタックの中身[F,E,D,C,A,X,Y,Z]
8.POP → スタックの中身[E,D,C,A,X,Y,Z]
9.POP → スタックの中身[D,C,A,X,Y,Z]
10.PUSH G → スタックの中身[G,D,C,A,X,Y,Z]

ここで、スタックの状態と照らし合わせると
G=192
D=55
C=326
A=7
X=29
であることがわかります。

よって、一番最初にPUSHされたデータAは7となります。

問8 キーが小文字のアルファベット1文字(a,b,・・・,zのいずれか)であるデータを、大きさが10のハッシュ表に格納する。ハッシュ表として、アルファベットのASCIIコードを10進表記法で表したときの1の位を用いることにする。衝突が起こるキーの組み合わせはどれか。ASCIIコードは、昇順に連続した2進数が、アルファベット順にコードとして割り当てられている。
aとi
bとr
cとl
dとx
解答
解説 実際のASCIIコードを知っている必要はありません。まずは、ハッシュの構造を確認します。

ハッシュを表示できません

つぎに、アルファベットが10の倍数間隔になっているかどうかを調べます。

a=k=u
b=l=v
c=m=w
d=n=x
e=o=y
f=p=z
g=q
h=r
i=s
j=t


よって、dとxはハッシュ化したときに、衝突(シノニム)が発生するといえます。

問9 流れ図に示す処理の動作の記述として、適切なものはどれか。ここで、二重線は並列処理の同期を表す。

画像(問9)を表示できません
Aの後にBC又はCB、BC又はCB、・・・と繰り返して実行する。
Aの後にBの無限ループ又はCの無限ループになる。
ABC又はACBを実行してデッドロックになる。
AB又はACを実行してデッドロックになる。
解答
解説 まず、処理が開始されるとAが実行されます。その後、BかCのどちらかが実行されます。そして、同期線をで他方の処理が終わるのをまちます。よって、BC又はCBが実行されます。これを繰り返して実行してきます。

問10 パイプラインの深さをD、パイプラインピッチをP秒とすると、I個の命令をパイプラインで実行するのに要する時間を表す式はどれか。ここで、パイプラインの各ステージは1ピッチで処理されるものとし、パイプラインハザードについては、考慮しなくてよい。
(I+D)×P
(I+D−1)×P
(I×D)+P
(I×D−1)+P
解答
解説 まず、パイプラインの例を下に示します。

パイプラインを表示できません

パイプラインの深さは、分かれた段階の個数で、上の例では4です。
パイプラインピッチとは、1つの段階にかかる時間です。

実際に値を入れて後から一般化します。

1個目の命令は、D×Pで終了します。
2個目の命令は、(D+1)×Pで終了します。
3個目の命令は、(D+2)×Pで終了します。

I個目の命令は、(D+I−1)×Pで終了します。

よって、選択肢イが正解となります。(Iが十分に大きければ選択肢アに収束します)

なお、パイプラインハザードとは、依存関係や分岐命令などによってパイプラインの順番どおりに処理されないような状況をいいます。

問11 主記憶の1000番地から、表のように4バイトの整数データが格納されている。これを32ビットのレジスタにロードするとき、プロセッサのエンディアンとレジスタにロードされる数値との組み合わせとして、正しいものはどれか。

画像(問11)を表示できません
画像(問11ans)を表示できません
解答
解説 複数のデータを評価する際、下位ビットから見るのか、上位ビットから見るのかをあらかじめ取り決めておく必要があります。これをバイトオーダもしくはエンディアンといいます。下位ビットから格納していくのをリトルエンディアン、上位ビットから格納していくのをビックエンディアンといいます。

今データは、1000=00、1001=01、1002=02、1003=03なので
リトルエンディアンでは、下から1003、1002、1001、1000の順にデータを評価するので、03020100
ビッグエンディアンでは、上から1000、1001、1002、1003の順にデータを評価するので、00010203
となります。

問12 主記憶アクセスの高速化技術であるライトバック方式における、キャッシュメモリ及び主記憶への書込みの説明として、適切なものはどれか。
キャッシュメモリ及び主記憶の両方に同時に書き込む。
キャッシュメモリにだけ書き込み、対応する主記憶の更新は、キャッシュメモリからデータが追い出されるときに行う。
キャッシュメモリへの書込みと同時にバッファに書き込んだ後、バッファから主記憶へ順次書き込む。
主記憶を、独立して動作する複数のブロックに分けて、各ブロックに並列に書き込む。
解答
解説 キャッシュメモリは、主記憶とCPUのレジスタの速度の差を埋めるために用いられるものです。データをキャッシュメモリと主記憶の同時に書き込むライトスルー方式と、退避するときのみ書き込むライトバック方式があります。

選択肢アがライトスルー方式、選択肢イがライトバック方式といえます。

問13 RAID1〜5の各構成は、何に基づいて区別されるか。
構成する磁気ディスク装置のアクセス性能
コンピュータ本体とのインタフェースの違い
データ及び冗長ビットの記録方法と記憶位置との組合わせ
保障する信頼性のMTBF値
解答
解説 RAID(Redundant Arrays of Inexpensive Disks あるいはRedundant Arrays of Independent Disks)とは、複数のHDDを1台の高信頼性のHDDとして利用する技術のことです。RAID1〜6は冗長ビットをどこに配置するかで決まります。代表的なRAIDの例を下に示します。

RAID0(ストライピング):複数のHDDに分散してデータを書き込む(冗長性はない)
RAID1(ミラーリング):複数のHDDに同じデータを書き込む
RAID2:ビット単位での専用誤り訂正符号ドライブをもつ
RAID3:ビット/バイト単位での専用パリティドライブをもつ
RAID4:ブロック単位での専用パリティドライブをもつ
RAID5:ブロック単位で冗長データをもつが、特定のドライブに冗長データを書き込むということはしない。
RAID6:ブロック単位・複数パリティを分散して書き込む

また、複数の技術を組み合わせた、RAID1+0、RAID0+1、RAID5+0、RAID0+5、RAID5+1、RAID1+5などもあります。

問14 コンピュータシステムの構成の名称とその構成図の組合せのうち、適切なものはどれか。
画像(問14ans)を表示できません
解答
解説 それぞれの選択肢のシステム構成を見ていきます。

選択肢ア:複数のCPUからメモリとOSを共有する形態を密結合マルチプロセッサといいます。
選択肢イ:複数のCPUがそれぞれメモリとOSを所有し、協調する形態を疎結合マルチプロセッサといいます。(正解)
選択肢ウ:OSを2つ搭載した形態をデュアルブート(3つ以上はマルチブート)といいます。起動時にどのOSを起動するかを選択します。
選択肢エ:独立したシステムが、計算結果を照合する形態をデュアル構成といいます。

なお、
クラスタ構成は、複数のシステムが連結され(クラスタリング)大きな1つの塊のようなシステムを構成する形態をいいます。
デュプレックスシステムは、2組のシステムを準備し普段は片方が動作していますが、故障時にもう一方へ切り替える形態をいいます。

問15 モデル層、ビュー層及びコントローラ層の三つの論理的な層でモデル化されたWebシステムの説明として、適切なものはどれか。
業務処理はコントローラ層が行い、出力が必要な場合はビュー層に依頼する。
業務処理はモデル層が行い、処理結果はビュー層に渡されて画面表示が行われる。
処理に必要なデータをモデル層が検索し、コントローラ層で業務処理が行われる。
モデル層はコントローラ層から受け取った処理結果をビュー層に引き渡す。
解答
解説 モデル層、ビュー層、コントローラ層の3つに分けて開発を行うデザインパターンをMVCモデルといいます。ユーザーインタフェースをもつアプリケーションソフトウェアをモデル、ビュー、コントローラーに分けて開発するというものです。各要素は以下のようになっています。

モデル:データベースなどの、データや手続きなど
ビュー:Webページなどの、ユーザインタフェースなど
コントローラ:イベント(制御プログラム)などの、処理要素

選択肢ア:業務処理はモデル層が行います。
選択肢ウ:検索だけでなく、業務処理もモデル層が行います。
選択肢エ:モデル層はコントローラ層のデータをビューに仲介するものではなく、何らかの加工・処理を行います。

問16 システムの信頼性に関する記述のうち、フェールオーバの説明はどれか。
障害が発生した場合でも、処理やデータを他の処理装置に自動的に引き継ぎ、切換え処理を意識させない。
障害が発生した場合に、それが原因で危険な結果にならないよう、常に安全側の状態にする。
人間の過失などが原因で予期されない使い方をしても、信頼性や安全性を損なわない。
部品やサブシステムに信頼性の高いものを用いることによって、システム自体の故障発生を極力少なくする。
解答
解説 重要なシステム設計法についてまとめておきます。

フォールトトレラント:障害時に全体が停止するということなく、動作し続けるようなシステムを設計すること。
フォールトアボイダンス:システムの構成要素の信頼性を高め, 元から故障が極力発生しないように設計すること。
フォールトマスキング:障害が発生したときに、その部分を他の機器から隠蔽したり、自律回復するように設計すること。
フェールセーフ:障害が発生した場合、常に安全側に制御・停止すること。
フェールソフト:障害が発生した場合、故障した個所を切り離すなどして、稼動を続けること。
フェールオーバ:障害が発生した場合、ユーザに切り替えを意識させないように、別のシステムに引き継がせること。
フールプルーフ:ユーザが誤った操作をした場合、危険に晒されることがないように、事前に安全策を行うこと。

選択肢イは、フェールセーフの説明です。
選択肢ウは、フールプルーフの説明です。
選択肢エは、フォールとアボイダンスの説明です。

問17 システムの稼働率を表す式はどれか。
(平均故障間隔 + 平均修理時間) / 平均修理時間
(平均故障間隔 − 平均修理時間) / 平均故障間隔
平均故障間隔 / (平均故障間隔 + 平均修理時間)
平均修理時間 / (平均故障間隔 + 平均修理時間)
解答
解説 2つの用語をまとめます。

平均故障間隔(MTBF:Mean Time Between Failure)は故障と故障の間の動作していた時間の平均
平均故障時間(MTTR:Mean Time To Repair)は実際に故障していた時間の平均

稼働していた時間+故障していた時間=全体の時間となりますので、稼働率(=全体の時間に占める動作してた時間の割合)は平均故障間隔/全体の時間=平均故障間隔/(平均故障間隔+平均修理間隔)となります。

問18 3種類のコンピュータX〜Zにおいて、ベンチマークプログラム1,2の処理時間が次のとおりであった。コンピュータを性能の高い順に並べたものはどれか。ここで、コンピュータの性能値は相乗平均値を用いるものとする。

画像(問18)を表示できません
X,Y,Z
X,Z,Y
Y,X,Z
Z,Y,X
解答
解説 まず、相加平均と相乗平均についてまとめます。
相加平均とは、(X+Y)/2のように、すべてを足して個数で割るものです。
相乗平均とは、√(X・Y)のように、すべてを積にして平方をとるものです。
なお、相加平均≧相乗平均となります。

それでは、X,Y,Zを相乗平均を計算していきます。
X:√(10・40)=√400=20
Y:√(20・30)=√600≒24.5
Z:√(25・25)=√625=25

よって、性能が高いマシンほど処理時間が短いので、X,Y,Zの順で性能が高いといえます。

問19 OSのスケジューリング方式に関する記述のうち、適切なものはどれか。
処理時間順方式では、既に消費したCPU時間の長いジョブに高い優先度を与える。
到着順方式では、ラウンドロビン方式に比べて特に処理時間の短いジョブの応答時間が短くなる。
優先度順方式では、一部のジョブの応答時間が極端に長くなることがある。
ラウンドロビン方式では、ジョブに割り当てるCPU時間(タイムクォンタム)を短くするほど、到着順方式に近づく。
解答
解説 代表的なスケジューリング方式を下にまとめます。

ラウンドロビン方式:タスクの切り替えに多少のオーバヘッドがかかりますが、すべてのタスクに順番にCPUの使用権がわたります。このCPU時間をタイムクォンタムといいます。
到着順方式:リアルタイム性は失われますが、投入したタスクはいつかは処理してもらえます。
処理時間順方式:残りの処理時間が短いものに優先的にスケジューリングする方式
優先順位方式:単純に優先度の高いものを実行する方式で、待ち続けるタスクが発生(スタベーション)する可能性がある。待った時間に応じて優先順位を上げる(エイジング)を行うことでこれを回避しています。

選択肢ア:処理時間順では、予想される処理時間が短いものに高い優先度を与えます。
選択肢イ:処理時間が短い処理はラウンドロビンの方が早く処理が完了します。
選択肢エ:タイムクォンタムを短くするほど、処理時間順方式に近づきます。

正解の選択肢ウは、スタベーションの説明です。

問20 仮想記憶方式のコンピュータシステムにおいて処理の多重度を増やしたところ、ページイン、ページアウトが多発して、システムの応答速度が急激に遅くなった。このような現象を何というか。
オーバレイ
スラッシング
メモリコンパクション
ロールアウト
解答
解説 それぞれの用語を以下にまとめます。

オーバーレイ:プログラムが大きくメインメモリ上に入らない場合に、機能(モジュール)ごとに交換しながらメインメモリに入れていく手法のこと。
スラッシング:仮想記憶方式において、実メモリの容量が少なく、データの入れ替え(スワップインとスワップアウト)ばかりに時間がとられ、処理が進まないこと。
メモリコンパクション:メインメモリ内を整理して、使用されていない領域を連続した領域にすること。
ロールアウト:メインメモリの空領域を確保する場合などに、優先度の低いデータをメインメモリから追い出すこと。