応用情報技術者試験 令和5年春 午前問5 解説付き過去問
問題
要求に応じて可変量のメモリを割り当てるメモリ管理方式がある。
要求量以上の大きさをもつ空き領域のうちで最小のものを割り当てる最適適合(best-fit)アルゴリズムを用いる場合、空き領域を管理するためのデータ構造として、メモリ割当て時の平均処理時間が最も短いものはどれか。
正解
解説
この問題は、可変長メモリ管理方式において「最適適合(best-fit)アルゴリズム」を使用する際に、効率良く空き領域を管理するための適切なデータ構造を選ぶ問題です。以下の手順で解説します。
- 最適適合(best-fit)アルゴリズムの特徴
best-fit アルゴリズムは、要求されたメモリサイズ以上の空き領域の中から、最もサイズが小さい空き領域を選択して割り当てる方式です。
無駄を最小限に抑えることを目的としており、断片化(フラグメンテーション)を軽減する効果があります。
- best-fit に必要な空き領域の探索方法
このアルゴリズムでは、要求サイズ以上の空き領域の中で最もサイズが小さいものを高速に見つけることが重要です。
そのため、空き領域を「サイズ順」に管理しておくと、探索が効率的になります。
- 空き領域の管理方法の比較
空き領域の管理に用いる代表的なデータ構造を比較すると次のようになります: - アドレス順の2分探索木:サイズ順に並んでいないため、best-fit 探索には向きません。
- サイズ順の片方向連結リスト:サイズ順に並んでいるが、線形探索が必要なため、大量の空き領域がある場合に処理時間が長くなります。
- サイズをキーとした2分探索木:サイズ順に高速な探索が可能で、best-fit に最適です。
- ビットマップ方式:アドレスやサイズに対する直接的な管理には不向きであり、best-fit には適しません。
- 最も効率の良いデータ構造
サイズをキーとした2分探索木を用いることで、要求されたサイズに最も近い空き領域を効率よく検索できます。
これにより、メモリ割当て時の平均処理時間を最も短縮できます。
したがって、best-fit アルゴリズムにおいて、空き領域の管理に最適なデータ構造は空き領域の大きさをキーとする2分探索木です。