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




このページは

基本情報

(基本情報技術者試験)

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

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


問1 16進小数3A.5Cを10進数の分数で表したものはどれか。
939/16
3735/64
14939/256
14941/256
解答
解説 16進数は各桁が16のべき乗の重みをもっていますので、以下のように計算します。16進数では、A=10,B=11、C=12,D=13,E=14、F=15です。また、160は1です。(どんな数でも0乗は1になります。)

3×161+A×160+5×16-1+C×16-2
=3×16+10+5/16+12/256
=48+10+20/64+3/64
=(3072+640+20+3)/64
=3735/16

途中で無理に256へ通分するのではなく、64で計算していくほうがミスが少ないと思います。

問2 けた落ちの説明として、適切なものはどれか。
値がほぼ等しい浮動小数点数同士の演算において、有効けた数が大幅に減ってしまうことである。
演算結果が、扱える数値の最大値を超えることによって生じる誤差のことである。
数表現のけた数に限度があるとき、最小のけたより小さい部分について四捨五入、切上げ又は切捨てを行うことによって生じる誤差のことである。
浮動小数点数の加算において、一方の数値の下位のけたが結果に反映されないことである。
解答
解説 まず、さまざまな誤差について下にまとめます。

アンダーフロー:演算結果が、扱える数値の最小値を超えることによって生じる誤差
オーバーフロー:演算結果が、扱える数値の最大値を超えることによって生じる誤差(選択肢イ)
打切り誤差:数表現のけた数に限度があるときに、計算を途中でやめることで起きる誤差
丸め誤差:数表現のけた数に限度があるとき、最小のけたより小さい部分について四捨五入、切上げ又は切捨てを行うことによって生じる誤差(選択肢ウ)
けた落ち:値がほぼ等しい浮動小数点同士の減算において、有効けた数が大幅に減ってしまうことで起きる誤差
情報落ち:浮動小数点の加算において、一方の数値の下位のけたが欠落することで起きる誤差(選択肢エ)

情報落ちは絶対値の小さいものから計算することで回避できます。
けた落ちは式を変形するなどで回避することができます。
そのほかは、誤差が許容できるほどに大きな計算桁数を準備することで軽減できます。

問3 表は、ある地方の天気の移り変わりを示したものである。例えば、晴れの翌日の天気は、40%の確率で晴れ、40%の確率で曇り、20%の確率で雨であることを表している。天気の移り変わりが単純マルコフ過程であると考えたとき、雨の2日後が晴れである確率は何%か。

画像(問3)を表示できません
15
27
30
33
解答
解説 雨の2日後が晴れである確率は以下の3つの可能性の和であらわすことができます。

雨⇒晴れ⇒晴れ:30%×40%=12%
雨⇒曇り⇒晴れ:50%×30%=15%
雨⇒雨⇒晴れ:20%×30%=6%

つまり、12+15+6=33%であるといえます。

問4 送信側では、ビット列をある生成多項式で割った余りをそのビット列に付加して送信し、受信側では、受信したビット列が同じ生成多項式で割り切れるか否かで誤りの発生を判断する誤り検査方式はどれか。
CRC方式
垂直パリティチェック方式
水平パリティチェック方式
ハミング符号方式
解答
解説 代表的な誤り制御方式を下にまとめます。

奇数パリティ:1(あるいは0)の個数が奇数個になるように、1ビットを付加するもの
偶数パリティ:1(あるいは0)の個数が偶数個になるように、1ビットを付加するもの
水平パリティ:転送を2次元の配列とみなしたときに、水平方向へのパリティを付加するもの。
垂直パリティ:転送を2次元の配列とみなしたときに、垂直方向へのパリティを付加するもの。
チェックサム:送信データを数値に対応させ、その合計を計算し付加するもの。 ハミング符号:データに冗長ビットを付加して、2ビットの誤り検出と1ビットの誤り訂正機能を持たせたもの。
巡回冗長検査(CRC):送信列から生成多項式とよばれる式をつくり、受信側で計算式の余りが0かどうかを調べる。

問5 A,B,C,Dの順に到着するデータに対して、一つのスタックだけを用いて出力可能なデータ列はどれか。
A,D,B,C
B,D,A,C
C,B,D,A
D,C,A,B
解答
解説 スタックとは、LIFO(Last In First Out:後入れ先出し)のデータ構造で、コンパイラやプログラム、探索など幅広い場所で利用されています。それではひとつずつ見ていきます。(なお、Xをスタックにつんですぐに取り出す場合は、Xをそのまま出力と表記します)

選択肢ア:
Aをそのまま出力[]
Bをスタックにつむ[B]
Cをスタックにつむ[B,C]
Dをそのまま出力する[B,C]
つぎに、Bを出力したいのですが、スタックからCを先に取り出す必要があるので不可能です。

選択肢イ:
Aをスタックにつむ[A]
Bをそのまま出力[A]
Cをスタックにつむ[A,C]
Dをそのまま出力する[A,C]
つぎに、Aを出力したいのですが、スタックからCを先に取り出す必要があるので不可能です。

選択肢ウ:
Aをスタックにつむ[A]
Bをスタックにつむ[A,B]
Cをそのまま出力
Bをスタックから取り出す[A]
Dをそのまま出力[A]
Aをスタックから取り出す[]

選択肢エ:
Aをスタックにつむ[A]
Bをスタックにつむ[A,B]
Cをスタックにつむ[A,B,C]
Dをそのまま出力する[A,B,C]
Cをスタックから取り出す。[A,B]
つぎに、Aを出力したいのですが、スタックからBを先に取り出す必要があるので不可能です。

なお、スタックにデータをつむ作業をプッシュ(Push)、スタックからデータを取り出す作業をポップ(Pop)といいます。

問6 節点1,2,・・・,nをもつ木を表現するために、大きさnの整数型配列A[1],A[2],・・・,A[n]を用意して、節点iの親の番号をA[i]に格納する。節点kが根の場合はA[k]=0とする。表に示す配列が表す木の葉の数は、幾つか。

画像(問6)を表示できません
解答
解説 まず、木というデータ構造について下図にまとめます。

木を表示できません

つぎに、配列と木構造の対応を図示すると以下のようになります。

木を表示できません

最後に、問題文のA[i]が親を指し、iが自分の番号であることを順番に繰り返していくと以下のような図になります。

6aを表示できません

葉は、一番末端にあるデータなので、今回は{2、4、6、7、8}の5つとなります。

問7 5けたの数a12345を、ハッシュ法を用いて配列に格納したい。ハッシュ関数をmod(a1+a2+a3+a4+a5,13)とし、求めたハッシュ値に対応する位置の配列要素に格納する場合、54321は次の配列のどの位置に入るか。ここでmod(x,13)の値は、xを13で割った余りとする。

画像(問7)を表示できません
解答
解説 実際に値を代入して計算します。mod(5+4+3+2+1,13)=mod(15,13)=2となります。

なお、以下のように同じ値になることをシノニムが起こるといいます。シノニムは、二つの値の差がnの倍数であれば衝突が起こることがわかります。

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

問8 Javaのプログラムにおいて、よく使われる機能などを部品化し、再利用できるようにコンポーネント化するための仕様はどれか。
JavaBeans
JavaScript
Javaアプリケーション
Javaアプレット
解答
解説 Javaに関する重要な用語をいくつか下にまとめておきます。

JavaScript:web上で用いられるスクリプト言語(プログラム言語のJavaとは互換性がなく、基本的に別物)
Javaアプリケーション:単独で動作する一般的なJavaで書かれたプログラム
Javaアプレット:サーバからクライアントにダウンロードして動作するJavaのプログラム
Javaサーブレット:サーバ上で動作するものをJavaのプログラム
JavaBeans:アプリケーションを部品化し、再利用することで開発効率を向上させる規約

問9 平均命令実行時間が20ナノ秒のコンピュータがある。このコンピュータの性能は何MIPSか。
10
20
50
解答
解説 問題文を書き換えると、20ナノ秒で1つの命令が実行できる場合、1秒間で何個の命令が実行できるか?という問題です。

20ns×n個=1秒⇒n個=1/20ns⇒1/20ns=1/20ns=0.05G個=50MIPS

MIPSは、1秒間に何百万個の命令が実行できるかを表しており、MIPSのMはMillion(100万)を表しています。
なお、ミリ⇔キロ、マイクロ⇔メガ、ナノ⇔ギガは逆数の関係になっていることを理解していると、計算がすばやくできます。

問10 パイプライン制御の特徴はどれか。
複数の命令を同時に実行するために、コンパイラが目的プログラムを生成する段階で、それぞれの命令がどの演算器を使うかをあらかじめ割り振る。
命令が実行される段階で、どの演算器を使うかを動的に決めながら、複数の命令を同時に実行する。
命令の処理をプロセッサで複数のステージに細分化し、複数の命令を並列に実行する。
命令を更に細かなマイクロ命令の組合せで実行する。
解答
解説 パイプラインとは、下の図のように命令の段階を少しずつずらして行う方式です。なお各段を多重化したスーパースケーラ(スーパスカラ)方式というのもあります。 なお、依存関係や分岐命令などによってパイプラインの順番どおりに処理されないような状況をパイプラインハザードといいます。

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

問11 内部割込みに分類されるものはどれか。
商用電源の瞬時停電などの電源異常による割込み
ゼロで除算を実行したことによる割込み
入出力が完了したことによる割込み
メモリパリティエラーが発生したことによる割込み
解答
解説 まず、割り込には大きく分けて内部割りこみと外部割り込みがあります。内部割り込はゼロによる除算に代表されるソフトウェア的な原因。外部割り込みは、入出力の完了や電圧異常などに代表されるハードウェア的な原因です。

また、割り込みを受け付けるとCPUはレジスタのデータを主記憶等に退避させ、割り込みの処理を実行します。さらに、複数の割り込みに優先順位をつけ、順位の低いものが、順位の高いものに割り込みを行わないようにマスク処理をする場合もあります。

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

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

問13 デイジーチェーン接続はどれか。
IEEE1394接続コネクタが2口ある工業用カメラを数珠つなぎにし、一端をPCに接続する。
PCと計測機器とをRS−232Cで接続し、PCとプリンタとをUSBを用いて接続する。
USBハブにキーボード、マウス、プリンタをつなぎ、USBハブとPCとを接続する。
数台のネットワークカメラ及びPCをネットワークハブに接続する。
解答
解説 デイジーチェーンとは、SCSIやIEEE1394に代表されるインタフェースで採用されている接続方式で、以下のように機器を数珠つなぎで接続する形態です。

デイジーチェーンを表示できません

問14 表に示す仕様の磁気ディスク装置において、1,000バイトのデータの読取りに要する平均時間は何ミリ秒か。ここで、コントローラの処理時間は平均シーク時間に含まれるものとする。

画像(問14)を表示できません
15.1
16.0
20.1
21.0
解答
解説 まず、アクセス時間は、シーク時間 + サーチ時間 + データ転送時間によって計算されます。

アクセス時間
→入出力の要求があってから、実際にデータが転送されて手元に来るまでの総時間

シーク時間
→磁気ヘッドをある位置から読み出すデータのあるトラックの位置までくるまでの時間。

サーチ時間(回転待ち時間)
→読み出すデータのトラックに移動した磁気ヘッドが読み出すデータの上にくるまでの時間です。

データ転送時間
→実際にデータを読み取って必要な場所に転送するまでの時間です。

シーク時間は、問題文から10ミリ秒です。
サーチ時間はディスクが半回転するのにかかる時間です。これは、回転数(6,000回転/分)から求めます。60秒で6000回転するので、1回転は0.01秒かかることになり、半回転は5ミリ秒であることがわかります。
データ転送時間は、10Mバイト/秒で1000バイト転送するので、1/10×1000=0.1ミリ秒となります。

最終的には、10ミリ秒+5ミリ秒+0.1ミリ秒=15.1ミリ秒かかります。

問15 NAS(Network Attached Strage)の構成図として適切なものはどれか。ここで図の○はストレージの専用装置のファイルシステムを、二重線はストレージアクセス用のプロトコルを使用する専用ネットワークを意味するものとする。
画像(問15ans)を表示できません
解答
解説 NAS(ネットワーク接続ストレージ)とは、ネットワークに直接接続して利用するファイルサーバをいいます。NASはファイル単位でアクセス権などを設定できます。このサーバにRAIDなどの機能を付加することで、保守性や利便性を向上させることができます。ただし、ファイルの改ざんには別の機能を必要とします。

ストレージの管理専用のファイルシステムは、ファイルを管理するストレージ側にある必要があります。そしてネットワークに直接つながっている必要があります。
選択肢ア、ウはPC側に管理専用のファイルシステムがあり、選択肢ア、イはネットワークに直接つながっていません。よって選択肢エが正解となります。

問16 バックアップシステム構成におけるホットサイトに関する記述として、適切なものはどれか。
共同利用型のサイトを用意しておき、障害発生時に、バックアップしておいたデータやプログラムの媒体を搬入してシステムを復元し、業務を再開する。
待機系サイトとして稼動させておき、ネットワークを介して常時データやプログラムの更新を行い、障害発生時に速やかに業務を再開する。
予備のサイトにハードウェアを用意して、定期的にバックアップしたデータやプログラムの媒体を搬入して保管しておき、障害発生時にはこれら保管物を活用してシステムを復元し、業務を再開する。
予備のサイトをあらかじめ確保しておいて、障害発生時には必要なハードウェア、バックアップしておいたデータやプログラムの媒体を搬入し、業務を再開する。
解答
解説 バックアップについての3つを整理(稼働率が高い順)します。

ホットサイト:遠隔地に稼働しているものとまったく同じ状態で待機系を稼働させておき、障害時にすぐに切り替える方式
ウォームサイト:ホットサイトとコールドサイトの中間で、稼働までには何らかの準備が必要であり、すぐに切り替えはできない方式
コールドサイト:稼働に必要最低限のものだけを準備しておくだけで、稼働までにはそれなりに時間がかかる方式

問17 システムが時間とともに図のように故障と回復を繰り返した。このとき、RASISの信頼性(Reliability)と可用性(Availability)を表す指標の組合せとして、適切なものはどれか。

画像(問17)を表示できません
画像(問17ans)を表示できません
解答
解説 まず、RASISとは品質指標の一つです。RASISを以下にまとめます。

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

つぎに、T,Sについて考えます。
Tは動いている時間の平均(MTBF)
Sは修理にかかった時間の平均(MTTR)
T+Sは全体の時間

よって、信頼性(MTBF)=T。可用性=MTBF/(MTBF+MTTR)=T/(T+S)となります。

問18 スループットに関する記述のうち、適切なものはどれか。
ジョブとジョブの実行の間にオペレータが介入することによってシステムに遊休時間が生じても、スループットには影響を及ぼさない。
スループットはCPU性能の指標であり、入出力の速度、オーバヘッド時間などによって影響を受けない。
多重プログラミングはターンアラウンドタイムの短縮に貢献するが、スループットの向上にはあまり役立たない。
プリンタへの出力を一時的に磁気ディスク装置へ保存するスプーリングは、スループットの向上に役立つ。
解答
解説 スループットは単位時間当たりの処理量のことです。遊休時間があるとスループットは低下しますし、ターンアラウンドタイムが短縮するということは、スループットが向上するということにつながります。また、スプーリングはスループットを向上させる代表的な技術の一つです。

問19 四つの装置A〜Dで構成されるシステム全体の稼働率として、最も近いものはどれか。ここで、各装置の稼働率は、AとCが0.9、BとDが0.8とする。また、並列接続部分については、いずれか一方が稼動しているとき、当該並列部分は稼動しているものとする。

画像(問19)を表示できません
0.72
0.92
0.93
0.95
解答
解説 まず、並行部分の稼働率を計算します。

AC並列部分は1−(1−0.9)×(1−0.9)=1−0.1×0.1=1−0.01=0.99
BD並行部分は1−(1−0.8)×(1−0.8)=1−0.2×0.2=1−0.04=0.96

これが2つ直列になっているので、0,99×0.96=0.9504≒0.95となります。

問20 2台のCPUからなるシステムがあり、使用中でないCPUは実行要求のあったタスクに割り当てられるようになっている。このシステムで、二つのタスクA,Bを実行する際、それらのタスクは共通の資源Rを排他的に使用する。それぞれのタスクA,BのCPU使用時間、資源Rの使用時間と実行順序は図に示すとおりである。二つのタスクの実行を同時に開始した場合、二つのタスクの処理が完了するまでの時間は何ミリ秒か。ここで、タスクA,Bを開始した時点では、CPU、資源Rともに空いているものとする。

画像(問20)を表示できません
120
140
150
200
解答
解説 このような場合は、下図のようにタイムチャートを記述するのがよいでしょう。

画像(問20a)を表示できません

上図からわかる通り、二つのタスク完了は140ミリ秒後となります。