Книга: Системное программирование в среде Windows
Процессы в многопроцессорной среде
Процессы в многопроцессорной среде
В программе 6.1 процессы и их основные (и только эти) потоки выполняются практически полностью независимо друг от друга. Единственная зависимость между ними проявляется лишь в конце выполнения родительского процесса, поскольку он ожидает завершения выполнения каждого из них, чтобы перейти к последовательной обработке выходных файлов. Поэтому в SMP-системах планировщик Windows может и будет обеспечивать параллельное выполнение потоков процесса на нескольких независимых процессорах. В результате этого производительность, если оценивать ее по времени выполнения всей программы, значительно повышается, причем для этого с вашей стороны не требуется предпринимать никаких действий.
Типичные результаты тестирования производительности приведены в приложении В. Ввиду выполнения программой ряда вспомогательных операций, а также необходимости последовательного вывода результатов, зависимость производительности от количества процессоров не является линейной. Тем не менее, улучшение производительности налицо, и это автоматически обеспечивается организацией программы, которая предусматривает передачу выполнения независимых вычислительных задач независимым процессам.
Вместе с тем, существует возможность привязки процессов к определенным процессорам, что позволяет всегда быть уверенным в том, что другие процессоры остаются свободными и их можно использовать для решения каких-либо иных, критических задач. Это достигается за счет применения маски родства процессора (processor affinity mask) (см. главу 9) в объекте задачи. Объекты задач (job objects) описываются в одном из следующих разделов настоящей главы.
Наконец, внутри процесса можно создавать независимые потоки, и для этих потоков также будет спланировано выполнение с использованием отдельных процессоров SMP для каждого из них. Связь между использованием потоков и показателями производительности обсуждается в главе 7.
- Процессы и потоки Windows
- Создание процесса
- Счетчики дескрипторов процессов
- Идентификаторы процессов
- Дублирование дескрипторов
- Завершение и прекращение выполнения процесса
- Ожидание завершения процесса
- Блоки и строки окружения
- Пример: параллельный поиск указанного текстового шаблона
- Процессы в многопроцессорной среде
- Временные характеристики процесса
- Пример: временные характеристики процессов
- Генерация управляющих событий консоли
- Пример: простое управление задачами
- Объекты задач
- Резюме
- Упражнения
- 7.2.5. Подчиненные процессы
- Глава 3 Процессы
- 2.2.2 Процессы
- Процессы и потоки Windows
- Рабочие процессы
- При завершении работы Windows сообщает, что некоторые процессы не отвечают, и компьютер не выключается. Как завершать та...
- 3.4. Процессы
- Рекомендации по обработке событий в среде .NET Framework
- Как использовать новые правила и инструменты, чтобы вызвать бурю в медиасреде
- Процессы
- Программы и процессы
- Системные процессы