アセンブラ… ( ゚д゚)ウッウー at TECH
[2ch|▼Menu]
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