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




このページは

基本情報

(基本情報技術者試験)

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

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




問1 8ビットの2進数11010000を右に2ビット算術シフトしたものを、00010100から減じた値はどれか。ここで、負の値は2の補数表現によるものとする。
00001000
00011111
00100000
11100000
解答
解説 まず、論理シフトと算術シフトについてまとめます。
論理シフト:符号を無視して、全体をシフトします。
算術シフト:符号ビットを考慮し、空いた部分に符号と同じビットを詰めます。

解法には、2進数のまま計算する方法と10進数に変換して計算する方法が考えられます。 ■2進数のまま計算する方法
11010000を右に2ビット算術シフトをすると11110100となります。
対象から減じるために2の補数の加算に変換すると、2の補数=ビット反転+1=00001011+1=00001100
00010100+00001100=00100000となります。

■10進数に変換して計算する方法
まず、2の補数で表現されている11110100の絶対値を考えます。2の補数は2回計算すると元の値にもどるので、111101002の補数をとると00001011+1=00001100なので、8+4=12となるため、、元の値は−12であることが分かります。
減算対象は、0010100なので、16+4=20です。
よって、20−(−12)=20+12=32となり、2進数に戻し00100000が正解であることがわかります。

問2 与えられた正の整数x0、x1(x0>x1)の最大公約数を、次の手順で求める。x0=175、x1=77の場合、手順(2)は何回実行するか。ここで“A→B”は、AをBに代入することを表す。

【手順】
(1) 2→i
(2) xi-2をxi-1で割った剰余→xi
(3) xi=0ならばxi-1を最大公約数として終了する。
(4) i+1→iとして(2)に戻る。
解答
解説 順番に計算していきます。

1回目の(1):2→i
1回目の(2):175÷77の余り21をx2とする。
1回目の(3):x2は0ではないので、終了しない。
1回目の(4):3→i
2回目の(2):77÷21の余り14をx3とする。
2回目の(3):x3は0ではないので、終了しない。
2回目の(4):4→i
3回目の(2):21÷14の余り7をx4とする。
3回目の(3):x4は0ではないので、終了しない。
3回目の(4):5→i
4回目の(2):14÷7の余り0をx5とする。
4回目の(3):x5は0なので、終了する。

よって、(2)は4回実行されます。

問3 探索方法とその実行時間のオーダの適切な組合せはどれか。ここで、探索するデータの数をnとし、ハッシュ値が衝突する(同じ値になる)確率は無視できるほど小さいものとする。また、実行時間のオーダがn2であるとは、n個のデータを処理する時間がcn2(cは定数)で抑えられることをいう。
画像(問3ans)を表示できません
解答
解説 3つのオーダについてまとめると下のようになります。

2分探索:1回で対象を半分にするので、log2
線形探索:1つずつN個を探すので、N
ハッシュ探索:関数で場所を特定するので、衝突が起こらない限り、1

問4 英字の大文字(A〜Z)と数字(0〜9)を同一のビット数で一意にコード化するには、少なくとも何ビットが必要か。
解答
解説 A〜Zまでは26種類、0〜9までは10種類のコードがあるため、36種類を表現できる必要があります。1ビットは0か1で2つの情報を表せます。nビットは以下のように2nの情報を表現できます。

1ビット→2種類
2ビット→4種類
3ビット→8種類
4ビット→16種類
5ビット→32種類
6ビット→64種類

よって、5ビットでは表現しきれないので、6ビットとなります。

問5 四つのデータA,B,C,Dがこの順に入っているキューと空のスタックがある。手続きpop_enq,deq_pushを使ってキューの中のデータをD,C,B,Aの順に並べ替えるとき、deq_pushの実行回数は最少で何回か。ここで、pop_enqはスタックから取り出したデータをキューに入れる操作であり、deq_pushはキューから取り出したデータをスタックに入れる操作である。
解答
解説 まず、スタックとキューのデータ構造を以下の図に示します。

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

それでは、入れ替えをしていきます。(左側を先頭とします。)
キュー:A,B,C,D
スタック:

deq_push(A)
キュー:B,C,D
スタック:A

deq_push(B)
キュー:C,D
スタック:B、A

deq_push(C)
キュー:D
スタック:C,B,A

pop_enq(C) キュー:D,C
スタック:B,A

pop_enq(B) キュー:D,C,B
スタック:A

pop_enq(A) キュー:D,C,B,A
スタック:

よって、deq_pushもpop_enqを3回ずつ行われます。

問6 昇順に整列済みの配列要素A(1)、A(2)、・・・A(n)から、A(m)=kとなる配列要素A(m)の添字mを2分探索法によって見つける処理を図に示す。終了時点でm=0である場合は、A(m)=kとなる要素は存在しない。図中のaに入れる式はどれか。ここで、“/”は、小数点以下を切り捨てる除算を表す。

画像(問6)を表示できません
(x+y)→m
(x+y)/2→m
(x−y)/2→m
(y−x)/2→m
解答
解説 一般的な2分探索に関する問題です。2分探索を行うデータはソートされていることが前提です。

xが探索範囲の下限、yが探索範囲の上限をあらわしています。mが探索範囲の中間をあらわしています。

よって、探索値<mだった場合は、探索範囲は下半分。探索値>mだった場合は、探索範囲は上半分となります。この時にこのmをどうやって更新するかという問題です。判定の後に上限や下限が更新されるので、xとyを足して2で割った値が中間となります。

問7 n!の値を、次の関数F(n)によって計算する。乗算の回数を表す式はどれか。

画像(問7)を表示できません
n−1
2
n!
解答
解説 n=3として、値を見ていきます。
F(3)=3×F(2)
 =3×2×F(1)
 =3×2×1×F(0)
 =3×2×1×1

よって、n回の乗算が行われています。

問8 XMLの特徴として、最も適切なものはどれか。
XMLでは、HTMLに、Webページの表示性能の向上を主な目的とした機能を追加している。
XMLでは、ネットワークを介した情報システム間のデータ交換を容易にするために、任意のタグを定義することができる。
XMLで用いることができるスタイル言語は、HTMLと同じものである。
XMLは、SGMLを基に開発されるHTMLとは異なり、独自の仕様として開発された。
解答
解説 まず、代表的な3つのマークアップ言語をまとめます

HTML:インターネットで最も多く用いらているマークアップ言語
SGML:HTMLやXMLの元となった、国際標準のマークアップ言語
XML:ユーザ自身がタグを定義することができるマークアップ言語

転送には基本的に、HTTPが使われます。さらに、最近はXHTMLというのもあります

問9 割り込み発生時のプロセッサの処理手順はどれか。

@ プログラムレジスタ(プログラムカウンタ)などの退避
A ユーザモードから特権モードへの移行
B 割込み処理ルーチンの開始番地の決定
C 割込み処理ルーチンの実行
@ → B → C → A
@ → C → A → B
A → @ → B → C
A → B → C → @
解答
解説 割込み処理は、大きく分けて、現在の情報の退避、割込み情報の構築と実行、退避した情報の復元という順番で行われます。

よって、レジスタを退避させるための特権モードへの移行(A)→レジスタ類の退避(@)→アドレスの決定(B)→実行(C)が正しい順といえます。

なお、割込み時には優先順位が考慮され、優先順位の低い割込みできないようになっています。

問10 主記憶のアクセス時間が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%)となります。


問11 並列にアクセス可能な複数台の時期ディスクに、各ファイルのデータを一定サイズのブロックに分割して分散配置し、ファイルアクセスの高速化を図る手法はどれか。
ディスクアットワンス
ディスクキャッシュ
ディスクストライピング
ディスクミラーリング
解答
解説 選択肢の内容を下にまとめます。ディスクとついていますが、全く違う用語です。

選択肢ア:CD−Rなどへの書き込み方式の一つ。データをまとめて一度に書き込む方式、互換性が高いが後から追記ができない。
選択肢イ:主記憶とハードディスクのアクセス速度の差を埋めるために用いられるメモリ
選択肢ウ:複数のディスクに並列に書き込み、アクセス速度を向上させる(RAID−0に相当)
選択肢エ:複数のディスクに同じデータを書き込み、信頼性を向上させる(RAID−1に相当

問12 96dpiのディスプレイに12ポイントの文字をビットマップで表示したい。正方フォントの縦は何ドットになるか。ここで、1ポイントは1/72インチとする。
12
16
解答
解説 dpi(dot per inch)とは、1インチ当たりどの程度のドットを表現できるかを表したものでプリンタやディスプレイの解像度を表す際の単位です。

まず、12ポイントとは、12×(1/72)=1/6インチです。つぎに、96dpiは1インチあたり96ビット表示できるので、96/6=16ビットとなります。

問13 3層クライアントサーバシステム構成で実現したWebシステムの特徴として、適切なものはどれか。
HTMLで記述されたプログラムをサーバ側で動作させ、クライアントソフトはその結果を画面に表示する。
業務処理の変更のたびに、Webシステムを動作させるための業務処理用アプリケーションを配布し、クライアント端末にインストールする必要がある。
業務処理はサーバ側で実行し、クライアントソフトはHTMLの記述に従って、その結果を画面に表示する。
クライアント端末には、サーバ側からのHTTP要求を待ち受けるサービスを常駐させておく必要がある。
解答
解説 サーバとはサービスを提供するもので、クライアントとはサービスを依頼する(受け取る)ものです。まず、2層と3層についてまとめます。

2層:サーバとクライアント
3層:プレゼンテーション層・ファンクション層(アプリケーション層)・データベース層

そして、プレゼンテーション層がクライアントに該当する部分で、ファンクション層とデータベース層がサーバに該当する部分になります。

最後に、主な機能は以下のようになります。
プレゼンテーション層:クライアントへのインタフェース部分
ファンクション層:データの加工
データベース層:データへのアクセス

上記を踏まえて、順に選択肢を見ていきます。
選択肢ア:HTMLはクライアントのブラウザ上の動作を記述するもので、サーバ上で動作するものではありません。
選択肢イ:Webシステムは、基本的にクライアントの動作環境としてブラウザを利用するため、専用のアプリケーションは不要です。
選択肢ウ:処理はサーバ側で動作し、結果をHTMLやJavaScriptで返し、クライアントはブラウザで確認します。(正解)
選択肢エ:サーバ側にクライアントからのHTTP要求を待ち受けるサービスを常駐させる必要があります。

問14 デュアルシステムの説明として、最も適切なものはどれか。
同じ処理を行うシステムを二重に用意し、処理結果を照合することで処理の正しさを確認する。どちらかのシステムに障害が発生した場合は、縮退運転によって処理を継続する。
オンライン処理を行う現用系と、バッチ処理などを行いながら待機させる待機系を用意し、現用系に障害が発生した場合は待機系に切り替え、オンライン処理を続行する。
待機系に現用系のオンライン処理プログラムをロードして待機させておき、現用系に障害が発生した場合は、即時に待機系に切り替えて処理を続行する。
プロセッサ、メモリ、チャネル、電源系などを二重に用意しておき、それぞれの装置で片方に障害が発生した場合でも、処理を継続する。
解答
解説 代表的な冗長化構造についてまとめます。メインで動作しているシステムを主系、サブで動作しているシステムを従系といいます。

デュアルシステムは:2台が常に同時に稼働していて結果を照合するシステム
デュプレックスシステム(ホットスタンバイ):2台を同時に稼働させておき、同期などを行い、いつでも従系が作業を引き継げるようにしておくシステム
デュプレックスシステム(ウォームスタンバイ):2台を同時に稼働させておき、従系を起動させておくが、同期は行わないシステム
デュプレックスシステム(コールドスタンバイ):1台のみ稼働させておき、主系が故障したときに従系に切り替えて処理を継続するシステム
シンプレックスシステムは:1台のみの単純なシステム。故障するとお終いです。

稼働率の比較はデュアルシステム > ホットスタンバイシステム > ウォームスタンバイ > コールドスタンバイシステム > シンプレクスシステムとなります。
なお、ホットスタンバイ、ウォームスタンバイ、コールドスタンバイの差は、一方が故障してから切り替えるまでのスピードの差によります。

他の選択肢のシステムは以下のようになります。
選択肢イは、デュプレックスシステムの説明です。
選択肢ウは、デュプレックスシステムのホットスタンバイの説明です。
選択肢エは、フォールトトレラントの説明です。

問15 図のような、稼働率Pのシステムで構成された多重化システム全体の稼働率を表す式はどれか。ここで、並列の部分は、どちらか一方が稼働していればよいものとする。

画像(問15)を表示できません
1−(1−P)(1−P22
P{1−(1−P)4
P{1−(1−P)22
P{1−(1−P22
解答
解説 以下のように段階的に求めていくと、P{1−(1−P22}となります。

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

問16 コンピュータシステムの信頼性に関する記述のうち、適切なものはどれか。
システムの遠隔保守は、MTTRを長くし、稼働率を向上させる。
システムの稼働率は、MTTRとMTBFを長くすることで向上する。
システムの構成が複雑なほど、MTBFは長くなる。
システムの予防保守は、MTBFを長くするために行う。
解答
解説 まず、2つの用語と稼働率をまとめます。

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

それでは、選択肢を順に見ていきます。
選択肢ア:遠隔保守はMTTRを短くし、稼働率を向上させます。
選択肢イ:MTTRを長くすることは稼働率の向上になりますが、MTBFを長くすることは稼働率の低下になります。
選択肢ウ:一般的にシステムの構成が複雑なほど、多くの要素が稼働していなければならないので、稼働率は低下します。
選択肢エ:予防保守は、事前に障害を避けるため、MTBFを長くし、稼働率を向上させます。(正解)

問17 タスクスケジューリング方式の説明のうち、特定のタスクがCPU資源の割当てを持ち続ける可能性が最も高いものはどれか。
各タスクの優先度を決めて、優先度が高い順に実行し、CPU割当てまでの待ち時間の長さに応じて優先度を徐々に上げていく。
各タスクを実行可能待ち行列に置かれた順に実行し、一定時間が経過したら実行を中断して実行可能待ち行列の最後尾に加える。
処理予定時間が最も短いタスクから順に処理を実行する。現在実行中の処理が終了するか、又は何らかの要因によって中断されたとき、次のタスクを開始する。
タスクがシステムに到着した順に実行可能待ち行列の最後尾に加え、常に実行可能待ち行列の先頭タスクにCPUを割り当てる。
解答
解説 それぞれのスケジューリング方式の待たされるタスクについて順に見ていきます。

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

いつまでも投入したジョブが実行されないことをスタベーションといいます。

問18 OSが記憶領域の割当てと解放を繰り返すことによって、細切れの未使用領域が多数できてしまう場合がある。この現象を何というか。
コンパクション
スワッピング
フラグメンテーション
ページング
解答
解説 選択肢の用語を以下にまとめます。
コンパクション:メモリコンパクションともいい、メインメモリ内を整理して、使用されていない領域を連続した領域にすること。
スワッピング:仮想記憶において,実主記憶と仮想記憶の間で行う入れ替えのこと。
フラグメンテーション:ファイルが断片化され、HDDの様々な部分に格納されること。これにより、ファイルの読み出しに余計に時間がかかる。
ページング:仮想記憶において、固定長のページという単位でデータを入れ替えたりすること。

問19 ページング方式の仮想記憶において、ページ置換えアルゴリズムにLRU方式を採用する。主記憶に割り当てられるページ枠が4のとき、ページ1,2,3,4,5,2,1,3,2,6の順にアクセスすると、ページ6をアクセスする場合で置き換えられるページはどれか。ここで、初期状態では主記憶にどのページも存在しないものとする。
解答
解説 まず、LRU(Least Recently Used)とは最近最も使われていないもの(使われてから最も時間が経過したもの)をページアウトして、新しいページを入れるというアルゴリズムです。これにのっとりトレースをしていきます。

@(1へアクセス)1
A(2へアクセス)1,2
B(3へアクセス)1,2,3
C(4へアクセス)1,2,3,4
D(5へアクセス)2,3,4,5(1がページアウト)
E(2へアクセス)3,4,5,2
F(1へアクセス)4,5,2,1(3がページアウト)
G(3へアクセス)5,2,1,3(4がページアウト)
H(2へアクセス)5,1,3,2
I(6へアクセス)1,3,2,5(5がページアウト)

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

問20 プログラムを構成するモジュールの結合を、プログラムの実行時に行う方法はどれか。
インタプリタ
オーバレイ
静的リンキング
動的リンキング
解答
解説 選択肢の用語を以下にまとめます。

インタプリタ:ソースコードを1行ずつ機械語に変換しながら実行するソフトウェア
オーバレイ:プログラムが大きくメインメモリ上に入らない場合に、機能(モジュール)ごとに交換しながらメインメモリに入れていく手法
静的リンキング:実行ファイルと必要なモジュールやライブラリをコンパイル時に結合すること
動的リンキング:実行ファイルと必要なモジュールやライブラリをプログラムの実行中に必要になったタイミングで結合すること