C言語で作成されたプログラム全体で使用するスタックフレームのサイズが、確保したサイズ内に収まっていることを検証したい。各関数が使用するスタックフレームのサイズ情報に加え、必要となる情報はどれか。
スタック最大使用量は呼出しツリーの経路合計の最大値
選択肢
- ア各関数が使用するレジスタの退避領域のサイズ
- イ各関数が使用するローカル変数のサイズ
- ウ各関数の呼出し関係(呼出しツリー)
- エグローバル変数の合計サイズ
正解と解説
正解:ウ 各関数の呼出し関係(呼出しツリー)
スタックは関数呼出しのたびに積み上がるので、必要量は個々の関数のフレームサイズを足すだけでは決まらず、実際にどこまで深くネストして呼ばれるかで決まる。したがって呼出し関係を表したツリーが必要で、根から葉までの各経路についてフレームサイズを合計し、その最大値を求めることで最悪使用量を見積もる。割込み処理の分も加味する必要がある。
選択肢ごとの解説
- ア退避領域の大きさは各関数のフレームサイズにすでに含まれている。
- イローカル変数の大きさも同様にフレームサイズの内訳であり、追加情報にはならない。
- ウ正しい。呼出しツリーがあれば経路ごとの合計を求め、最大の深さを評価できる。
- エ大域変数は静的領域に置かれ、スタックの使用量とは無関係である。
この問題は2回出題されています
- 2016年度 春期 午前II 問24(このページ)
- 2019年度 春期 午前II 問21
同じ分野の他の問題
- プログラム言語Cで作成されたプログラム全体で使用するスタックフレームのサイズが、確保したサイズ内に収まっていることを検証…2022年度 秋期 午前II 問21
- 組込み機器を含めた、様々なハードウェアアーキテクチャに向けて、カスタムのLinuxディストリビューションを構築するための…2025年度 秋期 午前II 問8
- 優先度に基づくプリエンプティブスケジューリングのリアルタイムOSを使用した組込みシステムにおいて、入力装置及び出力装置に…2025年度 秋期 午前II 問6
- プロセスの切替えに関する記述のうち、ディスパッチャの説明として、適切なものはどれか。2024年度 秋期 午前II 問6
- スケジューリングアルゴリズムにおける、リソーススタベーションに関する記述として、適切なものはどれか。2023年度 秋期 午前II 問8
最終更新:2026-08-25/解説・選択肢ごとの解説は資格暗記が独自に作成しています。問題文と選択肢の出典は上記のとおりです。