C++ では、プログラマーは、スタック割り当てメモリまたはヒープ上の動的メモリのいずれかを使用できます。スタックがどのように動作するかについてはかなり明確です (C++ の演習としてスタックを作成しました) が、「スタック」がどのように、どこで定義されているかについてはまだ興味があります。
「スタック」は言語の機能ですか、OSの機能ですか、それともハードウェアの機能ですか? オペレーティング システムの観点から見ると、各スタックは多くのアクティブなスレッド プロセスのそれぞれに関連するものであるという漠然とした考えがあります。これは、CPUやマザーボードのハードウェア機能ではなく、ソフトウェアレベルで実装されていることを示唆しています。
C++ の場合、コンパイラは各バイナリにスタックの実装を挿入した可能性があると思います。それとも、OS が独自のスタック実装を実行中の各プロセスに適用するのでしょうか? これはどのように定義されましたか?
ここで同様の質問を見つけましたが、回答が得られていないため、質問をより直接的に再度述べたいと考えています。