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

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

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

2008-05-05 | 情報処理
問21 1画素当たり24ビットのカラー情報をビデオメモリに記憶する場合、横1,024画素、縦768画素の画面表示に必要なメモリ量は、約何Mバイトか。ここで、1Mバイトは10^6バイトとする。
ア 0.8
イ 2.4
ウ 6.3
エ 18.9

正解


解説
大好きな計算問題です。
しつこいようですが、計算ミスには注意してください。
この手の計算問題は、単位系を揃えることに注意してください。
ビット、バイト、Mバイトなどちょっと注意してください。

計算式としては、以下のようになると思います。

1,024(横画素数)x768(縦画素数)x24(1画素当たりのビット数)/8(1バイト当たりのビット数)
=2^10x2x384x2x12/2^3
=2^10x2^2x192x2^2x6/2^3
=2^10x2^3x96x2^3x3/2^3
=2^10x2^4x48x2^3x3/2^3
=2^10x2^5x24x2^3x3/2^3
=2^10x2^6x12x2^3x3/2^3
=2^10x2^7x6x2^3x3/2^3
=2^10x2^8x3x2^3x3/2^3
=2^21x9/2^3
=2^18x9
=2^20x9/2^2
=9/4x2^20=2.25x2^20
2^20=1024x1024≒1000x1000=10^6=1M
よって、約2.25Mになり、この解に近いのはイと言うことになります。

余談ですが、あまり普通に計算すると計算ミスが起きるので、約分等できるところは行って最後に計算するようにすると、計算ミスも少なくなると思います。

問22 ページング方式の仮想記憶において、あるプロセスが仮想アドレス空間全体に対応したページテーブルを持つ場合、ページテーブルに必要な領域の大きさを2^xバイトで表す式はどれか。ここで、仮想アドレス空間の大きさは2^Lバイト、ページサイズは2^Nバイト、ページテーブルの各エントリの大きさは2^Eバイトとし、その他の情報については考慮しないものとする。

ア L+N+E
イ L+N-E
ウ L-N+E
エ L-N-E

解答


解説
これまたあまり理解していない用語の問題ですねぇ。
「ページテーブルの各エントリ」???何ですかねぇ。
ウィキペディアの引用ですが以下のように書いてありました。
ページテーブル(Page Table)とは、コンピュータのオペレーティングシステムにおけるページング方式の仮想記憶システムで使われるデータ構造であり、仮想アドレスと物理アドレスのマッピングを格納するものである。(ウィキペディア引用)
とするとこんな感じなんですかねぇ。

┌────────────────────────────────────────────────────┐
│仮想アドレス │
└──────┬───────┬─────────────────────────────────────┘
↓ ↓
┌─────────────┐
│ページテーブル │
└┬───────┬────┘
┌────┘ ┌────┘
↓ ↓
┌────────────┐
│ 物理アドレス │
└────────────┘

で、問題文から推測すると、仮想アドレスがページサイズ分に分割されていて、ページテーブルにはエントリと言うのが、1ページごとに用意されていると考えられます。

と言うことは、ページ数は、(仮想アドレス空間の大きさ)/(ページサイズ)で求められ、このページ数に(各エントリの大きさ)を掛ければ、(ページテーブルに必要な領域の大きさ)が出ると思います。

と言うことで、
2^X = (2^L)/(2^N)*(2^E)
= (2^L)*(2^(-N)*(2^E)=(2^(L-N+E))

よって、X = L-N+Eとなり、ウが解答となりました。

問23 仮想記憶方式に関する記述のうち、適切なものはどれか。

ア LRUアルゴリズムは、使用後の経過時間が最長のページを置換対象とするページ置換アルゴリズムである。
イ アドレス変換をインデックス方式で行う場合は、主記憶に存在する前ページ分のページテーブルが必要になる。
ウ ページフォルトが発生した場合は、ガーベジコレクションが必要である。
エ ページングが繰り返されるうちに多数の小さな空きメモリ領域が発生することを、フラグメンテーションという。

解答


解説
よくわかりませんねぇ。
とりあえずアは、間違ってないような気がします。
ちなみにLRUは「Least Recently Used 」の略です。
イはアドレス変換?アドレス指定方式の話なんですかねぇ。仮想記憶方式とは関係ないような...
ウは「ガーベジコレクション」ってなんですかねぇ。いつものようにIT用語辞典には以下のように書いています。
プログラムが使用しなくなったメモリ領域や、プログラム間の隙間のメモリ領域を集めて、連続した利用可能なメモリ領域を増やす技術。
これも、仮想記憶方式とは関係ないようですねぇ。
エはフラグメンテーションは、プログラムの起動終了を繰り返すと発生するんじゃなかったでしたっけ。

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

問24 イベントドリブンプリエンプション方式を用いたリアルタイムシステムのタスクA、B、Cそれぞれの処理時間と、イベントが発生してから応答するまでに許容される時間(許容応答時間)を表に示す。タスクの優先順位は、すべてのタスクが許容応答時間以内に応答できるように定めた。
タスクA、B、Cが同時に実行可能状態になったとき、発生する状況はどれか。

┌────┬─────────┬────────────┐
│ タスク│処理時間(ミリ秒) │許容応答時間(ミリ秒) │
├────┼─────────┼────────────┤
│ A │ 30 │ 100 │
├────┼─────────┼────────────┤
│ B │ 80 │ 300 │
├────┼─────────┼────────────┤
│ C │ 100 │ 200 │
└────┴─────────┴────────────┘

ア タスクAが実行状態になり、タスクB、Cは実行可能状態のまま。
イ タスクAが実行状態になり、タスクB、Cは待ち状態になる。
ウ タスクBが実行状態になり、タスクA、Cは実行可能状態のまま。
エ タスクCが実行状態になり、タスクA、Bは待ち状態になる。



解説
まずは優先度を考えましょう。許容応答時間が短い順に優先度を高く設定するので、優先度は、

A->C->B

の順になります。よって、選択肢ア、イのいずれかになります。
で、実行可能状態から待ち状態には移動しないので、解答はアとなります。

よく出る状態遷移図も覚えておいた方がよいでしょう

┌───────┐
┌────→│ 実行状態 │────┐
│ ┌───│ │ │
│ │ └───────┘ │
│ │ │
│ ↓ ↓
┌─────────┐ ┌───────┐
│ 実行可能状態 │←──────│ 待ち状態 │
└─────────┘ └───────┘

問25 タスクが実行状態、実行可能状態、待ち状態のいずれかの状態をとるとき、実行状態のタスクがプリエンプションによってほかのタスクに実行を中断され、再び実行状態となるまでの状態の変化を示したものはどれか。

ア 事項状態、実行可能状態、実行状態
イ 実行状態、実行可能状態、待ち状態、実行状態
ウ 実行状態、待ち状態、実行可能状態、実行状態
エ 実行状態、待ち状態、実行状態

解答



解説
これも問24の状態遷移図を覚えていればすぐに解答が得られそうですねぇ。
解答はアです。が、一応選択肢一つ一つ検証してみましょう。

選択肢ア
実行状態->実行可能状態->実行状態
状態遷移としては、問題ありませんねぇ。

選択肢イ
実行状態->実行可能状態->待ち状態->実行状態
実行可能状態から、待ち状態への状態遷移はありませんからこの選択肢はありません。

選択肢ウ
実行状態->待ち状態->実行可能状態->実行状態
状態遷移としては、問題ありませんねぇ。
ただし、「実行状態->待ち状態」に状態遷移するのは、入出力があるときで、今回のようにほかのタスクの実行により処理が中断された場合は、「実行可能状態」に遷移します。

選択肢エ
実行状態->待ち状態->実行状態
待ち状態から実行状態への状態遷移はありませんからこの選択肢はありません。