平成21年度 秋期 応用情報技術者試験 問1−20 問題編




このページは

応用情報

(応用情報技術者試験)

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

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


問1 2進数の表現で、2の補数を使用する理由はどれか。
値が1のビット数を数えることで、ビット誤りを検出できる。
減算を、負数の作成と加算処理で行うことができる。
除算を、減算の組合せで行うことができる。
ビットの反転だけで、負数を求めることができる。
解答
解説 2の補数とは、ビット反転したものに+1したものです。これにより、減算を加算で処理することができます。下に例を示します。

7−5
(111)−(101)=(111)+(011)=(1010)
これは3ビットで処理されるので、(010)=2となり、引き算ができたことがわかります。

選択肢アは、パリティの説明です。
選択肢エは、1の補数の説明です。

問2 論理和、論理積、排他的論理和の結合法則の成立に関する記述として、適切な組合せはどれか。
画像(問2ans)を表示できません
解答
解説

数学的な立場から考察すると、ブール代数は集合論で言うところの『束(そく)』を形成するので、同じ演算子であれば結合法則は必ず法則だといえます。もしも、分からなければ真理値表を書いてみるのもいいでしょう。

問3 0〜20kHzの帯域幅のオーディオ信号をディジタル信号に変換するのに必要な最大のサンプリング周期を標本化定理によって求めると、何マイクロ秒か。
2.5
25
50
解答
解説 まず、アナログデータ(時間も振幅も連続)をディジタルデータに変換するためには、標本化→量子化→符号化という作業を行います。各作業を簡単に以下にまとめます。

標本化:時間を離散化する。
量子化:振幅を離散化する。
符号化:量子化したデータを特定の符号に対応付けする。

標本化定理とは、『標本化において、アナログ信号をディジタル信号に変換し、もとに戻す際に完全にもとのアナログ信号を復元するためには、もとの最大周波数の2倍でサンプリングするとよい』というものです。つまり、20kHzの2倍40kHzで標本化するといいので、1/40×1000=0.025×10-3=25×10-6=25マイクロ秒となります。

問4 誤り検出方式であるCRCに関する記述として、適切なものはどれか。
検査用のデータは、検査対象のデータを生成多項式で処理して得られる1ビットの値である。
受信側では、付加されてきた検査用のデータで検査対象のデータを割り、余りがなければ送信が正しかったと判断する。
送信側では、生成多項式を用いて検査対象のデータから検査用のデータを作り、これを検査対象のデータに付けて送信する。
送信側と受信側では、異なる生成多項式が用いられる。
解答
解説 CRC(Cyclic Redundancy Check:巡回冗長検査)とは、送信列から生成多項式とよばれる式をつくり、送信側で余りがを加え、受信側で計算式の余りが0かどうかを調べるものです。生成多項式は同じでなければ正しいデータを得られません。

問5 n個の要素x1,x2,・・・,xnから成る連結リストに対して、新たな要素xn+1の末尾への追加に要する時間をf(n)とし、末尾の要素xnの削除に要する時間をg(n)とする。nが非常に大きいとき、実装方法1と実装方法2におけるg(n)/f(n)の挙動として、適切なものはどれか。

[実装方法1]
先頭のセルを指すポインタ型の変数frontだけをもつ。

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


[実装方法2]
先頭のセルを指すポインタ型の変数frontと、末尾のセルを指すポインタ型の変数rearを併せもつ。

画像(問5_2)を表示できません
画像(問5ans)を表示できません
解答
解説 まず、n番目への要素の追加と要素の削除で行われる操作を整理します。(nが最後だという仮定の場合です)

n+1番目への要素の追加:nのポインタをn+1にする。n+1のポインタをTail(あるいはNull)にする。
n番目の要素の削除:n−1のポインタをTail(あるいはNull)にする。

これを基に、計算します。
@:実装方法1の場合
n番目もn−1番目も先頭からたどっていくので、どちらもn程度のオーダがかかるといえます。
よって、オーダはn/n=1となります。

A:実装方法2の場合
n番目へはnearからたどれるので、追加へのオーダは1となります。しかし、n−1へは先頭からたどるしかないので、オーダはnとなります。
よって、オーダはn/1=nとなります。

また、リストには、単方向リストと双方向リストがあり、下に図示します。(今回のリストが双方向なら実装方法2でも1になるといえます。)

リストを表示できません

問6 流れ図で表される処理を複数回実行した場合、途中に出現し得る実行順序はどれか。ここで、二重線は並列処理の同期を表す。

画像(問6)を表示できません
B → A → B → A
B → X → A → Y
Y → B → A → Y
Y → X → B → A
解答
解説 一つずつ検証していきます。(便宜上A,側Bを左側、X、Y側を右側といいます。)

選択肢ア:初期条件として左側がBの直前・右側が同期線の直前とすると、B→同期→A→BでAを処理できません。
選択肢イ:初期条件として左側がBの直前・右側が同期線の直前とすると、B→同期→X→A→Yで処理ができます。
選択肢ウ:初期条件として左側がBの直前・右側がYの直前とすると、Y→B→同期→AでYが処理できません。
選択肢エ:初期条件として左側が同期線の直前・右側がYの直前とすると、Y→Xで処理ができません。

問7 Linuxシステムにおいて、静的ライブラリと比較した場合の共有ライブラリの特徴はどれか。
実行可能ファイルのサイズが大きくなる。
実行時のメモリの使用効率が良い。
ライブラリの修正後、それを利用するプログラムの再コンパイルが必要である。
リンク時のオーバヘッドが小さい。
解答
解説 共有ライブラリとは、複数のプログラムから同時に利用することができるものです。一方静的ライブラリは、プログラムがコンパイルされるときなど事前に準備されるライブラリです。

実行サイズは対して変わりませんが、プログラムごとにライブラリを用意する必要がない(共有ライブラリが1つあればいい)ので、実行時の使用効率はいいといえます。動的にプログラムが利用するので、再コンパイルは必要ありません(静的ライブラリは必要です)が、リンク時のオーバヘッドが大きいという特徴があります。

問8 XML文章を、別の文章形式をもつXML文章やHTML文章などに変換するための仕様はどれか。
CSS
DTD
XLink
XSLT
解答
解説 それぞれの用語をしたにまとめます。

CSS(Cascading Style Sheets)は、HTMLなどで記述されたページを装飾するのに利用されます。
DTD(Document Type Definition:文書型定義)は、マークアップ言語において、文章構造を定義するための言語です。
XLink(XML Linking Language:XMLリンク付け言語)は、XMLドキュメント同士のリンクを定義するための仕様です。
XSLT(XSL Transformations)は、W3Cにより標準化されたXML文書の変換用言語です。

問9 パイプラインの深さをD、パイプラインピッチをP秒とすると、I個の命令をパイプラインで実行するのに要する時間を表す式はどれか。ここで、パイプラインの各ステージは1ピッチで処理されるものとし、パイプラインハザードについては、考慮しなくてよい。
(I+D)×P
(I+D−1)×P
(I×D)+P
(I×D−1)+P
解答
解説 まず、パイプラインの例を下に示します。

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

パイプラインの深さは、分かれた段階の個数で、上の例では4です。
パイプラインピッチとは、1つの段階にかかる時間です。

実際に値を入れて後から一般化します。

1個目の命令は、D×Pで終了します。
2個目の命令は、(D+1)×Pで終了します。
3個目の命令は、(D+2)×Pで終了します。

I個目の命令は、(D+I−1)×Pで終了します。

よって、選択肢イが正解となります。(Iが十分に大きければ選択肢アに収束します)

なお、パイプラインハザードとは、依存関係や分岐命令などによってパイプラインの順番どおりに処理されないような状況をいいます。

問10 キャッシュメモリにおけるダイレクトマップ方式の説明として、適切なものはどれか。
アドレスが連続した二つ以上のメモリブロックを格納するセクタを、キャッシュ内の任意のロケーションに割り当てる。
一つのメモリブロックをキャッシュ内の単一のロケーションに割り当てる。
メモリブロックをキャッシュ内の任意のロケーションに割り当てる。
メモリブロックをキャッシュ内の二つ以上の配置可能なロケーションに割り当てる。
解答
解説 キャッシュメモリはデータをライン(あるいはブロック)と呼ぶある程度まとまった単位で管理します。
例えば4ビットを1つのラインとしてまとめて管理する場合は、その上位ビットを保存しておきます。この上位のアドレスをフレームアドレス、下位のアドレスをエントリアドレスといいます。これによりフレームアドレスをまず検索し、その後エントリアドレスを検索することで、高速化できます。
(例:10100000〜10101111は、1010を上位ビットとして保存しておきます。)
このフレームアドレスバッファが複数ある場合は、複数のデータを格納できます。このときのバッファの個数をセット数(ウェイ)と呼びます。このような構造により、局所的に連続したデータにアクセスする場合に高速に処理できます。

これを踏まえて、キャッシュメモリの方式を下にまとめます。

ダイレクトマッピング方式:メモリ空間と1対1で割り当てる方式。すべてのメモリ領域を1対1でカバーするのでヒット率が低い(選択肢イ)
フルアソシアティブ方式:任意のメモリ空間と対応付ける方法。使用率が高いところを自由に持ってこれるので、ヒット率が高い反面オーバヘッドが大きい(選択肢ウ)
セットアソシアティブ方式:上の二つの間のような方法。ある程度区切った空間を自由に対応付けることができる。通常セット数nに対して、nウェイセットアソシアティブという(選択肢エ)

問11 キャッシュメモリのアクセス時間が10ナノ秒、主記憶のアクセス時間が60ナノ秒、キャッシュメモリのヒット率が90%であるときの、実効アクセス時間は何ナノ秒か。
15
25
35
55
解答
解説 キャッシュメモリの実効アクセス速度は、キャッシュメモリのアクセス時間×ヒット率+主記憶のアクセス時間×(1−ヒット率)となります。

つまり、10n×0.9+60n×0.1=9+6=15ナノ秒となります。

問12 USB2.0の特徴として、適切なものはどれか。
CPUと内臓磁気ディスクドライブ、DVDドライブなどを接続するためのATAインタフェース規格の一つである。
PCと磁気ディスク装置などを接続するためのインタフェース規格の一つであり、別名FireWireとも呼ばれる。
データ転送速度が最大のモードは、ハイスピードモードである。
データ転送速度が最大のモードは、フルスピードモードである。
解答
解説 USB(Universal Serial Bus)は現在最も主流な周辺機器をパソコンに接続するインタフェースの一種です。中でもUSB2.0というのが最も主流で、従来のUSB1.1で利用できたロースピードモード、フルスピードモードに、ハイスピードモードを追加したものです。また、転送モードも4つあります。下にまとめます。なお、USB1.1とUSB2.0は互換性があります。

ロースピードモード(1.5Mbps):キーボードやマウスなど
フルスピードモード(12Mbps):スキャナやプリンタなど
ハイスピードモード(480Mbps):大容量のHDDなど

コントロール転送:デバイスの設定・制御するためのもの
インタラプト転送:一定間隔でデータを転送するためのもの。キーボードやマウスな等に使われる
バルク転送:まとまったデータを一度に転送するためのもの。スキャナ等に使われる
アイソクロナス転送:連続的、周期的なデータ転送するためのもの。ビデオやオーディオ等に使われる。

問13 液晶ディスプレイの特徴として、適切なものはどれか。
電圧を加えると発行する有機化合物を用いる。
電子銃から発射された電子ビームが蛍光体に当たり発光する。
光の透過を画素ごとに制御し、カラーフィルタを用いて色を表現する。
放電によって発生する紫外線と蛍光体を利用する。
解答
解説 ディスプレイに関する用語を以下にまとめます。

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

問14 現状のHPC(High Performance COmputing)マシンの構成を、次の条件で更新することにした。更新後の、ノード数と総理論ピーク演算性能はどれか。ここで、総理論ピーク演算性能は、コア数に比例するものとする。

[現状の構成]
(1) 一つのコアの理論ピーク演算性能は10GFLOPSである。
(2) 一つのノードのコア数は8個である。
(3) ノード数は1,000である。

[更新条件]
(1) 一つのコアの理論ピーク演算性能を現状の2倍にする。
(2) 一つのノードのコア数を現状の2倍にする。
(3) 総コア数を現状の4倍にする。
画像(問14ans)を表示できません
解答
解説 順番に計算していきます。

(1)より、1つのコアの理論ピーク演算性能を現在の2倍、つまり10×2=20GFLOPSになります。
(2)より、1つのノードにあるコア数を現状の2倍、つまり8×2=16個になります。
(3)より、総コア数は、現在1000ノード×8個で8000個であり、4倍にするので8000×4=32000個になります。

以上のことからノード数と総理論ピーク演算性能を計算します。
まず、ノード数は全体のコア数が32000個に対して、1つのノードに16個接続できるので、32000/16=2000ノードとなります。、 次に、総理論ピーク演算性能は、コア数に比例するとあるので、32000×20=640000GFLOPS=640TFLOPSとなります。

問15 フェールセーフの考え方として、適切なものはどれか。
システムに障害が発生したときでも、常に安全側にシステムを制御する。
システムの機能に異常が発生したときに、すぐにシステムを停止しないで機能を縮退させて運用を継続する。
システムを構成する要素のうち、信頼性に大きく影響するものを複数備え、システムの信頼性を高める。
不特定多数の人が操作しても、誤動作が起こりにくいように設計する。
解答
解説 重要なシステム設計法についてまとめておきます。

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

選択肢アがフェールセーフ。選択肢イがフェールソフト。選択肢ウがフォールトアボイダンス。選択肢エがフールプルーフの説明です。

問16 オンラインシステムの端末数と平均応答時間の関係を表したグラフとして、適切なものはどれか。ここで一定時間内に1台の端末から到着する平均トランザクション数は一定とする。また、それぞれのグラフの特徴が分かりやすいように補助線(点線)を加えてある。
画像(問16ans)を表示できません
解答
解説 サーバの処理能力やネットワークの転送量の限界までは平均応答時間は変化しません。その後、限界を超えると台数に比例して応答時間が長くなっていきます。これをグラフにすると選択肢エのようになります。

問17 2台のプリンタがあり、それぞれの稼働率が0.7と0.6である。この2台のいずれか一方が稼動していて、他方が故障している確率は幾らか。ここで2台のプリンタの稼動状態は独立であり、プリンタ以外の要因は考慮しないものとする。
0.18
0.28
0.42
0.46
解答
解説 下のように4つの場合に分けると分かりやすいです。

@両方とも稼動している確率:0.7×0.6=0.42
A稼働率0.7のプリンタが停止し、もう一方が稼動している確率:(1−0.7)×0.6=0.3×0.6=0.18
B稼働率0.6のプリンタが停止し、もう一方が稼動している確率:0.7×(1−0.6)=0.7×0.4=0.28
C両方とも停止している確率:(1−0.7)×(1−0.6)=0.3×0.4=0.12

問題で問われているのはA+Bのことなので、0.18+0.28=0.46となります。(@+A+B+C=1になることも確認してください)

問18 制御系の組込みシステムで使用されるリアルタイムOSの特徴として、適切なものはどれか。
MMUによって仮想記憶制御を行い、データの仮想化を行わなければならない。
タスク生成は主に静的に行う。
ファイルマネージャ及びメモリプロテクション機能は必須である。
ラウンドロビン方式のスケジューリングを用いてシステム全体のスループットの向上を図る。
解答
解説 制御系のリアルタイムOSは決められた作業を上から下に行うようなものではなく、ボタンが押されたら特定の出力をするような『イベント』を検出してただちに動作する必要があります。そのために、事前にイベントを仕掛けておく(タスクを生成する)必要があります。(もちろん動的なものもないわけではありません)

MMU(Memory Management Unit:メモリ管理ユニット)とは、CPUの要求するメモリアクセスを管理するハードウェアですが、仮想記憶は低速なので使用しません。また、ファイルマネージャはもちろん、メモリプロテクションも必須ではありません。制御はラウンドロビンよりも、イベントドリブンによる割込みの制御が主流です。

問19 リアルタイムOSのマルチタスク管理機能において、タスクAが実行状態から実行可能状態へ遷移するのはどの場合か。
タスクAが入出力要求のシステムコールを発行した。
タスクAが優先度の低いタスクBに対して、メッセージ送信を行った。
タスクAより優先度の高いタスクBが実行状態となった。
タスクAより優先度の高いタスクBが待ち状態となった。
解答
解説 まず、タスクの3つの状態を下に図示します。

状態遷移を表示できません

選択肢アは、RUN→WAITになります。
(システムコールとは、OSのカーネルに処理を依頼することです。一般的に、入出力はOSが管理しているので、システムコールを利用します。)
選択肢イは、メッセージ送信により、タスクBの優先度が上がらない限りRUNのままです。
選択肢ウは、RUN→READYになります。
選択肢エは、優先度が高くてもREADYでない限り遷移は起こらずRUNのままです。

問20 UNIXではファイルを、通常ファイル、ディレクトリファイル及び特殊ファイルの3種類に分類している。ディレクトリファイルの説明として、適切なものはどれか。
磁気ディスクなどの入出力装置にアクセスするためのファイル
テキスト、オブジェクトコード、画像データなどを格納するためのファイル
ファイル名とファイルの実体を対応付けるためのファイル
複数のパスから一つのファイルを参照できるようにするためのファイル
解答
解説 まず、3つのファイルを下にまとめます。

通常ファイル:一般的なデータが格納されているファイル。テキストファイルだけではなく、実行ファイルなども通常ファイルに分類されます。
ディレクトリファイル:ディレクトリを表すファイル。ファイルを管理するために、階層的に用いられます。(Windowsなどで使われるディレクトリと同じです)
特殊ファイル:デバイスファイルとも呼び、入出力装置をファイルとみなして、ファイルのようにアクセスできるようにしたものです。

選択肢アは、特殊ファイルの説明です。
選択肢イは、通常ファイルの説明です。
選択肢ウは、ディレクトリファイルの説明です。
選択肢エは、通常ファイル(シンボリックリンク、ショートカット)の説明です。