仮想メモリのスタックとヒープ領域を実行不可にすることで、メモリ内での悪意のあるコード (シェルコードなど) の実行を防ぐことができることがわかっています (この手法はデータ実行防止と呼ばれます)。また、悪意のあるコードをメモリ内に挿入する最も簡単な方法は、バッファをオーバーフローさせることです。したがって、メモリのこれらの領域を実行不可にすることで、オーバーフロー攻撃の深刻度を軽減することができます。
ただし、このような攻撃を防ぐために使用される、アドレス空間のランダム化、ポインター保護、カナリアの使用など、他にも多くの手法があります。システムのほとんどは、スタック/ヒープ メモリを実行不可にする代わりに、これらの他の方法を使用していると思います (ここで間違っている場合は修正してください)。
さて、私の質問は、メモリのスタック/ヒープ部分が実行可能である必要がある特定の操作または特別なケースはありますか?