このページでは、しゅんぜい氏の発行されているメルマガのうち「ソフトウェア開発(1種)」について
編集して掲載しています。
次の計算は何進法で行われているか。
131−45=53
ア 6
イ 7
ウ 8
エ 9
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
■解答■(出典:H12. 1種 問1)
----------------------------------------------------------------------
イ 7
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
■解説■
----------------------------------------------------------------------
今日は、N進数(N進法も同じ意味です)の問題でした。
Nには、自然数が入ります。
普段、生活で使われるのは10進数(N=10)ですね。
10進数というのは、1,2,3,4,5,6,7,8,9,0 という
10種類の数字で数を表します。2進数なら、0,1の2つです。
今、1234という10進数を考えます。
各位に注目すると、1234は次のように考えることが出来ます。
1×1000=1000(千の位が1) 10^3(10の3乗)
2× 100= 200(百の位が2) 10^2(10の2乗)
3× 10= 30(十の位が3) 10^1(10の1乗)
+) 4× 1= 4(一の位が4) 10^0(10の0乗)
───────────────────── ↑
1234 ポイント
ポイントは、右側に書いた部分です。
10進数というのは、各位が「10の○乗」になっているとも言えます。
○に入る数字は、一番右が0になり、左に行くに連れて1つずつ増えます。
ちなみに、10の0乗は1になるので、一番右は一の位です。
N進数に拡張すれば、「Nの○乗」ずつ増えていきます。
これをふまえて、選択肢を順に見ていきましょう。
> ア 6
6進法は、右から「1の位」「6の位」「6の2乗の位」と続きます。
問題文の式の 131 - 45 = 53 を6進法から10進法に直します。
131 = 1 * 6^2 + 3 * 6 + 1 = 55 ( 6^2 は、6の2乗のこと)
45 = 4 * 6 + 5 = 29
53 = 5 * 6 + 3 = 33
つまり、6進法だとした場合はそれを10進法に直して考えると
問題文の式が
55 - 29 = 33
を表していることになります。
この式は明らかに成り立たないので「ア」は違いますね。
> イ 7
「ア」と同じように7進法として考えて、それを10進法に直します。
131 = 1 * 7^2 + 3 * 7 + 1 = 71
45 = 4 * 7 + 5 = 33
53 = 5 * 7 + 3 = 38
よって、71 - 33 = 38 となり、この式は正しいので「イ」が正解。
> ウ 8
同様に
131 = 1 * 8^2 + 3 * 8 + 1 = 89
45 = 4 * 8 + 5 = 37
53 = 5 * 8 + 3 = 43
よって、89 - 37 = 43 となるので「ウ」も不適。
> エ 9
同様に
131 = 1 * 9^2 + 3 * 9 + 1 = 109
45 = 4 * 9 + 5 = 41
53 = 5 * 9 + 3 = 48
よって、109 - 41 = 48 となるので「エ」も不適。
まぁ、これがが無難な解きかただと思います。
別解としては、方程式で解いてもいいですね。
求める解を n 進法とすれば、問題文の式から
( 1 * n^2 + 3 * n + 1 ) - ( 4 * n - 5 ) = ( 5 * n + 3 )
という式が作れます。
この式は2次方程式なので、計算して因数分解すると
( n + 1 )( n - 7 ) = 0
となり、n は正の数なので n = 7 が求まります。
他には、式変形をすると良いかもしれません。-45 を移項すると
131 = 53 + 45
となり、ここで、両辺の1の位を計算します。
(左辺)= 1
(右辺)= 5 + 3 = 8
これは等式なので、左辺と右辺が等しくならなければいけません。
1と8が等しくなるには、7進数である必要があります。
図の装置は、排他的論理和を 4 ビット単位で 3 回実行する暗号化装置で
ある。この装置では、入力ビット列 1101 を与えると、出力ビット列 0100
が得られる。ここで、ユニットBの内部キーを変更したところ、
出力ビット列が 1111 になった。変更後のユニットBの内部キーはどれか。
→ |
ユニットA |
→ |
ユニットB |
→ |
ユニットC |
→ |
||
入 力 ビ ッ ト 列 |
排他的論理和 | 排他的論理和 | 排他的論理和 |
出 力 ビ ッ ト 列 |
||||
(内部キー)
0001 |
(内部キー)
0101 |
(内部キー)
1101 |
||||||
1101 |
0100 |
ア 1011
イ 1100
ウ 1101
エ 1110
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
■解答■(出典:H11. 1種 問3)
----------------------------------------------------------------------
エ 1110
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
■解説■
----------------------------------------------------------------------
今日は、論理演算の排他的論理和(EOR)の問題でした。
排他的論理和とは、かんたんに言うと
> 2つの入力が両方とも同じなら0、違えば1
という論理演算です。
これらを真理値表で確認すると、次のようになります。
┌───┬───┬───────┐ │ A │ B │A(EOR)B│ ├───┼───┼───────┤ │ 1 │ 1 │ 0 │ ├───┼───┼───────┤ │ 1 │ 0 │ 1 │ ├───┼───┼───────┤ │ 0 │ 1 │ 1 │ ├───┼───┼───────┤ │ 0 │ 0 │ 0 │ └───┴───┴───────┘
> ユニットA > 入力 ┌──────┐ > ビット列 →│排他的論理和│ > 1101 ├──────┤ > │(内部キー)│ > │ 0001 │ > └──────┘この部分では、1101 と 0001 の排他的論理和の演算が行われます。
入力 1101 (EOR)A 0001 ──────────── 1100この結果がBに渡されるので、次のような処理になります。
> ユニットB > Aからの ┌──────┐ > ビット列 →│排他的論理和│→ > 1100 ├──────┤ > │(内部キー)│ > │ xxxx │ > └──────┘ここでの演算は、上と同様に
入力 1100 (EOR)B xxxx ──────────── yyyyとなります。(Bの内部キーを xxxx ,そのときの出力を yyyy にしました)
> ユニットC > Bからの ┌──────┐ > ビット列 →│排他的論理和│→ 出力 > yyyy ├──────┤ ビット列 > │(内部キー)│ 1111 (←ここは変わってますよ) > │ 1101 │ > └──────┘ここでの演算は、
入力 1100 (EOR)B xxxx ──────────── 0010したがって、xxxx は 1110 となるので「エ」が正解になります。
次の図は、ある地方の日単位の天気の移り変わりを示したものであり、
数値は翌日の天気の変化の確率を表している。ある日の天気が雨のとき、
2日後の天気が晴れになる確率はいくらか。
0.4 ┌――┐ │ │ ↓ │ 0.2 ┌――――┐ 0.3 ┌――――│ 晴れ │←―――┐ │┌――→└――――┘―――┐│ ││0.3 0.4││ ↓│ ↓│ ┌―――┐ 0.3 ┌――――┐ ┌――│ 雨 │←―――――――――│ 曇り │←―┐ │ └―――┘―――――――――→└――――┘ │ │ ↑ 0.5 │ │ └―――┘ └―――┘ 0.2 0.4 ア 0.15 イ 0.27 ウ 0.3 エ 0.33
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
■解答■(出典:H9. 1種 問13)
----------------------------------------------------------------------
エ 0.33
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
■解説■
----------------------------------------------------------------------
今週は、特定のテーマというよりも数学っぽい問題をやっていきます。
今日は、状態遷移図における確率の問題でした。
状態遷移図とは、いろいろな要因によって変化が起こる状態の移り変わりを
表した図です。
例えば、ある野球チームがどのチームを相手にしても、前の日の試合に
関係なく一定の確率(6割)で勝つことができるとします。
その場合、今日から考えた状態遷移図は次のようになります。
┌―――┐ ┌―│今 日│―┐ 0.6│ └―――┘ │0.4 ↓ ↓ ┌――┐0.6┌――┐ ┌―│勝ち│←――│負け│←┐ │ └――┘――→└――┘ │ │ ↑ 0.4 │ │ └――┘ └――┘ 0.6 0.4
今日をスタート地点にすると、勝つ確率は6割(0.6)なので、
「今日→勝ち」に移動する部分には「0.6」と書いてあります。
また、負ける確率は4割(0.4)なので、「今日→負け」に移動する部分
には「0.4」と書いてあります。
「前の日の試合に関係ない」ということから、「勝ち→勝ち」が「0.6」
となっているように、他の矢印も同じように考えることができます。
さて、今日の問題に戻ります。
> 0.4 > ┌――┐ > │ │ > ↓ │ > 0.2 ┌――――┐ 0.3 > ┌――――│ 晴れ │←―――┐ > │┌――→└――――┘―――┐│ > ││0.3 0.4││ > ↓│ ↓│ > ┌―――┐ 0.3 ┌――――┐ > ┌――│ 雨 │←―――――――――│ 曇り │←―┐ > │ └―――┘―――――――――→└――――┘ │ > │ ↑ 0.5 │ │ > └―――┘ └―――┘ > 0.2 0.4問題は・・・
非負の整数 n に対して次のように定義された関数 F(n)、G(n) がある。
F(5) の値は幾らか。
F(n): if n <= 1 then 1 else n * G(n - 1)
G(n): if n = 0 then 0 else n + F(n - 1)
ア 50
イ 65
ウ 100
エ 120
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
■解答■(出典:H11. 1種 問8)
----------------------------------------------------------------------
イ 65
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
■解説■
----------------------------------------------------------------------
今週は、数学っぽい問題をやっています。
このようなタイプの問題は、得意な人と不得意な人に完全に分かれますね。
不得意な人は、とにかく解説を読む前に自分で考えることが大事です。
得意な人は、頭の体操だと思って解いてもらえればいいでしょう。
今日は、再帰的に計算する関数の問題でした。
再帰的な関数とは、ある関数が自分自身を繰り返し呼び出す関数を
いいます。この問題は、F(n) は G(n) を、G(n) は F(n) を呼び出している
ので、再帰的な関数の一種であるといえます。
問題を見ていきましょう。
> 非負の整数 n に対して次のように定義された関数 F(n)、G(n) がある。
> F(5) の値は幾らか。
>
> F(n): if n <= 1 then 1 else n * G(n - 1)
> G(n): if n = 0 then 0 else n + F(n - 1)
非負の整数とは、マイナスではないということです。
この問題は F(5) の値を、問題に書いてある F(n) と G(n) の式から
求めればいいということです。
F(5) を知りたいので F(n) という関数に n = 5 を代入します。
> F(n): if n <= 1 then 1 else n * G(n - 1)
単語の意味からこの式の意味を読み取れば
> n が1以下なら 1 そうじゃなければ n * G(n - 1) を計算する。
という式になっています。
今は、n = 5 ですから F(n) = n * G(n - 1) より
F(5) = 5 * G(5 - 1)
= 5 * G(4)
になりますね。
ここで、今度は G(4) がわからないので、同じように G(n) を見てみると
> G(n): if n = 0 then 0 else n + F(n - 1)
なので
> n が0なら 0 そうじゃなければ n + F(n - 1) を計算する。
となっているので、G(n) = n + F(n - 1) より
G(4) = 4 + F(4 - 1)
= 4 + F(3)
となります。ここでは、F(3) が出てきています。
あとは、これを繰り返していけば答えは出てきます。
F(5) = 5 * G(4)
= 5 * ( 4 + F(3) )
= 5 * ( 4 + ( 3 * G(2) ) )
= 5 * ( 4 + ( 3 * ( 2 + F(1) ) ) )
ここで、F(1) = 1 なので、
F(5) = 5 * ( 4 + ( 3 * ( 2 + 1 ) ) )
= 5 * ( 4 + ( 3 * 3 ) )
= 5 * ( 4 + 9 )
= 5 * 13
= 65
よって、正解は「イ」になります。
キャッシュメモリ(H10.春 1種 問16) キャッシュメモリに関する記述のうち、正しいものはどれか。 ア キャッシュメモリの容量が大きくなると、ミスヒットの頻度が 高くなる。 イ マルチプロセッサシステムでは、それぞれのキャッシュの内容の整合性 を保つためにライトスルー方式が有効である。 ウ メモリアクセスの局所性をより有効に生かすために、命令用キャッシュ とデータ用キャッシュを別に設けたプロセッサがある。 エ ライトバック方式の場合には、データ書込み時にキャッシュと 主記憶の両方に書込みをする。 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ■解答■(出典:H10.春 1種 問16) ---------------------------------------------------------------------- ウ メモリアクセスの局所性をより有効に生かすために、命令用キャッシュ とデータ用キャッシュを別に設けたプロセッサがある。 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ■解説■ ---------------------------------------------------------------------- 今週からアーキテクチャの話に入ります。 今日は、キャッシュメモリ(cache memory) の問題でした。やや難しめです。 キャッシュメモリ(cache memory) とは、主記憶(メモリ)と CPU の間に 置いて、高速化を計るための主記憶よりも動作が高速なメモリです。 これによって、CPU は主記憶(メモリ)に直接アクセスする回数が減るので スムーズな処理が可能になるということです。 選択肢を順に見ていきましょう。 > ア キャッシュメモリの容量が大きくなると、ミスヒットの頻度が > 高くなる。 ここで言うミスヒットとは、CPU が必要とするデータが キャッシュメモリ上にないことを言います。 つまり、キャッシュメモリの容量が大きくなれば、キャッシュメモリ上 にデータが存在する可能性も高くなり、ミスヒットの頻度が減ります。 ただ、容量を大きくするとアクセス速度は、多少落ちます。 > イ マルチプロセッサシステムでは、それぞれのキャッシュの内容の整合性 > を保つためにライトスルー方式が有効である。 ライトスルー(write through) 方式とは、シングルプロセッサシステム で、データを書込むときにキャッシュメモリと主記憶の両方に書込みを 行う方式です。この場合のキャッシュメモリと主記憶の整合性を保つ ためには、ライトスルー方式が有効です。 ただ、マルチプロセッサシステムの場合、キャッシュメモリは 各プロセッサごとに持っている(場合が多い)ので、ライトスルー方式 では整合性を保てません。 整合性を保つ方法としては、各キャッシュメモリで同期を取って 最新の情報を保つようにするか、更新されたキャッシュメモリ以外の キャッシュメモリにはアクセスしないようにする必要があります。 > ウ メモリアクセスの局所性をより有効に生かすために、命令用キャッシュ > とデータ用キャッシュを別に設けたプロセッサがある。 これが正解です。最近のキャッシュメモリは命令用とデータ用に 分かれているのが当たり前です(^^; 命令用は、文字通り命令用で、いちいち書き換える必要がありません。 よって、メモリアクセスの局所性が生かせるということになります。 > エ ライトバック方式の場合には、データ書込み時にキャッシュと > 主記憶の両方に書込みをする。 これは、「イ」でやったライトスルー方式の説明ですね。 ライトバック(write back) 方式とは、キャッシュメモリだけを 書換えておき、ブロックの入れ替え時に行う(書き戻す)ので、 こう呼ばれます。 ライトバック方式は、主記憶よりも高速なキャッシュメモリのみに 書きこむので、高速化につながります。整合性に少し欠けますが、 トータルで見れば、ライトバックの方が性能は上です。
メモリの種類(H12. 1種 問22) IC メモリのうち、記憶セルにフリップフロップを使用していて、高速に アクセスができ、パソコンのキャッシュメモリとして多く用いられるものは どれか。 ア DRAM イ EDO DRAM ウ SRAM エ VRAM ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ■解答■(出典:H12. 1種 問22) ---------------------------------------------------------------------- ウ SRAM ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ■解説■ ---------------------------------------------------------------------- 引き続き、アーキテクチャの特集です。 今日は、メモリに関する問題でした。基本情報技術者向けですね。 選択肢を順に見ていきましょう。 > ア DRAM(Dynamic Random Access Memory) これは、一般に主記憶(メモリ)に使われているメモリです。 一定時間(2,3ミリ秒)ごとに記憶保持のための再書き込み (リフレッシュ)を行う必要があります。 その他の特徴( SRAM に対して)は、 ・低速(リフレッシュ中にデータにアクセスできないので) ・安価 ・消費電力が大きい ・回路が単純(コンデンサで構成されている)で、集積度が上げやすい という特徴があります。読み方はそのまま「でぃーらむ」です。 > イ EDO DRAM(Enhanced Data Out Dynamic Random Access Memory) DRAM に比べて、データを出力するタイミングを改良して、 データ転送の1サイクルの時間を短縮した DRAM です。 EDO DRAM は、Pentium が出たころに流行りましたが、現在では メモリーのバスインタフェースがマザーボードのクロックと同期して いる SDRAM(Synchronous DRAM) が支流です(・・・でした?) 最近は、プレステ2に使われている RDRAM(Rambus DRAM) や 速いと言われている DDR SDRAM(Double Data Rate Synchronous DRAM) や、Direct RDRAM(Direct Rambus DRAM) というものも聞きますが、 どれも DRAM の1種です。 まぁ、どこまでが試験に出るかはわかりません。 EDO DRAM の前にもいろいろありましたし、名前ぐらいは知っていても 損はないかもしれませんね。 参考書を持っている人は、この辺が書かれたページを見てみると、 参考書の信頼性が分かるかもしれません。 古い参考書では、EDO DRAM が最新とか書いてあるかもしれませんよ(^^; 詳しい話は、パソコン雑誌でチェックして下さい(^^;; 僕の知識もきっと遅れていると思いますので・・・。 > ウ SRAM(Static Random Access Memory) これは、キャッシュメモリで使われているメモリです。 フリップフロップ回路(flip-flop circuit) という1ビット分の情報を 保持できる回路を用いているので、記憶保持のために DRAM のような 特別な動作(リフレッシュ)が必要ありません。 (ただ、リフレッシュをする SRAM もあるようです) その他の特徴( DRAM に対して)は、 ・高速(一般にリフレッシュが必要ない) ・高価 ・消費電力が小さい ・回路が複雑(フリップフロップで構成)で、集積度が上げにくい ・電源がつながれている間は、データを保持する という特徴があります。読み方はそのまま「えすらむ」です。 > エ VRAM(Video Random Access Memory) ディスプレイに表示する画像のデータを保持しておくメモリです。 ディスプレイの解像度の最大値や最大同時発色数は、VRAM の容量で 決まります。 以前からも書いていますが、このようなメモリなどの最新のデータ(用語や 数値)などは、日々進歩しているため、書いた内容が間違っている事も あるかもしれません。試験で細かく突っ込まれることはありませんが、 情報処理技術者として、ある程度は最新のことを知っておいた方が良いとは 思っています。
クロックサイクル(H11.1種 問15) ---------------------------------------------------------------------- クロック周波数が 200MHz で動作しているパソコンにおいて、キャッシュの アクセス時間を 10 ナノ秒、主記憶のアクセス時間を 70 ナノ秒、 キャッシュのヒット率を 90% としたとき、メモリアクセスに必要な 平均クロックサイクルは幾つか。 ア 2 イ 4 ウ 8 エ 16 ---------------------------------------------------------------------- それでは、みなさんの回答を紹介します。 計算問題だったので、若干回答が増えました(^^; > クロック周波数が200MHz ということは、 > 一秒間に200*10^6クロックあるということなので、 > 1クロック当たりにかかる時間は、 1 / (200 * 10^6) = 5 ns > また、キャッシュのアクセス時間を 10 ナノ秒、 > 主記憶のアクセス時間を 70 ナノ秒、 > キャッシュのヒット率を 90%としているので、 平均アクセス時間は、 > 10 * 0.9 + 70 * (1 - 0.9) = 9 + 7 = 16 ns > よって、メモリアクセスにかかる平均クロックサイクルは、16 / 5 = 3.2 > 切り上げて、答えは イ 4 です。 これと同じように求めた人がほとんどでしょう。 どうもありがとうございました。 > メモリーのアクセス時間を計算します。 > > メモリーアクセス時間 > =キャッシュメモリアクセス時間 * ヒット率 > + 主記憶のアクセス時間 *( 1 - ヒット率 ) > で求められます。 > > すなわち 10*0.9+70*(1-0.9)=16ナノ秒 > > また、パソコンのクロック周波数は200MHZなので 1サイクルは > > 1/200*10^-6 = 1/0.2 * 10^-9 = 5ナノ秒 > > このことから 16/5=3.2サイクル必要 切り上げて 4サイクル必要なります メモリのアクセス時間の式が、まず1つ目のポイントですよね。 どうもありがとうございました。 > "^"は指数表示の記号とする。 > クロック周波数が 200MHzなので、1クロックにかかる時間は > 動作周波数の逆数を採って、 > 1/(200X10^6)=5X10^(-9) > 5ナノ秒となる。 > > キャッシュのヒット率が90%なので、 > キャッシュのアクセスでメモリアクセスが完了するのが90%、 > 主記憶のアクセスでメモリアクセスが完了するのが10%、 > となり、メモリアクセスに必要な平均アクセス時間は > 10(ナノ秒) X 0.9 + 70(ナノ秒) X 0.1 = 16(ナノ秒) > 16ナノ秒となる。 > > 以上より、メモリアクセスに必要な平均クロックサイクルは、 > 16(ナノ秒) ÷ 5(ナノ秒/サイクル)= 3.2(サイクル) > 3.2サイクルとなる。 > > よって正解は(イ)の 4 となる。 > > 参考:単位の10の整数乗倍のSI接頭語(一部) > K(キロ)=10^3 ,M(メガ)=10^6, > G(ギガ)=10^9 ,T(テラ)=10^12 > m(ミリ)=10^-3,μ(マイクロ)=10^-6, > n(ナノ)=10^-9,p(ピコ)=10^-12 最後の接頭語は、これぐらい知っておきたいですね。 どうもありがとうございました。 > 「メモリアクセスに必要な平均クロックサイクル」とありますが、まずは > 平均アクセス時間を求めましょう。 > キャッシュへのヒット率が 90% なので、主記憶へのヒット率は 10% です。 > > これより 10 * 0.9 + 70 * 0.1 = 9 + 7 = 16 ns > > 平均アクセス時間は 16 ナノ秒です。 > > アクセス時間はひとまず置いておいて、パソコン(CPU)の周期を求め > ます。周期は周波数の逆数ですから、 > > 1 / (200 * 10 ^ 6) = 0.005 us = 5 ns > > 1クロックに対し 5 ナノ秒消費します。いわば、5 ns / clock 。 > > さて、ここでやっと「メモリアクセスに必要な平均クロックサイクル」を > 求めます。平均アクセス時間が 16 ns ,周期が 5 ns / clock なので、 > > 平均アクセス時間 / 周期 = クロック数 となります。 > > これより 16 / 5 = 3.2 clock > > 小数点以下を切り上げて、4 clock が正解です。答えは イ です。 > −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−− > この手の問題は「単位をそろえる」ということがポイントでしょうか。 > 「 ^ 」はべき乗の意味ですが、おなじみの表現ということで。 どうもありがとうございました。 受験、合格おめでとうございます!>Ossan さん > キャッシュのヒット率とはメモリにアクセスするときに > キャッシュのほうにアクセスする割合なのでこの問題の場合 > 90%はキャッシュに、10%は主記憶にアクセスします。 > これより1回のメモリアクセスにかかる時間の平均を > 先に求めます。 > > (10×0.9)+(70×0.1)=16(ナノ秒) > ↑ ↑ > キャッシュ 主記憶 > > ここから、1回のアクセスに平均16ナノ秒かかると > いうことがわかります。 > つまり、この16ナノ秒の間に何回クロックが作動しているかを > 求めればよいということになります。 > そこで、クロック周波数が出てくるのですが、このHzは > 1秒間に何回クロックが作動するかを表していますので > (この単位は 回/秒 ともいえます)、 > 逆数をとると1回あたりに何秒かかるかがわかります > ( 秒/回 ということです)。 > 単位もそろえつつ逆数を取ると > > 1000×1000×1000 / 1000×1000×200 > ↑ ↑ > 分子 ナノへの変換 分母 M(メガ)からの変換 > > これを計算すると 5(ナノ秒/回)となります。 > 1回のアクセスに16ナノ秒かかるので、 > > 16/5=3.2 となり > > クロック数は繰り上げて4回かかるところから答えは(イ)となります。 > でも、ここで繰り上げていいんですかね..? > 何かがおかしいと考えなおしたところ..先ほどの逆数の計算で > Mの変換をするとき、実際のコンピューターのように > 1M=1024K 1K=1024 > で計算したところ、答えはぴったり4になりました。 > どっちにしても答えは(イ)だと思います。 > 私は二種しか受けてないのでわかりませんが、1024で > 変換するときは、問題文に注が入るのではないのでしょうか? > それともクロック周波数だからでしょうか?そこのところは > よくわかりませんでした。それにしても記念すべき > 512回目に1024の話が出てくるのも何かの縁ですかね.. 情報処理技術者試験の場合、特に指定がなければ 1000 で計算しても 1024 で計算しても、同じ選択肢が選べるようになっています。 今回の場合は、1024( 2 の 10 乗)で計算した方が良かったようですね。 どうもありがとうございました。 > # 良く出てくるこの手の問題ですが,次のように考える事も出来ます. > > 100個のデータにアクセスするとして,そのアクセス時間の平均を考える. > ヒット率が n %だと,100個のうち > ・n 個はキャッシュに有る. > ・(100−n) 個はキャッシュに無い. > > キャッシュのアクセス時間が c ナノ秒,主記憶が m ナノ秒とすると > ・X 個のアクセス時間は c ナノ秒 > ・(100−n) 個のアクセス時間は m ナノ秒 > > 平均のアクセス時間は > { c × n + m × (100−n) }÷100 (ナノ秒) > > となります.(n が小数になったとしても計算は同じ) どうもありがとうございました。 ケアレスミスにご注意を(^^; >マッシーさん > 回答:イ > 解説 > メモリアクセスに必要な時間を計算します。 > > キャッシュ 10 ナノ秒 * 90 % = 9 ナノ秒 > 主記憶 70 ナノ秒 * 10 % = 7 ナノ秒 > −−−−−−−−−−−−−−−−−−−− > 合 計 16 ナノ秒 > > 「クロック周波数が 200MHz 」は、1秒 ( 1,000,000,000ナノ秒 ) > に 200,000,000 回の信号を発生させるという意味です。したがっ > て、16 ナノ秒での信号の発生回数を求めると 3.2 回となり、選択 > 肢の中でもっとも近い イ を正解と考えました。 > > 1,000,000,000ナノ秒 : 200,000,000 回 = 16 ナノ秒 : a 回 > > 今回は計算問題なので用語を過去問で調べてみました。 > ■平成11年春二種午前18■ > 処理装置の演算速度に比べ,主記憶装置へのアクセス速度は遅い。 > この速度差を埋めるために,処理装置と主記憶装置の間に置く,高 > 速の記憶装置はどれか。 > > イ キャッシュメモリ > > ■平成11年春初級シスアド午前28■ > パソコンの記憶装置に関する記述として,正しいものはどれか。 > > ウ キャッシュメモリは,CPU と主記憶の動作速度の差を補うた > めに使われる > > ■平成10年上級システムアドミニストレータ午前80■ > パソコンを購入しようとして,2 種類の仕様を比較したところ, > CPU クロック周波数が 100MHz と 200MHz であった。 > このクロック周波数と処理速度の関係において,正しい記述はど > れか。 > > イ クロック周波数は,CPU の命令実行タイミングを制御するも > のなので,高くなる程,パソコンの処理速度は向上する。ただ > し,メモリや周辺装置のデータ転送速度も併せて向上させるこ > とが前提である。 > > ■平成11年一種午前14■ > パソコンのクロック周波数に関する記述のうち,適切なものはど > れか。 > > ア CPU のクロック周波数と,主記憶を接続するシステムバスの > クロック周波数は同一でなくてもよい。 > > ■平成12年秋二種午前16■ > プロセッサを制御するために用いられるクロックに関する記述の > うち,適切なものはどれか。 > > ア 同じアーキテクチャのプロセッサであれば,クロック周波数 > の高いものほど単位時間当たりの実行命令数は多い。 新サイトの方に、ちょっと変わった【用語集】も設置しました。 掲載数はまだ少ないですが、これから少しずつ増やして、解説もどんどん 付け加えていきたいと思います。 用語の充実にご協力いただける方がいらっしゃったら、幸いです(^^)
CD-ROM(H12. 1種 問18) CD-ROM に関する記述のうち、適切なものはどれか。 ア 書込みはできないが、アクセス速度が磁気ディスク装置よりも高速な 装置を利用できる。したがって、情報の追加や更新がなく、ランダムに アクセスされるデータベースに適している。 イ 各データは、シリンダ、トラック、セクタの三つのレベルのアドレスで 管理されている。 ウ 国際的な CD-ROM 用論理ファイルフォーマットである ISO 9660 では、 ディレクトリに関する情報を保持できないので、各ファイルに “/”や“\”などの記号を含む長いファイル名を用いることによって、 階層構造を管理している。 エ データやそれを処理するプログラムなど、セクタを単位とする ディジタルデータを含む領域と、音楽用 CD と同様のオーディオ情報を 含む領域の両方を混在させることができる。 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ■解答■(出典:H12. 1種 問18) ---------------------------------------------------------------------- エ データやそれを処理するプログラムなど、セクタを単位とする ディジタルデータを含む領域と、音楽用 CD と同様のオーディオ情報を 含む領域の両方を混在させることができる。 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ■解説■ ---------------------------------------------------------------------- 引き続き、アーキテクチャの特集です。 今日は、CD-ROM に関する問題でした。 CD-ROM(Compact Disc - Read Only Memory) は、お馴染みですね。 文字通り、読みこみ専用のコンパクトディスクです。 選択肢を順に見ていきましょう。 > ア 書込みはできないが、アクセス速度が磁気ディスク装置よりも高速な > 装置を利用できる。したがって、情報の追加や更新がなく、ランダムに > アクセスされるデータベースに適している。 ROM(Read Only Memory) なので書きこみはできませんが、 アクセス速度は、磁気ディスク(ハードディスク)の方が高速です。 まぁ、この選択肢は、実は少し微妙かもしれません。 磁気ディスクと見たときに、フロッピーディスクを思い浮かべる人も いるでしょう。情報処理技術者試験ではハードディスクのことです。 > イ 各データは、シリンダ、トラック、セクタの三つのレベルのアドレスで > 管理されている。 これは、磁気ディスク(ハードディスク)の説明です。 > ウ 国際的な CD-ROM 用論理ファイルフォーマットである ISO 9660 では、 > ディレクトリに関する情報を保持できないので、各ファイルに > “/”や“\”などの記号を含む長いファイル名を用いることによって、 > 階層構造を管理している。 CD-ROM 用論理ファイルフォーマットは ISO 9660 です。 その中で、ディレクトリに関する情報を定めています。 よって、“/”や“\”などの記号を含まない形式で、管理します。 一般に、ファイル名は 8.3 形式(MS-DOS の FAT ファイルシステムで 使われていた 8bytes の名前と、3bytes の拡張子によりファイル名を 表現する形式)を使って表わしています。このロングファイル名に 対応した Joliet という規格もあります。 > エ データやそれを処理するプログラムなど、セクタを単位とする > ディジタルデータを含む領域と、音楽用 CD と同様のオーディオ情報を > 含む領域の両方を混在させることができる。 これが正解です。 音楽用の CD-ROM で CD Extra と呼ばれる、曲とは別に画像や動画入り の CD-ROM がありますが、このことです。 音楽用の CD のケースに必ず書いてあるロゴが disk+ と書かれていたら CD Extra のことです。パソコンで再生してみましょう。 ビデオクリップやスクリーンセイバー、壁紙などが利用できます。
欠陥修復(H12. 1種 問67) ---------------------------------------------------------------------- ソフトウェアの欠陥修復に要するコストに関する記述のうち、 適切なものはどれか。 ア 外部及び内部設計の誤りは、プログラム作成や、マニュアルなどの ユーザ向けドキュメント作成作業に影響を与えるので、 ソースコードの誤りに比べて修復コストは高い。 イ ソースコードの誤りは、修復のための作業範囲がその後の工程全部に 及ぶので、要求定義の誤りに比べて修復コストは高い。 ウ マニュアルなどのユーザ向けドキュメントの誤りは、文書の修正や 正誤表の作成が必要になるので、外部及び内部設計の誤りに比べて 修復コストは高い。 エ 要求定義の誤りは、設計レビューによって除去できるので、 ソースコードの誤りに比べて修復コストは低い。 ---------------------------------------------------------------------- それでは、みなさんの回答を紹介します。 > まずシステム開発は、大体次のような流れだったと思います。 > > 要求定義 -> 外部設計 -> 内部設計 -> プログラム設計 > -> モジュール設計 -> コーディング -> テスト > > したがって、前の工程の誤りはその後の工程に響いていくので、開発の初期 > の段階の誤りほど修復コストは高くなっていくと思います。 > これらを踏まえると、答えは ア になります。 そうですね。上流で間違えるとエライことになる場合があります。 試しにやってみるのも・・・やめましょう(^^; どうもありがとうございました。 > どの時点で間違ってるのが困った事になり易いか? > ...上流(初期)の間違いが一番厄介なのですね. > 下流(後の)工程に影響する(全てひっくり返る場合もある)から. > > これらの工程の順序は... > > 要求定義→ 外部設計 → 内部設計 → プログラミング → ドキュメント作成 > > というような順番になりますね. > > 例えば,要求定義(=クライアントが求める物)の間違いがプログラミングの > 途中で判明したりすると,とても大変な訳です.全部やり直し. > > それに比べると,マニュアルの間違いなんてのは,それを直せばおしまい > なので割と簡単. > > イ,ウ,エが間違いとなります.正解はア 秋の初級シスアドの問題で「システムアドミニストレータとして、深く関与 すべき段階は?」というの問題もありましたよ。(答えは後ほど) どうもありがとうございました。 > ア これが正解です。 > 外部及び内部設計のほうがコーディングよりも前の工程だからだと思う > イ 要求定義するほうがコーディングよりも前の工程だからだと思う。 > ウ 外部及び内部設計に誤りがあると、ドキュメントも誤ってしまうため。 > エ 「イ」と同じ理由で。 どうもありがとうございました。 こんなふうに問題を解けるようになっていくと良いですね>みなさん > ア 外部設計や内部設計が変わると当然ソースコードにも影響が出てきます > また、ソースコードの誤りは必ずしもマニュアルなどに影響を及ぼす > とは限りません。これが正解でしょう。 > > イ 「ソースコード」と「要求定義」を入れ替えれば正解でしょう。 > > ウ 外部設計や内部設計の誤りはユーザインタフェースの変更を含みます > から、マニュアルなどの修正が必要になります。 > マニュアルの誤りは、それを直せばいいだけです。 > > エ 要求定義が間違っていると、後の全ての工程に修正を加えないと > いけません。 > > プログラマとして最近ようやく慣れてきましたが、うちの会社の作業の流れ > をあてはめるとこんな感じです。 > > #不正解でも添削のために掲載されることを歓迎します。 ちゃんと合ってましたよ(^^; 問題ないです。 このコーナーの回答に関しては、ほとんどの場合採用しています。 「自分の考え方が間違っていないか?」ということを確認してもらうのも 1つの狙いです。どうもありがとうございました。 > 回答:ア > 解説 > システムの開発工程は一般に以下の様な手順で進められます。 > > ┌───────┐ > │ 基本計画 │ 要求定義 > └───────┘ > ↓ > ┌───────┐ > │ 外部設計 │ > └───────┘ > ↓ > ┌───────┐ > │ 内部設計 │ > └───────┘ > ↓ > ┌───────┐ > │プログラム設計│ > └───────┘ > ↓ > ┌───────┐ > │プログラミング│ ソースコードの誤り > └───────┘ > ↓ > ┌───────┐ > │ テスト │ > └───────┘ > ↓ > ┌───────┐ > │ 保守運用 │ > └───────┘ > > 右側には選択肢のキーワードを付加しています。 > 上流の工程であるほど、下流の工程に与える影響は大きくなると考 > えました。 > 選択肢を見てみます。 > ア:外部及び内部設計の誤りは、ソースコードの誤り(プログラム > 作成の工程)よりも上流の工程であるため選択肢の通りである > と思います。 > イ:要求定義の方が上流工程である為間違い。内容にもよるが、ソ > ースコードの誤りがマニュアル作成などの後工程すべてに影響 > をあたえるわけではない。 > ウ:外部及び内部設計の方が上流工程である為間違い。 > エ:設計レビューは外部設計の工程で実施される。こちらの方が上 > 流工程であり間違い。設計レビューにより除去できる部分もあ > ると思うが、必ずしもそうなるとは限らない。 どうもありがとうございました。 先ほどの「システムアドミニストレータとして、深く関与すべき段階は?」 と言う質問は「要求分析・定義」の段階でした。
RAID(H12. 1種 問17) 従来の磁気ディスク装置と比較したときの RAID の特徴に関する記述 のうち、適切なものはどれか。 ア 個々の磁気ディスクのデータ転送速度が高速になる。 イ 個々の磁気ディスクの容量の合計よりも、はるかに大きい容量を 実現できる。 ウ 多数の磁気ディスクをアクセスする必要があるので、データのアクセス 時間が長くなる。 エ 多数の磁気ディスクの併用によって、ディスク系の性能、信頼性の向上 が期待できる。 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ■解答■(出典:H12. 1種 問17) ---------------------------------------------------------------------- エ 多数の磁気ディスクの併用によって、ディスク系の性能、信頼性の向上 が期待できる。 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ■解説■ ---------------------------------------------------------------------- 引き続き、アーキテクチャの特集です。 今日は、磁気ディスクの計算問題でした。 今日は、RAID に関する問題でした。 RAID(Redundant Arrays of Inexpensive Disks) とは、 複数の磁気ディスク装置を使って信頼性が高く、高速な大容量記憶媒体を 実現する技術のことです。一つのファイルを複数のディスクに並列処理で 同時に読み書きすることによって、高速化を実現するものです。 かみ砕いて言えば、たくさんのハードディスクを使って、高速化や信頼性を 高めよう!という話です。 この RAID には、RAID 0 から RAID 5 の6つのレベルがあります。 RAID 0:データを分割保存する(ストライピング(striping)) データを複数のドライブに分散させて、同時に読み書きすることで アクセス速度を高めます。 RAID 1:データを複製保存する(ミラーリング(mirroring)) 同一データを複数のドライブに分散して書き込み、単体のドライブ よりも信頼性を向上させます。 RAID 2:データの修復情報としてハミングコード(ECC) を利用する チェック用ハードディスクを別に用意し、データ訂正まで 行えるようにしたものです。 ECC は Error Check and Correct の略です。 RAID 3 / RAID 4 / RAID 5: データの修復情報としてパリティを利用する。 (パリティチェック(parity check)) RAID 3 ではバイト単位、RAID 4 ではブロック単位で、データを 分割して記憶します。パリティビット用ハードディスクを別に用意 して記録し、データ破壊時の修復を可能にします。 また、RAID 5 では、パリティービット記録用ハードディスクは 特定しないで、各ハードディスクで分担して、エラーチェックを 行います。誤り訂正符合を各ディスクに分散することで、 一つのディスクに障害が発生したときでも、システムとしての機能 を果たします。 ソフトウェア開発レベルとしては、各RAID のレベルの内容もある程度 知っておいても損はないと思います。平成11年の1種では「RAID 5 の 特徴は?」という問題が出題されていました。 さらに、下の「これ、おしえてっ!」もやってみると良いでしょう。 (RAID の解説もこっちの方がしっかりしてるという話も) http://www.melma.com/mag/89/m00000189/a00000389.html 基本情報や初級シスアドレベルとしては「複数の磁気ディスク装置を使って 信頼性が高く、高速な大容量記憶媒体を実現する技術」とわかっていれば 良いでしょう。 ふと、ハードディスクで思い出しましたが、知り合いが持っていた このハードディスク(?)を見たときは驚きました。 (宣伝みたいですが、東芝さんと僕は全く関係ないです) http://www2.toshiba.co.jp/mobileav/products/hdd/stapa/md2gb/
ノンプリエンプティブ(H11. 1種 問23) ノンプリエンプティブなマルチタスクOSの欠点はどれか。 ア アプリケーションプログラムがループするとOSに制御が戻らない。 イ 仮想記憶のページ置換えの機能が不充分となる。 ウ カーネルモードとユーザモードの区別がなく、OSが破壊される危険性 がある。 エ 割込み処理が遅れ、入出力処理のリアルタイム性が劣る。 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ■解答■(出典:H11. 1種 問23) ---------------------------------------------------------------------- ア アプリケーションプログラムがループするとOSに制御が戻らない。 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ■解説■ ---------------------------------------------------------------------- 今日も、OS(Operating System) の問題でした。 プリエンプティブな(preemptive)OSとは、OSが一定時間ごとに実行する タスクを切り替えるOSをいい、ノンプリエンティブ(nonpreemptive)OS とは、タスクを切り替えずに実行するOSをいいます。 また、ノンプリエンプティブなマルチタスクとは、実行可能状態になった 順番にタスクが実行され、タスクの実行が終わるまでタスクを切り替えない OSをいいます。 順に選択肢を見ていきましょう。 > ア アプリケーションプログラムがループするとOSに制御が戻らない。 これが正解です。 ノンプリエンプティブなマルチタスクOSでは、実行中のアプリケー ションプログラムがループすると、自分から実行中のタスクを 切り替えられないので、OSに制御が戻らなくなります。 > イ 仮想記憶のページ置換えの機能が不充分となる。 ノンプリエンプティブなOSの場合は、各タスクの切り替えが プリエンプティブなOSに比べて少なく、仮想記憶のページ置換えを あまりしなくて済むので、欠点とは言えません。 > ウ カーネルモードとユーザモードの区別がなく、OSが破壊される > 危険性がある。 マルチタスクなOSは、カーネルモード(OSのために動いている モード)とユーザモード(ユーザのために動いているモード)の 2つのモードの区別があります。 よって、OSが破壊される危険性はない。 > エ 割込み処理が遅れ、入出力処理のリアルタイム性が劣る。 プリエンプティブでも、ノンプリエンプティブでも入出力の割込み処理 は変わらないので、リアルタイム性は変わりません。
イベントドリブン方式(H10. 1種 問24)
イベントドリブン方式のプロセス切替えに関する記述のうち、正しいものは どれか。 ア イベントドリブン方式とタイムスライシング方式は排他的なものであり 1つのシステムで共存することはない。 イ プロセス切替えのきっかけは、入出力終了やプログラム異常などであり ユーザプログラムが要求するものではない。 ウ プロセス切替えの処理はソフトウェアによって行われ、ハードウェアが 介在することはない。 エ 割りこまれたプロセスが、割り込み処理終了後に、引き続いて実行され る保証はない。 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ■解答■(出典:H10. 1種 問24) ---------------------------------------------------------------------- エ 割りこまれたプロセスが、割り込み処理終了後に、引き続いて実行され る保証はない。 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ■解説■ ---------------------------------------------------------------------- 先週に引き続き、OS(Operating System) の関する問題です。 今日は、イベントドリブン方式の問題でした。 ソフトウェア開発技術者レベルの問題になります。 イベントドリブン方式(event driven) とは、入出力終了やコマンド入力、 もっと言うなら、マウスでクリックするなどの割込み(イベント)を きっかけにして、次に実行するものを決めていく方式です。 次に実行するものを決める際には、優先順位の高いものから実行することに なります。優先順位の低いものは、後回しになります。 かみ砕いて言えば、タスクが割込みを繰返しながらタスクの切替えを行い、 実行していく方式です。 > ア イベントドリブン方式とタイムスライシング方式は排他的なものであり > 1つのシステムで共存することはない。 2つの方式は排他的ではなく、組み合わせて使われます。 たとえば、実行したいプロセスが10個あって、そのうち3つは 優先度が高いものとすると、その3つはイベントドリブン方式で処理 を行い、残りの7つはタイムスライス方式で処理を行うというように 使い分けられています。 ☆タイムスライス方式(time slice) 複数のプロセス(タスク)を短い時間で少しづつ行う方式 > イ プロセス切替えのきっかけは、入出力終了やプログラム異常などで > あり、ユーザプログラムが要求するものではない。 ユーザプログラムが実行する場合もあります。 「マウスカーソルが動いた」とか「キーボードで文字を入力した」と いうのもイベントの1つです。 > ウ プロセス切替えの処理はソフトウェアによって行われ、ハードウェアが > 介在することはない。 プロセス切替えの処理はハードウェア(レジスタのアドレス空間を 切替えたりする)で行われます。 > エ 割りこまれたプロセスが、割り込み処理終了後に、引き続いて > 実行される保証はない。 これが正解になります。 割込み処理終了後に、優先順位の高いプロセスがあれば、割りこまれた プロセスは待たされることになるので、引き続いて実行される保証は ないということになります。