応用情報技術者 2022年 春期 午前2 問18
問題文
フラグメンテーションに関する記述のうち、適切なものはどれか。
選択肢
ア:可変長ブロックのメモリプール管理方式では、様々な大きさのメモリ領域の獲得や返却を行ってもフラグメンテーションは発生しない。
イ:固定長ブロックのメモリプール管理方式では、可変長ブロックのメモリプール管理方式よりもメモリ領域の獲得と返却を速く行えるが、フラグメンテーションが発生しやすい。
ウ:フラグメンテーションの発生によって、合計としては十分な空きメモリ領域があるにもかかわらず、必要とするメモリ領域を獲得できなくなることがある。(正解)
エ:メモリ領域の獲得と返却の頻度が高いシステムでは、フラグメンテーションの発生を防止するため、メモリ領域が返却されるたびにガーベジコレクションを行う必要がある。
フラグメンテーションに関する問題【午前2 解説】
要点まとめ
- 結論:フラグメンテーションは空きメモリが分散し、必要な連続領域が確保できなくなる現象である。
- 根拠:メモリ管理方式によって発生のしやすさや対処法が異なり、特に可変長ブロック管理で顕著に現れる。
- 差がつくポイント:フラグメンテーションの種類(内部・外部)や固定長・可変長ブロックの特徴を正確に理解することが重要。
正解の理由
選択肢ウは「フラグメンテーションの発生により、合計空きメモリは十分でも連続した領域が確保できず、必要なメモリを獲得できない場合がある」と述べています。これは外部フラグメンテーションの典型的な説明であり、メモリ管理の基本原理に合致するため正解です。
よくある誤解
- 可変長ブロック管理ではフラグメンテーションが発生しないと誤解されがちですが、実際は外部フラグメンテーションが起こりやすいです。
- 固定長ブロック管理はフラグメンテーションが起こりにくいが、内部フラグメンテーションは発生します。
解法ステップ
- フラグメンテーションの定義を確認する(内部・外部の違い)。
- 各選択肢のメモリ管理方式(固定長・可変長)とフラグメンテーションの関係を整理する。
- フラグメンテーションが発生する条件を考慮し、選択肢の記述と照合する。
- 正しい説明をしている選択肢を特定する。
選択肢別の誤答解説
- ア:可変長ブロック管理では様々な大きさのメモリ領域の獲得・返却を行うため、外部フラグメンテーションが発生しやすい。よって誤り。
- イ:固定長ブロック管理はメモリ獲得・返却が速いが、内部フラグメンテーションが発生しやすく、外部フラグメンテーションは少ない。記述が混同しているため誤り。
- ウ:フラグメンテーションによって連続した空き領域が不足し、必要なメモリを確保できなくなることがあるため正しい。
- エ:ガーベジコレクションは主にヒープ管理やオブジェクト管理で使われ、メモリプールのフラグメンテーション防止に毎回行う必要はない。誤り。
補足コラム
フラグメンテーションは「内部」と「外部」に分類されます。内部フラグメンテーションは固定長ブロックで割り当てられた領域が要求サイズより大きい場合に生じる無駄な空き領域です。一方、外部フラグメンテーションは可変長ブロック管理で、空き領域が細かく分散し連続領域が不足する現象です。メモリ管理の効率化にはこれらの理解が不可欠です。
FAQ
Q: フラグメンテーションはどのように対処すればよいですか?
A: 外部フラグメンテーションにはメモリのコンパクション(再配置)が有効で、内部フラグメンテーションは固定長ブロックのサイズ調整で軽減可能です。
A: 外部フラグメンテーションにはメモリのコンパクション(再配置)が有効で、内部フラグメンテーションは固定長ブロックのサイズ調整で軽減可能です。
Q: 固定長ブロック管理はなぜ高速なのですか?
A: 固定長のため割り当てや解放時に複雑なサイズ計算や領域の結合が不要で、単純なリスト管理で済むため高速です。
A: 固定長のため割り当てや解放時に複雑なサイズ計算や領域の結合が不要で、単純なリスト管理で済むため高速です。
関連キーワード: フラグメンテーション、メモリ管理、固定長ブロック、可変長ブロック、内部フラグメンテーション、外部フラグメンテーション、メモリプール、コンパクション

\ せっかくなら /
応用情報技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

