Количество запущенных процессов - PullRequest
0 голосов
/ 01 декабря 2010

У меня есть программа c, скажем, с числом циклов for. Сколько процессов и дочерних процессов будет запущено для этой программы и как?

Ответы [ 4 ]

4 голосов
/ 01 декабря 2010

Цикл for не запускает новый процесс. N число цикла for должно выполняться в одном процессе.

1 голос
/ 01 декабря 2010

Если вы не сделаете форк, у вас будет только один процесс.Так что покажите свой код, если вы используете fork.

0 голосов
/ 01 декабря 2010

edit: Просто циклы for не будут создавать новые процессы, а циклы for будут выполняться только в одном процессе.Если вы хотите создать новый процесс в Linux, используйте fork().

Если я хорошо помню,

Использование N для циклов с каждым циклом, повторяющимся по M разам, даст нечто вроде M ^ N Процессы, что, в свою очередь, создаст еще одно море процессов M ^ N, поскольку fork () создает идентичные процессы и т. д. и т. д.Система может оказаться очень медленной, и если превышено значение MAX_PROCESS, fork () не выполнит никаких новых процессов.

Первый процесс создаст M ^ N дочерних процессов.Те дети, каждый из которых также создаст M ^ N дочерний процесс и т. Д. И т. Д.

что вы пытаетесь достичь?

0 голосов
/ 01 декабря 2010

Сам язык C не поддерживает мультипроцессорную программу. Вы должны зависеть от API, предоставляемого вашей ОС для реализации мультипроцессированной версии. Вы можете использовать функцию fork в Linux и CreateProcess в среде Windows, и соответствующие API, зависящие от платформы, могут дать вам подробную информацию о том, как использовать эти функции. Удачи!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...