「厳選5題」過去問と解説 | 平成29年度 秋期 の過去問やるならこれをやれ


2020-08-20 更新

ここでは、平成 29 年度 秋期 基本情報技術者試験の午前試験の中から「やるべき問題」を厳選し、ぶっちゃけた解説をさせていただきます。

やるべき問題とは、よく出る問題であり、かつ、練習すればできる問題(練習しないとできない問題)です。

【厳選問題 1 】
とってもよく出る MTBF と MTTR の意味をしっかり覚えよう

問 15 (平成 29 年度 秋期)

MTBF が 45 時間で MTTR が 5 時間の装置がある。この装置を二つ直列に接続したシステムの稼働率は幾らか。

ア 0.81  イ 0.90  
ウ 0.95  エ 0.99

解説

私は、英語が得意ではありません。英検 3 級で、TOEIC が 400 点台という、何年も学校で習ったのに英語ができない典型的な日本人です。

そんな私が言うのも何ですが、

  • 英語の IT 用語は、必ず日本語の意味を調べて覚えてください。
  • 略語の場合は、何の略なのかを調べて、それを日本語に訳して覚えてください。

そうする習慣を持ってください。英語が苦手なら、なおさらそうしてください。

 

この問題には、MTBFMTTR という略語があります。

どちらも、とってもよく出題される用語ですが、「 MTBF は、平均故障間隔」「 MTTR は、平均修理時間」と丸暗記するのでは、いけません。どっちがどっちなのか、わからなくなってしまう恐れがあるからです。

MTBF
Mean Time Between Failure の略、故障と故障の間の平均時間という意味、つまり動いている時間のこと
MTTR
Mean Time To Repair の略、修理のための平均時間という意味、つまり止まっている時間のこと

と覚えてください。

そして、
「稼働率は、MTBF /( MTBF + MTTR )という計算で求められる。これは、

動いている時間 / (動いている時間+止まっている時間)
つまり、
動いている時間 / すべての時間

だから当たり前だ」ということも、合わせて覚えてください。

 

それでは、問題を解いてみましょう。

MTBF すなわち 動いている時間が 45 時間で、MTTR すなわち 止まっている時間が 5 時間ですから、この装置の稼働率は、

動いている時間 / すべての時間= 45 /( 45 + 5 )= 0.9

です。

この装置を 2 つを直列にしたシステムなのですから、両方が動作していなければなりません。

システムの稼働率は、それぞれの装置の稼働率を掛け算して求められ、0.9 × 0.9 = 0.81 です。

正解は、アです。

解答 ア

 

いかがですか。用語の意味も、計算方法も、丸暗記ではなく、このようにきちんと覚えてください、そうすれば、問題をスラスラ解けます。

searchタグで関連記事をチェック稼働率MTBF MTTR

【厳選問題 2 】
この問題で、スタックの特徴だけでなく用途を知るべし

問 5 (平成 29 年度 秋期)

A , B , C , D の順に到着するデータに対して、一つのスタックだけを用いて出力可能なデータ列はどれか。

ア A , D , B , C  
イ B , D , A , C
ゥ C , B , D , A  
エ D , C , A , B

解説

データ構造の一種であるスタック( stack )は、直訳すると「干し草を積んだ山」という意味です。

この言葉が示す通り、スタックには、積み上げるようにデータを格納します。そのため、最後に格納したデータが、最初に取り出されます。これを LIFO( Last In First Out )形式と呼びます。

と、ここまでは、皆さんよくご存じでしょう。

ただし、最も大事な知識が抜けています。それは、スタックの用途です。

データを積み上げるように格納することは、スタックの特徴です。それによって、データの順序を入れ替えるのが、スタックの用途です。この用途を知らない人が、意外と多いのです。

 

簡単な例を示すと、

A 、B の順にスタックに格納されたデータは、B 、A の順に取り出されます。
A 、B が、B 、A に入れ替わっています。

これが、順序を入れ替えるということです。

ただし、あらゆる順序で入れ替えられるわけではありません。

 

この問題は、「 A 、B 、C 、D の順にスタックに格納した場合、取り出せる順序は、選択肢の中の 1 つだけですよ。それを選んでください」という問題です。

 

選択肢を 1 つずつ吟味してみましょう。

ここでは、記事の向きの都合で、左から右にデータを積む絵を示します(下から上にデータを積む絵の方がわかりやすのですが、何卒ご了承ください)。

スタックの底には、「底」という字を入れておきます。

 

まず、選択肢アの A 、D 、B 、C です。以下のように、A 、D まで取り出せますが、その時点でスタックの最上部にあるのは C なので、B を取り出せません。

底 A A を格納する
A を取り出す
底 B Bを格納する
底 BC C を格納する
底 BCD D を格納する
底 BC D を取り出す

次に、選択肢イの B 、D 、A 、C です。以下のように、B 、D まで取り出せますが、その時点でスタックの最上部にあるのは C なので、A を取り出せません。

底 A A を格納する
底 AB B を格納する
底 A B を取り出す
底 AC C を格納する
底 ACD D を格納する
底 AC D を取り出す

次に、選択肢ウの C 、B 、D 、A です。以下のように、C 、B 、D 、A まですべて取り出せます。したがって、正解は、ウです。

底 A A を格納する
底 AB B を格納する
底 ABC C を格納する
底 AB C を取り出す
底 A B を取り出す
底 AD D を格納する
底 A D を取り出す
A を取り出す

解答 ウ

 

念のため、選択肢エの D、C 、A 、B も確認しておきましょう。以下のように、D 、C まで取り出せますが、その時点でスタックの最上部にあるのは B なので、A を取り出せません。

底 A A を格納する
底 AB B を格納する
底 ABC C を格納する
底 ABCD D を格納する
底 ABC D を取り出す
底 AB C を取り出す
searchタグで関連記事をチェックスタック

【厳選問題 3 】
「待ち状態」と「実行待ち状態」の意味は、実にわかりにくい!

問 18 (平成 29 年度 秋期)

優先度に基づくプリエンプティブなスケジューリングを行うリアルタイム OS で,二つのタスク A ,B をスケジューリングする。 A の方が B よりも優先度が高い場合にリアルタイム OS が行う動作のうち,適切なものはどれか。

A の実行中に B に起動がかかると,A を実行可能状態にして B を実行する。
A の実行中に B に起動がかかると,A を待ち状態にしてBを実行する。
B の実行中に A に起動がかかると,B を実行可能状態にして A を実行する。
B の実行中に A に起動がかかると,B を待ち状態にして A を実行する。
解説

問題文に示された「プリエンプティブ」とは、「先取権がある」という意味です。

ここでは、A と B の 2 つのタスク(プログラム)があって、A の方が B よりも優先度が高い、つまり A に先取権がある ということです。

したがって、B が実行中でも、A に起動がかかると、B から A に実行が切り替わります。

 

そのとき B は、どうなるのでしょう?

常識的に考えると「待ち状態」もしくは「実行待ち状態」になると言いたいところですが、そうではないのです!

 

はっきり言って、言葉がよろしくありません。

 

タスクの状態には、「実行中状態」「待ち状態」「実行可能状態」があります。

誰が命名したのか知りませんが、これらの中で「待ち状態」「実行可能状態」という言葉が特によろしくないのです。

「待ち状態」は、実行を待っている状態ではなく、I/O(入出力装置)の処理が終わるのを待っている状態です。

それでは、実行を待っている状態を何と呼ぶのかというと、「実行可能状態」です。

これは、実にわかりにくいですね。

 

混乱してしまったかもしれませんので、整理しておきましょう。「用語(意味)」で示します。

タスクの状態は、

「実行中状態(タスクが実行されている状態)
「待ち状態(タスクが I/O の処理が終わるのを待っている状態)
「実行可能状態(タスクが他のタスクの実行が終わるのを待っている状態)

です。

 

それでは、選択肢を見てみましょう。

A の方が B よりも優先度が高いのですから、選択肢ウの「 B の実行中に A に起動がかかると、B を実行可能状態にして A を実行する」が適切です。

正解は、エです。

解答 エ

 

この問題から、「何てわかりにくい言葉だ!」と思いながら、「実行状態」「待ち状態」「実行可能状態」の意味を覚えてください。そして、「他にも、こういうわかりにくい用語があるんだろうなあ」と用心してください。

【厳選問題 4 】
これは、用語や仕組みがわらないと計算できない問題です

問 19 (平成 29 年度 秋期)

図のメモリマップで, セグメント 2 が解放されたとき, セグメントを移動 ( 動的再配置 ) し,分散する空き領域を集めて一つの連続領域にしたい。1 回のメモリアクセスは 4 バイト単位で行い,読取り,書込みがそれぞれ 30 ナノ秒とすると,動的再配置をするために必要なメモリアクセス時間は合計何ミリ秒か。ここで,1k バイトは 1,000 バイトとし,動的再配置に要する時間以外のオーバヘッドは考慮しないものとする。

ア 1.5  イ 6.0  ウ 7.5  エ 12.0

解説

基本情報技術者試験には、様々な計算問題( 何らかの計算を行わせる問題 )が出題されます。それらの問題の中には、実用的な計算もありますが、ほとんど実用的でない問題もあります。

この問題は、後者です。

「用語や仕組みがわかっているなら、この計算できるよね」という趣旨の問題なのです。したがって、計算方法に公式などありません。用語や仕組みから計算方法を見出すのです。

 

この問題を解くために必要とされる用語と仕組みを説明しましょう。

「メモリマップ」
メモリがどのように使われているかを示す図です
「セグメント」
何らかの用途で使用している「領域」という意味です
セグメントの「解放」
そのセグメントを空き領域(未使用の領域)にすることです
「メモリアクセス」
メモリを読み書きすることです

これらの言葉の意味がわかると、問題の意味もわかるでしょう。

 

セグメント 2 を開放すると、セグメント 1 とセグメント 3 の間に 100k バイトの空き領域ができます。

これを、もともとある 800 k バイトの空き領域と連続した領域にせよという問題です。

 

「それなら、セグメント 3 の右端から 100 k バイトを、セグメント 2 の空き領域に移動すればいいんじゃないの?」と思うかもしれませんが、それではダメです。

セグメント 3 の内容の順序が変わってしまうからです。

データでもプログラムでも、順序が変わったら、おかしなものになってしまいます。そういう仕組みなのです。したがって、セグメント 3 の 800 k バイトをセグメント 1 の後ろに移動する処理が必要です。

 

「それなら、800 k バイト × 30 ナノ秒 という計算をすればいいんじゃないの?」と思うかもしれませんが、それではダメです。

問題文に「 1 回のメモリアクセスが 4 バイト」と示されているので、メモリアクセスの回数は、800 k バイト ÷ 4 バイト = 200k 回 です。

 

「それなら、200k 回 × 30 ナノ秒 という計算かな?」と思ったら、それも違います。

メモリのデータの移動は、「メモリ のデータを CPU に読み出す」「 CPU のデータを メモリ に書き込む」という処理で行われます。そういう仕組みになっているのです。

読み出し回数が 200 k 回で、書き込み回数が 200 k 回なので、合計 400 k 回の読み書きになりますす。

 

「だったら、

400 k 回 × 30 ナノ秒
= 400 × 103 × 30 × 10 - 9
= 12000 × 10 - 6
= 12 × 10 - 3
= 12 ミリ秒

かな?」

はい、その通りです!

正解は、エです。

解説 エ

searchタグで関連記事をチェック計算問題

【厳選問題 5 】
これも、用語や仕組みがわらないと計算できない問題です

問 31 (平成 29 年度 秋期)

符号化速度が 192 k ビット/秒の音声データ 2.4 M バイトを,通信速度が 128 k ビット / 秒のネットワークを用いてダウンロードしながら途切れることなく再生するためには、再生開始前のデータのバッファリング時間として最低何秒間が必要か。

ア 50  イ 100  
ウ 150  エ 250

解説

用語や仕組みから計算方法を見出す問題は、本当によく出題されるので、もう 1 問だけ練習しておきましょう。

これは、ネットワークで音声をダウンロードしながら再生するためのバッファリング時間を求める問題です。問題文の中にある「符号化速度」とは、音声をデジタルデータ化する速度です。

符号化速度が 192 k ビット/ 秒とは、1 秒間に 192 k ビットの音声データが生じるということです。

このデータが 2.4 M バイト = 2.4 M × 8 = 19.2 M ビットあるので、再生時間は、

19.2 M ÷ 192 k
=( 19.2 × 106 )÷( 192 × 103
= 100 秒

です。ここまでは、OK ですか。

 

それでは、説明を続けます。

符号化速度が 192 k ビット/秒で、通信速度が 128 k ビット/秒 ですから、通信速度の方が遅いので、このままでは再生が間に合わず、途切れてしまうことになります。

それを防ぐために、「バッファリング」つまり、あらかじめデータを読み貯めておくのです。

100 秒の再生時間にダウンロードできるデータ量は、

通信速度 × 100 秒
= 128 k ビット/秒 × 100 秒
= 12.8 M ビット

です。

再生する音声データは、19.2 M ビットあるので、

19.2 M ビット - 12.8 M ビット = 6.4 M ビット

をバッファリングしておく必要があります。ここまでは、OK ですか。

 

それでは、いよいよ最後の計算です。

通信速度が 128 k ビット/秒 ですから、6.4 M ビットをバッファリングする時間は、

6.4 M ビット ÷ 128 k ビット/秒
= 6400 ÷ 128
= 50 秒

です。

正解は、アです。やったあ! できたあ!

解答 ア

searchタグで関連記事をチェック計算問題

記事をお読みいただきありがとうございます。

もしも、一度解いただけでは、よくわからない問題があったなら、わかるまで何度でも練習してください。「やるべき問題」は、「わかるまでやるべき問題」だからです。

この厳選問題大全集が、受験者の皆様のお役に立てば幸いです。

 

label 関連タグ
実は、午前試験を『免除』できます 独習ゼミで午前免除試験を受けた 86% の方が、
午前試験を免除しています。
2021 年度 春期試験 向け
最大 20 % OFF!
info_outline
2021年度 春期試験向け
最大 20 % OFF!
詳しく見てみるplay_circle_filled
label これまでの『厳選5題 過去問と解説』の連載一覧 label 著者

『プログラムはなぜ動くのか』(日経BP)が大ベストセラー
IT技術を楽しく・分かりやすく教える“自称ソフトウェア芸人”

大手電気メーカーでPCの製造、ソフトハウスでプログラマを経験。独立後、現在はアプリケーションの開発と販売に従事。その傍ら、書籍・雑誌の執筆、またセミナー講師として活躍。軽快な口調で、知識0ベースのITエンジニアや一般書店フェアなどの一般的なPCユーザの講習ではダントツの評価。
お客様の満足を何よりも大切にし、わかりやすい、のせるのが上手い自称ソフトウェア芸人。

主な著作物

  • 「プログラムはなぜ動くのか」(日経BP)
  • 「コンピュータはなぜ動くのか」(日経BP)
  • 「出るとこだけ! 基本情報技術者」 (翔泳社)
  • 「ベテランが丁寧に教えてくれる ハードウェアの知識と実務」(翔泳社)
  • 「ifとelseの思考術」(ソフトバンククリエイティブ) など多数

grade IPA認定
午前免除制度対応
eラーニング

人気記事

人気のタグ