システム構成要素とソフトウェアのミニテスト(全28問)

止めない工夫と、動かす仕組みを問う28問。MTBFからの稼働率、並列構成の計算、待機の3段階、RAIDがバックアップにならない理由、スラッシング、セマフォのP操作とV操作、3層にする利点、スプーリングが何を待たせずに済ませるのか、オーバーヘッドが何を指すのか、最初の反応までを測るのはどちらか、コンテナが軽い理由、時間を使い切ったときの行き先、主記憶に収まらないプログラムの扱いを集めています。

分野
システム構成要素とソフトウェア
出る試験
基本情報・応用情報
問題数
28問(4択・その場で採点)

この単元は、「止めないための工夫」と「動かすための仕組み」が半分ずつ入っています。

前半の稼働率・クラスタ・デュプレックス・RAID(レイド)は、どれも2つ用意して備える話です。ただし備えている相手が違います。壊れることに備えるのか、混むことに備えるのか。ここを取り違えた選択肢が必ず用意されます。

後半のプロセス・セマフォ・仮想記憶は、限られた資源をどう分け合うかの話です。

2問は計算です。稼働率は、直列なら必ず下がり、並列なら必ず上がる。答えの向きだけで選択肢を絞れます。

0 / 28 問

問1

MTBF が 950時間、MTTR が 50時間の装置がある。この装置の稼働率はいくつか。

正解は 3番:0.95

稼働率は MTBF ÷(MTBF + MTTR)で求めます。950 ÷(950 + 50)= 950 ÷ 1,000 = 0.95 です。

ほかの選択肢は

分子はMTBFのほうで、ここを取り違えると 50 ÷ 1,000 = 0.05 となり、動いていた割合ではなく止まっていた割合(不稼働率)が出てしまいます。稼働率と不稼働率は足すと1になるので、出した答えを1から引いてみると、どちらを計算したのかがはっきりします。どちらの略語も MT(Mean Time = 平均時間)で始まるので、違いは3文字目以降に出ます。MTBF の BF は Between Failures(故障と故障のあいだ)で、動いていた時間です。MTTR の TR は To Repair(修理まで)で、止まっていた時間です。

「稼働率」の解説を読む →

問2

稼働率 0.9 の装置と稼働率 0.8 の装置を並列に接続した。システム全体の稼働率はいくつか。

正解は 2番:0.98

並列は「どれか1つ動いていればよい」つなぎ方なので、両方が同時に壊れる確率を1から引きます。1 −(1 − 0.9)×(1 − 0.8)= 1 − 0.1 × 0.2 = 1 − 0.02 = 0.98 です。

ほかの選択肢は

0.72 は掛け算をした値で、これは直列のときの求め方になります。式を忘れても、答えが1台のときより下か上かで絞り込めます。直列は必ず1台のときより下がり、並列は必ず上がる。計算した答えが 0.9 より下がっていたら、式を取り違えています。

「稼働率」の解説を読む →

問3

負荷分散型のクラスタを導入する主な狙いとして、適切なものはどれか。

正解は 1番:台数を増やして、さばける処理の量を増やす

負荷分散型は、入口にロードバランサを置いて処理を複数台へ配ります。台数を増やせばさばける量も増えるので、1台を高性能なものに買い替えるのではなく、同じものを並べて増やすという考え方になります。

ほかの選択肢は

待機している側が引き継ぐのはHA型のほうで、こちらは混雑ではなく倒れたときへの備えです。ディスクを束ねるのはRAID、1台を複数台に見せるのは仮想化で、クラスタとは向きが逆になります。

「クラスタ」の解説を読む →

問4

デュプレックスシステムの待機系について、切り替えが最も速いかわりに費用も高くなる方式はどれか。

正解は 4番:ホットスタンバイ

待機のしかたには段階があり、速さと費用が逆を向いています。すぐ切り替えたいなら待機系も動かし続けることになるので費用がかかり、安く済ませたいなら立ち上げから始めるぶん待たされます。どちらが正解ということはなく、業務が何分止まってよいかで決めます。なお「ホットスタンバイ方式」という言い方で出題されることがありますが、これは構成がデュプレックス、待機のしかたがホット、という二段構えです。

ほかの選択肢は

ロードシェアは待機ではなく、2系統で手分けする負荷分散の呼び名です。

「デュアルシステムとデュプレックスシステム」の解説を読む →

問5

RAIDを組んでいても、別にバックアップが必要である。その理由として最も適切なものはどれか。

正解は 2番:誤って消したファイルは、全ディスクから同時に消えるため

RAIDが守ってくれるのは、ディスクが壊れることだけです。誤って消したファイルや、ウイルスに壊されたファイルは、全ディスクから同時に消えます。そのためバックアップは別に必要になります。

ほかの選択肢は

1台壊れても続けられるようにするのがRAID1やRAID5の目的で、復元できなくなるわけではありません。ただしRAID0だけは冗長性がなく、1台壊れると全部失います。書いたデータが勝手に消えることも、読み出し専用になることもありません。

「RAID」の解説を読む →

問6

同じプロセスの中のスレッドを切り替えるほうが、プロセスを切り替えるより軽い。その理由として最も適切なものはどれか。

正解は 2番:スレッドどうしはメモリを共有しているので、切り替えのときに保存し直すものが少ないため

CPUは同時に複数のことをしているように見えますが、実際には短い時間で相手を切り替えています。これをコンテキストスイッチと呼び、いま動いていた側の状態を保存し、次に動かす側の状態を復元します。スレッドどうしはメモリが同じなので、メモリの切り替えが要らず、保存し直すものが少なくて済みます。

ほかの選択肢は

まったく保存しないわけではありません。ただし共有しているぶん、片方が異常終了するともう片方が巻き添えになりうる、という危うさも同時に抱えています。

「プロセスとスレッド」の解説を読む →

問7

セマフォのP操作の説明として、適切なものはどれか。

正解は 3番:使う前に行い、数を1つ減らす。0 なら空くまで待つ

セマフォの操作は2つしかありません。使う前に行って数を1つ減らすのがP操作、使い終わったあとに行って数を1つ戻すのがV操作です。駐車場でいえば、Pが入場、Vが出庫にあたります。必ず対で呼ぶのが鉄則で、Vを書き忘れると数が戻らず、後続の処理が永久に待たされます。数が0のときは空くまで待つ、という点がこの仕組みの本体です。

ほかの選択肢は

使い終わったあとに数を1つ戻すのはV操作です。初期値を決めるのはセマフォを用意するときの設定で、操作ではありません。待っている処理をまとめて打ち切る操作も用意されていません。

「セマフォ」の解説を読む →

問8

セマフォの数の初期値を 1 にすると、どのような使い方になるか。

正解は 2番:同時に使えるのは1つだけになり、鍵そのものとして使える

セマフォは同時に使える数を数えておく仕組みなので、初期値を1にすれば「同時に使えるのは1つだけ」になります。これを二値セマフォと呼び、鍵そのものとして使えます。同じ役目のものをミューテックスと呼ぶこともあります。

ほかの選択肢は

なお、使い終わったらV操作で数が戻るので、1回しか使えなくなることはありません。時間で区切る仕組みでもありません。使い方を誤ると、互いに相手の返却を待ち合ってデッドロックになる点にも注意が要ります。

「セマフォ」の解説を読む →

問9

仮想記憶で、ページの入れ替えばかりが起きて本来の処理がほとんど進まなくなる状態はどれか。

正解は 4番:スラッシング

使いたいページが主記憶に無くて読み込むこと自体はページフォールトで、これはふつうに起きることです。それがあまりに頻繁になり、入れ替えに時間を取られて処理が進まなくなった状態がスラッシングです。ページフォールトが原因、スラッシングが結果という関係になっていて、試験ではこの2つを並べて出すので向きを押さえておいてください。机が狭すぎて、書類を出したりしまったりするだけで1日が終わる、という状態です。コンテキストスイッチは、CPUが処理の相手を切り替えることを指す別の言葉です。

ほかの選択肢は

フラグメンテーションは、記憶領域が細かく分断されて使いにくくなることを指す別の言葉です。コンテキストスイッチは、CPUが処理の相手を切り替えることを指します。

「仮想記憶」の解説を読む →

問10

仮想記憶とキャッシュメモリは、どちらも速い場所と遅い場所を行き来させる。2つの違いとして最も適切なものはどれか。

正解は 1番:仮想記憶は容量を大きく見せるため、キャッシュメモリは速度差を埋めるためにある

仮想記憶は、主記憶の容量が不足しているときに補助記憶へ逃がす仕組みです。キャッシュメモリは、主記憶が遅いのでCPUの手前に速い場所を置く仕組みです。仮想記憶は容量の話、キャッシュは速さの話。一言でいえばこの違いになります。働く向きも逆で、仮想記憶は主記憶より外側へ、キャッシュは主記憶より内側へ働きます。似て見えるので試験では並べて出されますが、目的で切り分ければ取り違えません。

ほかの選択肢は

目的を入れ替えた選択肢、どちらも同じ目的だとする選択肢は、いずれもこの切り分けを崩したものです。相手にする装置も置かれる場所も違いますが、分かれ目はそこではなく目的です。

「仮想記憶」の解説を読む →

問11

メモリリークが起きているシステムに現れる症状として、最も適切なものはどれか。

正解は 2番:起動直後は問題ないが、長時間動かし続けるとしだいに遅くなり、やがて異常終了する

メモリリークは、使い終わった記憶領域を返し忘れることで起こります。1回あたりの量は小さいので、動かし始めは何も起きません。動かし続けるほど返されない領域がたまり、空きが減って入れ替えが増え、しだいに遅くなります。やがて領域の確保に失敗して異常終了します。

ほかの選択肢は

しだいに速くなることはなく、向きが逆です。常に同じだけ遅いのであれば、原因は作り方や性能のほうにあります。再起動すると空きが戻るので症状はいったん直り、またしばらくして同じことが起きます。この「再起動で直るのに原因が分からない」という性質が、見つけにくさの正体です。

「メモリリークとガベージコレクション」の解説を読む →

問12

ガベージコレクションを備えた実行環境でも、メモリリークが起こりうる理由として、最も適切なものはどれか。

正解は 4番:使う気がないのに参照だけが残っていると、実行環境からは使用中にしか見えないから

回収されるのは、もう誰からも参照されていない領域です。一覧に追加したまま消し忘れている、終わった処理の通知先として登録したままになっている、といった場合、人は使い終わったつもりでも参照は残っています。実行環境からは使用中と見えるので、回収されません。

ほかの選択肢は

回収の回数に上限はありません。解放の処理を書き忘れた領域こそ、ガベージコレクションが回収してくれる対象です。対象は主記憶上の領域で、補助記憶ではありません。自動回収は「返し忘れ」を防ぎますが、「参照の外し忘れ」までは防げない、という線引きが要点です。

「メモリリークとガベージコレクション」の解説を読む →

問13

クラスタと仮想化の違いとして、最も適切なものはどれか。

正解は 1番:クラスタは複数台を1台に見せる技術、仮想化は1台を複数台に見せる技術である

クラスタは、複数のコンピュータを束ねて外から1台に見えるようにします。仮想化は逆で、1台のコンピュータの上に複数のコンピュータがあるように見せます。向きが逆だと押さえておけば取り違えません。

ほかの選択肢は

2つを入れ替えた説明は誤りです。ディスクを束ねて1台に見せるのはRAIDで、クラスタが束ねるのはコンピュータのほうです。場所や範囲で分かれる言葉でもありません。なお、場所も持ち主もばらばらな計算資源をネットワーク越しに束ねるものはグリッドコンピューティングと呼びます。

「クラスタ」の解説を読む →

問14

デュアルシステムとデュプレックスシステムの違いとして、最も適切なものはどれか。

正解は 1番:デュアルは2系統で同じ処理を同時に行って結果を突き合わせ、デュプレックスは片方を待機させておく

デュアルシステムは、2つの系統で同じ処理を同時に行い、結果を突き合わせます。食い違えば誤りに気づけるので、信頼性が高いかわりに費用も倍かかります。デュプレックスシステムは、片方を主系として動かし、もう片方は待機させておいて、障害時に切り替えます。

ほかの選択肢は

2つを入れ替えた説明は誤りです。どちらもディスクではなく系統の二重化を指します。障害時に停止するかどうかで分かれるのでもなく、デュプレックスでも切り替えによって処理を続けられます。切り替えにかかる時間の違いが、待機のしかたの3段階として問われます。

「デュアルシステムとデュプレックスシステム」の解説を読む →

問15

同じプロセスの中にある複数のスレッドを動かすときに、特に注意が必要になることとして最も適切なものはどれか。

正解は 4番:記憶領域を共有しているため、同じデータを同時に書き換えて壊してしまうことがある

同じプロセスの中のスレッドは、記憶領域を共有しています。そのおかげで受け渡しが速いのですが、同じデータへ同時に書き込むと内容が壊れます。どちらか一方だけが触れるようにする排他制御が必要になるのは、この共有があるためです。

ほかの選択肢は

記憶領域が分かれていて受け渡しの手段が別に要るのは、スレッドではなくプロセスどうしの関係です。スレッドの切り替えは、共有部分を引き継げるぶんプロセスの切り替えより軽く済みます。1つのプロセスの中に複数のスレッドを作れることが、そもそもこの仕組みの前提です。

「プロセスとスレッド」の解説を読む →

問16

RAID0の特徴として、最も適切なものはどれか。

正解は 2番:データを複数のディスクに分散して書くので速くなるが、1台でも壊れるとデータを失う

RAID0は、データを分けて複数のディスクへ同時に書き込みます。書き込みも読み出しも手分けできるので速くなりますが、冗長な情報をまったく持ちません。1台でも壊れると、分けて書いたデータがそろわなくなり、全体が失われます。速さだけを狙った構成です。

ほかの選択肢は

同じデータを2台に書くのはRAID1、パリティを分散して記録し1台の故障から復元できるのはRAID5です。RAID0も複数台を束ねているので、1台で使う場合とは別です。名前に0が付いていても、冗長性が無いという点が特徴になります。

「RAID」の解説を読む →

問17

2層クライアントサーバシステムを3層に変えたときの利点として、適切なものはどれか。

正解は 1番:業務の処理手順を変更するとき、クライアントを更新せずに済む

2層では業務の処理手順がクライアント側にあるため、手順を変えるたびに全台のクライアントを入れ替えることになります。3層ではこれを中間のサーバへ移すので、そのサーバだけを更新すれば済みます。

ほかの選択肢は

台数が増えればサーバの負荷は増えます。通信経路の暗号化は、層の分け方とは別にかける仕組みです。データ層は3層のうちの1つなので、データベースが不要になるわけでもありません。画面・業務の処理手順・データという3つの役目はどちらの構成にもあり、違うのは何台に分けて置くかだけです。

「クライアントサーバシステム」の解説を読む →

問18

SOAPがメッセージの運び役としてHTTPを使うことの利点として、適切なものはどれか。

正解は 3番:ファイアウォールを通りやすい

組織のファイアウォールは、Webの通信に使う経路をたいてい開けてあります。SOAPはその経路にメッセージを載せるので、新しく穴を開けてもらわなくても外の相手を呼び出せます。

ほかの選択肢は

HTTPを使うこと自体では暗号化されません。SOAPのメッセージはXMLで書くため、通信量はむしろ大きくなりがちです。言語を問わないことはSOAPの特徴ですが、それはXMLでやり取りすることから来るもので、HTTPに載せることの利点とは別の話です。

「CORBA・DCOM・SOAP」の解説を読む →

問19

印刷を指示したあと、プログラムがプリンタの処理の終了を待たずに次の作業へ進めるようにする仕組みはどれか。

正解は 4番:スプーリング

スプーリングは、印刷する内容をいったん補助記憶の置き場(バッファ)にためておき、プリンタの空き具合に合わせて送り出す仕組みです。プロセッサは置き場へ書いた時点で次の仕事へ移れるので、遅いプリンタに合わせて待たされることがなくなります。

ほかの選択肢は

ポーリングは、機器に順番に問い合わせて要求の有無を確かめる方式です。ページングは、仮想記憶で主記憶と補助記憶のあいだをページ単位に入れ替える仕組みです。ミラーリングは、同じ内容を2台のディスクへ書いておき、片方が壊れても続けられるようにする仕組みで、いずれも速さの差を埋める置き場の話ではありません。

「バッファ」の解説を読む →

問20

1つのプロセッサで複数のプログラムを切り替えながら実行するとき、切替えのたびに状態の退避と復元が必要になる。このように、本来の処理そのものではないのに必要となる負荷を何と呼ぶか。

正解は 1番:オーバーヘッド

オーバーヘッドは、やりたい処理そのものではないのに、仕組みを動かすために必要となる負荷です。コンテキストスイッチ(動かす相手を切り替えるときに、途中までの状態をしまって別の状態を取り出す作業)がその代表で、同時に抱える処理の数を増やすほど増えていきます。多重度を上げても処理量が比例して増えないのは、これが理由です。

ほかの選択肢は

スループットは単位時間あたりに処理できた仕事の量、ターンアラウンドタイムは依頼を出してから結果が全部出そろうまでの時間で、どちらも測る量の名前です。スラッシングは、多重度を上げすぎて主記憶が足りなくなり、ページの入れ替えばかりが起きて処理が進まなくなる状態で、負荷そのものではなくその結果として起きる現象にあたります。

「オーバーヘッドと多重度」の解説を読む →

問21

対話型の処理で、利用者が入力を終えてから最初の反応が返ってくるまでの時間を表すものはどれか。

正解は 3番:レスポンスタイム

レスポンスタイムは、最初の反応が返るまでを測ります。画面がすぐ動き始めるかどうかを見るので、人が画面の前で待っている対話型の処理で使われます。

ほかの選択肢は

ターンアラウンドタイムは、依頼を出してから結果が全部出そろうまでを測ります。測る範囲が違うだけの関係で、問題文が「全部出そろうまで」か「最初の反応まで」かを読み分けます。スループットは単位時間あたりに処理できた仕事の量で、時間ではなく量を見ています。MTTRは故障から復旧までの平均時間で、速さではなく止まらなさの話です。

「ターンアラウンドタイムとレスポンスタイム」の解説を読む →

問22

コンテナが仮想マシンより軽いとされる理由として、最も適切なものはどれか。

正解は 4番:OSを1つ共有して使うので、コンテナごとにOSを載せなくてよいから

仮想マシンは1つずつOSを持つので、そのぶん起動に時間がかかり、場所も食います。コンテナはホスト側のOSを共有し、アプリと必要な部品だけを包むので、軽く、速く立ち上がります。

ほかの選択肢は

コンテナもOSの機能の上で動いているので、ハードウェアを直接操作するわけではありません。処理の中身を自動で簡略化する仕組みでもありません。複数台へ分散させるのはクラスタや負荷分散の話で、1台の中での軽さとは別の工夫です。

「仮想化」の解説を読む →

問23

実行状態のプロセスが、割り当てられた時間を使い切ったときに移る状態と、その取り上げの呼び名の組合せとして適切なものはどれか。

正解は 3番:実行可能状態 ― プリエンプション

OSはCPUを渡すとき、使える時間をあらかじめ決めて渡します。この持ち時間をタイムクウォンタムと呼び、使い切ると割込みが入って実行可能状態へ戻されます。この取り上げがプリエンプションです。自分から譲らなくても外に出されるので、1つのプロセスが長い計算を始めてもほかが止まりません。

ほかの選択肢は

待ち状態へ移るのは、入出力などを頼んで、その結果を待つときです。ディスパッチは逆向きの動きで、実行可能状態の中から次に動かすものを選んで実行状態へ移すことを指します。向きと呼び名を取り違えた選択肢が並びます。

「プロセスの状態(実行可能状態・実行状態・待ち状態)」の解説を読む →

問24

主記憶に収まりきらない大きさのプログラムを、必要な部分だけ入れ替えながら実行する方式はどれか。

正解は 1番:オーバーレイ方式

オーバーレイは、プログラムをいくつかの区画に分けておき、そのとき必要な区画だけを主記憶へ読み込む方式です。入れ替える単位と順番は、プログラムを作る側があらかじめ決めておきます。主記憶が高価だった時代の工夫で、仮想記憶が広まる前に使われていました。

ほかの選択肢は

スワッピングは、プロセスを丸ごと補助記憶へ追い出したり戻したりする動きで、入れ替える相手が1本のプログラムの一部ではありません。コンパクションは散らばった空きを前へ詰め直す作業、固定区画方式は主記憶をあらかじめ決めた大きさに区切っておくやり方です。

「実記憶管理(区画方式・フラグメンテーション・スワッピング・オーバーレイ)」の解説を読む →

問25

SOAで機能をサービスに切り分けるとき、切る基準として適切なものはどれか。

正解は 3番:業務上の意味を持つまとまり

部品に分けること自体は昔から行われてきました。SOAが新しかったのは切る位置です。「与信を確認する」のように業務の言葉で切ってあれば、業務が変わったときにどの部品を直せばよいかが分かります。

ほかの選択肢は

言語や画面の数で切るのは技術の都合による分け方で、業務の変更がどこに当たるのかを追えません。部署で切ると、組織が変わるたびに切り直すことになります。業務の意味で切る、という一点がSOAの要点です。

「SOA(サービス指向アーキテクチャ)」の解説を読む →

問26

エッジコンピューティングとクラウド側の処理を組み合わせる場合、クラウド側に任せるのが向く処理はどれか。

正解は 2番:複数の現場から集めたデータをまとめて、長期の傾向を分析する処理

エッジ側は、応答の速さと通信量の削減が持ち味です。クラウド側は、複数の現場のデータを集めてまとめて見られるところが持ち味になります。長期の傾向の分析や、判定の仕組みそのものを作る作業はクラウド側に向きます。

ほかの選択肢は

すぐ止めるべき異常の判定、通信が切れている間の処理、送る前の絞り込みは、いずれも現場の近くで行う必要があります。遠くへ送って返ってくるのを待つと、どれも成り立ちません。

「エッジコンピューティング」の解説を読む →

問27

リアルタイムOSでタスクの優先度を決めるときの考え方として、最も適切なものはどれか。

正解は 4番:期限が厳しい処理の優先度を高くする

リアルタイムOSが重く見るのは、期限までに処理が終わることです。優先度も、期限の厳しさで決めます。モーターの制御や安全に関わる判定を高くし、記録の保存や外への送信のように急がない処理を低くする形になります。

ほかの選択肢は

処理の重さ、作られた順、使うメモリの量は、期限の厳しさとは別のものです。重い処理の優先度を上げると、短い期限を持つ軽い処理が待たされ、期限を守れなくなります。

「リアルタイムOSとタスク」の解説を読む →

問28

月曜日にフルバックアップを取り、火曜日以降は増分バックアップを取っている。土曜日の状態に復旧するために必要なバックアップデータはどれか。

正解は 3番:月曜日のフルバックアップと、火曜日から土曜日までのすべての増分バックアップ

増分バックアップは、直近に取ったバックアップから変わった分だけを控えます。そのため復旧には、フルバックアップとその後のすべての増分が順に必要です。1つでも欠けると戻せません。差分バックアップであれば、フルと最後の差分の2つで足ります。

ほかの選択肢は

フルと最後の1つで足りるのは差分バックアップの場合です。増分だけ、またはフルだけでは、その日の状態まで戻せません。取るのが速い代わりに復旧の手数が増える、という関係になります。

「バックアップの方式」の解説を読む →

この結果の使い方

間違えた用語は復習リストに自動でたまります。 用語ページのミニクイズで正解し直すと、リストから消えます。 記録は自分のブラウザ内(localStorage)にのみ保存され、サーバーには送信していません。

ほかの単元のミニテストを見る →