タグ別アーカイブ: 応用情報

平成21年春期 午前問11

そもそもメモリインタリープって何さ。
ってことで、とりあえず詳細はwiki

要するに、メモリのデータ転送高速化技術の一つなんですね。
ポイントは「主記憶装置を複数のメモリバンクに分割」して「同時並行アクセスを可能」にし、「CPUの待ち時間を減らす」と言う辺りなのかな。

ということで、該当するのはエ。
他の選択肢の解説は以下。

「CPUと磁気ディスク装置との間に半導体メモリによるデータバッファを設けて,磁気ディスクアクセスの高速化を図る。」
→ディスクキャッシュ

「主記憶のデータの一部をキャッシュメモリにコピーすることによって,CPUと主記憶とのアクセス速度のギャップを埋め,メモリアクセスの高速化を図る。」
→キャッシュメモリ

「主記憶へのアクセスを高速化するため,アクセス要求,データの読み書き及び後処理が終わってから、次のメモリアクセスの処理に移る。」
→メモリの排他制御

平成21年春期 午前問10

内部割込み:
実行中のプログラムが原因で起こる割込み
外部割込み:
内部割込み以外の原因で起こる割込み

仮装記憶管理における存在しないページにアクセスしたときのページフォールト
 →実行中のプログラムがページにアクセスしているので内部割り込み。
システム管理命令を一般ユーザモードで実行したときの特権命令違反
 →システム管理命令を実行しているプログラムによる割り込みなので内部割り込み。
ハードウェア異常などによるマシンチェック
 →実行中のプログラムではない割り込みなので外部割り込み。
浮動小数点演算命令でのオーバフローなどの演算例外
 →演算中のプログラムが出している割り込みなので内部割り込み。

ということで、答えは「ハードウェア異常などによるマシンチェック」となる。

平成21年春期 午前問9

複数のデータに対して1個の命令で同一の操作を同時並列に行う方式とは何か、
ということで、Single Instruction Multiple Data = SIMD が答え。

ちなみに、方式には以下の4種がある。

SISD(Single Instruction Single Data)
単一の命令で単一のデータを処理する方式
SIMD(Single Instruction Multiple Data)
単一の命令で複数のデータを処理する方式。
MISD(Multiple Instruction Single Data)
複数の命令で単一のデータを処理する方式。(※理論上のみで実装例はない。)
MIMD(Multiple Instruction Multiple Data)
複数の命令で複数のデータを処理する方式。

平成21年春期 午前問8

ブロックを探すための平均比較回数と、
ブロック内で目的のデータを探すための平均比較回数の
2つの回数の合計値を取る。

ブロックを探すための平均比較回数は

(n÷m+1)÷2

ただし、mは十分に大きいのでnも十分に大きいものとなり、以下と近似値が成立する。

(n÷m)÷2

すなわちn/m2。
ブロック内で目的のデータを探すための平均比較回数は
mは十分に大きいので

m÷2

と近似値となる。
これらを合算して、「n/m2+m/2」が回答。

平成21年春期 午前問7

指定された値でプログラムをトレースするのみ。
コードを追いかけると、

comp(“11″,”101″)

からスタートして、一旦最後まで行って

comp(“1″,”01″)

となって、途中の

if len(A)≠0 and len(B)=0 then return -1;

で引っかかってreturnされる。
ので回答は-1。

平成21年春期 午前問6

aとbをそれぞれnだ割った際の余りが等しくなる時がぶつかる時なので。

a mod n = b mod n
a mod n – b mod n = 0
(a – b) mod n = 0

よって、(a – b)がnの倍数であればぶつかる。

平成21年春期 午前問5

以下の式を解け、ということになる。

f(n+1)+0.2×f(n)=2×f(n)

で、解いてみると以下。

f(n+1)+0.2×f(n)=2×f(n)
f(n+1)=2×f(n)-0.2×f(n)
f(n+1)=1.8×f(n)

故に1世代後は1.8倍が正解。

平成21年春期 午前問4

初項1、公差1、項数nの等差数列の和を求めよって話になるので

n(n+1)/2

となる。
で、空文字列の場合があるので+1。

等差数列についてはwiki貼っとく。

平成21年春期 午前問3

有限オートマトンってなんぞ、の時点で躓きそうになるけど、
要するに矢印にそって行ったり来たりしてみればOK。
S3に辿り着けるのは1101だけ。

有限オートマトンの解説は、とりあえずwikiで。

平成21年春期 午前問2

要するに、以下の式が成り立つnおよびαの条件を求めよ、と。

(1+α)n ≒ 1+n×α

選択肢を全部仮定で当てはめて計算するしかないっぽい。
|α|が絶対値だって言うのをスコンと忘れてましたね。

追記:
久々に問題見てみて思ったけど、
1のn乗は必ず1なので以下の書き換えが成立する。

(1+α)n ≒ 1+n×α
1+αn ≒ 1+n×α
αn ≒ n×α

選択肢4つの中で

αn ≒ n×α

が成立するのは|α|が1に比べて非常に小さい時だけ。

平成21年春期 午前問1

理解するには数学的知識が必要になりそうなので、とりあえず丸覚えでGO。
待ち行列モデル自体は他にも様々あるが、試験で頻出なのはM/M/1モデルのみ。
概ね1問は出るので、押さえておくと1問ゲット。

公式:

Tw = Ts * ρ / (1 − ρ)

Tw…平均待ち時間
Ts…平均サービス時間
ρ…サービス利用率

利用率が4割で平均サービス時間が6分の場合、平均待ち時間は4分。

Tw = 6 * 0.4 / (1 – 0.4) = 6 * 0.4 / 0.6 = 4

利用率が5割で平均サービス時間が6分の場合、平均待ち時間は6分。

Tw = 6 * 0.5 / (1 – 0.5) = 6 * 0.5 / 0.5 = 6

利用率が6割で平均サービス時間が6分の場合、平均待ち時間は9分。

Tw = 6 * 0.6 / (1 – 0.6) = 6 * 0.6 / 0.4 = 9

平均待ち時間が平均サービス時間より長くなるには、

ρ / (1 − ρ) > 1

であるワケなので、「50%を超えた時」が正解。

【補足】
M/M/1の待ち行列モデル:
ケンドールの記法で表記された待ち行列のモデルで、以下の三条件が成立する状態を指す。
なお、サービス要求は到着順に受け付け、行列へ割り込んだり、列の途中で抜け出すことは考えないものとする。

M…サービス要求の到着間隔がランダム(ポアゾン分布に従う)
M…窓口を使用する時間は要求ごとにランダム(指数分布に従う)
1…待ち行列のサービス窓口は1個

ケンドール記法:
参照→wiki