【Darwin】unixとしてのOSXを議論スレ【mach】
■ このスレッドは過去ログ倉庫に格納されています
0136名称未設定
03/09/13 23:04ID:r7PqhVVA>例えばどの実装?
例えば、古くは 4.3BSD とか。
なぜスタックの自動拡張が行われたか、という経緯を推測を含めて書くと、
4.3BSD の頃はまだ、copy on write が実装されていなかったからかと。
スタックサイズは、事前に厳密なサイズを計算するのはむずかしい。
多く確保すれば無駄になるし、少なければプログラムが停止する。
だから、ただでさえ少ない物理メモリを無駄にしないためにも、
始めは最小限だけ用意して、必要に応じて自動的に確保するように
実装したのだと思われ。
mach は、copy on write を前提にしたメモリ管理を
するから、必要と思われる最大限のスタックサイズを確保したとしても、
実際に使われた分の物理メモリしか消費しない。
135 の言うようなリスクを考えれば、「自動拡張」など必要ないと
考えたと思われ。
今も多くの実装に自動拡張が残っているのは、古きよき伝統の残骸かと。
■ このスレッドは過去ログ倉庫に格納されています