当たるかもしれない競馬予想

あまり当たらないけど、たまに当たる競馬予想です。
ちょっとプログラムのことも書こうかな

情報処理試験(H20春) ソフトウェア開発技術者 午前問16~20

2008-05-01 | 情報処理
問16 SRAMと比較した場合のDRAMの特徴はどれか。
ア SRAMよりも高速なアクセスが実現できる
イ データを保持するためのリフレッシュ動作が不要である。
ウ 内蔵構成が複雑になるので、ビットあたりの単価が高くなる。
エ ビットあたりの面積を小さくできるので、高集積化に適している。

解答


解説
これもハード系の用語問題です。
私の嫌いな分野の一つですねぇ。
まぁ、用語についてはインターネットで調べれば何とかなるので、覚えていきましょう。

DRAMは以下のようなものです。(IT用語辞典引用)
SRAMに比較して回路が単純で、集積度も簡単に上げることができ、価格も安いため、コンピュータのメインメモリはほとんどがDRAMである。

なので、正解はエに成ります。
また、ア、イ、ウはSRAMの説明ですねぇ。

難易度(1(易)~5(難))
3 この手の用語記憶問題は3にします。

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

ア (I+D)xP
イ (I+D-1)xP
ウ (IxD)+P
エ (IxD-1)+P

解答


解説
難かよくわからない言葉ばかり出てきますねぇ。
パイプラインの深さ?パイプラインピッチ?
問題文は、以下のようなことなんですかねぇ。
1つの処理にI個の命令が必要な処理をパイプライン処理でD個処理した場合に要する時間を表す式はどれか。
ただし、1個の命令に要する時間はP秒とする。

Dを1とした場合は、こんな感じの図になりますかねぇ。(*は空白と見なしてください)

****|<---I----->|***──
****-------------****1=D
********************──
このときは、処理時間は、IxP

Dを2とした場合は、こんな感じの図になりますかねぇ。(*は空白と見なしてください)

****|<---I+1---->|*** ──
****-------------****2=D
*****-------------
********************──
このときは、処理時間は、(I+1)xP

同様にDを3,4と変化させると処理時間は(I+2)xP、(I+3)xPと変化します。
つまり、(I+D-1)xPが答えとなり、選択肢はイとなります。

ちなみに、単位系から考えると選択肢ウ、エは選ばないと思います。
まぁ、パイプラインピッチの意味が推測できなければしかたありませんが、推測できればPの正しい単位は秒/命令になります。
また、Iの単位は命令でDがちょっとわからないですねぇ。
それにしても、もし、選択肢ウ、エを選ぶような単位に変更すると(IxD)や(IxD-1)の単位を秒/命令にする必要があり、そのためには、Dの単位が秒/命令^2となります。深さの単位としてはちょっと違和感を感じますようねぇ。
と言うことで、選択肢からは外します。

難易度(1(易)~5(難))
1

問18 プロセッサにデータを読み込むときにキャッシュメモリがヒットしなかった場合、キャッシュメモリ制御装置が行う動作はどれか。

ア キャッシュメモリから所用のデータをブロック転送し、磁気ディスクに書き込む。
イ 磁気ディスクから所用のデータをブロック転送し、キャッシュメモリに読み込む。
ウ 主記憶から所用のデータをブロック転送し、キャッシュメモリに読み込む。
エ ディスクキャッシュから所用のデータをブロック転送し、主記憶に読み込む。

正解


解説
キャッシュメモリの役割がわかれば、解ける問題だと思います。
あと、ちょっと引っかけ的な要素と、ブービートラップ的な要素がありますねぇ。
キャッシュメモリは主記憶とプロセッサの間に置いて、見かけの主記憶アクセス時間を短くするものだと思っています。

(主記憶)---(キャッシュメモリ)-----(プロセッサ)

で、主記憶よりアクセス時間が短いキャッシュメモリを用意し、プロセッサが必要とする情報がキャッシュメモリにあれば、主記憶より早く情報が取れます。変わりにキャッシュメモリにない場合は、主記憶まで必要なデータを取りに行きます。
なので、正解はウとなります。

アは、「磁気ディスク」に書き込むのがおかしいですねぇ。
イは、「磁気ディスク」から所用のエータをブロック転送するのがおかしいですねぇ。
エは、「ディスクキャッシュ」から所用のデータをブロック転送するのがおかしいですねぇ。

難易度(1(易)~5(難))
2

問19 RAIDの分類において、ミラーリングを用いることで信頼性を高め、障害発生時には冗長ディスクを用いてデータ復元を行う方式はどれか。

ア RAID1
イ RAID2
ウ RAID3
エ RAID4

解答


解説
RAIDの問題もよく出ますねぇ。
インターネットなんかで調べれば、RAIDについては調べられると思うので、覚えておいた方がよいでしょう。
インターネットで調べると、一般的に使用されている方式は、以下の4パターンみたいです。
・ RAID0
・ RAID1
・ RAID5
・ RAID6
ちなみにRAID0~RAID6までの概要をIT用語辞典を引用すると以下のようになります。
RAID0:複数のディスクに均等にデータを振り分け、同時並行で記録することで、データの読み書きを高速化したもの。
RAID1:2台のディスクにまったく同じデータを同時に書きこむ方式。
RAID2:ハミングコードと呼ばれる誤り訂正符号を生成し、データとともに分散して記録する方式。
RAID3:複数あるディスクのうち1台をパリティと呼ばれる誤り訂正符号の記録に割り当て、他のディスクにデータを分散して記録する方式。
RAID4:複数あるディスクのうち1台をパリティと呼ばれる誤り訂正符号の記録に割り当て、他のディスクにデータを分散して記録する方式。RAID 3との違いは、データの分散をビット単位ではなくブロック単位で行なう点。
RAID5:データからパリティと呼ばれる誤り訂正符号を生成し、データとともに分散して記録する方式。
RAID6:RAID-5ではパリティが1つなので同時に2台が故障するとデータを復旧することが不可能になるが、RAID-6では異なるパリティを2つ取って両方記録するため、同時に2台が故障してもデータを復旧できる。
(IT用語辞典引用)

問題文に適しているのは、RAID1ですかねぇ。
と言うことで解答はアとなりました。

難易度(1(易)~5(難))
2

問20 シリアルATAによる内蔵周辺機器の接続方法を説明したものはどれか。
ア ホストコントローラからのケーブルには、マスタとスレーブの2台の周辺機器が接続できる。
イ ホストコントローラと周辺機器は、デイジーチェーンやツリー構造で接続できる。
ウ ホストコントローラと周辺機器は、ハブを介して接続する。
エ ホストコントローラとポインツーポイントで周辺機器を接続する。

解答


解説
用語の説明問題が続きますねぇ。
全然わかんないです。
この問題の私の解法としては消去法ですねぇ。

ア ホストコントローラからのケーブルには、マスタとスレーブの2台の周辺機器が接続できる。
多分IDEの説明だと思います。

イ ホストコントローラと周辺機器は、デイジーチェーンやツリー構造で接続できる。
多分SCSIの説明だと思います。

ウ ホストコントローラと周辺機器は、ハブを介して接続する。
多分USBの説明だと思います。

エ ホストコントローラとポインツーポイントで周辺機器を接続する。
わかりませんが、消去法でこれではないかと思います。

よって解答はエになります。

難易度(1(易)~5(難))
3

情報処理試験(H20春) ソフトウェア開発技術者 午前問11~15

2008-05-01 | 情報処理
問11 データの整列方法に関する記述のうち、適切なものはどれか。
ア クイックソートでは、ある一定間隔おきに取り出した要素から成る部分列をそれぞれ整列し、さらに間隔を詰めて同様の操作を行い、間隔が1になるまでこれを繰り返す。
イ シェルソートでは、隣り合う要素を比較して、代償の順が逆であれば、それらの要素を入れ替えるという操作を繰り返す。
ウ バブルソートでは、中間的な基準値を決めて、それよりも大きな値を集めた区分と小さな値を集めた区分に要素を振り分ける。次にそれぞれの区分の中で同様な処理を繰り返す。
エ ヒープソートでは、未整列の部分を順序木に構成し、そこから最大値または最小値を取り出して規制列の部分に移す。この操作を繰り返して、未整列部分を縮めていく。

解答


解説
これも良く出るソートに関する問題ですねぇ。
個人的には、どうでもよいような問題ですが、まぁ、情報処理技術者なら知っているべき無いようなんでしょうねぇ。

それぞれのソート方法をウィキペディアなどで調べれば、解答は得られそうですねぇ。

・クイックソート
データの集合を基準値より大きいものと小さいものとのグループに分け、それぞれのグループの中でも新しい基準値を使って同様の作業を行う、という手順を再帰的に繰り返す方式。(IT用語辞典より引用)
と言うと、これは選択肢ウの内容になりますねぇ。

・シェルソート
要素を数個とびに拾い集めて挿入ソートをかけ、次第にソートする要素の間隔を詰めていき、最後に単純な挿入ソートで完全に整列させる。(IT用語辞典より引用)
これは、選択肢アの内容になりますねぇ。

・バブルソート
バブルソートは、配列の隣どうしの要素の大小を比較してそれらを交換しながら整列する方法です。ちなみに、泡(バブル;bubble)が浮かんで行くように見えることからこの名前がついています。
引用URL:http://www.miyagi-ct.ac.jp/ee/lecture/E3_01/Bubble_sort.html
これは、選択肢イの内容ですねぇ。

・ヒープソート
ヒープソートでは、未整列の部分を順序木に構成し、そこから最大値または最小値を取り出して規制列の部分に移す。この操作を繰り返して、未整列部分を縮めていく。(問題文から引用)

まぁ、正解はエに成ります。

問12 16進数で表される9個のデータ1A、35,3B、54,8E,A1,AF、B2,B3を順にハッシュ表に入れる。ハッシュ値をハッシュ関数f(データ)=mod(データ,8)で求めたとき、最初に衝突が起こるのはどのデータか。ここで、mod(a,b)はaをbで割った余りを表す。

ア 54
イ A1
ウ B2
エ B3

解答


解説
問題文の意味がわかりにくいですかねぇ。
私なりの文意はこんな感じです。
「9個のデータ1A、35,3B、54,8E,A1,AF、B2,B3を順にmod(データ,8)に入れて最初に同じ答えが出るデータはどれですか。」
です。
と言うことで各数字を8で割っていき余りが同じものが2回出てきたものが正解となります。

ここで、テクニックと言うほどのものではありませんが、各数字を10進数に変えるときに下1けただけ変換すればよいことに気がつきましょう。
今回の場合8で割った余りを求められればよいのです。
2けたの16進数(例えばXY)を10進数に変換すると以下のような変換式になります。
16*X+Y
この数字の8で割った余りは、Yを8で割ったのと同じになりますよねぇ。(2桁目は16*X=2*8*Xなので、8で割り切れるため)

よって、各数字の1桁目を10進数に変換すると以下のようになります。
10,5,11,4,14,1,15,2,3
これらの8で割った余りは以下のようになります。
2,5,3,4,6,1,7,2,3
となり、2が最初に2回目の余りとして出ます。つまり、B2が答えとなります。

よって、解答はウとなります。

問13 次の流れずにおいて、ステップS4でYesと判断したときまでの、ステップS1~S4の実行回数をそれぞれん1~n4とする。n1~n4の間に成立する式はどれか。

No
┌── ◇S1
│ │YES
│┌→ ↓
││ □S2
││ │
││No ↓←──┐
│└─ ◇S3 │
│ Yes│ │
└─→ ↓ No │
◇S4──┘
│YES


ア n4=n1+n2+n3
イ n4=n1+n2-n3
ウ n4=n1-n2+n3
エ n4=-n1+n2+n3

解答


解説
これはどうやって解答を得ればよいか全然わからない問題ですねぇ。
また出題者の意図が私には見えない問題です。
とはいえ、出題されたので解かないわけにはいかないので解いてみましょう。

私の解法としては、条件が3つ(S1,S3,S4)とあるので、これらをYES/NOの全パターンを考えてみました。

S1 S3 S4 n1 n2 n3 n4 備考
(1) YES YES YES 1 1 1 1
(2) YES YES NO 1 1 2 2 最後にS4はYESと判定
(3) YES NO YES 1 2 2 1 最後にS3はYESと判定
(4) YES NO NO 1 2 3 2 最後にS3、S4はYESと判定
(5) NO YES YES 1 0 0 1
(6) NO YES NO 1 0 1 2 最後にS4はYESと判定
(7) NO NO YES 1 0 0 1
(8) NO NO NO 1 1 2 2 最後にS3、S4はYESと判定

この8パターンを各選択肢に代入してみます。
選択肢ア
n4=n1+n2+n3
(1) 1 = 1+1+1 = 3 (誤り)
(2) 2 = 1+1+2 = 4 (誤り)
(3) 1 = 1+2+2 = 5 (誤り)
(4) 2 = 1+2+3 = 6 (誤り)
(5) 1 = 1+0+0 = 1 (正)
(6) 2 = 1+0+1 = 2 (正)
(7) 1 = 1+0+0 = 1 (正)
(8) 2 = 1+1+2 = 4 (誤り)

選択肢イ
n4=n1+n2+n3
(1) 1 = 1+1-1 = 1 (正)
(2) 2 = 1+1-2 = 0 (誤り)
(3) 1 = 1+2-2 = 1 (正)
(4) 2 = 1+2-3 = 0 (誤り)
(5) 1 = 1+0-0 = 1 (正)
(6) 2 = 1+0-1 = 0 (誤り)
(7) 1 = 1+0-0 = 1 (正)
(8) 2 = 1+1-2 = 0 (誤り)

選択肢ウ
n4=n1+n2+n3
(1) 1 = 1-1+1 = 1 (正)
(2) 2 = 1-1+2 = 2 (正)
(3) 1 = 1-2+2 = 1 (正)
(4) 2 = 1-2+3 = 2 (正)
(5) 1 = 1-0+0 = 1 (正)
(6) 2 = 1-0+1 = 2 (正)
(7) 1 = 1-0+0 = 1 (正)
(8) 2 = 1-1+2 = 2 (正)

選択肢エ
n4=n1+n2+n3
(1) 1 = -1+1+1 = 1 (正)
(2) 2 = -1+1+2 = 2 (正)
(3) 1 = -1+2+2 = 3 (誤り)
(4) 2 = -1+2+3 = 4 (誤り)
(5) 1 = -1+0+0 = -1(誤り)
(6) 2 = -1+0+1 = 0 (誤り)
(7) 1 = -1+0+0 = -1(誤り)
(8) 2 = -1+1+2 = 2 (正)

と言うことで、ウが正解になります。
あまり数式にこだわりすぎると、はまってしまう問題ですねぇ。
ちょっと数式変換が難しそうであれば、直接代入する方法を選択した方が、簡単に解答が得られるかもしれません。
情報処理技術者試験の午前は、1問あたりにかけられる時間は、2分程度です。(正確には、1分52秒程度)
なので、このような問題に時間を割けるように他の問題は素早く解けるようにしておいた方がよいでしょう。

難易度(1(易)~5(難))
4 ちょっとやっかいな問題ですが、愚直な解法で解けるのでこの難易度にしました。

問14 流れずに示す処理の動作の記述として、適切なものはどれか。ここで、二重線は並列処理の同期を表す。

○S


□A

────┴──────
──┬─────┬──
┌──→│ │←──┐
│ ↓ ↓ │
│ □B □C │
│ │ │ │
│ │ ↓ │
│ ──┴──────── │
│ ──┬─────┬─→ │
└───┘ └───┘

ア Aの後にBC又はCB、BC又はCB、・・・と繰り返して実行する。
イ Aの後にBの無限ループ又はCの無限ループになる。
ウ ABC又はACBを実行してデッドロックになる。
エ AB又はACを実行してデッドロックになる。

解答


解説
解説しづらい問題ですねぇ。
私はこの流れ図を以下のように解釈しました。
(1) まずAが実行される。
(2) 次に同期する。(と言っても処理は並列になっていないので、そのまま下に抜ける)
(3) BとCが順番はわからないが並列処理なので共に実行される。
(4) 同期を待つ。
(5) (3)につながる

と言うことで、解答はアになりました。

ちなみに他の選択肢を「違う」と判断する消去法の場合は以下のように考えました。

選択肢イ
Aの後にBの無限ループ又はCの無限ループになる。
BとCの処理は「並列処理」されるので、どちらか一方の無限ループになるのはおかしいと判断しました。

選択肢ウ
ABC又はACBを実行してデッドロックになる。
選択肢エ
AB又はACを実行してデッドロックになる。
選択肢ウ、エについては、「デッドロック」と言う言葉がこの流れ図では出てこないと判断しました。
確かに、「同期」と言う言葉はありますが、「デッドロック」は「排他制御」の時に起きる言葉だと思います。
データベースなどで良くあると思いますが、処理Bが更新中のテーブルを処理Cが参照してしまうとテーブルの内容が保証されないので、処理Bの更新が完了するまで処理Cが処理を中断するような処理です。
まぁ、デッドロックについては、別で出てくればそのとき説明します。


難易度(1(易)~5(難))
1

問15 DDR-SDRAMの特徴として、適切なものはどれか。

ア クロック信号の立ち上がりと立ち下がりの両方に同期して、データを読み出す。
イ 高速ページモードDRAMのページアクセスのサイクル時間を短くして、より高速にデータ転送する。
ウ メモリセルからデータを読み出すとき、一度だけ行アドレスを指定した後、列アドレスを変えながら複数のデータを行バッファから高速に読み出す。
エ メモリバスクロックに同期して、1クロックにつき一つのデータを読み出す。

解答


解説
ハード系の用語問題です。
私の嫌いな分野の一つですねぇ。
まぁ、用語についてはインターネットで調べれば何とかなるので、覚えていきましょう。

DDR-SDRAMは以下のようなものです。(IT用語辞典引用)
ダブルデータレート(DDR)モードという高速なデータ転送機能を持ったSDRAM。コンピュータ内で各回路間の同期を取るためのクロック信号の立ち上がり時と立ち下がり時の両方でデータの読み書きが行なえるようにしたもの。

よって解答はアに成ります。

また、選択肢イは「FPM DRAM」のことらしいです。ちなみにFPMとは、Fast Page Modeのことです。
選択肢ウ、エも調べてみましたが、何に該当するのかわかりませんでした。