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