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




このページは

基本情報

(基本情報技術者試験)

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

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



問1 画像(問1)を表示できません
A・・C
・B+A・
(A+)・(+C)
+B)・(A+
解答
解説 この問題はド・モルガンの定理と呼ばれる以下のような変換法則を利用します。

(A+B)
(A・B)

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

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

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

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

問2 三つの実数X〜Zとそれぞれの近似値が次の場合、相対誤差の小さい順に並べたものはどれか。

画像(問2)を表示できません
X,Y,Z
Y,Z,X
Z,X,Y
Z,Y,X
解答
解説 誤差には、絶対誤差と相対誤差があります。
絶対誤差とは、真の値と測定値の差になりますが、これでは、『1と0』と『10000と10001』が同じ誤差になってしまうので、相対的な誤差を求めることが多いです。絶対誤差と相対誤差の計算式を下にまとめます。

絶対誤差|真の値−近似値| 相対誤差|真の値−近似値|/真の値

それでは、X,Y,Zの相対誤差を計算していきます。
X:|1.02−1|/1.02=0.02/1.02≒0.02/1=2%
Y:|1.97−2|/1.97=0.03/1.97≒0.03/2=1.5%
Z:|5.05−5|/5.05=0.05/5.05≒0.05/5=1%

よって、Z,Y,Xの順に相対誤差が小さいといえます。

問3 表は、文字A〜Eを符号化したときのビット表記と、それぞれの文字の出現確率を表したものである。1文字当たりの平均ビット数は幾らになるか。

画像(問3)を表示できません
1.6
1.8
2.5
2.8
解答
解説 1文字あたりの平均ビット長とは、1文字の出現確率とビット数を掛け合わせた平均(確率的な期待値)をいいます。

A:1ビット×0.5=0.5
B:2ビット×0.3=0.6
C:3ビット×0.1=0.3
D:4ビット×0.05=0.2
E:4ビット×0.05=0.2

よって、0.5+0.6+0.3+0.2+0.2=1.8となります。

問4 次の表は、文字列を検査するための状態遷移表である。検査では、初期状態をaとし、文字列の検査中の状態がeになれば不合格とする。

解答群で示される文字列のうち、不合格となるものはどれか。ここで、文字列は左端から検査し、解答群中の△は空白を表す。

画像(問4)を表示できません
+0010
−1
12.2
9.△
解答
解説 選択肢をひとつずつ追っていきます。

選択肢ア:a → c → b → b → b → b
選択肢イ:a → c → b
選択肢ウ:a → b → b → d → e
選択肢エ:a → b → d → a

よって、eで終わる選択肢ウが正解となります。

問5 空の2分探索木に、8,12,5,3,10,7,6の順にデータを与えたときにできる2分探索木はどれか。
画像(問5ans)を表示できません
解答
解説 2分探索木とは、すべてのノードについて、左の子の値≦親の値≦右の子の値となっているものを指します。(大小関係が逆の場合もあります)

この関係を崩さないようにデータを追加していくと以下のようになります。

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

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

問6 関数f(x,y)が次のように定義されているとき、f(775,527)の値は幾らか。ここで x mod yはxをyで割った余りを返す。

f(x,y):if y=0 then return x else return f(y,x mod y)
31
248
527
解答
解説 順番に追いかけていきます。

f(775,527):Y≠0なので、f(527,248)
f(527,248):Y≠0なので、f(248,31)
f(248,31 ):Y≠0なので、f(31,0)
f(31 ,0  ):Y=0なので、X=31が戻り値になる。

問7 次の流れ図は、1から100までの整数の総和を求め、結果を整数xに代入するアルゴリズムを示したものであるが、一部誤りがある。どのように訂正すればよいか。

画像(問7)を表示できません
@の処理を“0→x”にする。
Aの条件判定を“i:99”にする。
Bの処理を“x+i→i”にする。
Cの処理を“x+1→x”にする。
解答
解説 現状での流れ図を追跡していきます。

1→x
1→i

i=1≦100により下へ
x+i=1+1→x
i+1=1+1→i

i=2≦100により下へ
x+i=2+2→x
i+1=2+1→i

i=3≦100により下へ
x+i=4+3→x
i+1=3+1→i


これまでの流れで、iがループカウンタ、xが総和を求める変数だとわかります。
そして、1回目の条件で1+1=2となっています。この段階ではxは1になっていなければおかしいので、xの初期値が間違いであることに気づきます
よって、1→xではなく、0→xとするべきです。

問8 整列アルゴリズムの一つであるクイックソートの記述として、適切なものはどれか。
対象集合から基準となる要素を選び、これよりも大きい要素の集合と小さい要素の集合に分割する。この操作を繰り返すことで、整列を行う。
対象集合から最も小さい要素を順次取り出して、整列を行う。
対象集合から要素を順次取り出し、それまでに取り出した要素の集合に順序関係を保つように挿入して、整列を行う。
隣り合う要素を比較し、逆順であれば交換して、整列を行う。
解答
解説 代表的なソート法を下にまとめます。

挿入ソート:既に整列済みのデータ列の正しい位置に、データを追加する操作を繰り返していく
選択ソート:データ中の最小値を求め、次にそれを除いた部分の中から最小値を求める。この操作を繰り返していく
バブルソート:隣り合ったデータの比較と入替えを繰り返すことによって、小さな値のデータを次第に端の方に移していく
クイックソート:適当な基準値を選び、それより小さな値のグループと大きな値のグループにグループを分割する。この操作を繰り返していく
シェルソート:ある一定間隔おきに取り出した要素から成る部分列をそれぞれ整列し,更に間隔を詰めて同様の操作を行い,間隔が1になるまでこれを繰り返す
ヒープソート:未整列の部分を順序木に構成し、そこから最大値又は最小値を取り除いて既整列の部分に移す。これらの操作を繰り返して、未整列部分を縮めていく

選択肢イは選択ソート、選択肢ウは挿入ソート、選択肢エはバブルソートの説明です。

問9 外部割込みが発生するものはどれか。
仮想記憶管理での、主記憶に存在しないページへのアクセス
システムコール命令の実行
ゼロによる除算
入出力動作の終了
解答
解説 割り込み(Interrupt)とは、現在の処理を中断して、割り込んできた新しい処理を行うことをいいます。異常事態が発生した場合や、現在行っている処理よりも優先度の高い処理が発生し場合に割込みが発生します。

そして、割り込みは以下の2つに分類されます。
内部割込み(実行中のプログラムに係る割込み):オーバーフローやゼロによる除算、不正なメモリアドレスへのアクセス等
外部割込み(実行中のプログラムに関係のない割込み):I/Oの操作、ネットワークからのデータ受信、電源の異常等

問10 “LOAD GR,B,AD”はADが示す番地にベースレジスタBの内容を加えた値を有効アドレスとして、その有効アドレスが示す主記憶に格納されているデータを汎用レジスタGRにロードする命令である。

図の状態で、次の命令を実行したとき、汎用レジスタGRにロードされるデータはどれか。

LOAD GR,1,200

画像(問10)を表示できません
1201
1300
2200
2300
解答
解説 命令ではB=1,AD=200となっています。これを元に、問題文に追従しながら、アドレスを計算します。
ADが示す番地(200)にベースレジスタB(ベースレジスタ1)の内容(100)を加えた値を有効アドレス(200+100=300)として、その有効アドレスが示す主記憶に格納されているデータ(300番地に格納されている値は1300)をGRにロードする。

よって、GRには1300がロードされます。

問11 主記憶のアクセス時間60ナノ秒、キャッシュメモリのアクセス時間10ナノ秒のシステムがある。キャッシュメモリを介して主記憶にアクセスする場合の実効アクセス時間が15ナノ秒であるとき、キャッシュメモリのヒット率は幾らか。
0.1
0.17
0.83
0.9
解答
解説 ヒット率をaとして計算します。

10×a+60×(1−a)=15
10a+60−60a=15
50a=45

よって、a=0.9(90%)となります。

問12 メモリインタリーブの説明はどれか。
CPUと磁気ディスク装置との間に半導体メモリによるデータバッファを設けて、磁気ディスクアクセスの高速化を図る。
主記憶のデータの一部をキャッシュメモリにコピーすることによって、CPUと主記憶とのアクセス速度のギャップを埋め、メモリアクセスの高速化を図る。
主記憶へのアクセスを高速化するため、アクセス要求、データの読み書き及び後処理が終わってから、次のメモリアクセスの処理に移る。
主記憶を複数の独立したグループに分けて、各グループに交互にアクセスすることによって、主記憶へのアクセスの高速化を図る。
解答
解説 メモリインタリーブとは、主記憶を複数の独立したグループに分けて、各グループに交互にアクセスすることによって、主記憶へのアクセスの高速化を図るものです。以下の例ではアクセス幅が1の場合は3語分、アクセス幅が2の場合は6語分に同時にアクセスできます。

メモリインタリーブを表示できません

選択肢アは、ディスクキャッシュの説明です。
選択肢イは、キャッシュメモリの説明です。
選択肢ウの手法では、高速化できません。

問13 RFIDタグの特徴として、適切なものはどれか。
磁性体に記録された情報を接触によって読み取る。
赤外線を用いて情報を非接触で読み取る。
電磁波を用いて情報を非接触で読み取る。
バーコードで記録された情報を光学的に読み取る。
解答
解説 RFID(Radio Frequency Identification)とは、小型のICチップを無線で認識することにより、対象物を認識する技術です。非接触であり、バーコードに変わる技術として注目されています。汚れに強い上に、梱包の外からもデータを読み取ることができます。現在では図書館などの本の管理などで実用化され始めています。

選択肢アは、HDDや磁気カード等の説明です。
選択肢イは、IrDAの説明です。
選択肢エは、バーコードの説明です。

問14 アナログ音声信号を、サンプリング周波数44.1kHzのPCM方式でディジタル録音するとき、録音されるデータ量は何によって決まるか。
音声信号の最高周波数
音声信号の最大振幅
音声データの再生周波数
音声データの量子化ビット数
解答
解説 PCM(Pulse Code Modulation:パルス符号変調)とは音声などのアナログ信号をディジタル信号に変換する手法の一つです。
アナログデータ(時間も振幅も連続)をディジタルデータに変換するためには、標本化→量子化→符号化という作業を行います。各作業を簡単に以下にまとめます。

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

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

問15 コンピュータシステムの構成に関する記述のうち、密結合マルチプロセッサシステムを説明したものはどれか。
通常は一方のプロセッサは待機しており、本稼動しているプロセッサが故障すると、待機中のプロセッサに切り替えて処理を続行する。
複数のプロセッサが磁気ディスクを共用し、それぞれ独立したOSで制御される。ジョブ単位で負荷を分散することで処理能力を向上させる。
複数のプロセッサが主記憶を共用し、単一のOSで制御される。システム内のタスクは、基本的にどのプロセッサでも実行できるので、細かい単位で負荷を分散することで処理能力を向上させる。
並列に接続された2台のプロセッサが同時に同じ処理を行い、相互に結果を照合する。1台のプロセッサが故障すると、それを切り離して処理を続行する。
解答
解説 複数のCPUが主記憶やOS、データを共有する形態を密結合マルチプロセッサといいます。逆に、各々のCPUが占有の主記憶、OS、データをもち、バスで接続されている形態を疎結合マルチプロセッサといいます。

選択肢アは、デュプレックスシステムの説明です。
選択肢イは、疎結合マルチプロセッサシステムの説明です。
選択肢エは、デュアルシステムの説明です。

問16 装置aとbのMTBFとMTTRが表のとおりであるとき、aとbを直列に接続したシステムの稼働率は幾らか。

画像(問16)を表示できません
0.72
0.80
0.85
0.90
解答
解説 まずは、個々に計算してみましょう。稼働率はMTBF/(MTBF+MTTR)で求めます。
装置a:80/(80+20)=0.8
装置b:180/(180+20)=0.9

これらが直列に接続されているので0.8×0.9=0.72となります。

問17 システムの信頼性設計のうち、フールプルーフを採用した設計はどれか。
オペレータが不注意による操作誤りを起こさないように、操作の確認などに配慮した設計
システムの一部に異常や故障が発生したとき、その影響が小さくなるような設計
障害の発生を予防できるように、機器の定期保守を組み入れた運用システムの設計
装置を二重化し、一方が故障してもその装置を切り離してシステムの運用を継続できる設計
解答
解説 重要なシステム設計法についてまとめておきます。

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

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

問18 CPUが1台で、入出力装置(I/O)が同時動作可能な場合の二つのタスクA,Bのスケジューリングは図のとおりであった。この二つのタスクにおいて、入出力装置がCPUと同様に、一つの要求だけを発生順に処理するように変更した場合、両方のタスクが終了するまでのCPU使用率はおよそ何%か。

画像(問18)を表示できません
43
50
60
75
解答
解説 まずは、I/Oが重複しないようにスケジューリングを調整すると以下のようになります。

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

全体の時間は25で、タスクAのCPU使用時間は8、タスクBのCPU使用時間は7なので、(8+7)/25=0.6=60%となります。

問19 Webサーバとデータベースサーバ各1台で構成されているシステムがある。次の運用条件の場合、このシステムでは最大何TPS処理できるか。ここで、各サーバのCPUは、1個とする。

[運用条件]
(1) トランザクションは、Webサーバを経由し、データベースサーバでSQLが実行される。
(2) Webサーバでは、1トランザクション当たり、CPU時間を1ミリ秒使用する。
(3) データベースサーバでは、1トランザクション当たり、データベースの10データブロックにアクセスするSQLが実行される。1データブロックのアクセスに必要なデータベースサーバのCPU時間は、0.2ミリ秒である。
(4) CPU使用率の上限は、Webサーバが70%、データベースサーバが80%である。
(5) トランザクション処理は、CPU時間だけに依存し、Webサーバとデータベースサーバは互いに独立して処理を行うものとする。
400
500
700
1,100
解答
解説 まず、TPS(Transaction Per Second)とは、1秒間に処理できるトランザクションの量を表す単位です。それでは、WebサーバとデータベースサーバのTPSを計算していきます。

Webサーバ:1トランザクション当たり1ミリ秒なので、1秒間に1000件処理できます。しかし、CPU使用率上限が70%なので、700TPSとなります。
データベースサーバ:1トランザクション当たり10データブロックにアクセス、1データブロック当たり0.2ミリ秒。よって、1トランザクション当たり2ミリ秒なので、1秒間に500件処理できます。しかし、CPU使用率の上限が80%なので、400TPSとなります。

Webサーバでは1秒間に700件のトランザクションを処理できますが、データベースサーバでは1秒間に400件しか処理できません。
よって、データベースサーバがボトルネックとなり、全体では400TPSとなります。

問20 ページング方式の説明として、適切なものはどれか。
仮想記憶空間と実記憶空間を、固定長の領域に区切り、対応付けて管理する方式
主記憶装置の異なった領域で実行できるように、プログラムを再配置する方式
主記憶装置を、同時に並行して読み書き可能な複数の領域に分ける方式
補助記憶装置に、複数のレコードをまとめて読み書きする方式
解答
解説 ページングとは、仮想記憶において固定長のページという単位でデータを入れ替えたりすることをいいます。

選択肢イは、ダイナミックリロケーションの説明です。
選択肢ウは、メモリインタリーブの説明です。
選択肢エは、ブロック化の説明です。