令和元年度秋期 基本情報技術者試験 午前 問11~問15|過去問解説

令和元年度秋期・基本情報技術者試験の午前問11~問15を解説します。再帰関数、CPU性能、割り込み処理、デイジーチェーン、RAIDの基礎を計算や図とともに確認します。

Share
【基本情報処理技術者試験】最新問題のテクノロジ系をまったり解く 問11~問15【令和元年度秋試験】
この記事について
2019年(令和元年度)秋期に実施された基本情報技術者試験 午前の問11~問15を扱う過去問解説です。現在の試験制度や出題形式とは一部異なりますが、コンピュータサイエンスの基礎学習には引き続き活用できます。
出典・引用について
問題文、選択肢および試験問題に含まれる図表は、独立行政法人情報処理推進機構(IPA)が公開している令和元年度秋期試験から引用しています。掲載にあたり、改行、表組み、全角・半角、画像配置などを調整している場合があります。問題の趣旨は変更していません。解説、補足、計算過程および当サイト作成の図は、工学じじいの縁側日記によるものです。
IPA公式・問題冊子(PDF)IPA公式・解答例(PDF)2019年度の過去問題一覧

R01基本情報技術者試験 秋期試験に挑戦

令和元年度 基本情報技術者試験 午前問題 問11~問15

令和元年度 基本情報技術者試験 午前問題 問11

出典:令和元年度 秋期 基本情報技術者試験 午前 問11

自然数(n)に対して、次の通りに再帰的に定義される(f(n))を考える。(f(5))の値はどれか。

(\begin{array}{ccccrlcc} f(n)& : & n\leqq 1 & then &return& 1 & else &return &n + f(n-1) \end{array})
6 9 15 25

解説

再帰関数の理解に関する問題です。
見たまま、書くと関数(f(n))は、

\(n\leqq1\)の場合 1を返す
それ以外の場合 \(n+f(n-1)\)を返す

という関数です。慣れないと、関数が関数を返すってちょっと混乱しますよね(笑)
それでは解いていきます。

入力 \(n\leqq1\) return
\(f(5)\) False \(5+f(4)\)
\(f(4)\) False \(4+f(3)\)
\(f(3)\) False \(3+f(2)\)
\(f(2)\) False \(2+f(1)\)
\(f(1)\) True \(1\)

総合すると

$ \begin{eqnarray*} f(5) &=& 5+f(4) = 5+ 4 +f(3) = 5+4+3+f(2) \ &=&5+4+3+2+f(1) = 5+4+3+2+1=15 \end{eqnarray*} $

令和元年度 基本情報技術者試験 午前問題 問12

出典:令和元年度 秋期 基本情報技術者試験 午前 問12

1GHzのクロックで動作するCPUがある。このCPUは、機械語の1命令を平均0.8クロックで実行できることがわかっている。このCPUは1秒間に平均何万命令を実行できるか。

125
250
80,000
125,000

解説

MIPS(ミプス)=100万命令毎秒(million instructions per second、1秒間に何百万個の命令が実行できるか)を求める問題の仲間です。
MIPSは秒間当たり何(百万命令)が実行できるか?ですが、問題では、平均何万命令を実行できるか、になっています。単位がちょっと違うんですね。
情報として、1命令あたり 0.8 クロックで実行できることがわかっています。
1命令:0.8 クロック = (x)命令:1 クロック
より、1.25 命令/クロックが求められます。
後は、このCPUのクロック周波数=1秒間当たりのクロック数をかけてあげればいいですね。
CPUは 1 GHz = 1 × 1,000 × 1,000 × 1,000 Hz = 10億クロック/秒です。
したがって、

1.25 x 1000 x 1000 x 1000 命令/S = 1250000000 = 125000 (万)

が導かれるので、「エ」が正解

令和元年度 基本情報技術者試験 午前問題 問13

出典:令和元年度 秋期 基本情報技術者試験 午前 問13

メイン処理、及び表に示す2つの割り込みA、Bの処理があり、多重割込みが許可されている。割り込みA,Bが図のタイミングで発生するとき、0ミリ秒から5ミリ秒までの間にメイン処理が利用できるCPU時間は何ミリ秒か。ここで、割り込み処理の呼び出し及び復帰に伴うオーバーヘッドは無視できるものとする。

\( \begin{array}{|c|c|c|} \hline 割り込み & 処理時間(ミリ秒)& 割り込み優先度 \\ \hline A & 0.5 & 高 \\ \hline B & 1.5 & 低 \\ \hline \end{array} \)
f:id:gomta777:20191031235700p:plain

図:割り込み発生タイミング

2 2.5 3.5 5

解説

割り込み処理の問題です。優先度の違う2つの割り込みが用意された処理系で、 割り込み中の割り込みが許可されています。
優先度の低い割り込みの処理時間中に、優先度の高い割り込みが実行されると、優先度の低いほうはいったん待機して、先に優先度の高い割り込み処理が終了するのを待つ。という仕組みです。
それを踏まえて、図を見てみると、

優先度の低いBが先に割り込みでメイン処理を中断させます。
②その1ミリ秒後に優先度の高い割り込みAが発生します。

f:id:gomta777:20191031235630p:plain

③割り込みBは、割り込みAが処理を終了するまでの0.5ミリ秒待機させられて、その後残りの0.5ミリ秒の割り込みを実行します。以下同様に考えていくと

f:id:gomta777:20191031235734p:plain

メインで使える部分を数えてみると、2msなので、「ア」が正解

令和元年度 基本情報技術者試験 午前問題 問14

出典:令和元年度 秋期 基本情報技術者試験 午前 問14

次に示す接続のうち、デイジーチェーンと呼ばれる接続方法はどれか。

PCと接続機器とをRS-232Cで接続し、PCとプリンタとをUSBを用いて接続する。
Thunderbolt接続ポートが2口ある4Kディスプレイ2台を、PCのThunderbolt接続ポートから1台目のディスプレイにケーブルで接続し、さらに1台目のディスプレイと2台目のディスプレイとの間をケーブルで接続する。
キーボード、マウス及びプリンタをUSBハブにつなぎ、USBハブとPCとを接続する。
数台のネットワークカメラ及びPCをネットワークハブに接続する。

解説

デイジーチェーンの用語説明です。
そもそも、コスモスと、デイジーとマーガレットの区別がつかないのでちょっと難しいです。
冗談はさておきw
本物のデイジーチェーンが何なのか、わかれば想像で答えがわかる問題です。

f:id:gomta777:20191101001347p:plain

図:デイジーチェーン

ヒナギクで作った花飾りの輪のことをデイジーチェーンというらしいですね。その状態で機器が接続されているのは?
いわゆる数珠つなぎに接続されているのは、「イ」なので、「イ」が正解

令和元年度 基本情報技術者試験 午前問題 問15

出典:令和元年度 秋期 基本情報技術者試験 午前 問15

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

RAID1 RAID2 RAID3 RAID4

解説

なんか、久々にRAID関連の用語に関する問題を見た気がする。。。
RAIDは複数ディスクを用いたデータ保存法です。その接続と冗長性の保持の仕方から種類が分かれています。

$$ \renewcommand{\arraystretch}{1.7} \begin{array}{c|c|c|c} \textbf{RAID} & \textbf{仕組み} & \textbf{長所・特徴} & \textbf{短所・条件} \\ \hline \text{RAID 0} & \begin{array}{c} \text{複数ディスク分散で}\\ \text{データを記録する}\\ \text{(ストライピング)} \end{array} & \begin{array}{c} \text{アクセス速度の}\\ \text{向上} \end{array} & \begin{array}{c} \text{1台壊れると}\\ \text{アクセス不能} \end{array} \\ \hline \text{RAID 1} & \begin{array}{c} \text{複数ディスクに}\\ \text{同じデータを記録する}\\ \text{(ミラーリング)} \end{array} & \begin{array}{c} \text{障害耐性の}\\ \text{向上} \end{array} & \begin{array}{c} \text{容量が}\\ \text{半減} \end{array} \\ \hline \text{RAID 5} & \begin{array}{c} \text{分散記憶}\\ +\text{パリティ}\\ \text{(誤り訂正符号)} \end{array} & \begin{array}{c} \text{障害耐性}\\ +\text{容量が稼げる} \end{array} & \begin{array}{c} \text{最低3台の}\\ \text{ディスクが必要} \end{array} \\ \hline \text{RAID 2} & \begin{array}{c} \text{分散記憶}\\ +\text{誤り訂正用ディスク}\\ \text{(ハミングコード)} \end{array} & \begin{array}{c} \text{ほぼ}\\ \text{概念上のみ} \end{array} & \begin{array}{c} \text{最低5台}\\ \text{データ2台}\\ \text{誤り訂正3台} \end{array} \\ \hline \text{RAID 3} & \begin{array}{c} \text{RAID 2の訂正符号を}\\ \text{パリティにしたもの} \end{array} & \begin{array}{c} \text{ほぼ}\\ \text{概念上のみ} \end{array} & \begin{array}{c} \text{最低3台}\\ \text{データ2台}\\ \text{パリティ1台} \end{array} \\ \hline \text{RAID 4} & \begin{array}{c} \text{ブロック単位保存}\\ +\text{パリティディスク} \end{array} & \begin{array}{c} \text{ほぼ}\\ \text{概念上のみ} \end{array} & \begin{array}{c} \text{最低3台}\\ \text{データ2台}\\ \text{パリティ1台} \end{array} \end{array} $$

そのほか、ストライピングをミラーするRAID 0+1やミラーをストライピングするRAID 1+0などがある。
これをふまえて、問題を見てみると、ミラーリングしか書いてないのでRAID1=「ア」が正解なのがわかります。

次回予告

今日も、まーったり何問かときました。こうしてみると、なんか、いつもと傾向が違う気がしますね。
少しでも、参考になればうれしいです。


シリーズ内の記事

内容の誤りや分かりにくい箇所は、お問い合わせページからお知らせください。