平成22年度 春期 応用情報技術者試験 問1−20 解答編




このページは

応用情報

(応用情報技術者試験)

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

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



問1 0以上255以下の整数nに対して、

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


と定義する。next(n)と等しい式はどれか。ここでx AND y及びx OR yは、それぞれxとyを2進数表現にして、けたごとの論理積及び論理和をとったものとする。
(n+1)AND 255
(n+1)AND 256
(n+1)OR 255
(n+1)OR 256
解答
解説 定義式をみると、0なら1、1なら2と1ずつ足していって255だったら0にもどるという。いわゆる256進カウンタであることがわかります。これを2進数で考えます。255とは11111111です。ここで1を加えると0になるので100000000が0になる処理を考えると選択肢アが正解だとわかります。

問2 図に示す16ビットの浮動小数点形式において、10進数0.25を正規化した表現はどれか。ここで、正規化は仮数部の最上位のけたが1になるように指数部と仮数部を調節する操作とする。

画像(問2)を表示できません
画像(問2ans)を表示できません
解答
解説 まず、(0.25)10を2進数になおすと(0.01)2となります。

ここで、仮数部が1になるように調節すると、
(0.1)×2-1となります。これを図の形式で表すと
符号:プラスなので、0
指数部:−1なので、2の補数を使い(0001)→(1110)→(1111)
仮数部:10000000000

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

問3 多数のクライアントが、LANに接続された1台のプリンタを共同利用するときの印刷要求から印刷完了までの所要時間を、待ち行列理論を適用して見積もる場合について考える。プリンタの運用方法や利用状況に関する記述のうち、M/M/1の待ち行列モデルの条件に反しないものはどれか。
一部のクライアントは、プリンタの空き具合を見ながら印刷要求をする。
印刷の緊急性や印刷量の多少にかかわらず、到着順に印刷する。
印刷待ち文章の総量がプリンタのバッファサイズを超えるときは、一時的に受付を中断する。
一つの印刷要求から印刷完了までの所要時間は、印刷の準備に要する一定時間と印刷量に比例する時間の合計である。
解答
解説 M/M/1モデルの最初のMはサービスを受けるものの到着頻度はポアソン分布に従うという意味で、次のMはサービス時間は指数分布に従うという意味で、最後の1は窓口の個数を表しています。図にすると以下のようになります。

MM1モデルを表示できません

なお、待ち行列には行列の長さは無限(サービスを受けに来たものはあふれない)という仮定があります。

選択肢ア:印刷要求はポアソン分布に従います。
選択肢イ:印刷は到着順に行います。(正解)
選択肢ウ:行列の長さは無限なので、中断はしません。
選択肢エ:所要時間は待ち時間とサービス時間の和となります。

問4 連立一次方程式

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


からxの項の係数、yの項の係数、及び定数項だけを取り出した表(行列)をつくり、基本操作(1)〜(3)のいずれかを順次施すことによって、解

画像(問4_2)を表示できません


が得られた。表(行列)が次のように左から右に推移する場合、同じ種類の基本操作が施された箇所の組合せはどれか。

画像(問4_3)を表示できません
aとb
aとc
bとc
bとd
解答
解説 このような処理を線形代数学等で一般的に用いられる『行列の基本変形』といいます。今回は知識や手法ではなく、同じ種類の操作を探すだけなので、気をつけてみていけば答えを求めることができます。

a:1行目を−2倍して2行目に加える。(3)の操作です。
b:1行目と2行目入れ替える。(2)の操作です。
c:1行目を−2倍して2行目に加える。(3)の操作です。
d:2行目を1/3倍する。(1)の操作です。

よって、aとcが同じ操作です。

なお、このような連立方程式をとくために作られた、係数と解の行列を拡大係数行列といいます。

問5 流れ図は、シフト演算と加算の繰返しによって2進整数の乗算を行う手順を表したものである。この流れ図中のa,bの組合せとして、適切なものはどれか。ここで、乗数と被乗数は符号なしの16ビットで表される。X,Y,Zは32ビットのレジスタであり、けた送りには論理シフトを用いる。最下位ビットを第0ビットと記す。

画像(問5)を表示できません
画像(問5ans)を表示できません
解答
解説 まず、プログラムをざっとみると、『とあるビットが1だったら、被乗算を答えに加え、なんらかのシフトをする』ことが分かります。このような場合には、実際に計算をしながら解をもとめるのが分かりやすいかと思います。X=(7)10=(111)2、Y=(5)10=(101)2を使って考えます。

仮にYの15ビット目が1かどうかを調べるとすると、しばらくの間0であることが考えられます。
すると、XやYが10ビット程度シフトされるので、7×5=35にはなりそうもありません。

そこで、Yの0ビット目が1かどうかを調べることにします。
Yの1ビット目は1なので、Z=7となります。

A:Xを左にシフト、Yを右にシフトすると、X=(1110)2=(15)10、Y=(11)2=(3)10となります。
B:Xを右にシフト、Yを左にシフトすると、X=(11)2=(3)10、Y=(1110)2=(24)10となります。

Bの場合は、Yの0ビット目は常に0になってしまうので、今後Zに加算されることはありません。よって、Bであることが分かります。

つまり、選択肢アが正解となります。

せっかくなので最後まで計算して見ます。
X=10、Y=3でYの0ビット目は0なので、加算は行いません。
Xを左にシフト、Yを右にシフトすると、X=30、Y=1となります。
Yの0ビット目は1なので、Z=5+30=35となります。
今後は、Y=0が続くので、Zは変化せず、最終的に35が出力されます。

問6 指定された点が指定された多角形の内部にあるか外部にあるかを判定したい。多角形のすべての辺について、点から水平に延ばした半直線との交差回数を調べる。点Aのように交差回数が奇数回ならば内部、点Bのように交差回数が偶数回又は0ならば外部とする。点Cのように半直線が多角形の頂点上を通過する場合、二つの辺の端点(上端又は下端)と交差することになるが、このときの交差回数の数え方として、適切なものはどれか。ここで、多角形には水平な辺はないものとし、辺の上の点は考えない。

画像(問6)を表示できません
それぞれの辺について、下端での交差は0回、上端での交差は1回とし、合計したものを交差回数とする。
二つの辺それぞれを0回とし、交差回数には加えない。
二つの辺それぞれを0.5回、つまり合計で1回の交差回数とする。
二つの辺それぞれを1回、つまり合計で2回の交差回数とする。
解答
解説 問題文から実現したことは、『内部にある場合は、交差回数が0又は偶数回。外部にある場合は、交差回数が奇数回』であるとされています。そこで、頂点を通過する際に、どんな不具合が発生するかを考えます。まず点Cから、選択肢イのようなカウントでは内部にもかかわらず、0回と判定されてしまいます。また、選択肢エのようなカウントでは同じく内部にもかかわらず、2回(偶数回)であると判定されてしまいます。

次に、以下のような点X、Yを考えます。

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

選択肢ウのようなカウントの仕方では、X、Yともに、外側であるにもかかわらず、2回と判断されます。
選択肢アでは、Xは2回、Yは0回とカウントされるので、適切であることがわかります。

問7 HTMLだけでは実現できず、JavaScriptを使うことによってブラウザ側で実現可能になることはどれか。
アプレットの使用
画像の表示
サーバへのデータの送信
入力データの検査
解答
解説 それぞれの選択肢を順に検証していきます。

選択肢ア:アプレットとはサーバからダウンロードされクライアント上のブラウザでで動作するJavaのプログラムです。<applet code="クラス名"></applet>で記述できます。
選択肢イ:画像は、<img src="ファイル名">で記述できます。
選択肢ウ:サーバやCGIへのデータ送信は、<form action="サーバのアドレス" method="getかpost"<input type="submit" name="送信" value="データ" /></form>などで記述できます。
入力データの検査は、HTMLだけではチェックすることはできません。JavaScriptでは、プログラムを記述することができるので、入力の検査をすることができます。

問8 整形式(well−formed)のXML文章が妥当(valid)なXML文章である条件はどれか。
DTDに適合している。
XML宣言が完全に記述されている。
XMLデータを記述するための文法に従っている。
エンティティ参照ができる。
解答
解説 XMLとは、ユーザ自身が独自にタグを作ることができるマークアップ言語の一種で以下のような分類があります。

整形式のXML文書:文法に従ったXMLのことで、タグが対になっているなどを満たした文書のこと。
妥当なXML文書:整形式のXMLであり、DTD(Document Type Definition)にも適合したXML文書のこと。

問9 プロセッサの実行効率を上げる、VLIWの説明はどれか。
依存関係のない複数の命令を、プログラム中での出現順序とは異なる順序で実行する。
各命令のフェッチ、デコード、実行、演算結果の出力などの各段階を並列に処理する。
同時に実行可能な複数の動作をまとめて一つの命令として、同時に実行する。
複数のパイプラインを用いて複数の命令を同時に実行させる。
解答
解説 VLIW(Very Long Instruction Word)とは、命令語を長く取り、一つの命令で複数の機能ユニットを同時に制御することによって高速化を図る方式です。現在では、さらに改良したEPIC(Explicitly Parallel Instruction Computing)というのもあります。

選択肢アは、アウト・オブ・オーダー実行の説明です。
選択肢イは、パイプラインの説明です。
選択肢エは、スーパースカラ方式の説明です。

問10 同じ命令セットをもつコンピュータAとBがある。それぞれのCPUクロック周期、及びプログラムを実行したときのCPI(Cycles Per Instruction)は、表のとおりである。そのプログラムを実行したとき、コンピュータAの処理時間はコンピュータBの処理時間の何倍になるか。

画像(問10)を表示できません
1/32
1/2
解答
解説 CPI(Clocks Per Instruction)とは、1命令当たりのクロック数をいいます。
コンピュータAは、CPUクロック周期が1ナノ秒で、CPIが4なので、4ナノ秒で1命令を処理できるといえます。
コンピュータBは、CPUクロック周期が4ナノ秒で、CPIが0.5なので、2ナノ秒で1命令を処理できるといえます。

つまり、BはAの2倍の性能をもっているということなので、AはBの処理時間の2倍の時間がかかるといえます。

問11 ECCメモリで、2ビットの誤りを検出し、1ビットの誤りを訂正するために用いるものはどれか。
偶数パリティ
垂直パリティ
チェックサム
ハミング符号
解答
解説 代表的な誤り制御方式を下にまとめます。

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

問12 RAIDの種類a,b,cに対応する組合せとして、適切なものはどれか。

画像(問12)を表示できません
画像(問12ans)を表示できません
解答
解説 RAID(Redundant Arrays of Inexpensive Disks あるいはRedundant Arrays of Independent Disks)とは、複数のHDDを1台の高信頼性のHDDとして利用する技術のことです。RAID1〜6は冗長ビットをどこに配置するかで決まります。代表的なRAIDの例を下に示します。

RAID0(ストライピング):複数のHDDに分散してデータを書き込む(冗長性はない)
RAID1(ミラーリング):複数のHDDに同じデータを書き込む
RAID2:ビット単位での専用誤り訂正符号ドライブをもつ
RAID3:ビット/バイト単位での専用パリティドライブをもつ
RAID4:ブロック単位での専用パリティドライブをもつ
RAID5:ブロック単位で冗長データをもつが、特定のドライブに冗長データを書き込むということはしない。
RAID6:ブロック単位・複数パリティを分散して書き込む

また、複数の技術を組み合わせた、RAID1+0、RAID0+1、RAID5+0、RAID0+5、RAID5+1、RAID1+5などもあります。

問13 図に示すような二つのプロセッサで構成したシステムは、何と呼ばれるか。

画像(問13)を表示できません
アレイプロセッサシステム
スレーブシステム
疎結合マルチプロセッサシステム
密結合マルチプロセッサシステム
解答
解説 複数のCPUが、単一のOSで主記憶やデータを共有する形態を密結合マルチプロセッサといいます。逆に、各々のCPUが占有の主記憶、OS、データをもち、バスで接続されている形態を疎結合マルチプロセッサといいます。

アレイプロセッサとは、ベクトルプロセッサとも呼ばれ、配列状・ベクトル状のデータを一度にアクセスし演算を行うプロセサです。アレイとは配列という意味です。
スレーブシステムとは、マスターシステムと呼ばれる制御側から制御される従属系のシステムをいいます。

問14 RASISの各特性のうち、“I”で表される特性は、何に関するものか。
情報の一貫性を確保する能力
情報の漏えい、紛失、不正使用などを防止する能力
要求された機能を、規定された期間実行する能力
要求されたサービスを、提供し続ける能力
解答
解説 RASISは品質指標の一つです。RASISを以下にまとめます。

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

選択肢イは、安全性の説明です。
選択肢ウは、信頼性の説明です。
選択肢エは、可用性の説明です。

問15 コンピュータシステムの性能評価法の一つであるモニタリングの説明として、適切なものはどれか。
各プログラムの実行状態や資源の利用状態を測定し、システムの構成や応答性能を改善するためのデータを得る。
システムの各構成要素に関するカタログ性能データを収集し、それらのデータからシステム全体の性能を算出する。
典型的なプログラムを実行し、入出力や制御プログラムを含めたシステムの総合的な処理性能を測定する。
命令を分類し、それぞれの使用頻度を重みとした加重平均によって全命令の平均実行速度を求める。
解答
解説 モニタリングは、最も一般的で基本的なシステムの性能評価・監視法です。各システムの状態を常に監視し、異常がないかを調べるものです。また、傾向なども分かり改善のために役立てられたりもします。

選択肢イは、カタログ性能評価の説明です。
選択肢ウは、ベンチマーキングテストの説明です。
選択肢エは、命令ミックステストの説明です。

問16 あるシステムでは、平均すると100時間に2回の故障が発生し、その都度復旧に2時間を要していた。機器を交換することによって、故障の発生が100時間で1回になり、復旧に要する時間も1時間に短縮した。機器を交換することによって、このシステムの稼働率は幾ら向上したか。
0.01
0.02
0.03
0.04
解答
解説 現在は、100時間に合計4時間の復旧が必要なので、104時間のうち、100時間稼動しています。よって、稼働率は100/104≒0.96です。改良後は、100時間に1時間の復旧が必要なので、101時間のうち、100時間が稼動しています。よって、稼働率は100/101≒0.99です。

つまり、0.99−0.96=0.03となります。

問17 あるクライアントサーバシステムにおいて、クライアントから要求された1件の検索を処理するために、サーバで平均100万命令が実行される。1件の検索につき、ネットワーク内で転送されるデータは、平均2×105バイトである。このサーバの性能は100MIPSであり、ネットワークの転送速度は、8×107ビット/秒である。このシステムにおいて、1秒間に処理できる検索要件は何件か。ここで、処理できる件数は、サーバとネットワークの処理能力だけで決まるものとする。また、1バイトは8ビットとする。
50
100
200
400
解答
解説 まず、サーバでの処理時間を計算します。サーバでの命令数は100万で100MIPSで処理をするので、100万/100×100万=0.01となり、1秒間に100件処理できることが分かります。次に、ネットワークの転送速度を計算します。転送データ量は200kバイトで転送速度は、80Mビット/秒=10Mバイト/秒です。つまり、200kバイト/10Mバイトで0.02秒となり、1秒間に50件転送できることになります。サーバでは100件処理できても、転送は50件しかできないので、転送がボルトネックとなり、50件が正解となります。

問18 表のような状態の4ブロック分のキャッシュメモリC0〜C3がある。ここで、新たに別のブロックの内容をキャッシュメモリにロードする必要が生じたとき、C2の内容を置換の対象とするアルゴリズムはどれか。

画像(問18)を表示できません
FIFO
LFU
LIFO
LRU
解答
解説 ページ(ブロック)の置換えには幾つかのアルゴリズムがあります。下にまとめます。
NRU(Not Recently Used):最近使われていないものから順に置き換える
LRU(Least Recently Used):最後に参照されてから最も時間が経過したものから順に置き換える
LFU(Least Frequently Used):最も使用頻度の低いものから順に置き換える
FIFO(First In First Out):最初に読んだものから順に置き換える
LIFO(Last in First Out)は、最後に入れたものを最初に使うというもので、再帰プログラムやスタックとかかわりが深いものです。ページの置換えには使われません。

選択肢アでは、C0が対象となります。
選択肢イでは、C1が対象となります。
選択肢ウでは、C3が対象となります。
選択肢エでは、C2が対象となります。

問19 プログラムの局所参照性に関する記述のうち、適切なものはどれか。
繰り返し呼ばれる手続をサブルーチン化すると、サブルーチンの呼出しと復帰のために分岐命令が増えるので、必ず局所参照性は低下する。
同様の処理を反復する場合、ループやサブルーチンを用いずにプログラムにコードを繰り返して記述する方が、局所参照性は高くなる。
分岐命令などによって、メモリを短い時間に広範囲に参照するほど、局所参照性は高くなる。
ループによる反復実行のように、短い時間にメモリの近接した場所を参照するプログラムの局所参照性は高くなる。
解答
解説 局所性とは、偏っているという意味で、キャッシュメモリなどは、まったく同じデータを近い時間に何度も読み出す(時間的局所性)、メモリアドレス的に近い場所を何度も読み出す(空間的局所性)という2つの局所性の理論を基底にしています。この局所性をうまく利用することで、高速化・効率化を実現できます。

局所性を高めるためには、メモリ上の連続した領域にアクセスするようにします。つまり、できる限り分岐命令や、離れたメモリ空間へのアクセスを減らすようにしたほうが効率的なプログラムとなります。

問20 三つの媒体A〜Cに次の条件でファイル領域を割り当てた場合、割り当てた領域の総量が大きい順に媒体を並べたものはどれか。

[条件]
(1) ファイル領域を割り当てる際の媒体選択アルゴリズムとして、空き領域の最大の媒体を選択する方式を採用する。
(2) 割当て要求されるファイル領域の大きさは、順に90、30、40、40、70、30(Mバイト)であり、割り当てられたファイル領域は、途中で解放されない。
(3) 各媒体は容量が同一であり、割当て要求に対して十分な大きさをもち、初めはすべて空きの状態である。
(4) 空き領域の大きさが等しい場合には、A,B,Cの順に選択する。
A,B,C
A,C,B
B,A,C
C,B,A
解答
解説 順番に計算してきます。

@A=90、B=0、C=0
AA=90、B=30、C=0
BA=90、B=30、C=40
CA=90、B=70、C=40
DA=90、B=70、C=110
EA=90、B=100、C=110

よって、割り当てた容量はC、B、Aの順番で大きいといえます。