-1

プロセスがいつ開始され、そのスタック要件がどのように決定されるのか、またはすべてのプロセスがデフォルトのスタックサイズで開始され、要件に応じて動的に成長するのか疑問に思っています。
私のシステムでは、スタック サイズのソフト リミットは で10M、ハード リミットはunlimitedです。それは、スタックが利用可能な最大 RAM まで拡張できることを意味しますか?
プロセスに多数のスレッドがある場合、すべてのスタック サイズが異なります (スタック属性を設定していないと仮定します)。

4

1 に答える 1

1

各プロセスは、最小サイズのユーザー空間スタックで開始され、必要に応じて自動的に拡張されます。

ソフト制限に違反した場合、プロセスは終了します。プロセスは、独自のソフト リミットを引き上げることができますが、ハード リミットを超えることはできません。

ソフト リミットが無制限であっても、使用可能な最大スタック サイズは、プロセスのアドレス空間内の他のマッピングによって制限されます。これは、プロセスが連続している必要があるためです。

于 2012-11-17T04:15:35.183 に答える