parallelnoe-programmirovanie-s-processami-preimushhestva-i-nedostatki-ispolzovaniya-processov

Параллельное программирование с процессами, преимущества и недостатки использования процессов.

Параллельное программирование с процессами
Самым простым способом построения параллельной программы является построение с процессами и использованием функций fork, exec и waitpid. Например, естественным подходом для построения параллельного сервера является прием запросов клиента на подключение в порождающем процессе с последующим созданием вновь порожденного процесса для обслуживания каждого нового клиента.
Для более наглядной демонстрации, приходи к нам. Школа программирования алматы лучшее место для обучения в данной сфере.
А теперь предположим, что имеются два клиента и сервер, прослушивающий запросы на подключение через прослушивающий дескриптор. Теперь предположим, что сервер принимает запрос на подключение от клиента 1 и возвращает подключенный дескриптор.
После приема запроса на подключение сервер разветвляет порожденный процесс, получающий полную копию таблицы дескриптора сервера. Порожденный процесс закрывает свою копию прослушивающего дескриптора 3, а порождающий процесс — свою копию связного дескриптора 4, поскольку необходимости в них больше нет.
Поскольку связные дескрипторы в порождающем и порожденном процессе указывают на один и тот же элемент записи таблицы файлов, для порождающего процесса принципиальным является закрытие копии связного дескриптора. В противном случае, элемент записи таблицы файлов для связного дескриптора 4 никогда не будет отключен, и образующаяся утечка памяти, в конечном итоге, поглотит доступную память и выведет систему из строя.
Теперь предположим, что после того, как порождающий процесс создает процесс для клиента 1, он принимает новый запрос на подключение от клиента 2 и возвращает новый связный дескриптор.