アセンブラ… ( ゚д゚)ウッウー
at TECH
111:デフォルトの名無しさん
07/04/22 15:39:47
>>108
Windowsの話な。
アレは仮想メモリを使ってるから、プロセス毎(大雑把にいえばEXE毎)に
2GBのメモリ領域を割り当てられるわけだ。32bit Windowsのユーザー領域ね。
実際にメモリを2GB積んでるかどうかは関係ないぞ。
とにかく、EXE毎に2GBのメモリを積んでると思いねえ。
で、スタックというのは(再帰呼び出しでもしない限り)何MBも食うことはあまりない。
一方、ヒープは画像や映像などメモリバカ食いすることがあるので、2GBのうち
相当部分をヒープで管理しなくてはならない。
原始的なOSはスタックを制御してないので、
スタックを超えてもぐんぐんヒープ領域を侵していく。
その結果、理由の分からないバグに遭遇してしまう。
Windowsは、スタックを使い切ったらエラーを出す仕組みになってるので
EXEにその領域を書き込んでる。
で、なぜヒープじゃなくてスタックの方を制御するのかというと、
スタックは一回の取得−開放が直前のスタックと連続してるので管理しやすい。
ヒープは、気まぐれに領域をとり、気まぐれに開放されるので穴ぼこだらけになる。
と、スタックの方が管理しやすいからだと思いますよ。
次ページ続きを表示1を表示最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
5121日前に更新/204 KB
担当:undef