テクノロジ系応用

あるプログラムがスタックオーバーフローを引き起こした場合、オペレーティングシステムはこのプロセスに対してどのような処理を実行するか。最も適切なものはどれか。

A.スタックサイズを自動的に拡張し、プログラムを継続実行させる
✗ 一般的には自動拡張されず、スタックサイズは起動時に決定される。
B.プロセスを強制終了し、コアダンプを生成してメモリ内容を記録する← 正解
✓ 正解です。OSはセグメンテーション違反を検出してプロセスを終了し、デバッグのためコアダンプを出力する。
C.警告を表示して、ユーザーに対応を促す
✗ 警告のみでは対応できない。システムレベルの割り込みが発生するため自動終了される。
D.スタック領域を圧縮してメモリを回復させる
✗ スタック領域は圧縮されない。メモリ構造上の特性から回復不可能である。

この問題のポイント

OSはセグメンテーション違反を検出してプロセスを終了し、デバッグのためコアダンプを出力する。

ITパスポート の問題一覧