ウの200Mバイトが正解となります。
令和1年度 秋期 情報処理安全確保支援士 午前I 問6
ジョブ群と実行の条件が次のとおりであるとき、一時ファイルを作成する磁気ディスクに必要な容量は最低何Mバイトか。
〔ジョブ群〕
〔実行の条件]
(1) ジョブの実行多重度を2とする。
(2) 各ジョブの処理時間は同一であり,他のジョブの影響は受けない。
(3) 各ジョブは開始時に50Mバイトの一時ファイルを新たに作成する。
(4) X → Y の関係があれば、ジョブ X の開始時に作成した一時ファイルは、直後のジョブYで参照し、ジョブYの終了時にその一時ファイルを削除する。直後のジョブが複数個ある場合には、最初に生起されるジョブだけが先行ジョブの一時ファイルを参照する。
(5) (X) -> {Y, Z} はジョブXの終了時に、ジョブY, ZのようにジョブXと矢印で結ばれる全てのジョブが、上から記述された順に優先して生起されることを示す。
(6) {X, Y} -> Z は先行するジョブX, Y両方が終了したときにジョブZが生起されることを示す。
(7) ジョブの生起とは実行待ち行列への追加を意味し、各ジョブは待ち行列の順に実行される。
(8) OSのオーバヘッドは考慮しない。
選択肢
解説
結論 → 詳細 → 補足 の 3 層構成
展開閉じる
解説
結論 → 詳細 → 補足 の 3 層構成
この問題では、ジョブの実行多重度が2であるため、同時に最大2つのジョブが実行される可能性があります。各ジョブは開始時に50Mバイトの一時ファイルを作成し、特定の条件(条件4)を満たす場合に、先行ジョブが作成した一時ファイルを参照し、そのジョブ終了時に削除されます。条件4の「直後のジョブが複数個ある場合には、最初に生起されるジョブだけが先行ジョブの一時ファイルを参照する」という点が重要です。
まず、ジョブ群の依存関係と実行順序を考慮すると、同時に最大2つのジョブが一時ファイルを作成する状況が考えられます。例えば、あるジョブが一時ファイルを作成し、それが別のジョブに参照されずに削除される前に、別のジョブが新たに一時ファイルを作成するケースです。この場合、一時ファイルは最大で2つ(50Mバイト x 2 = 100Mバイト)同時にディスク上に存在することになります。しかし、条件4の「直後のジョブが複数個ある場合には、最初に生起されるジョブだけが先行ジョブの一時ファイルを参照する」という部分を考慮すると、依存関係によっては、一つのジョブが複数のジョブに後続する場合に、最初のジョブのみが一時ファイルを参照・削除します。
ここで、最も多くのディスク容量を必要とするシナリオを考えます。実行多重度が2であり、かつ、ジョブの依存関係が複雑に絡み合うことで、一時ファイルが削除される前に新たな一時ファイルが作成される状況が重なった場合を想定します。具体的には、ジョブAが一時ファイルを作成し、ジョブBも一時ファイルを作成します。もし、ジョブAがジョブCとジョブDに後続し、ジョブCが先に生起される場合、ジョブAの一時ファイルはジョブCに参照・削除されます。しかし、ジョブBが作成した一時ファイルが、まだ削除されていない状態で、別のジョブが一時ファイルを作成する可能性があります。
一番ディスク容量を圧迫するケースは、実行多重度2を最大限に活かし、かつ、一時ファイルが削除される前に、新たな一時ファイルが作成される状況が重なる場合です。例えば、ジョブ1が50Mバイトの一時ファイルを作成し、ジョブ2が50Mバイトの一時ファイルを作成し、これらのファイルが同時にディスク上に存在します。さらに、ジョブ1の終了後、ジョブ3が開始され、ジョブ3も50Mバイトの一時ファイルを作成するとします。このとき、ジョブ1の一時ファイルがまだ削除されていない可能性があり、ジョブ2の一時ファイルも残っているとすると、一時ファイルは最大で3つ(50Mバイト x 3 = 150Mバイト)同時に存在する可能性があります。しかし、問題文の「直後のジョブが複数個ある場合には、最初に生起されるジョブだけが先行ジョブの一時ファイルを参照する」という条件を厳密に適用すると、依存関係によっては、3つ全てが同時に存在する状況は避けられる場合があります。
しかし、実行多重度2を考慮すると、同時に2つのジョブが一時ファイルを作成し、それぞれ50Mバイトずつ使用するため、最低でも100Mバイトは必要です。さらに、依存関係によっては、あるジョブが一時ファイルを作成し、それが参照・削除される前に、別のジョブが実行され、さらにそのジョブも一時ファイルを作成する、といった状況が重なる可能性があります。特に、ジョブの生起順序が実行多重度と絡み合うことで、一時ファイルが重なってしまうケースを考慮すると、最大で2つのジョブが同時に一時ファイルを作成し、さらに、それらが削除される前に、別のジョブが一時ファイルを作成する、という状況は考えにくいですが、実行多重度2で同時に2つのジョブが一時ファイルを作成し、それぞれ50Mバイト、合計100Mバイト。そして、依存関係によっては、あるジョブが終了し、次のジョブが開始する際に、前のジョブの一時ファイルがまだ残っている状況で、さらに新たな一時ファイルが作成されると考えられます。
ここで、最もディスク容量を必要とするケースとして、実行多重度2を最大限に利用し、かつ、一時ファイルが削除される前に新たな一時ファイルが作成される、という状況を重ねて考えます。まず、ジョブAが50Mバイトの一時ファイルを作成します。次に、ジョブBが50Mバイトの一時ファイルを作成します。これで合計100Mバイトです。もし、ジョブAが終了しても、その一時ファイルがすぐに削除されず、かつ、ジョブBもまだ実行中であり、さらに、ジョブCが開始されて50Mバイトの一時ファイルを作成した場合、合計で150Mバイトになります。しかし、選択肢には200Mバイトや250Mバイトも存在します。
ここで、依存関係の図を想像すると、{X, Y} -> Zのような条件や、(X) -> {Y, Z}のような条件があることから、並列実行されるジョブや、それに続くジョブによって、一時ファイルが一時的に重複して存在する可能性が示唆されます。実行多重度2ということは、同時に2つのジョブが実行可能です。各ジョブは50Mバイトの一時ファイルを作成します。もし、ジョブ1とジョブ2が同時に実行され、それぞれ一時ファイルを作成した場合、100Mバイトが必要です。もし、ジョブ1が終了し、その一時ファイルが削除される前に、ジョブ3が開始され、一時ファイルを作成した場合、ジョブ2とジョブ3の一時ファイルで100Mバイト必要です。
しかし、もし、ジョブ1が一時ファイルを作成し、ジョブ2が一時ファイルを作成し、そしてジョブ1とジョブ2が終了した後にジョブ3が実行される場合、ジョブ3はジョブ1とジョブ2の一時ファイルを参照する可能性があります。条件4によれば、参照するジョブ(ここではジョブ3)が終了する際に一時ファイルは削除されます。
ここで、最もディスク容量を圧迫するシナリオは、実行多重度2の状況下で、一時ファイルが削除される前に、次のジョブが一時ファイルを作成する状況が重なる場合です。例えば、ジョブAが50Mバイトの一時ファイルを作成し、ジョブBが50Mバイトの一時ファイルを作成します。この時点で100Mバイトです。もし、ジョブAが終了しても、その一時ファイルがすぐに削除されず、かつ、ジョブBもまだ実行中であり、さらに、ジョブCが開始されて50Mバイトの一時ファイルを作成した場合、一時ファイルは最大で3つ(50Mバイト x 3 = 150Mバイト)同時に存在する可能性があります。
しかし、問題文の依存関係を考慮すると、実行多重度2で同時に2つのジョブが実行されている状況で、それぞれ50Mバイトの一時ファイルを作成すると、合計100Mバイトです。もし、あるジョブが終了しても、その一時ファイルがすぐに削除されず、かつ、並列実行されている別のジョブも一時ファイルを作成しており、さらに、その次のジョブが開始されて一時ファイルを作成する場合、一時ファイルは最大で3つ、つまり150Mバイトを一時的に占有する可能性があります。
ここで、選択肢ウの200Mバイトが正解となる根拠を考えます。実行多重度2ということは、同時に2つのジョブが実行されることを意味します。各ジョブは50Mバイトの一時ファイルを作成します。もし、ジョブ1とジョブ2が同時に実行され、それぞれ50Mバイトの一時ファイルを作成すると、一時ファイルは合計100Mバイトになります。もし、ジョブ1が終了し、その一時ファイルが削除される前に、ジョブ3が開始され、ジョブ3も50Mバイトの一時ファイルを作成した場合、ジョブ2とジョブ3の一時ファイルで100Mバイト必要です。
しかし、もし、ジョブ1が一時ファイルを作成し、ジョブ2が一時ファイルを作成し、さらに、ジョブ1が終了してもその一時ファイルが削除されず、かつ、ジョブ2が終了してもその一時ファイルが削除されず、さらに、ジョブ3が開始されて50Mバイトの一時ファイルを作成した場合、一時ファイルは最大で3つ、つまり150Mバイトになる可能性があります。
もし、実行多重度2で、ジョブ1とジョブ2が並行して実行され、それぞれ50Mバイトの一時ファイルを作成すると、合計100Mバイトです。もし、ジョブ1が終了し、その一時ファイルが削除される前に、ジョブ3が開始され、ジョブ3も50Mバイトの一時ファイルを作成した場合、ジョブ2とジョブ3の一時ファイルで100Mバイト必要です。
ここで、200Mバイトになるシナリオを考えます。実行多重度2なので、同時に2つのジョブが実行可能です。各ジョブは50Mバイトの一時ファイルを作成します。もし、ジョブ1とジョブ2が同時に実行され、それぞれ50Mバイトの一時ファイルを作成すると、合計100Mバイトです。もし、ジョブ1が終了し、その一時ファイルが削除される前に、ジョブ3が開始され、ジョブ3も50Mバイトの一時ファイルを作成した場合、ジョブ2とジョブ3の一時ファイルで100Mバイト必要です。
しかし、もし、ジョブ1が50Mバイトの一時ファイルを作成し、ジョブ2が50Mバイトの一時ファイルを作成し、さらに、ジョブ1の終了後、ジョブ3が開始されて50Mバイトの一時ファイルを作成し、かつ、ジョブ2の終了後、ジョブ4が開始されて50Mバイトの一時ファイルを作成する場合、一時ファイルは最大で4つ、つまり200Mバイトが同時に存在する可能性が考えられます。これは、実行多重度2で、2つのジョブが終了し、それぞれが一時ファイルを作成し、それらが削除される前に、次の2つのジョブが開始され、それぞれ一時ファイルを作成する、という状況が重なった場合です。
アの100Mバイトは、実行多重度2で2つのジョブが同時に実行されている場合の最低限必要な容量ですが、依存関係によっては一時ファイルが削除される前に新たな一時ファイルが作成されるため、これでは不足します。
イの150Mバイトは、3つのジョブが同時に一時ファイルを作成している状況を想定しているかもしれませんが、実行多重度2であるため、同時に3つのジョブが一時ファイルを作成する状況は考えにくいです。
エの250Mバイトは、5つのジョブが同時に一時ファイルを作成している状況に相当しますが、実行多重度2ではそのような状況は発生しません。
この解説は AI 生成です(詳細)
解説テキストは Google Gemini に IPA 公式の問題文・公式解答を入力して生成しました。 人間によるレビューを行ったものと、未レビューのものが混在します。
AI は事実誤認・選択肢の取り違え・最新法令の反映漏れ等を含む可能性があります。 重要な判断は必ず IPA 公式 PDF または最新の参考書でご確認ください。
解説の検証プロセス・誤り報告フローは 運営透明性レポートで公開しています。
分野「コンピュータシステム」の学習ポイント
この問題の理解を「分野全体の力」に広げるための足がかり
- 何が問われるか
- 本問の分野で問われる代表的な知識・用語の整理。
- 学習の進め方
- 正解/誤答の選択肢ごとに「なぜ正しい / なぜ違うのか」を1行ずつ言語化すると定着する。
この問題を AI と深掘りする
用語解説・選択肢分析・類題生成をその場で対話。クイズモードでは解答→解説がゼロ遷移。
共有
ショート動画
関連する問題
コンピュータシステム の他の問題
- 情報セキュリティスペシャリスト2009年度 秋期 午前I 問4パイプラインの深さをD、パイプラインピッチをP秒とすると、I個の命令をパイプラインで実行するのに要する時間を表す式はどれか。ここで、パイプラインの各ステージは 1 ピッチで処理されるものとし、パイプラインハザードについては、考慮しなくてよい。
- 情報セキュリティスペシャリスト2009年度 秋期 午前I 問5フェールセーフの考え方として、適切なものはどれか。
- 情報セキュリティスペシャリスト2009年度 秋期 午前I 問10コンピュータグラフィックスの要素技術に関する記述のうち、適切なものはどれか。
- 情報セキュリティスペシャリスト2009年度 春期 午前I 問4メモリの誤り制御方式で、2ビットの誤り検出機能と、1ビットの誤り訂正機能をもたせるのに用いられるものはどれか。
- 情報セキュリティスペシャリスト2009年度 春期 午前I 問6主記憶への1回のアクセスが200 ナノ秒で、ページフォールトが発生すると1回当たり 100 ミリ秒のオーバヘッドを伴うコンピュータがある。ページフォールトが主記憶アクセスの50万回中に1回発生する場合、ページフォールトは1秒当たり最大何回発生するか。ここで、ページフォールトのオー…