平成21年度 春期 基本情報技術者試験 問1−20 解答編




このページは

基本情報

(基本情報技術者試験)

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

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


問1 数値を2進数で格納するレジスタがある。このレジスタに正の整数xを設定した後、“レジスタの値を2ビット左にシフトして、xを加える”操作を行うと、レジスタの値はxの何倍になるか。ここで、あふれ(オーバフロー)は、発生しないものとする。
解答
解説 桁あふれのない正の整数の2進数は、左にnビットシフトすると2n倍されるという性質があります。(10進数でも34を340にすると10倍になるのと同じです)また、もともとの値を加えるということは、1倍を加えるということなので、22+1で5倍になります。

問2 0000〜4999のアドレスのハッシュ表があり、レコードのキー値からアドレスに変換するアルゴリズムとして基数変換法を用いる。キー値が55550のときのアドレスはどれか。ここで、基数変換法とは、キー値を11進数と見なし、10進数に変換した後、下4けたに対して0.5を乗じた結果(小数点以下は切捨て)をレコードのアドレスとする。
0260
2525
2775
4405
解答
解説 まずは、55550を10進数に直します。0×110+5×111+5×112+5×113+5×114=0+5×11+5×121+5×1331+5×14641=0+55+605+6655+14641+73205=80520

これの下4けたを半分にしたものは0260となります。

問3 画像(問3)を表示できません と等しいものはどれか。ここで、・は論理積、+は論理和、はXの否定を表す。
A・・C
・B+A・
(A+)・(+C)
+B)・(A+
解答
解説 この問題はド・モルガンの定理と呼ばれる以下のような変換法則を利用します。

(A+B)
(A・B)

つまり、以下のようにド・モルガンの定理を2回利用して変換します。

画像(問3kai)を表示できません

あとは、+より・の方が優先順位が高いので( )が省略され、二重否定を除くとA・・Cとなります。

どうしても分からない場合は、真理値表などから求めるのも一つの手です。

問4 文字列中で同じ文字が繰り返される場合、繰り返し部分をその反復回数と文字の組に置き換えて文字列をを短くする方法はどれか。
EBCDIC符号
巡回符号
ハフマン符号
ランレングス符号化
解答
解説 ランレングス符号化とは、『AAAAABBBCCCCCCC』を『A5B3C7』のように文字とその連続回数を使って圧縮をする方法です。なお、EBCDIC符号は、IBMのメインフレーム用の文字コードです。巡回符号は誤り検出の一種で、ハフマン符号は高い出現率の符号に短い文字コードを割り当てることで圧縮をするものです。

問5 関数や手続を呼び出す際に、戻り値番地や処理途中のデータを一時的に保存するのに適したデータ構造はどれか。
2分探索木
キュー
スタック
双方向連結リスト
解答
解説 関数を呼び出すときには、戻ってくるときのために、データを保存しておかなければなりません。それは、後入先出法(LIFO)で管理されます。下に先入先出法(FIFO)であるキューと合わせて図示しておきます。

スタックとキュー

問6 配列と比較した場合の連結リストの特徴に関する記述として、適切なものはどれか。
要素を更新する場合、ポインタを順番にたどるだけなので、処理時間は短い。
要素を削除する場合、削除した要素から後ろにあるすべての要素を前に移動するので、処理時間は長い。
要素を参照する場合、ランダムにアクセスできるので、処理時間は短い。
要素を挿入する場合、数個のポインタを書き換えるだけなので、処理時間は短い。
解答
解説 各選択肢の解説を一つずつしていきます。

更新は、ポインタを順にたどるので時間がかかります。
削除は、削除する前のリストのポインタを変えるだけでできます。
参照は、ポインタを順にたどるので時間がかかります。
挿入は、挿入するリスト、挿入する前後の合わせて3つのポインタを変えるだけですみます。
下に配列とリストのイメージを図示します。

配列とリスト

問7 昇順に整列されたn個のデータが配列に格納されている。探索したい値を2分探索法で探索するときの、およその比較回数を求める式はどれか。
log2
(log2n+1)/2
2
解答
解説 2分探索は、1回の検索で探索範囲を半分にします。つまり、1探索できる個数は、1回で1/2。2回で1/4。3回で1/8・・・と範囲を狭められます。この探索回数をnとすると比較回数はlog2nとなります。(また、およそというのは、2nのデータサイズでなかった場合には近似になるためです。)

問8 自然数nに対して、次のように再帰的に定義される関数f(n)を考える。f(5)の値はどれか。

f(n):n≦1 then return 1 else return n+f(n−1)

15
25
解答
解説 順番にトレースしていきます。
f(5)=5+f(4)
f(4)=4+f(3)
f(3)=3+f(2)
f(2)=2+f(1)
f(1)=1

よって、f(2)=3、f(3)=6、f(4)=10、f(5)=15となります。

この関数が、Σの再帰的な関数だと気づけばすぐに解くことがでいます。

問9 平均命令実行時間が20ナノ秒のコンピュータがある。このコンピュータの性能は何MIPSか。
10
20
50
解答
解説 平均命令実効時間が20ナノ秒ということは、20ナノ秒で1回の処理クロックが発生するということです。一方でMIPSとは、1秒間で何百万命令できるかということです。
つまり、20ナノ秒×a命令=1秒。a命令=1/(20×10-9)秒=1×109×1/20秒=0.05G命令=50百万命令となります。

計算に必要な、下の接頭語はきちんと覚えておきましょう。

10-9:ナノ(n)
10-6:マイクロ(μ)
10-3:ミリ(m)
103:キロ(K)
106:メガ(M)
109:ギガ(G)

問10 シングルチップマイコンの特徴として、最も適切なものはどれか。
PCのメインCPUに適している。
ROMは内蔵されているが、RAMは内蔵されていない。
高速処理システム又は大規模なシステムに適している。
入出力機能が内臓されている。
解答
解説 マイコンとは、電子機器を制御するために、使われる半導体チップをいいます。その中の一種でシングルチップマイコンとは、一つの基盤・回路上にROM・RAM、インタフェース類が付属されたマイコンをいいます。

問11 プロセッサにおけるパイプライン処理方式を説明したものはどれか。
単一の命令を基に、複数のデータに対して複数のプロセッサが同期をとりながら並列にそれぞれのデータを処理する方法
一つのプロセッサにおいて、単一の命令に対する実行時間をできるだけ短くする方式
一つのプロセッサにおいて、複数の命令を少しずつ段階をずらしながら同時実行する方式
複数のプロセッサが、それぞれ独自の命令を基に複数のデータを処理する方式
解答
解説 パイプラインとは、下の図のように命令の段階を少しずつずらして行う方式です。なお各段を多重化したスーパースケーラ(スーパスカラ)方式というのもあります。

パイプライン

なお、選択肢アはSIMD(並列性におけるのフリンの分類の一つ)、選択肢イはRISC(プロセッサ設計の一種)、選択肢エはMIMD(並列性におけるのフリンの分類の一つ)

問12 キャッシュメモリに関する記述のうち、適切なものはどれか。
書込み命令を実行したときに、キャッシュメモリと主記憶の両方を書き換える方式と、キャッシュメモリだけを書き換えておき、主記憶の書換えはキャッシュメモリから当該データが追い出されるときに行う方式とがある。
キャッシュメモリにヒットしない場合に割込みが生じ、プログラムによって主記憶からキャッシュメモリにデータが転送される。
キャッシュメモリは、実記憶と仮想記憶のメモリ容量の差を埋めるために採用される。
半導体メモリのアクセス速度の向上が著しいので、キャッシュメモリの必要性は減っている。
解答
解説 キャッシュメモリは、主記憶とCPUのレジスタの速度の差を埋めるために用いられるものです。データをキャッシュメモリと主記憶の同時に書き込むライトスルー方式と、退避するときのみ書き込むライトバック方式があります。

キャッシュメモリにない場合は、主記憶からロードされますが、割り込みを使ったプログラムによるロードではありません。

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

RAID0(ストライピング):複数のHDDに分散してデータを書き込む(冗長性はない)
RAID1(ミラーリング):複数のHDDに同じデータを書き込む
RAID5:ブロック単位で冗長データをもつが、特定のドライブに冗長データを書き込むということはしない。

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

問14 プラズマディスプレイの説明として、適切なものはどれか。
ガス放電によって発生する光を利用して映像を表示する。
自身では発光しないので、バックライトを使って映像を表示する。
電極の間に有機化合物を挟んだ構造で、これに電気を通すと発光することを利用して映像を表示する。
電子銃から電子ビームを発射し、管面の蛍光体に当てて発光させ、文字や映像を表示する。
解答
解説 ディスプレイに関する問題の出題率は高いので、以下にまとめます。

CRT:いわゆる普通のブラウン管のディスプレイ。電子ビームと偏光版を使って画像を作ります。(選択肢エに相当)
PDP:PはプラズマのPで、高い電力が必要となります。(選択肢アに相当)
TFT:TはトランジスタのTで、1つ1つの画素をトランジスタの発光で実現しています。
有機EL:自らの発光でバックライトの不要なタイプ。次世代に期待されています。(選択肢ウに相当)
液晶:光の透過を画素ごとに制御し、カラーフィルタを用いて色を表現する。自ら発光はしない(選択肢イに相当)

問15 フォールトトレラントシステムの説明として、適切なものはどれか。
システムが部分的に故障しても、システム全体としては必要な機能を維持するシステム
地域的な災害などの発生に備えて、遠隔地に予備を用意しておくシステム
複数のプロセッサがネットワークを介して接続され、資源を共有するシステム
複数のプロセッサで一つのトランザクションを並行して処理し、結果を照合するシステム
解答
解説 重要なシステム設計法についてまとめて起きます。

フォールトトレラント:障害時に全体が停止するということなく、動作し続けるようなシステムを設計するもの。
フォールトアボイダンス:システムの構成要素の信頼性を高め, 元から故障が極力発生しないように設計すること。
フェールセーフ:障害が発生した場合、常に安全側に制御・停止すること。
フェールソフト:障害が発生した場合、故障した個所を切り離すなどして、稼動を続けること。
フールプルーフ:ユーザが誤った操作をした場合、危険に晒されることがないように、事前に安全策を行うこと。

なお、選択肢イはリモートバックアップ、選択肢ウはグリッドコンピュータ、選択肢エはデュアルシステムの説明です。

問16 東京〜大阪及び東京〜名古屋がそれぞれ独立した通信回線で接続されている。東京〜大阪の稼働率は0.9、東京〜名古屋の稼働率は0.8である。東京〜大阪の稼働率を0.95以上に改善するために、大阪〜名古屋にバックアップ回線を新設することを計画している。新設される回線の稼働率は最低限幾ら必要か。
0.167
0.205
0.559
0.625
解答
解説 まず、分かりやすく図にすると下にようになります。

画像(問16kai)を表示できません

ここで、東京−名古屋−大阪は直列になっており、0.8とXの直列となります。また、東京−大阪は0.8Xと0.9の並列になっています。

並列の稼働率は1−両方が稼動しない確率=1−(1−東京−名古屋−大阪の稼働率)×(1−東京−大阪の稼働率)

0.95≧1−(1−0.8X)×(1−0.9) = 1−(0.1−0.08X)=0.9+0.08X

0.05≧0.08X により、5/8≦Xとなればいいので、0.625となります。

問17 システムの信頼性を表す指標であるRASのうち、可用性(Availability)を表す尺度はどれか。
画像(問17ans)を表示できません
解答
解説 RASとは、RASISのうちの最初の3つを指す言葉です。RASISについて下にまとめます。

Reliability:(信頼性):故障しにくい性質(MTBFに相当)
Availability:(可用性):いつでも使える性質(稼働率=MTBF/(MTBF+MTTR)に相当)
Serviceability:(保守性):故障をすぐに修復できる性質(MTTRに相当)
Integrity:(保全性):データが一貫しており、矛盾がない性質
Security:(安全性):機密性が高く、不正にアクセスされない性質

問18 プログラムのCPU実行時間が300ミリ秒、入出力時間が600ミリ秒、その他のオーバヘッドが100ミリ秒の場合、ターンアラウンドタイムを半分に改善するには、入出力時間を現在の何倍にすればよいか。
1/6
1/4
1/3
1/2
解答
解説 現在のターンアラウンドタイムは300+600+100=1000ミリ秒です。これを半分にするということは500ミリ秒にしたいので、オーバヘッドとCPU実効時間を引くと500−100−300で100となります。現在の600ミリ秒を100ミリ秒にするので、1/6にする必要があります。

問19 リアルタイムシステムをハードリアルタイムシステムとソフトリアルタイムシステムに分類したとき、ハードリアルタイムシステムに該当するものはどれか。
Web配信システム
エアバッグ制御システム
座席予約システム
バンキングシステム
解答
解説 まず、念のために書いておくとここでいうハードとソフトは、ハードウェアやソフトウェアという意味ではなく、ハード(厳しい)・ソフト(優しい)という意味です。

リアルタイムシステムは一般に3つに分類されます。なお、デッドラインとはそれまでに終了しなければならない時間を指します。
@ハードリアルタイムシステム:デッドラインを超えたときに、システムに甚大な被害を及ぼす
Aファームリアルタイムシステム:デッドラインを超えたときに、システムの処理価値がなくなる
Bソフトリアルタイムシステム:デッドラインを超えはじめると、システムの処理価値が徐々に低下してく

問20 キャッシュメモリと主記憶との間でブロックを置き換える方式にLRU方式がある。この方式で置換えの対象になるブロックはどれか。
一定時間参照されていないブロック
最後に参照されてから最も長い時間が経過したブロック
参照頻度の最も低いブロック
読み込んでから最も長い時間が経過したブロック
解答
解説 ページ(ブロック)の置換えには幾つかのアルゴリズムがあります。下にまとめます。

NRU(Not Recently Used):最近使われていないものから順に置き換える(選択肢アに相当)
LRU(Least Recently Used):最後に参照されてから最も時間が経過したものから順に置き換える(選択肢イに相当)
LFU(Least Frequently Used):最も使用頻度の低いものから順に置き換える(選択肢ウに相当)
FIFO(First In First Out):最初に読んだものから順に置き換える(選択肢エに相当)