0

m_fork()を使用して多数のプロセスを作成するアプリケーションを IRIX で実行しています。ソースコード。

3 つのフォークでアプリケーションを実行すると、すべてが期待どおりに機能します。4 つのフォークを要求すると、「ENOMEM」エラーでフォークに失敗します。

bash-2.05$ ./hello 3
 Process spawn limit is  8
 Hello world from process 1
 Hello world from process 2
 Hello world from process 0
 2nd line: Hello world from process 1
 2nd line: Hello world from process 2
 2nd line: Hello world from process 0
bash-2.05$ ./hello 4
 Process spawn limit is  8
m_fork() did not work

malloc(900000000);の直前にスローするm_fork()と、すべてが期待どおりに機能するため、これはメモリ割り当ての問題であることはわかっています。

これで問題は解決しますが、これは任意の大きな数であるため、適切な解決策ではありません。フォークに十分なメモリを動的に割り当てるにはどうすればよいですか?

e: ここで答えを得ようとしている中心的な質問は、「フォークに十分なメモリを割り当てるにはどうすればよいですか?」ということです。

4

0 に答える 0