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




このページは

基本情報

(基本情報技術者試験)

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

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




問1 集合(∩B∩C)∪(A∩B∩)の網掛け部分(■)で表しているベン図はどれか。ここで、∩は積集合、∪は和集合、はXの補集合を表す。
画像(問1ans)を表示できません
解答
解説 ∩B∩CとA∩B∩の2つの領域に分けて考えます。

∩B∩Cは以下のようになります。

画像(問1-1)を表示できません

A∩B∩は以下のようになります。

画像(問1-2)を表示できません

よって、この両方の領域を塗りつぶした選択肢ウの図が正解となります。

問2 32ビットのレジスタに16進数ABCDが入っているとき、2ビットだけ右に論理シフトした値はどれか。7
2AF3
6AF3
AF34
EAF3
解答
解説 ABCDを2進数に変換すると
0000 0000 0000 0000 1010101111001101となります。

これを右に2ビットシフトします。すると
xx00 0000 0000 0000 0010 1010 1111 0011となり、01は捨てられます。

このとき、xxに何が入るかですが、特段の取り決めがない場合は符号と同じものが入ります。(正の場合は0、負の場合は1)この場合は、暗黙ではありますが負数の定義がないので、正数であると考えられるので、xxには00がはいります。よって

0000 0000 0000 0000 0010 1010 1111 0011を2進数にしたものが正解となります。
よって (00002AF3)16=(2AF3)16となります。

問3 4桁の整数N1234から、次の方法によって検査数字(チェックディジット)Cを計算したところ、C=4となった。N2=7,N3=6,N4=2とき、N1の値は幾らか。ここで、mod(x,y)は、xをyで割った余りとする。

検査数字:C=mod((N1×1+N2×2+N3×3+N4×4),10)
0
2
4
6
解答
解説 4=mod((N1+7×2+6×3+2×4),10)=mod(((N1+40),10)となり、N1は10進数の1桁なので、4N1を10で割った余りが4なので、N1は4となります。

問4 PCM方式によって音声をサンプリング(標本化)して8ビットのディジタルデータに変換し、圧縮しないで転送したところ、転送速度は64,000ビット/秒であった。このときのサンプリング間隔は何マイクロ秒か。
15.6
46.8
125
128
解答
解説 PCM(Pulse Code Modulation:パルス符号変調)とは音声などのアナログ信号をディジタル信号に変換する手法の一つです。
まず、アナログデータ(時間も振幅も連続)をディジタルデータに変換するためには、標本化→量子化→符号化という作業を行います。各作業を簡単に以下にまとめます。

標本化:時間を離散化する。(一般的には最大周波数の2倍で行います)
量子化:振幅を離散化する。
符号化:量子化したデータを特定の符号に対応付けする。

符号化と量子化は、多くのサンプリングポイントを取ることで、よりオリジナルに近いデータを作り出すことができます(データ量は多くなります)

それでは、計算していきます。
64000/8=8000回サンプリングポイントがあります。、
つまり、1/8000=0.000125=125マイクロ秒となります。

問5 待ち行列に対する操作を、次のとおり定義する。
ENQ n : 待ち行列にデータnを挿入する。
DEQ : 待ち行列からデータを取り出す。
空の待ち行列に対して、ENQ 1,ENQ 2,ENQ 3,DEQ ENQ 4, ENQ 5,DEQ, ENQ 6,DEQ, DEQの操作を行った。次にDEQを行ったとき、取り出される値はどれか。
1
2
5
6
解答
解説 まず、キューとスタックのデータ構造を以下に示します。

スタックとキューを表示できません

スタックは後入先出法(LIFO)。キューは先入先出法(FIFO)のデータ構造となります。

それでは、順に実行していきます。
操作:操作後のキューの状態で表します。
ENQ1:1
ENQ2:1,2
ENQ3:1,2,3
DEQ:2,3
ENQ4:2,3,4
ENQ5:2,3,4,5
DEQ:3,4,5
ENQ6:3,4,5,6、
DEQ:4,5,6
DEQ:5,6

この状態で、DEQをすると5が取り出せます。

問6 リストは、配列で実現する場合とポインタで実現する場合とがある。リストを配列で実現した場合の特徴として、適切なものはどれか。
リストにある実際の要素数にかかわらず、リストの最大長に対応した領域を確保し、実際には使用されない領域が発生する可能性がある。
リストにある実際の要素数にかかわらず、リストへの挿入と削除は一定時間で行うことができる。
リストの中間要素を参照するには、リストの先頭から順番に要素をたどっていくので、要素数に比例した時間が必要となる。
リストの要素を格納する領域の他に、次の要素を指し示すための領域が別途必要となる。
解答
解説 まず、配列とポインタの違いを以下に示します。

配列とポインタによるリストを表示できません

配列は、あらかじめ要素数を確保しますので、実際に使われない領域が発生したり、リストに要素を追加する場合に手間が生じる場合があります。
ポインタは、必要になった時に次の要素をポインタで参照しますので、必要最小限の領域で済みますが、リストをたどるのに時間が掛かる場合があります。
また、データを挿入/削除する場合は、配列の場合はデータの移し替えが必要なのに対して、ポインタでは参照先を変えるだけで済みます。

問7 次の規則に従って配列の要素A[0], A[1], ..., A[9]に正の整数kを格納する。kとして16, 43, 73, 24, 85を順に格納したとき、85が格納される場所はどこか、ここでx mod yは、xをyで割った剰余を返す。また、配列の要素は全て0に初期化されている。

〔規則〕
(1) A[k mod 10]=0ならば、kをA[k mod 10]に格納する。
(2) (1)で格納できないとき、A[(k+1) mod 10]=0ならば、kをA[(k+1) mod 10]に格納する。
(3) (2)で格納できないとき、A[(k+4) mod 10]=0ならば、kをA[(k+4) mod 10]に格納する。
A[3]
A[5]
A[6]
A[9]
解答
解説 順番に計算していきます。
16:A[16 mod 10]=A[6]=0なので、A[6]=16
43:A[43 mod 10]=A[3]=0なので、A[3]=43
73:A[73 mod 10]=A[3]=43なので、A[73+1 mod 10]=A[4]=73
24:A[24 mod 10]=A[4]=73なので、A[24+1 mod 10]=A[5]=24
85:A[85 mod 10]=A[5]=24なので、A[85+1 mod 10]=A[6]=16なので、A[85+4 mod 10]=A[9]=85

よって、85が格納されるのはA[9]になります。

問8 右の流れ図が左の流れ図と同じ動作をするために、a,bに入るYesとNoの組合せはどれか。

画像(問8)を表示できません
画像(問8ans)を表示できません
解答
解説 左側の流れ図では、処理はPではない又はQであるとき実行されます。
右側の図をみると、Pから[a]の条件のとき処理が実行されます。PはYESでないとき実行されればよいので、[a]にはNOが入ります。
また、Qが[b]の条件のとき処理がスキップされます。PがYESのとき処理が実行されるため、スキップするために[b]にはNOが入ります。

問9 1件のトランザクションについて80万ステップの命令実行を必要とするシステムがある。プロセッサの性能が200MIPSで、プロセッサの使用率を80%のときのトランザクションの処理能力(件/秒)は幾らか。
20
200
250
313
解答
解説 まず、プロセッサの性能が200MIPSで、使用率が80%なので、1秒間に200×106×0.8=160×106命令処理ができます。

そして、トランザクションは80万命令必要なので、1秒間に処理できる件数は160×106/80×104=1600/80=200件/秒となります。

問10 プロセッサにデータを読み込むときにキャッシュメモリにヒットしなかった場合、キャッシュメモリ制御装置を行う動作はどれか。
キャッシュメモリから所要のデータをブロック転送し、磁気ディスクに書き込む。
磁気ディスクから所要のデータをブロック転送し、キャッシュメモリに読み込む。
主記憶から所要のデータをブロック転送し、キャッシュメモリに読み込む。
ディスクキャッシュから所要のデータをブロック転送し、主記憶に読み込む。
解答
解説 キャッシュメモリは、主記憶装置(=メインメモリ)とCPUとの処理能力の速度の差を埋めるために用いられるメモリです。メインメモリは、まずキャッシュメモリにデータを探しに行き、そのデータがある場合はキャッシュメモリから、ない場合はメインメモリからデータを読み出します。よって、存在しない確率 ×メインメモリの読み込み速度+存在する確率×キャッシュメモリの読み込み速度となります。

データがキャッシュにない場合には、主記憶装置から該当のデータがあるブロックをキャッシュメモリに読み出してからロードを行います。これは、一度呼ばれたデータは再び呼び込まれる可能性が高いという局所性に基づくものです。


問11 1文字が、縦48ビット、横32ビットで表される2値ビットマップのフォントがある。文字データが8,192種類あるとき、文字データ全体を保存するために必要な領域は何バイトか。ここで、1Mバイト=1024kバイト、1kバイト=1024バイトとし、文字データは圧縮しないものとする。
192k
1.5M
12M
96M
解答
解説 まず、1文字のデータ量を計算します。1文字は48bit(縦)×32bit(横)×1bit(各ビットが2値)=1536ビット=192バイトとなります。
このデータが8192(=8×1024=8k)種類あるため、192バイト×8k=1536kバイト=1.5Mバイトとなります。

問12 静電容量方式タッチパネルの説明として、適切なものはどれか。
タッチすることによって赤外線ビームが遮られて起こる赤外線反射の変化を捉えて位置を検出する。
タッチパネルの表面に電界が形成され、タッチした部分の表面電荷の変化を捉えて位置を検出する。
抵抗膜に電圧を加え、タッチした部分の抵抗値の変化を捉えて位置を検出する。
マトリックス状に電極スイッチが並んでおり、タッチによって電通した電極で位置を検出する。
解答
解説 タッチパネルとは、銀行のATMやスマートフォン等で利用されている入出力装置で、ディスプレイに位置入力装置を組み合わせたものです。画面上を指で操作することで、直感的なユーザインタフェースを提供します。
タッチパネルの方式について選択肢の方式を以下にまとめます。

選択肢ア:赤外線方式
選択肢イ:静電容量方式
選択肢ウ:抵抗膜方式
選択肢エ:マトリックススイッチ方式

問13 フォールトトレラントシステムの実現方法の記述のうち、最も適切なものはどれか。
システムを1台のコンピュータではなく、複数台のコンピュータで多重化する。
システムをフェールソフト構造ではなく、フェールセーフ構造にする。
装置や機器を二重化するのではなく、重要な処理を稼働率が高い装置で処理する。
ハードウェアではなく、ソフトウェアによってフォールトトレラントを実現する。
解答
解説 まず、重要な高信頼システム設計法についてまとめておきます。

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

選択肢を順に見ていきます。
選択肢ア:フォールトトレラントでは、システムを複数台用意して冗長化します。(正解)
選択肢イ:フェールセーフよりもフェールソフトの方が信頼性の向上になります。
選択肢ウ:装置の二重化は信頼性向上の重要な要素です。
選択肢エ:フォールトトレラントには、ハードウェアの信頼性向上も重要です。

問14 MTBFが21万時間の磁気ディスク装置がある。この装置100台から成る磁気ディスクシステムを1週間に140時間運転したとすると、平均何週間に1回の割合で故障を起こすか。ここで、磁気ディスクシステムは、信頼性を上げるための冗長構成は採っていないものとする。
13
15
105
300
解答
解説 まず、このシステム全体のMTBFは21万時間/100台=2100時間となります。1週間で140時間運転するため、2100/140=15となり、平均15週に1度故障するといえます。

問15 キャパシティプランニングにおける作業を、実施する順序に並べたものはどれか。

〔作業項目〕
@ CPU増設、磁気ディスク増設、メモリ増設を検討する。
A 応答時間、システム資源の要求量などの増加から、システム能力の限界時期を検討する。
B 稼働状況データ、磁気ディスク使用量、トランザクション数などの基礎数値を把握する。
C 端末増設計画、利用者数の増加などを検討する。
A、C、B、@
B、A、C、@
B、C、A、@
C、A、@、B
解答
解説 キャパシティプランニングとは、要求される機能から性能や容量を見積もることをいいます。キャパシティプランニングは、現状の把握→今後の予想→限界時期の予想→増設の検討となります。よって、選択肢ウのような流れになります。

問16 コンピュータシステムのベンチマークテストの説明として、最も適切なものはどれか。
1命令の実行に要する平均時間から、コンピュータの性能を測る。
システムが連続して稼働する時間の割合を測定し、他の製品と比較する。
想定されるトランザクション量にシステムが耐えられるかどうかを判定する。
測定用のソフトウェアを実行し、システムの処理性能を数値化して、他の製品と比較する。
解答
解説 ベンチマークテストは、標準的なプログラムを実行してそれにかかった時間や精度などで、そのコンピュータの性能を(原則としては相対的に)評価します。代表的なテストとしては、SPECint(整数の演算)やSPECfp(浮動小数点の演算)などがあります。

問17 メモリリークの説明として、適切なものはどれか。
OSやアプリケーションのバグなどが原因で、動作中に確保した主記憶が解放されないことであり、これが発生すると主記憶中の利用可能な部分が減少する。
アプリケーションの同時実行数を増やした場合に、主記憶容量が不足し、処理時間のほとんどがページングに費やされ、スループットの極端な低下を招くことである。
実行時のプログラム領域の大きさに制限があるときに、必要になったモジュールを主記憶に取り込む手法である。
主記憶で利用可能な空き領域の総量は足りているのに、主記憶中に不連続で散在しているので、大きなプログラムをロードする領域が確保できないことである。
解答
解説 メモリリークとは、プログラマなどのミスにより、取得したメインメモリが開放されず、徐々に使用できるメモリ量が減っていく現象です。

選択肢イは、スプーリングの説明です。
選択肢ウは、オーバーレイの説明です。
選択肢エは、フラグメンテーションの説明です。

問18 優先度に基づくプリエンプティブなスケジューリングを行うリアルタイムOSで、二つのタスクA,Bをスケジューリングする。Aの方がBより優先度が高い場合にリアルタイムOSが行う動作のうち、適切なものはどれか。
Aの実行中にBに起動がかかると、Aを実行可能状態にしてBを実行する。
Aの実行中にBに起動がかかると、Aを待ち状態にしてBを実行する。
Bの実行中にAに起動がかかると、Bを実行可能状態にしてAを実行する。
Bの実行中にAに起動がかかると、Bを待ち状態にしてAを実行する。
解答
解説 プリエンプティブ方式とは、現在主流となっているOSがCPUの割り当てを管理し、タイマーなどを利用しながらマルチタスクを実現する方式です。一方でアプリケーションが自発的に空き時間を解放することによってマルチタスクを実現する方式をノンプリエンプティブ方式といいます。

Aの実行中にBが起動されても、Aの方が優先度が高いため、Aの実行を続け、Bを実行可能状態にします。
Bの実行中にAが起動されると、Aの方が優先度が高いため、Bの実行を中断し実行可能状態とし、Aを実行します。

問19 直接編成ファイルにおけるレコードのキー値を格納アドレスに変換したハッシュ値の分布として、理想的なものはどれか。
一様分布
幾何分布
二項分布
ポアソン分布
解答
解説 ハッシュ関数がもつべき分布特性は、できるだけ均等に値を出力する(できるだけばらばらになる)ことです。よって一様分布(すべての起きる確率が一定)で近似されることが望ましいといえます。よって、2項分布、正規分布、ポアソン分布のように偏りがあるとハッシュ値に衝突が起こりやすくなります。

問20 コンパイル済のオブジェクトコードがサーバに格納されていて、クライアントからの要求によってクライアントへ転送されて実行されるプログラムはどれか。
アプレット
サーブレット
スクリプト
スレッド
解答
解説 Javaに関する重要な用語をいくつか下にまとめておきます。

JavaScript:web上で用いられるスクリプト言語(プログラム言語のJavaとは互換性がなく、基本的に別物)
Javaアプリケーション:単独で動作する一般的なJavaで書かれたプログラム
Javaアプレット:サーバからクライアントにダウンロードして動作するJavaのプログラム
Javaサーブレット:サーバ上で動作するものをJavaのプログラム
JavaBeans:再利用可能なようにを部品化されたJavaのコンポーネント、あるいはその技術仕様

なお、スレッドとは、プロセスをさらに分割した、(並列処理などの)最小実行単位のことです。