仮の宿 学習室

応用情報技術者 APPLIED IT ENGINEER

コンピュータ構成とシステム構成

講義 5 本・確認問題 50 問 | 本試験では「テクノロジ系」(50問)の一部 | 最終更新 2026-09-24

この章で学ぶこと
目次
  1. プロセッサの高速化とCPU性能の測り方
  2. 記憶階層とキャッシュの効かせ方
  3. 割込みと入出力制御
  4. システム構成と仮想化の選び方
  5. 信頼性設計・稼働率と性能評価
  6. 確認問題(50問)
  7. 演習ツール

1. プロセッサの高速化とCPU性能の測り方

パイプラインやスーパースカラで何が速くなるのかを押さえ、CPI・MIPS・命令ミックスで性能を数字にできるようにします。

命令の実行は、命令の取出し・解読・実行・書戻しといった段階に分けられます。パイプラインは、この段階を流れ作業にして、前の命令が実行段にいる間に次の命令の取出しを始める仕組みです。k段のパイプラインで n 命令を流すと、最初の命令が出てくるまでに k サイクル、あとは1サイクルごとに1命令が完成するので、全体では n + k − 1 サイクルで済みます。逐次実行の n × k サイクルと比べると、n が大きいほど k 倍に近づきます。1命令あたりの処理時間そのものは短くなっていない点が大事で、速くなっているのはスループットです。

パイプラインには乱れの原因(ハザード)が3種類あります。構造ハザードは同じ資源を同時に使おうとして起きるもの、データハザードは直前の命令の結果を待たなければならないときに起きるもの、制御ハザードは分岐命令によって次に取り出すべき命令が確定しないときに起きるものです。制御ハザードの影響がいちばん大きいので、分岐先を予測して先に流し込む分岐予測、予測に基づいて実行してしまう投機実行、分岐の直後の命令を必ず実行する遅延分岐といった対策が取られます。予測が外れるとパイプラインを捨てて詰め直す(フラッシュする)ぶんの罰があります。

1サイクルに複数の命令を発行するのがスーパースカラで、演算器を複数持ち、依存関係のない命令を同時に実行します。パイプラインの段数をさらに細かく分けてクロックを上げるのがスーパーパイプライン、依存のない複数の命令をコンパイラがあらかじめ1つの長い命令にまとめておくのが VLIW です。VLIW は並列化の判断をコンパイル時に済ませるのでハードウェアが簡単になりますが、実行時の状況に応じた調整ができません。近年はクロック周波数を上げると消費電力と発熱が急増するため、周波数ではなくコア数を増やすマルチコア化が主流になっています。

性能を数字にするときは CPI と MIPS を使います。CPI は1命令あたりの平均クロックサイクル数で、命令の種類ごとの出現比率とサイクル数を掛けて足した命令ミックスから求めます。MIPS は1秒間に実行できる命令数を百万単位で表したもので、クロック周波数(MHz)を CPI で割ると得られます。ただし MIPS は命令の中身を問わないので、命令セットの異なるプロセッサ間の比較には使えません。実際の性能比較には、実アプリケーションに近い処理を測る SPEC などのベンチマークを使います。マルチコアで速くなる度合いはアムダールの法則で見積もれ、並列化できない部分が全体の足を引っ張ります。

高速化技術の比較(どこで並列にするか)
技術並列にする対象判断の主体弱点
パイプライン1命令の中の段階ハードウェア分岐で乱れる
スーパーパイプライン段数を細分化しクロック向上ハードウェア分岐ペナルティが増える
スーパースカラ同時に複数命令を発行ハードウェア(実行時)回路が複雑・電力増
VLIW1語に複数命令を格納コンパイラ(事前)実行時の状況に適応できない
マルチコアスレッドやプロセスOSとアプリ逐次部分が残ると頭打ち
パイプラインの重なり方と、CPI・MIPS の求め方
パイプラインの所要サイクル(5段・命令I1〜I4)   時刻 →  1   2   3   4   5   6   7   8  I1     IF  ID  EX  MA  WB  I2         IF  ID  EX  MA  WB  I3             IF  ID  EX  MA  WB  I4                 IF  ID  EX  MA  WB   n 命令 k 段 → n + k − 1 サイクル  逐次実行なら n × k サイクル   平均CPI = Σ(命令の出現比率 × その命令のサイクル数)  MIPS   = クロック周波数[MHz] ÷ 平均CPI

用語

パイプライン
命令の実行を複数の段階に分け、異なる命令の別々の段階を同時に進める方式。k段で n 命令なら n + k − 1 サイクルで完了する。1命令あたりの遅延は縮まらず、単位時間あたりの処理量が増える。
ハザード
パイプラインの流れが乱れる要因。資源の競合による構造ハザード、直前の命令の結果を待つデータハザード、分岐で次の命令が定まらない制御ハザードの3種類がある。空きサイクル(ストール)が挿入され性能が落ちる。
分岐予測
分岐命令の結果が確定する前に、分岐するかどうかを予測して次の命令を先に取り出す仕組み。過去の分岐履歴を使う動的予測が一般的。予測が外れると先読みした命令を破棄するペナルティが発生する。
スーパースカラ
複数の演算器と発行口を持ち、依存関係のない命令を1サイクルに複数実行する方式。実行時にハードウェアが依存を判定するので回路は複雑になるが、既存の命令列をそのまま高速化できる。
VLIW
同時に実行できる複数の命令を、コンパイラが1つの長い命令語にまとめておく方式。並列化の判断をコンパイル時に済ませるためハードウェアが単純になるが、実行時の状況に応じた最適化はできない。
CPI
1命令の実行に要する平均クロックサイクル数。命令種別ごとの出現比率とサイクル数の積の総和で求める。小さいほど効率がよい。クロック周期を掛けると平均命令実行時間になる。
MIPS
1秒間に実行できる命令数を百万単位で表した指標。クロック周波数をメガヘルツ単位で表した値を CPI で割ると得られる。命令1つあたりの仕事量を考慮しないため、命令セットが異なる機種の比較には使えない。
アムダールの法則
処理のうち並列化できる割合を p、その部分の速度向上を s とすると、全体の速度向上は 1 ÷ ((1 − p) + p ÷ s) にとどまるという法則。逐次部分が残る限り、コア数を増やしても頭打ちになる。

例題

例題:4段のパイプラインで 200 命令を実行する。1段が1サイクル、クロック周期が 5ns のとき、所要時間はいくらか。
答えと考え方 所要サイクルは 200 + 4 − 1 = 203。時間は 203 × 5ns = 1015ns。パイプラインを使わなければ 200 × 4 × 5ns = 4000ns なので、およそ3.9倍速い。命令数が増えるほど段数 k に近い倍率へ漸近する。
例題:演算命令が40パーセントで3サイクル、分岐命令が40パーセントで3サイクル、メモリ参照が20パーセントで5サイクルのプロセッサがある。クロック周波数が 1.5GHz のとき MIPS 値はいくらか。
答えと考え方 平均CPI は 0.4 × 3 + 0.4 × 3 + 0.2 × 5 = 1.2 + 1.2 + 1.0 = 3.4。MIPS は 1500 ÷ 3.4 ≒ 441 になる。サイクル数を単純平均して (3 + 3 + 5) ÷ 3 ≒ 3.67 としないよう、必ず出現比率で重み付けする。

出典・根拠:IPA「応用情報技術者試験(レベル3)」シラバス Ver.7.2 大分類2:コンピュータシステム

2. 記憶階層とキャッシュの効かせ方

速い記憶ほど小さく高価という制約の中で、キャッシュのヒット率と書込み方式がシステム全体の速さをどう決めるかを押さえます。

記憶装置は、速いものほど容量あたりの単価が高く小さくなります。レジスタ、キャッシュ(L1・L2・L3)、主記憶、SSD やハードディスクという順に、速度は下がり容量と安さは上がります。これを積み重ねて、よく使うものを上の階層に置くことで、平均的には上の階層の速さで、容量は下の階層の大きさで使えるようにするのが記憶階層の考え方です。これが成り立つ根拠が参照の局所性で、直前に使ったものをまた使う時間的局所性と、使った場所の近くを使う空間的局所性の2つがあります。キャッシュがブロック単位でまとめて読み込むのは、空間的局所性を当て込んでいるからです。

キャッシュの効果は実効アクセス時間で測ります。ヒット率を h、キャッシュのアクセス時間を tc、主記憶のアクセス時間を tm とすると、実効アクセス時間は h × tc + (1 − h) × tm です。注意したいのは、ヒット率が少し下がるだけで実効アクセス時間が大きく伸びること。tc が 5ns、tm が 80ns なら、ヒット率 96 パーセントで 8ns ですが、90 パーセントに落ちると 12.5ns になります。主記憶とキャッシュの速度差が大きいほど、ヒット率の影響が効いてきます。多階層キャッシュでは、L1 をミスしたときだけ L2 を見る、という入れ子の形で計算します。

主記憶のどのブロックをキャッシュのどこに置くかを決めるのが写像方式です。ダイレクトマップは置き場所が1か所に決まるので回路が単純で速いかわりに、同じ場所に写るブロックを交互に使うと毎回追い出し合いになります。フルアソシアティブはどこにでも置けるので衝突しませんが、全エントリを同時に照合する必要があり高価です。実際には両者の折衷であるセットアソシアティブが使われ、4ウェイなら1つのセットに4個まで置けます。追い出す対象の選び方には LRU(最も長く使われていないもの)などが使われます。

書込みの扱いには2方式あります。ライトスルーは書込みのたびにキャッシュと主記憶の両方を更新する方式で、内容が常に一致しているので信頼性が高く、複数のプロセッサやDMAから見た一貫性も保ちやすい反面、書込みのたびに遅い主記憶へのアクセスが発生します。ライトバックはキャッシュだけを更新し、そのブロックが追い出されるときにまとめて主記憶へ書き戻す方式で、同じ場所への繰り返し書込みが速くなりますが、追い出し時に遅延が生じ、電源断で内容を失う危険もあります。マルチコアでは各コアのキャッシュ内容が食い違わないよう、スヌープなどのキャッシュコヒーレンシ制御が必要になります。

記憶階層(上ほど速く小さく高価)
階層おおよその速度容量の目安揮発性
レジスタ1サイクル未満数百バイト揮発
1次キャッシュ数サイクル数十KB揮発
2次・3次キャッシュ十数〜数十サイクル数MB揮発
主記憶(DRAM)数十ns数GB揮発
SSD数十μs数百GB不揮発
ハードディスク数ms数TB不揮発
1階層と2階層のキャッシュにおける実効アクセス時間
実効アクセス時間の計算   1階層のとき    EAT = h × tc + (1 − h) × tm   2階層のとき(L1をミスしたときだけL2を見る)    EAT = h1 × t1        + (1 − h1) × ( h2 × t2 + (1 − h2) × tm )   例: h1 = 0.95, t1 = 2ns      h2 = 0.8, t2 = 10ns, tm = 110ns      EAT = 0.95 × 2 + 0.05 × (0.8 × 10 + 0.2 × 110)          = 1.9 + 0.05 × 30 = 3.4ns

用語

参照の局所性
プログラムのメモリ参照が特定の範囲に集中する性質。同じ番地を短時間に繰り返し使う時間的局所性と、近い番地を続けて使う空間的局所性がある。キャッシュや仮想記憶が有効に働く前提となる。
実効アクセス時間
キャッシュを含めた記憶へのアクセスにかかる平均時間。ヒット率をh、キャッシュの時間をtc、主記憶の時間をtmとすると h × tc + (1 − h) × tm で求める。ヒット率のわずかな低下が大きく効く。
ダイレクトマップ
主記憶のブロックを置けるキャッシュの位置が1か所に定まる写像方式。照合回路が単純で高速だが、同じ位置に写るブロックを交互に参照すると衝突が続き、ヒット率が大きく落ちることがある。
セットアソシアティブ
キャッシュを複数のセットに分け、1セットの中の任意のウェイに置ける写像方式。4ウェイなら同じセットに4ブロックまで共存できる。ダイレクトマップとフルアソシアティブの中間で、実装の主流である。
ライトスルー
書込み時にキャッシュと主記憶の両方を同時に更新する方式。両者の内容が常に一致するため一貫性を保ちやすいが、書込みのたびに主記憶へのアクセスが発生し書込み性能は上がりにくい。
ライトバック
書込みをキャッシュだけに行い、そのブロックが追い出されるときに主記憶へ書き戻す方式。書込みの多い処理で高速だが、主記憶と内容が一時的に食い違うため、更新の有無を示すダーティビットの管理が必要になる。
キャッシュコヒーレンシ
複数のプロセッサがそれぞれキャッシュを持つとき、同じ番地の内容が食い違わないように保つ仕組み。ほかのコアのバス操作を監視して自分のキャッシュを無効化するスヌープ方式が広く使われる。
メモリインタリーブ
主記憶を複数のバンクに分け、連続する番地を異なるバンクに割り当てて並行にアクセスする技法。1つのバンクが応答している間に次のバンクへ要求を出せるため、連続領域の読み書きが高速になる。

例題

例題:キャッシュのアクセス時間が 5ns、主記憶が 65ns、ヒット率が 80 パーセントのとき、実効アクセス時間はいくらか。
答えと考え方 0.8 × 5 + 0.2 × 65 = 4 + 13 = 17ns。ヒット率が 90 パーセントに上がれば 0.9 × 5 + 0.1 × 65 = 11ns まで縮む。ヒット率を10ポイント上げるだけで3割以上速くなるのは、キャッシュと主記憶の速度差が13倍あるためである。
例題:同じ2つの番地を交互に参照するループがあり、この2番地がキャッシュ上で同じ位置に写るとき何が起きるか。写像方式による違いも述べよ。
答えと考え方 ダイレクトマップでは、参照のたびに相手を追い出す競合性ミスが続き、ヒット率がほぼ0になる。セットアソシアティブなら同じセットに複数のブロックを置けるので、2ウェイ以上あればどちらもキャッシュに残り、以後はヒットし続ける。容量が足りているのにミスするこの現象は、写像方式を選ぶ理由そのものである。

出典・根拠:IPA「応用情報技術者試験(レベル3)」シラバス Ver.7.2 大分類2:コンピュータシステム

3. 割込みと入出力制御

CPUが待たされないための仕組みとして、割込みの種類と処理順序、そしてポーリング・DMA・チャネルの使い分けを整理します。

割込みは、実行中の処理を中断して別の処理へ制御を移す仕組みです。発生源によって内部割込みと外部割込みに分けます。内部割込みは実行中の命令そのものが原因で起きるもので、0除算やけたあふれなどのプログラム割込み、ページフォールト、特権命令違反、そしてシステムコールを実現するスーパバイザ呼出し(SVC割込み)が該当します。外部割込みは命令の実行とは無関係に起きるもので、入出力の完了通知、タイマ(インターバルタイマ)による時間切れ、機械チェック割込み、電源異常などです。どちらに分類されるかは頻出なので、原因が実行中の命令にあるかどうかで切り分けてください。

割込みが起きると、まず現在のプログラムカウンタとプログラム状態語(レジスタの内容を含む)を退避し、割込みの原因に応じた割込み処理ルーチンの先頭アドレスへ分岐します。処理が終わったら退避した内容を復元して元の処理を再開します。この退避と復元があるからこそ、中断された処理は割込みがなかったかのように続けられます。処理中にさらに割込みが起きる多重割込みでは、優先度の高いものだけを受け付け、低いものは割込み禁止(マスク)にして待たせます。電源異常や機械チェックは最優先で、入出力完了はそれより低い、という順序になります。

入出力の方式は、CPUをどれだけ使うかで並びます。プログラム制御方式(ポーリング)は、CPU が入出力装置の状態レジスタを繰り返し読んで完了を確認する方式で、実装は単純ですが待っている間ずっと CPU を消費します。割込み駆動方式は、装置側が完了時に割込みで知らせるので、待っている間 CPU は別の仕事ができます。DMA 方式は、CPU を介さずに DMA コントローラが主記憶と装置の間で直接データを転送し、転送完了時にだけ割込みで知らせます。大量のデータをまとめて動かすディスクやネットワークで使われます。チャネル制御方式は、入出力専用のプロセッサ(チャネル)が入出力プログラムを解釈して実行する方式で、大型機で使われます。

DMA が主記憶をアクセスしている間、CPU も主記憶を使いたい場合があります。バスを1サイクルだけ借りて少しずつ転送するのがサイクルスチール、転送が終わるまでバスを占有するのがバースト転送です。サイクルスチールは CPU の処理をわずかに遅らせるだけで済み、バースト転送は転送効率が最も高いかわりに CPU が待たされます。どちらを選ぶかは、応答性を優先するか転送量を優先するかの判断になります。なお、ポーリングは常に劣った方式というわけではなく、割込みの回数が極端に多い高速なネットワーク処理では、割込み処理そのもののオーバヘッドを避けるために意図的にポーリングを使うこともあります。

入出力方式の比較(CPUをどれだけ使うか)
方式転送を行う主体CPUの負担向いている場面
ポーリングCPU大(待ち続ける)装置が少なく応答を急ぐとき
割込み駆動CPU中(通知時のみ)少量データの入出力
DMADMAコントローラ小(開始と完了のみ)ディスクやネットワークの大量転送
チャネル制御チャネル(専用プロセッサ)最小大型機の多数装置の同時入出力
割込み処理の手順と、DMA転送時間の求め方
割込みが起きたときの流れ   1. 実行中の命令を区切りのよいところまで終える  2. プログラムカウンタとプログラム状態語を退避する  3. 割込み要因を判定する  4. 要因に対応する割込み処理ルーチンへ分岐する  5. 処理を行う(必要なら多重割込みを許可する)  6. 退避した内容を復元する  7. 中断した位置から実行を再開する   DMA転送に要する時間の見積り    転送回数 = 総バイト数 ÷ 1回あたりの転送バイト数    所要時間 = 転送回数 × 1回あたりのバス周期

用語

内部割込み
実行中の命令そのものが原因で発生する割込み。0除算やけたあふれなどのプログラム割込み、ページフォールト、特権命令違反、スーパバイザ呼出しが含まれる。同じ命令を再実行すれば再現しうる点が外部割込みと異なる。
外部割込み
実行中の命令とは無関係な要因で発生する割込み。入出力の完了、インターバルタイマによる時間切れ、機械チェック、電源異常などが該当する。発生の時期をプログラム側から予測できない。
多重割込み
割込み処理の実行中に、さらに別の割込みを受け付けること。優先度の高い割込みだけを通し、低いものは割込み禁止で待たせる。電源異常や機械チェックが最も優先され、入出力完了はそれより低い。
ポーリング
CPUが入出力装置の状態を繰り返し読んで、準備完了や転送完了を確認する方式。実装が単純で応答の遅延が小さい反面、待っている間もCPUを消費する。割込み回数が極端に多い場面では逆に有利になる。
DMA
CPUを介さずに、専用のコントローラが主記憶と入出力装置の間で直接データを転送する方式。CPUは転送開始を指示し、完了の割込みを受け取るだけでよいので、大量データの転送でCPUの負担を大きく減らせる。
サイクルスチール
DMA転送で、CPUが主記憶を使っていない機会をとらえて1サイクルずつバスを借りる方式。CPUの処理はわずかに遅れるだけで止まらない。転送が終わるまでバスを占有するバースト転送と対になる考え方である。
チャネル制御方式
入出力専用のプロセッサであるチャネルが、主記憶上の入出力プログラムを解釈して装置を制御する方式。CPUは入出力の起動だけを行う。1つの装置を専有するセレクタチャネルと、複数を切り替えるマルチプレクサチャネルがある。

例題

例題:0除算、ページフォールト、タイマによる時間切れ、入出力完了のうち、内部割込みはどれか。
答えと考え方 0除算とページフォールトが内部割込み。どちらも実行中の命令が原因で発生し、その命令を実行しなければ起きない。タイマの時間切れと入出力完了は、実行中の命令と無関係に外から発生するので外部割込みである。
例題:1回のバス獲得で8バイトを転送でき、1回あたり 40ns を要する DMA で、2 × 10⁶ バイトを転送するのに要する時間はいくらか。
答えと考え方 転送回数は 2000000 ÷ 8 = 250000 回。所要時間は 250000 × 40ns = 10000000ns = 10ms。1バイトずつ転送する方式なら 2000000 × 40ns = 80ms かかるので、まとめて運ぶことの効果が大きいと分かる。

出典・根拠:IPA「応用情報技術者試験(レベル3)」シラバス Ver.7.2 大分類2:コンピュータシステム

4. システム構成と仮想化の選び方

冗長化の型、スケールアップとスケールアウトの分かれ目、仮想マシンとコンテナの違いを、コストと可用性の判断として整理します。

複数の装置を組み合わせる型にはそれぞれ狙いがあります。デュアルシステムは同じ処理を2系統で行い、結果を突き合わせて一致を確認する構成で、誤りの検出まで含めた高い信頼性が要る場面に使います。デュプレックスシステムは主系が本番処理を行い、従系が待機する構成で、待機の仕方によってホットスタンバイ(電源を入れ同じ状態を保って即座に切り替わる)、ウォームスタンバイ(起動はしているが切替に少し時間がかかる)、コールドスタンバイ(停止しており起動から始める)に分かれます。待機中の従系で別の処理をさせる運用もあり、これをバックアップサイトの考え方と組み合わせるとコストを抑えられます。

クラスタは複数のサーバを1つのシステムとして見せる構成で、目的が2つに分かれます。可用性クラスタ(HAクラスタ)は、あるノードが落ちたら別のノードが処理を引き継ぐことで停止時間を減らします。負荷分散クラスタは、要求を複数ノードに振り分けて処理量を増やします。振り分けはロードバランサが行い、順番に配るラウンドロビン、接続数の少ないノードへ配る最小接続数、応答時間を見て配る方式などがあります。セッション情報をサーバ側に持つ場合は、同じ利用者を同じノードへ送るスティッキーセッションが必要になりますが、これをやると特定ノードに偏りやすく、障害時にセッションが失われます。セッションを外部の共有ストアに出しておくと、この制約から解放されます。

処理能力を増やす方法には2通りあります。スケールアップは1台の性能を上げること、スケールアウトは台数を増やすことです。スケールアップは構成が単純でアプリケーションの変更が要らず、書込みが集中するデータベースのように分割しにくい処理に向きますが、いずれ1台の上限に当たり、その1台が単一障害点として残ります。スケールアウトは理論上は台数だけ伸ばせて、1台の故障が全体を止めないという可用性の利点もありますが、状態を各ノードに持たせない設計(ステートレス化)やデータの分割が前提になります。判断の要は「処理を分割できるか」と「単一障害点を許容できるか」の2点です。

仮想化には層の違いがあります。ハイパーバイザ型(ベアメタル型)はハードウェア上で直接動く仮想化基盤の上に複数のゲストOSを載せる方式で、性能と分離度に優れます。ホスト型はホストOSの上のアプリケーションとして仮想化ソフトを動かす方式で、導入は容易ですが層が1つ多いぶん遅くなります。コンテナはそもそもOSを複製せず、ホストのカーネルを共有したまま名前空間と資源制限でアプリケーションの実行環境だけを分離する方式です。OSの起動が不要なので起動が速く、イメージも小さく、同じホストに多数を詰め込めますが、カーネルを共有するため分離の強さは仮想マシンに劣り、ホストと異なる種類のOSは動かせません。稼働中の仮想マシンを止めずに別の物理ホストへ移すライブマイグレーションは、保守時の無停止化に使われます。

仮想マシンとコンテナの比較(何を共有するか)
観点ハイパーバイザ型仮想マシンコンテナ
OSカーネルゲストごとに別ホストと共有
起動時間数十秒〜数分1秒未満のことが多い
イメージの大きさGB級MB級
分離の強さ強いカーネル共有のぶん弱い
異種OSの同居可不可
集約できる数中多い
処理能力を増やすときの判断の順序
スケールアップとスケールアウトの判断   if (処理を複数ノードに分割できない)    /* 書込みが集中する単一のDBなど */    スケールアップを選ぶ  elseif (単一障害点を残せない)    スケールアウトを選ぶ  elseif (負荷の増減が大きく読めない)    スケールアウトを選ぶ  /* 台数で追随できる */  else    運用の手間と費用で比較する  endif   /* スケールアウトの前提 */  ・セッションなどの状態をノードに持たせない  ・データの分割方針を先に決めておく  ・ロードバランサ自身も冗長化する

用語

デュアルシステム
同じ処理を2系統で並行して実行し、結果を照合して一致を確認する構成。誤りの検出能力が高く、片方が故障しても処理を継続できる。装置も処理も二重になるためコストは高い。
デュプレックスシステム
主系が本番処理を行い、従系が待機する構成。待機の仕方でホットスタンバイ、ウォームスタンバイ、コールドスタンバイに分かれ、切替時間とコストのトレードオフになる。従系で別の処理を行う運用もある。
ロードバランサ
複数のサーバへ要求を振り分ける装置またはソフトウェア。ラウンドロビン、最小接続数、応答時間などの方式で分配し、応答しないサーバを切り離すヘルスチェックも行う。負荷分散と可用性の両方に寄与する。
スケールアップ
1台の機器の処理能力を高めて全体の性能を上げる方法。構成が単純でアプリケーションの変更が不要だが、1台の上限で頭打ちになり、その1台が単一障害点として残る。分割しにくい処理に向く。
スケールアウト
機器の台数を増やして全体の処理能力を上げる方法。1台の故障が全体を止めにくく、必要に応じて増減できる。ノードに状態を持たせない設計やデータの分割が前提となり、整合性の管理が難しくなる。
ハイパーバイザ型
ハードウェア上で直接動作する仮想化基盤の上に、複数のゲストOSを動かす方式。ホストOSを経由しないため性能の損失が小さく、ゲスト間の分離も強い。サーバ仮想化の主流である。
コンテナ
ホストOSのカーネルを共有したまま、名前空間と資源制限でアプリケーションの実行環境だけを分離する方式。OSの起動が不要で軽量かつ高速だが、カーネルを共有するため分離度は仮想マシンに劣る。
ライブマイグレーション
稼働中の仮想マシンを停止させずに別の物理ホストへ移動させる機能。メモリの内容を転送しながら差分を追いかけ、最後にごく短時間だけ切り替える。物理サーバの保守を無停止で行える。

例題

例題:Webサーバを3台に増やして負荷分散したところ、ログイン後にときどき未ログイン状態に戻る現象が起きた。原因として何が考えられ、どう直すか。
答えと考え方 セッション情報を各サーバのメモリに持っており、次の要求が別のサーバへ振り分けられたためにセッションが見つからない。対策は、同じ利用者を同じサーバへ送るスティッキーセッションを設定するか、セッションを共有のデータストアへ外出しすることである。後者のほうが偏りも起きず、サーバ故障時にもセッションが失われないので望ましい。
例題:同じ物理サーバに、開発用の環境を数十個用意したい。起動と破棄を1日に何度も繰り返し、いずれもホストと同じ種類のOS上で動く。仮想マシンとコンテナのどちらが適するか。
答えと考え方 コンテナが適する。OSの起動が不要なので生成と破棄が数秒で済み、イメージが小さいので数十個を同じホストに載せられる。異種OSが不要で、開発用途なら分離の強さより軽さと速さが優先されるという条件がそろっている。逆に、他社の利用者を同居させるなど強い分離が要る場合は仮想マシンを選ぶ。

出典・根拠:IPA「応用情報技術者試験(レベル3)」シラバス Ver.7.2 大分類2:コンピュータシステム

5. 信頼性設計・稼働率と性能評価

壊れることを前提にした設計の型を区別し、稼働率とRAIDを計算で押さえ、性能をどの指標で測るかまで通します。

信頼性の設計には、大きく2つの方向があります。フォールトアボイダンスは、部品の品質を上げ、試験を厚くして、そもそも故障を起こさせない方向。フォールトトレランスは、故障は起きるものとして冗長化しておき、起きても機能を保つ方向です。後者の中の型を区別できるようにしておきます。フェールセーフは、故障したときに危険のない側へ倒す設計で、信号機が故障したら赤で止める、といったものです。フェールソフトは、機能を落としてでも運転を続ける設計で、縮退運転(フォールバック)がこれにあたります。フールプルーフは、利用者が誤った操作をしてもシステムが壊れないようにする設計です。名前と例が入れ替えられた選択肢が並ぶので、対象が「故障」なのか「誤操作」なのか、結果が「止める」のか「続ける」のかで切り分けてください。

稼働率の計算は、直列と並列を見分けるところから始まります。どれか1つでも止まると全体が止まる関係が直列で、稼働率は各稼働率の積になります。どれか1つでも動いていれば全体が動く関係が並列で、全部が同時に止まる確率を1から引いた 1 − (1 − a)(1 − b) になります。組み合わさった構成は、内側の並列部分をひとつの稼働率にまとめてから、直列の積を取ります。装置1台の稼働率は MTBF ÷ (MTBF + MTTR) で求められます。MTBF は平均故障間隔(動いている時間の平均)、MTTR は平均修復時間で、MTBF を伸ばすより MTTR を縮めるほうが安く効くことも多い、というのが実務での判断どころです。

ディスクの冗長化は RAID で行います。RAID0(ストライピング)は複数台に分散して書くだけなので速いが冗長性はなく、1台の故障で全データを失います。RAID1(ミラーリング)は同じ内容を2台に書くので、実効容量は半分ですが1台の故障に耐えます。RAID5 はパリティを分散して持ち、n 台なら実効容量は n − 1 台ぶんで、1台までの故障に耐えます。RAID6 はパリティを2組持つので実効容量は n − 2 台ぶん、2台の同時故障に耐えます。RAID5 は小さな書込みのたびに旧データと旧パリティの読出しと書込みが必要(書込みペナルティ)なので、書込みが多い用途では RAID1 や RAID10 のほうが速いことがあります。容量効率・書込み性能・耐えられる故障台数の3つで選びます。

性能の測り方は、見たいものによって指標が変わります。スループットは単位時間あたりに処理できる件数で、システム全体の処理量を表します。レスポンスタイムは要求を出してから最初の応答が返るまで、ターンアラウンドタイムは処理がすべて終わるまでの時間です。オンライン処理ではレスポンスタイム、バッチ処理ではターンアラウンドタイムが重視されます。平均値だけでなく、上位のばらつき(たとえば95パーセンタイル)を見ないと、少数の極端に遅い応答を見落とします。機種の比較にはベンチマークを使い、CPU の演算性能なら SPEC、トランザクション処理性能なら TPC 系の指標が代表的です。実際の負荷特性が自社のものと違えば結果もずれるため、最終的には実データを流すテストが要ります。

RAIDの比較(n 台構成、耐えられる故障台数)
方式実効容量故障耐性読出し書込み
RAID0n 台ぶんなし速い速い
RAID1n ÷ 2 台ぶん1台(組ごと)速いやや遅い
RAID5n − 1 台ぶん1台速いペナルティあり
RAID6n − 2 台ぶん2台速いペナルティ大
RAID10n ÷ 2 台ぶん組ごとに1台速い速い
直列・並列の合成と、MTBF・MTTR からの稼働率
稼働率の合成   直列(1つでも止まると全体が止まる)    A = a1 × a2 × … × an   並列(1つでも動けば全体が動く)    A = 1 − (1 − a1)(1 − a2) … (1 − an)   1台の稼働率    a = MTBF ÷ (MTBF + MTTR)   計算例: 稼働率 0.85 の装置2台を並列にし、          その後段に稼働率 0.9 の装置を直列で置く    並列部 = 1 − 0.15 × 0.15 = 0.9775    全体   = 0.9775 × 0.9 = 0.87975

用語

フォールトトレランス
構成要素の故障を前提に冗長性を持たせ、故障が起きても全体としての機能を維持する考え方。故障そのものを起こさせないようにするフォールトアボイダンスと対になる。冗長化のぶんコストが増える。
フェールセーフ
故障が起きたときに、安全な側の状態へ移行させる設計。信号機が故障時に赤を示す、ガス機器が異常時に弁を閉じるなどが例。機能の継続よりも安全の確保を優先する点が特徴である。
フェールソフト
故障が起きたときに、性能や機能を落としてでも運転を継続する設計。障害のある部分を切り離して残りで動かす縮退運転(フォールバック)が典型例。止めないことを優先する点でフェールセーフと異なる。
フールプルーフ
利用者の誤った操作があってもシステムが異常な状態にならないようにする設計。ふたを閉めないと回らない洗濯機、確認画面、入力値の検査などが該当する。対象が故障ではなく人の操作である点が区別の鍵になる。
MTBF
平均故障間隔。修理して使う装置が、故障から次の故障までに正常動作する時間の平均を表す。稼働率は MTBF ÷ (MTBF + MTTR) で求まる。値が大きいほど故障しにくい。
MTTR
平均修復時間。故障してから復旧するまでに要する時間の平均。保守体制や予備機の配置で短縮できる。MTBF を延ばすより MTTR を縮めるほうが、同じ稼働率の改善を安く実現できることが多い。
RAID5
データとパリティを複数台に分散して記録する方式。n 台構成なら実効容量は n − 1 台ぶんで、1台までの故障に耐える。小さな書込みのたびに旧データと旧パリティの読み書きが必要になる書込みペナルティがある。
スループット
単位時間あたりに処理できる仕事の量。件数や毎秒トランザクション数で表す。1件あたりの速さを表すレスポンスタイムとは別の指標で、多重度を上げるとスループットは伸びてもレスポンスは悪化することがある。
ベンチマーク
あらかじめ定めた標準的な処理を実行して性能を測る手法。CPU 性能の SPEC、トランザクション処理の TPC などがある。実際の業務の負荷特性と異なれば結果もずれるため、最終判断には実データによる検証が要る。

例題

例題:MTBF が 400 時間、MTTR が 25 時間の装置がある。稼働率はいくらか。また MTTR を 10 時間に短縮すると稼働率はどうなるか。
答えと考え方 400 ÷ (400 + 25) = 400 ÷ 425 ≒ 0.941。MTTR を10時間にすると 400 ÷ 410 ≒ 0.976 に上がる。装置の作り直し(MTBF の改善)をせずに、保守体制の見直しだけで稼働率を3ポイント以上改善できる例である。
例題:容量 3TB のディスク6台で RAID6 を構成したときの実効容量はいくらか。RAID5 との差は何に使われているか。
答えと考え方 RAID6 はパリティを2組持つので実効容量は (6 − 2) × 3 = 12TB。RAID5 なら (6 − 1) × 3 = 15TB なので、差の3TBが2台目のパリティに使われている。この3TBと引き換えに、2台が同時に故障しても復旧できる耐性を得ている。

出典・根拠:IPA「応用情報技術者試験(レベル3)」シラバス Ver.7.2 大分類2:コンピュータシステム

確認問題(50問)

四肢択一。「正解と解説」を開くと、正解の理由と他の選択肢が違う理由を確認できます。

問1|パイプライン

6段のパイプラインをもつプロセッサで 1000 命令を実行する。各段の処理は1クロックサイクルで終わり、クロック周期は 2ns である。すべての命令が完了するまでの時間はいくらか。ハザードによる乱れはないものとする。

  1. 2010ns
  2. 2000ns
  3. 2012ns
  4. 12000ns
正解と解説
正解:A. 2010ns

所要サイクルは 命令数 + 段数 − 1 で 1000 + 6 − 1 = 1005。時間は 1005 × 2ns = 2010ns である。2000ns は立ち上がりの 5 サイクルを数え落とした値、2012ns は 1000 + 6 として 1 を引き忘れた値、12000ns はパイプライン化せず 1000 × 6 サイクルかかるとした逐次実行の値である。

根拠:IPA「応用情報技術者試験(レベル3)」シラバス Ver.7.2 大分類2:コンピュータシステム

問2|制御ハザード

パイプライン処理における制御ハザードの説明として適切なものはどれか。

  1. 直前の命令の演算結果を次の命令が必要とするために生じる乱れ
  2. 複数の命令が同じ演算器やバスを同時に使おうとして生じる乱れ
  3. 命令長が可変であるために命令の切れ目が判定できず生じる乱れ
  4. 分岐命令の結果が確定するまで、次に取り出すべき命令が決まらないために生じる乱れ
正解と解説
正解:D. 分岐命令の結果が確定するまで、次に取り出すべき命令が決まらないために生じる乱れ

制御ハザードは分岐に起因するもので、分岐予測や投機実行、遅延分岐で影響を抑える。直前の結果を待つのはデータハザード、同じ資源の奪い合いは構造ハザードであり、それぞれフォワーディングや資源の追加で対処する。命令長が可変であることは解読を複雑にするがハザードの分類には含まれない。

根拠:IPA「応用情報技術者試験(レベル3)」シラバス Ver.7.2 大分類2:コンピュータシステム

問3|VLIW

VLIW 方式の特徴として適切なものはどれか。

  1. 同時に実行できる複数の命令をコンパイラが1つの命令語にまとめ、実行時の依存判定を不要にする
  2. 実行時にハードウェアが依存関係を調べ、複数の命令を同時に発行する
  3. パイプラインの段数を増やしてクロック周波数を高める
  4. 1つの命令で配列全体に同じ演算を適用する
正解と解説
正解:A. 同時に実行できる複数の命令をコンパイラが1つの命令語にまとめ、実行時の依存判定を不要にする

VLIW は並列化の判断をコンパイル時に済ませるので、実行時の依存判定回路が不要になり、ハードウェアを単純にできる。かわりに実行時の状況に応じた調整ができない。実行時にハードウェアが判定するのはスーパースカラ、段数を細分化してクロックを上げるのはスーパーパイプライン、配列に一括で演算するのはSIMDの説明である。

根拠:IPA「応用情報技術者試験(レベル3)」シラバス Ver.7.2 大分類2:コンピュータシステム

問4|平均CPI

命令の出現比率とそれぞれの実行に要するクロックサイクル数が、演算命令 50 パーセントで2サイクル、分岐命令 30 パーセントで4サイクル、メモリ参照命令 20 パーセントで9サイクルであるとき、平均CPIはいくらか。

  1. 3.0
  2. 4.0
  3. 5.0
  4. 15.0
正解と解説
正解:B. 4.0

平均CPI は出現比率で重み付けした平均なので 0.5 × 2 + 0.3 × 4 + 0.2 × 9 = 1.0 + 1.2 + 1.8 = 4.0 である。5.0 は比率を無視して (2 + 4 + 9) ÷ 3 と単純平均した誤り、15.0 は3種類のサイクル数を単純に足した値、3.0 はいずれの計算にも一致しない。

根拠:IPA「応用情報技術者試験(レベル3)」シラバス Ver.7.2 大分類2:コンピュータシステム

問5|MIPS値

平均CPI が 4.0 のプロセッサをクロック周波数 2GHz で動作させたときの MIPS 値はいくらか。

  1. 125
  2. 250
  3. 500
  4. 2000
正解と解説
正解:C. 500

MIPS は クロック周波数(MHz)÷ 平均CPI で求める。2GHz は 2000MHz なので 2000 ÷ 4.0 = 500 である。250 は 1GHz と読み違えた値、2000 は CPI で割り忘れた値、125 は 2000 を 16 で割るなど桁を取り違えた値である。MIPS は命令1つあたりの仕事量を考慮しないので、命令セットの異なる機種の比較には使えない。

根拠:IPA「応用情報技術者試験(レベル3)」シラバス Ver.7.2 大分類2:コンピュータシステム

問6|実行時間とMIPS

1命令の平均実行時間が 25ns であるプロセッサの MIPS 値はいくらか。

  1. 4
  2. 25
  3. 40
  4. 400
正解と解説
正解:C. 40

1秒は 10⁹ns なので、1秒間に実行できる命令数は 10⁹ ÷ 25 = 4 × 10⁷ 命令。MIPS は百万命令単位なので 40 である。25 は平均実行時間の数値をそのまま答えた誤り、400 と4はいずれも桁を1つ取り違えた値である。平均実行時間は 平均CPI × クロック周期 でも求まる。

根拠:IPA「応用情報技術者試験(レベル3)」シラバス Ver.7.2 大分類2:コンピュータシステム

問7|RISCとCISC

RISC の特徴として適切なものはどれか。

  1. 1命令で複雑な処理を行えるようにし、プログラムの命令数を減らす
  2. 命令をマイクロプログラムで解釈し、命令セットの追加を容易にする
  3. 主記憶上のデータに対して直接演算を行う命令を豊富に用意する
  4. 命令の種類と機能を絞り、長さをそろえてパイプライン処理をしやすくする
正解と解説
正解:D. 命令の種類と機能を絞り、長さをそろえてパイプライン処理をしやすくする

RISC は命令を単純化・固定長化することで、解読を速くしパイプラインの段が乱れにくいようにする設計思想である。演算はレジスタ間で行い、主記憶とのやり取りはロードとストアに限る。1命令で複雑な処理を行う、マイクロプログラムで解釈する、主記憶上のデータを直接演算するのは、いずれも CISC の特徴である。

根拠:IPA「応用情報技術者試験(レベル3)」シラバス Ver.7.2 大分類2:コンピュータシステム

問8|アドレス指定

命令のアドレス部の値と、プログラムカウンタの値を加算して実効アドレスを求める指定方式はどれか。

  1. 間接アドレス指定
  2. 相対アドレス指定
  3. 指標アドレス指定
  4. 基底アドレス指定
正解と解説
正解:B. 相対アドレス指定

相対アドレス指定はプログラムカウンタを基準に加算するので、プログラムをどこに配置しても同じ機械語が動く(再配置可能になる)という利点がある。間接アドレス指定はアドレス部が示す番地の中身をさらにアドレスとして使う方式、指標アドレス指定は指標レジスタを加える方式で配列の走査に使い、基底アドレス指定は基底レジスタを加える方式である。

根拠:IPA「応用情報技術者試験(レベル3)」シラバス Ver.7.2 大分類2:コンピュータシステム

問9|アムダール

ある処理の 80 パーセントは並列化でき、残りは逐次実行しかできない。並列化できる部分を4倍速くしたとき、処理全体の速度向上はおよそ何倍か。

  1. 1.2倍
  2. 3.2倍
  3. 4.0倍
  4. 2.5倍
正解と解説
正解:D. 2.5倍

アムダールの法則より、速度向上は 1 ÷ ((1 − 0.8) + 0.8 ÷ 4) = 1 ÷ (0.2 + 0.2) = 2.5倍である。3.2倍は 0.8 × 4 と誤って掛け合わせた値、4.0倍は逐次部分を無視して並列部分の倍率をそのまま当てた値、1.2倍は並列化できる割合と逐次の割合を取り違えて 1 ÷ (0.8 + 0.2 ÷ 4) と計算した値である。逐次部分が2割あるだけで、上限は5倍を超えられない。

根拠:IPA「応用情報技術者試験(レベル3)」シラバス Ver.7.2 大分類2:コンピュータシステム

問10|マルチコア化

近年のプロセッサで、クロック周波数の向上ではなくコア数の増加によって性能を高める設計が主流になった主な理由はどれか。

  1. 周波数を上げると命令セットの互換性が保てなくなるから
  2. 周波数を上げると消費電力と発熱が急激に増え、冷却が現実的でなくなるから
  3. コアを増やすほどコンパイラの最適化が不要になるから
  4. コアを増やせば逐次処理の実行時間も比例して短くなるから
正解と解説
正解:B. 周波数を上げると消費電力と発熱が急激に増え、冷却が現実的でなくなるから

動作周波数を上げると消費電力がほぼ比例以上に増え、発熱の除去が困難になる。この電力の壁のため、周波数ではなく並列度で性能を伸ばす方向に移った。互換性は周波数と無関係であり、並列化にはむしろコンパイラや実装の工夫が要る。アムダールの法則が示すとおり、逐次処理はコアを増やしても速くならない。

根拠:IPA「応用情報技術者試験(レベル3)」シラバス Ver.7.2 大分類2:コンピュータシステム

問11|実効アクセス

キャッシュメモリのアクセス時間が 10ns、主記憶のアクセス時間が 100ns、キャッシュのヒット率が 95 パーセントであるとき、実効アクセス時間はいくらか。

  1. 15.0ns
  2. 55.0ns
  3. 14.5ns
  4. 95.5ns
正解と解説
正解:C. 14.5ns

実効アクセス時間は ヒット率 × キャッシュの時間 + ミス率 × 主記憶の時間 なので 0.95 × 10 + 0.05 × 100 = 9.5 + 5.0 = 14.5ns である。15.0ns はミス時にキャッシュの 10ns も加算した場合の値、95.5ns はヒット率とミス率を取り違えた値、55.0ns は2つのアクセス時間を単純平均した値である。

根拠:IPA「応用情報技術者試験(レベル3)」シラバス Ver.7.2 大分類2:コンピュータシステム

問12|必要ヒット率

キャッシュのアクセス時間が 8ns、主記憶のアクセス時間が 88ns である。実効アクセス時間を 16ns 以下に抑えるために必要なヒット率は最低でいくらか。

  1. 0.90
  2. 0.80
  3. 0.85
  4. 0.95
正解と解説
正解:A. 0.90

ヒット率を h として 8h + 88(1 − h) ≦ 16 を解く。88 − 80h ≦ 16 より 80h ≧ 72、したがって h ≧ 0.9 である。0.85 では実効アクセス時間が 20ns、0.80 では 24ns となり条件を満たさない。0.95 なら 12ns で条件は満たすが、求められている最低値ではない。

根拠:IPA「応用情報技術者試験(レベル3)」シラバス Ver.7.2 大分類2:コンピュータシステム

問13|書込み方式

キャッシュの書込み方式について、ライトバック方式がライトスルー方式より優れている点はどれか。

  1. 同じ番地への書込みが繰り返されるとき、主記憶へのアクセス回数を減らせる
  2. キャッシュと主記憶の内容が常に一致するので、障害時の復旧が容易である
  3. 書き戻すブロックを管理する必要がないので、制御回路が単純になる
  4. ほかのプロセッサから見たときのキャッシュの一貫性を保ちやすい
正解と解説
正解:A. 同じ番地への書込みが繰り返されるとき、主記憶へのアクセス回数を減らせる

ライトバックはキャッシュだけを更新し、追い出し時にまとめて書き戻すので、同じ場所への繰り返し書込みで主記憶アクセスを大幅に減らせる。内容が常に一致するのはライトスルーの利点で、一貫性の確保もライトスルーのほうが容易である。ライトバックは更新の有無を示すダーティビットの管理が必要で、制御はむしろ複雑になる。

根拠:IPA「応用情報技術者試験(レベル3)」シラバス Ver.7.2 大分類2:コンピュータシステム

問14|写像方式

キャッシュの写像方式のうち、ダイレクトマップ方式の説明として適切なものはどれか。

  1. 主記憶のブロックを置けるキャッシュ上の位置が1か所に定まる方式
  2. 主記憶のブロックをキャッシュ上の任意の位置に置ける方式
  3. キャッシュを複数の組に分け、組の中の任意の位置に置ける方式
  4. 主記憶とキャッシュの対応表を主記憶上に持たせる方式
正解と解説
正解:A. 主記憶のブロックを置けるキャッシュ上の位置が1か所に定まる方式

ダイレクトマップは置き場所が一意に決まるので照合回路が単純で高速だが、同じ位置に写る複数のブロックを交互に参照すると追い出し合いが続き、容量に余裕があってもミスが増える。任意の位置に置けるのはフルアソシアティブ、組の中で自由に置けるのがセットアソシアティブである。対応表を主記憶に置く方式はキャッシュの写像方式には存在しない。

根拠:IPA「応用情報技術者試験(レベル3)」シラバス Ver.7.2 大分類2:コンピュータシステム

問15|記憶階層

記憶装置をアクセス速度の速い順に並べたものはどれか。

  1. キャッシュメモリ、レジスタ、主記憶、SSD
  2. レジスタ、キャッシュメモリ、主記憶、SSD
  3. レジスタ、主記憶、キャッシュメモリ、SSD
  4. 主記憶、レジスタ、キャッシュメモリ、SSD
正解と解説
正解:B. レジスタ、キャッシュメモリ、主記憶、SSD

記憶階層は上ほど速く、小さく、容量あたりの単価が高い。速い順はレジスタ、キャッシュメモリ(1次から3次)、主記憶、SSD、ハードディスクである。CPU の内部にあるレジスタが最も速く、キャッシュがそれに続く。この順序を保ったまま、よく使うデータを上へ集めることで平均アクセス時間を縮めるのが記憶階層の考え方である。

根拠:IPA「応用情報技術者試験(レベル3)」シラバス Ver.7.2 大分類2:コンピュータシステム

問16|局所性

キャッシュメモリがブロック単位でまとめてデータを読み込むのは、主にどの性質を利用しているからか。

  1. 時間的局所性
  2. 参照の一様性
  3. 空間的局所性
  4. データの冗長性
正解と解説
正解:C. 空間的局所性

空間的局所性は、ある番地を参照すると近い番地も続けて参照されやすいという性質で、配列の順次走査や命令列の連続実行がその例である。まとめて読み込んでおけば、続く参照がヒットする。時間的局所性は同じ番地を短時間に繰り返し使う性質で、いったん読んだものをキャッシュに残しておく根拠になる。参照の一様性は局所性がないことを意味し、キャッシュが効かない条件である。

根拠:IPA「応用情報技術者試験(レベル3)」シラバス Ver.7.2 大分類2:コンピュータシステム

問17|インタリーブ

メモリインタリーブの説明として適切なものはどれか。

  1. 主記憶の内容を定期的に読み書きして、記憶内容の消失を防ぐ
  2. 使用頻度の低い主記憶の内容を補助記憶へ退避し、空き容量を確保する
  3. 主記憶を複数のバンクに分け、連続する番地を異なるバンクに割り当てて並行にアクセスする
  4. 主記憶とキャッシュの内容が食い違わないように監視して無効化する
正解と解説
正解:C. 主記憶を複数のバンクに分け、連続する番地を異なるバンクに割り当てて並行にアクセスする

メモリインタリーブは、1つのバンクが応答している間に次のバンクへ要求を出せるようにして、連続した領域の読み書きを高速化する技法である。定期的な読み書きで内容を保つのは DRAM のリフレッシュ、補助記憶へ退避するのはスワッピング、キャッシュの食い違いを監視するのはスヌープによるコヒーレンシ制御である。

根拠:IPA「応用情報技術者試験(レベル3)」シラバス Ver.7.2 大分類2:コンピュータシステム

問18|コヒーレンシ

複数のコアがそれぞれ専用のキャッシュをもつマルチコアプロセッサで、キャッシュコヒーレンシの制御が必要になる理由はどれか。

  1. あるコアが更新した内容が自分のキャッシュにだけ残り、ほかのコアが古い値を読む可能性があるから
  2. コアごとにキャッシュの容量が異なると、ヒット率に差が出てしまうから
  3. キャッシュの容量の合計が主記憶を超えると、格納できないデータが生じるから
  4. 複数のコアが同時に主記憶を参照すると、バスの帯域が不足するから
正解と解説
正解:A. あるコアが更新した内容が自分のキャッシュにだけ残り、ほかのコアが古い値を読む可能性があるから

各コアのキャッシュに同じ番地の複製ができるため、一方だけが更新されると他方が古い値を読んでしまう。これを防ぐためにバスを監視して該当ブロックを無効化するスヌープなどの仕組みが要る。容量の差や帯域の不足は性能の問題であって整合性の問題ではなく、キャッシュ容量の合計が主記憶を超えることは前提として起こらない。

根拠:IPA「応用情報技術者試験(レベル3)」シラバス Ver.7.2 大分類2:コンピュータシステム

問19|2階層キャッシュ

1次キャッシュのアクセス時間が 2ns でヒット率 90 パーセント、1次をミスしたときに参照する2次キャッシュのアクセス時間が 10ns でヒット率 90 パーセント、いずれもミスしたときの主記憶のアクセス時間が 100ns である。実効アクセス時間はいくらか。

  1. 10.8ns
  2. 11.8ns
  3. 19.0ns
  4. 3.7ns
正解と解説
正解:D. 3.7ns

1次でヒットする 0.9 の場合が 2ns。ミスする 0.1 の場合は、2次でヒットする 0.9 が 10ns、さらにミスする 0.1 が 100ns なので 0.9 × 10 + 0.1 × 100 = 19ns。全体は 0.9 × 2 + 0.1 × 19 = 1.8 + 1.9 = 3.7ns である。19.0ns は1次をミスした後だけの平均、11.8ns は2次キャッシュを無視して主記憶へ直行するとした値、10.8ns は 0.9 × 2 + 0.9 × 10 のように、1次と2次のヒットをどちらも全体の9割として足してしまった誤りである。

根拠:IPA「応用情報技術者試験(レベル3)」シラバス Ver.7.2 大分類2:コンピュータシステム

問20|DRAMとSRAM

DRAM と SRAM を比較した説明として適切なものはどれか。

  1. SRAM はコンデンサを使うため、DRAM よりも高集積で安価である
  2. DRAM は電源を切っても記憶内容が保たれる不揮発性メモリである
  3. SRAM はリフレッシュが必要なので、主記憶よりキャッシュに向いている
  4. DRAM はコンデンサに電荷を蓄えるため、記憶内容を保つ定期的なリフレッシュが必要である
正解と解説
正解:D. DRAM はコンデンサに電荷を蓄えるため、記憶内容を保つ定期的なリフレッシュが必要である

DRAM は1ビットをコンデンサ1個とトランジスタ1個で構成できるため高集積で安価だが、電荷が抜けるので定期的なリフレッシュが要る。SRAM はフリップフロップで構成しリフレッシュが不要で高速だが、素子数が多く高価なのでキャッシュに使われる。どちらも電源を切れば内容が消える揮発性メモリである。

根拠:IPA「応用情報技術者試験(レベル3)」シラバス Ver.7.2 大分類2:コンピュータシステム

問21|内部割込み

次のうち、内部割込みに分類されるものはどれか。

  1. インターバルタイマの計時終了による割込み
  2. 磁気ディスク装置の入出力完了による割込み
  3. 0による除算が行われたことによる割込み
  4. 電源電圧の低下を検出したことによる割込み
正解と解説
正解:C. 0による除算が行われたことによる割込み

内部割込みは、実行中の命令そのものが原因で起きるものを指す。0除算、けたあふれ、ページフォールト、特権命令違反、スーパバイザ呼出しが該当する。タイマの計時終了、入出力完了、電源異常はいずれも実行中の命令とは無関係に外部の要因で発生するので外部割込みである。原因が命令の中にあるかどうかで切り分ける。

根拠:IPA「応用情報技術者試験(レベル3)」シラバス Ver.7.2 大分類2:コンピュータシステム

問22|割込み処理

割込みが発生したときにハードウェアまたはOSが最初に行うこととして適切なものはどれか。

  1. プログラムカウンタとプログラム状態語を退避する
  2. 実行中のプログラムを強制的に終了させる
  3. 主記憶の内容を補助記憶へすべて書き出す
  4. 割込みを発生させた装置の電源を切り離す
正解と解説
正解:A. プログラムカウンタとプログラム状態語を退避する

中断された処理を後で正しく再開するには、どこまで実行したかを示すプログラムカウンタと、フラグやレジスタの状態を含むプログラム状態語を先に退避しなければならない。退避してから要因を判定し、対応する処理ルーチンへ分岐する。プログラムの終了や主記憶の書出しは割込みの一般的な処理ではなく、装置の切離しも通常は行わない。

根拠:IPA「応用情報技術者試験(レベル3)」シラバス Ver.7.2 大分類2:コンピュータシステム

問23|多重割込み

多重割込みを許す設計において、一般に最も高い優先度が与えられる割込みはどれか。

  1. 入出力の完了を知らせる割込み
  2. 機械チェック割込みや電源異常による割込み
  3. スーパバイザ呼出しによる割込み
  4. インターバルタイマによる割込み
正解と解説
正解:B. 機械チェック割込みや電源異常による割込み

ハードウェアの重大な異常や電源異常は、放置すると処理の続行も復旧も不可能になるため最優先で処理する。入出力完了やタイマは業務の進行に関わるがそれより低く、スーパバイザ呼出しは実行中のプログラム自身が意図して発生させるものなのでさらに低い。優先度の低い割込みは、高い処理の実行中はマスクされて待たされる。

根拠:IPA「応用情報技術者試験(レベル3)」シラバス Ver.7.2 大分類2:コンピュータシステム

問24|DMA

DMA 方式による入出力の説明として適切なものはどれか。

  1. CPUが入出力装置の状態レジスタを繰り返し読み、完了を確認してから次の処理に移る
  2. 専用のコントローラが主記憶と入出力装置の間で直接データを転送し、完了時にCPUへ割込みで知らせる
  3. 入出力専用のプロセッサが主記憶上の入出力プログラムを解釈して装置を制御する
  4. CPUが1バイトずつ主記憶と装置の間でデータを移し替える
正解と解説
正解:B. 専用のコントローラが主記憶と入出力装置の間で直接データを転送し、完了時にCPUへ割込みで知らせる

DMA では、CPU は転送の開始を指示するだけで、実際のデータの移動は DMA コントローラが行う。転送中 CPU は別の処理を進められ、完了は割込みで知る。状態レジスタを繰り返し読むのはポーリング、入出力プログラムを解釈するのはチャネル制御方式、CPU が1バイトずつ移すのはプログラム制御方式である。

根拠:IPA「応用情報技術者試験(レベル3)」シラバス Ver.7.2 大分類2:コンピュータシステム

問25|方式の判断

1秒間に数十万回の受信が発生する高速なネットワークインタフェースで、受信完了ごとの割込みをやめてポーリングに切り替えることがある。その主な理由はどれか。

  1. ポーリングのほうが1回あたりの受信の遅延を必ず小さくできるから
  2. ポーリングは割込みと違い、CPUを使わずに完了を検出できるから
  3. 割込みが多すぎると、文脈の切替え処理そのものがCPU時間を食いつぶしてしまうから
  4. 割込みは1つの装置からしか受け付けられず、複数の接続を扱えないから
正解と解説
正解:C. 割込みが多すぎると、文脈の切替え処理そのものがCPU時間を食いつぶしてしまうから

割込みは1回ごとに状態の退避と復元という文脈の切替えを伴う。頻度が極端に高いと、この処理だけでCPUが埋まってしまうため、まとめて取りに行くポーリングのほうが総処理量で有利になる。ポーリングは待っている間もCPUを使うので、CPUを使わないという説明は誤り。遅延も必ず小さくなるわけではなく、割込みは複数の装置から受け付けられる。

根拠:IPA「応用情報技術者試験(レベル3)」シラバス Ver.7.2 大分類2:コンピュータシステム

問26|サイクルスチール

DMA 転送におけるサイクルスチールの説明として適切なものはどれか。

  1. 転送が完了するまでバスを占有し、CPUを待たせて一気に転送する
  2. 転送するデータをいったんキャッシュに置き、あとで主記憶へ書き戻す
  3. CPUが主記憶を使っていない機会にバスを1サイクルずつ借りて少しずつ転送する
  4. CPUのクロックを一時的に下げて、転送に必要な時間の余裕を作る
正解と解説
正解:C. CPUが主記憶を使っていない機会にバスを1サイクルずつ借りて少しずつ転送する

サイクルスチールは、CPU の処理を止めずにわずかに遅らせるだけで転送を進める方式で、応答性を保ちたい場面に向く。バスを占有して一気に運ぶのはバースト転送で、転送効率は最も高いが CPU が待たされる。キャッシュへの書込みと書戻しはライトバック、クロックの変更は電力制御の話であり、いずれも DMA の転送方式ではない。

根拠:IPA「応用情報技術者試験(レベル3)」シラバス Ver.7.2 大分類2:コンピュータシステム

問27|入出力方式

入出力方式のうち、CPUの負担が最も大きいものはどれか。

  1. 割込み駆動方式(インタラプト)
  2. プログラム制御方式(ポーリング)
  3. DMA 方式(直接メモリアクセス)
  4. チャネル制御方式(入出力専用プロセッサ)
正解と解説
正解:B. プログラム制御方式(ポーリング)

プログラム制御方式は、CPU が装置の状態を繰り返し読んで完了を待つので、待ち時間のあいだずっと CPU を消費する。割込み駆動方式は完了時だけ CPU が動き、DMA 方式は転送そのものをコントローラに任せ、チャネル制御方式は入出力専用プロセッサが装置の制御まで引き受けるので、この順に CPU の負担は軽くなる。

根拠:IPA「応用情報技術者試験(レベル3)」シラバス Ver.7.2 大分類2:コンピュータシステム

問28|DMA転送時間

1回のバス獲得で 16 バイトを転送でき、1回あたり 50ns を要する DMA コントローラがある。4 × 10⁶ バイトのデータを転送するのに要する時間はいくらか。

  1. 3.125ms
  2. 50ms
  3. 12.5ms
  4. 200ms
正解と解説
正解:C. 12.5ms

転送回数は 4000000 ÷ 16 = 250000 回。所要時間は 250000 × 50ns = 12500000ns = 12.5ms である。200ms は1回に1バイトしか運べないとした場合の値、50ms は1回あたり4バイトとした場合の値、3.125ms は1回あたり64バイトとした場合の値であり、いずれも1回の転送量を取り違えている。

根拠:IPA「応用情報技術者試験(レベル3)」シラバス Ver.7.2 大分類2:コンピュータシステム

問29|インタフェース

USB の特徴として適切なものはどれか。

  1. 機器ごとに異なる割込み番号を手動で設定する必要がある
  2. 1本のケーブルで複数ビットを同時に送るパラレル伝送を行う
  3. 接続した機器へ電力を供給できないため、すべて外部電源を要する
  4. 電源を入れたまま機器を抜き差しでき、ハブを介してツリー状に多数の機器を接続できる
正解と解説
正解:D. 電源を入れたまま機器を抜き差しでき、ハブを介してツリー状に多数の機器を接続できる

USB はホットプラグとプラグアンドプレイに対応し、ハブによってツリー状に接続を広げられる。バスから電力を供給できるので、消費電力の小さい機器なら外部電源が不要である。割込み番号の手動設定は古い拡張バスの話であり、USB は複数ビットを同時に送るパラレルではなくシリアル伝送を用いる。

根拠:IPA「応用情報技術者試験(レベル3)」シラバス Ver.7.2 大分類2:コンピュータシステム

問30|バスの調停

複数の装置が同じバスを使おうとするときに必要になる制御はどれか。

  1. どの装置にバスの使用権を与えるかを決めるバスアービトレーション
  2. 装置ごとに異なる転送速度へ変換するプロトコル変換
  3. 転送中のデータに誤りがないか調べる巡回冗長検査
  4. 使用していない装置の電源を落とす電力管理
正解と解説
正解:A. どの装置にバスの使用権を与えるかを決めるバスアービトレーション

バスは同時に1つの装置しか使えない共有資源なので、複数の要求があるときに使用権を割り当てる調停(アービトレーション)が必要になる。集中制御と分散制御があり、優先度や順番によって決める。プロトコル変換や誤り検査、電力管理はいずれもバスの上で行われうる別の機能であり、使用権の競合そのものを解決するものではない。

根拠:IPA「応用情報技術者試験(レベル3)」シラバス Ver.7.2 大分類2:コンピュータシステム

問31|二重化の型

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

  1. デュアルシステムは一方が待機するが、デュプレックスシステムは2系統で同じ処理を行い結果を照合する
  2. デュアルシステムは処理を分担して性能を上げるが、デュプレックスシステムは同じ処理を並行させる
  3. どちらも同じ構成であり、切替えに要する時間だけが異なる
  4. デュアルシステムは2系統で同じ処理を行い結果を照合するが、デュプレックスシステムは一方が本番処理を行い他方は待機する
正解と解説
正解:D. デュアルシステムは2系統で同じ処理を行い結果を照合するが、デュプレックスシステムは一方が本番処理を行い他方は待機する

デュアルシステムは2系統で同じ処理を実行して結果を突き合わせるため、故障だけでなく処理の誤りも検出できる。デュプレックスシステムは主系と従系に分かれ、従系の待機の仕方でホット・ウォーム・コールドに分類される。処理を分担して性能を上げるのは負荷分散であり、いずれの構成の定義でもない。

根拠:IPA「応用情報技術者試験(レベル3)」シラバス Ver.7.2 大分類2:コンピュータシステム

問32|スタンバイ

コールドスタンバイの説明として適切なものはどれか。

  1. 待機系は電源を切った状態にしておき、障害発生後に起動して業務を引き継ぐ
  2. 待機系も電源を入れて同じ処理を実行し、いつでも即座に切り替えられるようにしておく
  3. 待機系は電源を入れておくが業務用アプリケーションは起動しておらず、切替えに数分を要する
  4. 待機系を用意せず、障害時は復旧まで業務を停止する
正解と解説
正解:A. 待機系は電源を切った状態にしておき、障害発生後に起動して業務を引き継ぐ

コールドスタンバイは待機系を停止させておく方式で、設備の維持費が最も安いかわりに切替えに時間がかかる。電源を入れて同じ状態を保つのがホットスタンバイ、電源は入っているが業務の起動が要るのがウォームスタンバイである。待機系を用意しない構成はスタンバイとは呼ばない。切替時間とコストのどちらを優先するかで選ぶ。

根拠:IPA「応用情報技術者試験(レベル3)」シラバス Ver.7.2 大分類2:コンピュータシステム

問33|クラスタ

HAクラスタ(高可用性クラスタ)の主な目的はどれか。

  1. 要求を複数ノードへ振り分けて、単位時間あたりの処理量を増やすこと
  2. 複数のノードで同じ計算を行い、結果を照合して誤りを検出すること
  3. 使用していないノードの電源を落として、消費電力を削減すること
  4. あるノードが停止しても別のノードが処理を引き継ぎ、システムの停止時間を短くすること
正解と解説
正解:D. あるノードが停止しても別のノードが処理を引き継ぎ、システムの停止時間を短くすること

HAクラスタは可用性を目的とし、ノードの死活を監視して障害時にフェールオーバする。処理量を増やすのは負荷分散クラスタの目的で、同じ構成の上に両方の性質を持たせることもあるが目的は別である。結果の照合はデュアルシステムの考え方、消費電力の削減は運用上の副次的な話題であり、クラスタの主目的ではない。

根拠:IPA「応用情報技術者試験(レベル3)」シラバス Ver.7.2 大分類2:コンピュータシステム

問34|振分け方式

性能の等しい複数のWebサーバをロードバランサで負荷分散する。要求ごとの処理時間のばらつきが大きい場合に、サーバ間の負荷が最も偏りにくい振分け方式はどれか。

  1. 要求を到着順に各サーバへ均等に配るラウンドロビン方式
  2. 送信元IPアドレスのハッシュ値で送り先サーバを固定する方式
  3. サーバの性能比に応じた重みをつけたラウンドロビン方式
  4. 処理中の接続数が最も少ないサーバへ振り分ける方式
正解と解説
正解:D. 処理中の接続数が最も少ないサーバへ振り分ける方式

ラウンドロビンは要求の件数だけを均等にするので、処理の重い要求が同じサーバに続けば偏る。処理中の接続数を見て配れば、重い要求を抱えたサーバには新しい要求が回らないので偏りが小さくなる。送信元アドレスで固定する方式は同じ利用者を同じサーバへ送るためのもので偏りやすく、重み付きラウンドロビンは性能差を補う方式なので、性能が等しい本問では効果がない。

根拠:IPA「応用情報技術者試験(レベル3)」シラバス Ver.7.2 大分類2:コンピュータシステム

問35|スケール判断

更新処理が1つのデータベースに集中しており、テーブルを分割することが業務上難しい。処理量の増加に対応する方法として現実的なものはどれか。

  1. サーバの CPU とメモリを増強してスケールアップする
  2. 同一構成のデータベースサーバを並べてスケールアウトする
  3. アプリケーションサーバの台数だけを増やす
  4. ロードバランサを追加して更新要求を分散する
正解と解説
正解:A. サーバの CPU とメモリを増強してスケールアップする

スケールアウトは処理やデータを分割できることが前提であり、更新が1か所に集中して分割できない場合は台数を増やしても書込みの競合が増えるだけである。この条件ではまずスケールアップで1台の限界を引き上げるのが現実的。アプリケーションサーバを増やしてもボトルネックはデータベースのままで、ロードバランサは更新の競合そのものを解消しない。

根拠:IPA「応用情報技術者試験(レベル3)」シラバス Ver.7.2 大分類2:コンピュータシステム

問36|仮想化方式

ハイパーバイザ型(ベアメタル型)の仮想化の説明として適切なものはどれか。

  1. ホストOSの上で動くアプリケーションとして仮想化ソフトを動かし、その上にゲストOSを載せる
  2. OSのカーネルを共有したまま、実行環境だけを分離して複数のアプリケーションを動かす
  3. ハードウェア上で直接動作する仮想化基盤の上に、複数のゲストOSを動かす
  4. 1台の物理サーバを複数の利用者で時分割して使う
正解と解説
正解:C. ハードウェア上で直接動作する仮想化基盤の上に、複数のゲストOSを動かす

ハイパーバイザ型はホストOSを経由しないため、性能の損失が小さくゲスト間の分離も強い。ホストOSの上のアプリケーションとして動くのはホスト型で、導入は容易だが層が1つ多いぶん遅い。カーネルを共有して実行環境だけ分離するのはコンテナである。時分割による共用はOSのマルチタスクの説明であり、仮想化の分類ではない。

根拠:IPA「応用情報技術者試験(レベル3)」シラバス Ver.7.2 大分類2:コンピュータシステム

問37|コンテナ

コンテナが仮想マシンに比べて起動が速く、同じ物理サーバに多数を集約できる主な理由はどれか。

  1. ゲストOSを圧縮して主記憶に常駐させているから
  2. ハードウェアの命令を直接実行せず、すべて解釈実行しているから
  3. コンテナごとに専用のCPUコアを割り当てているから
  4. ゲストOSを起動せず、ホストのカーネルを共有して実行環境だけを分離しているから
正解と解説
正解:D. ゲストOSを起動せず、ホストのカーネルを共有して実行環境だけを分離しているから

コンテナはOSそのものを複製せず、名前空間と資源制限でプロセスの見える範囲を区切る。OSの起動処理が不要なので数秒未満で立ち上がり、イメージも小さい。かわりにカーネルを共有するので分離は仮想マシンより弱く、ホストと異なる種類のOSは動かせない。解釈実行や専用コアの割当てはコンテナの仕組みではない。

根拠:IPA「応用情報技術者試験(レベル3)」シラバス Ver.7.2 大分類2:コンピュータシステム

問38|マイグレーション

ライブマイグレーションの説明として適切なものはどれか。

  1. 停止中の仮想マシンのイメージを複製して、別の環境で起動する
  2. 稼働中の仮想マシンを停止させずに、別の物理サーバへ移動させる
  3. 物理サーバ上の既存システムを仮想マシンへ変換して移行する
  4. 仮想マシンの構成情報だけを別のサーバへ複製し、必要時に起動する
正解と解説
正解:B. 稼働中の仮想マシンを停止させずに、別の物理サーバへ移動させる

ライブマイグレーションは、メモリの内容を転送しながら更新差分を追いかけ、最後にごく短時間だけ切り替えることで、サービスを止めずに移動を完了する。物理サーバの保守や負荷の平準化に使われる。停止した状態での複製はコールドマイグレーション、物理から仮想への変換は P2V と呼ばれる別の作業である。

根拠:IPA「応用情報技術者試験(レベル3)」シラバス Ver.7.2 大分類2:コンピュータシステム

問39|結合方式

疎結合マルチプロセッサシステムの特徴として適切なものはどれか。

  1. すべてのプロセッサが1つの主記憶を共有し、1つのOSが全体を制御する
  2. 各プロセッサがそれぞれ独自の主記憶とOSを持ち、通信路を介して連携する
  3. 1つのプロセッサが計算を行い、残りは待機して障害に備える
  4. 1つの命令で複数のデータに同じ演算を適用する
正解と解説
正解:B. 各プロセッサがそれぞれ独自の主記憶とOSを持ち、通信路を介して連携する

疎結合は主記憶を共有せず、各ノードが独立したOSを持ってネットワークで結ばれる構成で、台数を増やしやすくノードの故障が全体に及びにくい。主記憶を共有し1つのOSが制御するのが密結合で、ノード間の通信は速いが台数を増やすとメモリの競合が問題になる。待機による備えはスタンバイ、1命令で複数データを扱うのは SIMD である。

根拠:IPA「応用情報技術者試験(レベル3)」シラバス Ver.7.2 大分類2:コンピュータシステム

問40|3層構成

Webシステムを3層クライアントサーバ構成にする利点として適切なものはどれか。

  1. 画面表示・業務処理・データ管理を分離できるので、層ごとに独立して増強や改修ができる
  2. すべての処理をクライアントで行うので、サーバの負荷がなくなる
  3. 層が増えることで、通信の回数と応答時間が必ず減る
  4. データベースを各クライアントに複製するので、通信が不要になる
正解と解説
正解:A. 画面表示・業務処理・データ管理を分離できるので、層ごとに独立して増強や改修ができる

3層構成はプレゼンテーション層、ファンクション層(アプリケーション層)、データ層に分ける方式で、負荷の高い層だけを増強でき、改修の影響範囲も限定できる。処理をサーバ側に集めることでクライアントの管理も軽くなる。層が増えれば通信は一般に増え、データベースを各クライアントに複製するのは整合性の面で現実的でない。

根拠:IPA「応用情報技術者試験(レベル3)」シラバス Ver.7.2 大分類2:コンピュータシステム

問41|直列の稼働率

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

  1. 0.85
  2. 0.90
  3. 0.72
  4. 0.98
正解と解説
正解:C. 0.72

直列はどちらか一方でも止まると全体が止まる関係なので、稼働率は積になり 0.9 × 0.8 = 0.72 である。0.98 は並列とみなして 1 − 0.1 × 0.2 と計算した値、0.85 は2つの稼働率を単純平均した値、0.90 は高いほうの稼働率をそのまま答えた値であり、いずれも直列の計算ではない。直列は必ず最も低い稼働率より下がる。

根拠:IPA「応用情報技術者試験(レベル3)」シラバス Ver.7.2 大分類2:コンピュータシステム

問42|並列の稼働率

稼働率 0.9 の装置2台を並列に接続し、どちらか一方が動作していれば全体が動作するシステムの稼働率はいくらか。

  1. 0.99
  2. 0.81
  3. 0.90
  4. 0.95
正解と解説
正解:A. 0.99

並列は両方が同時に止まったときだけ全体が止まるので、稼働率は 1 − (1 − 0.9) × (1 − 0.9) = 1 − 0.01 = 0.99 である。0.81 は直列とみなして 0.9 × 0.9 と計算した値、0.95 は2台ぶんを単純平均した値、0.90 は1台のときの値である。並列は必ず1台のときより高くなる。

根拠:IPA「応用情報技術者試験(レベル3)」シラバス Ver.7.2 大分類2:コンピュータシステム

問43|複合構成

装置X(稼働率 0.9)2台を並列に接続し、その後段に装置Y(稼働率 0.8)1台を直列で接続した。システム全体の稼働率はいくらか。

  1. 0.720
  2. 0.792
  3. 0.810
  4. 0.990
正解と解説
正解:B. 0.792

まず並列部分をまとめると 1 − 0.1 × 0.1 = 0.99。これに直列の 0.8 を掛けて 0.99 × 0.8 = 0.792 である。0.720 は並列を無視して 0.9 × 0.8 とした誤り、0.990 は後段の装置を数え落とした値、0.810 は 0.9 × 0.9 として並列を直列と取り違えた値である。内側の並列をひとつの稼働率にまとめてから直列の積を取る、という順序を守る。

根拠:IPA「応用情報技術者試験(レベル3)」シラバス Ver.7.2 大分類2:コンピュータシステム

問44|MTBFと直列

装置Aは平均して 240 時間動作したあと 10 時間の修理を要し、装置Bは平均して 90 時間動作したあと 10 時間の修理を要する。この2台を直列に接続したシステムの稼働率はいくらか。

  1. 0.900
  2. 0.960
  3. 0.864
  4. 0.996
正解と解説
正解:C. 0.864

1台の稼働率は MTBF ÷ (MTBF + MTTR) なので、Aは 240 ÷ 250 = 0.96、Bは 90 ÷ 100 = 0.90。直列なので 0.96 × 0.90 = 0.864 である。0.960 と 0.900 はそれぞれA単体・B単体の稼働率、0.996 は並列とみなして 1 − 0.04 × 0.10 と計算した値であり、直列の答えではない。

根拠:IPA「応用情報技術者試験(レベル3)」シラバス Ver.7.2 大分類2:コンピュータシステム

問45|年間停止時間

稼働率 99.9 パーセントのシステムについて、1年を 8760 時間としたときの年間の停止時間はおよそどれくらいか。

  1. 約53分
  2. 約88時間
  3. 約365時間
  4. 約8.8時間
正解と解説
正解:D. 約8.8時間

停止している割合は 0.1 パーセントなので 8760 × 0.001 = 8.76 時間、およそ8.8時間である。約53分は稼働率 99.99 パーセントのときの値(8760 × 0.0001 × 60 分)、約88時間は稼働率 99 パーセントのときの値、約365時間はいずれの計算にも一致しない。稼働率を1桁上げるごとに停止時間が10分の1になる関係を押さえておく。

根拠:IPA「応用情報技術者試験(レベル3)」シラバス Ver.7.2 大分類2:コンピュータシステム

問46|フェールソフト

フェールソフトの考え方に基づく設計はどれか。

  1. 一部のサーバが故障しても、機能を絞った縮退運転でサービスを継続する
  2. 異常を検出したら装置を安全に停止させ、危険が生じないようにする
  3. 利用者が誤った操作をしても異常な状態にならないよう入力を検査する
  4. 部品の品質を高め、そもそも故障が起きないようにする
正解と解説
正解:A. 一部のサーバが故障しても、機能を絞った縮退運転でサービスを継続する

フェールソフトは、故障しても止めずに性能や機能を落として運転を続ける設計で、縮退運転(フォールバック)がその典型である。安全な側へ倒して止めるのはフェールセーフ、誤操作への備えはフールプルーフ、故障そのものを防ぐのはフォールトアボイダンスである。対象が故障か誤操作か、結果が継続か停止かで切り分ける。

根拠:IPA「応用情報技術者試験(レベル3)」シラバス Ver.7.2 大分類2:コンピュータシステム

問47|RAIDの容量

容量 4TB のディスク7台で RAID5 を構成したときの実効容量はいくらか。

  1. 14TB
  2. 20TB
  3. 28TB
  4. 24TB
正解と解説
正解:D. 24TB

RAID5 はパリティ1台ぶんを使うので、実効容量は (7 − 1) × 4 = 24TB である。28TB は冗長性のない RAID0 の容量、20TB はパリティを2組もつ RAID6 の容量 (7 − 2) × 4、14TB はミラーリングで半分になる場合の容量である。容量効率と耐えられる故障台数のどちらを取るかで方式を選ぶ。

根拠:IPA「応用情報技術者試験(レベル3)」シラバス Ver.7.2 大分類2:コンピュータシステム

問48|RAIDの選択

小さなデータの更新が非常に多いデータベース用のストレージを構成する。容量よりも書込み性能と冗長性を優先したい場合に適した方式はどれか。

  1. RAID0(ストライピングのみで冗長性をもたない)
  2. RAID5(1台分のパリティを分散して配置)
  3. RAID10(RAID1とRAID0の組合せ)
  4. RAID6(2台分のパリティを分散して配置する)
正解と解説
正解:C. RAID10(RAID1とRAID0の組合せ)

RAID5 や RAID6 は小さな書込みのたびに旧データと旧パリティを読み直して書き戻す必要があり、書込みペナルティが大きい。RAID10 はミラーリングとストライピングの組合せでパリティ計算が不要なので、書込みが多い用途で速く、冗長性も確保できる。かわりに実効容量は半分になる。RAID0 は速いが冗長性がなく、条件を満たさない。

根拠:IPA「応用情報技術者試験(レベル3)」シラバス Ver.7.2 大分類2:コンピュータシステム

問49|性能指標

オンラインのトランザクション処理システムで、利用者の体感を最も直接に表す性能指標はどれか。

  1. スループット
  2. レスポンスタイム
  3. ターンアラウンドタイム
  4. MTBF
正解と解説
正解:B. レスポンスタイム

レスポンスタイムは要求を出してから最初の応答が返るまでの時間で、対話的な処理での待たされ感をそのまま表す。スループットは単位時間あたりの処理件数でシステム全体の処理量を示し、ターンアラウンドタイムは投入から結果がすべて出るまでの時間でバッチ処理の評価に使う。MTBF は信頼性の指標であり性能の指標ではない。

根拠:IPA「応用情報技術者試験(レベル3)」シラバス Ver.7.2 大分類2:コンピュータシステム

問50|スループット

同時に100人の利用者が操作するオンラインシステムがある。1回の操作に対する応答時間が2秒、応答を見てから次の操作を行うまでの思考時間が8秒であるとき、システム全体のスループットはおよそいくらか。

  1. 毎秒12.5件
  2. 毎秒10件
  3. 毎秒50件
  4. 毎秒100件
正解と解説
正解:B. 毎秒10件

1人が1回の操作を終えて次の操作に移るまでの周期は 2 + 8 = 10 秒。100人が同時に操作しているので、1秒あたりの処理件数は 100 ÷ 10 = 10件である。毎秒50件は思考時間を無視して 100 ÷ 2 とした値、毎秒12.5件は応答時間を無視して 100 ÷ 8 とした値、毎秒100件は周期を1秒と誤った値である。

根拠:IPA「応用情報技術者試験(レベル3)」シラバス Ver.7.2 大分類2:コンピュータシステム

演習:この章の問題を解く

ランダム出題の演習ツールです(JavaScript が有効な場合に動きます)。上の「確認問題」はそのままでもすべて読めます。

※ 解説は学習用の情報提供です。最新の出題範囲・制度は必ずIPAの公式発表をご確認ください。
※ 出題はIPA公開のシラバスに沿った仮の宿 学習室のオリジナル問題です。計算問題はすべて機械検算ずみ。試験制度・実施要項はIPAの公式発表をご確認ください(2027年度春ごろに新試験制度へ移行予定)。