Многопроцессорность — это использование двух или более центральных процессоров ( ЦП ) в одной компьютерной системе. Его определение может варьироваться в зависимости от контекста, но обычно оно относится к способности системы поддерживать несколько процессоров и к ее способности распределять работу между ними.
Современные многоядерные процессоры легко могут иметь 12, 24 или даже больше микропроцессорных ядер на одной материнской плате, что обеспечивает эффективную и одновременную обработку множества задач.
Что такое процессы?
Набор инструкций, выполняемых компьютерным процессором, называется процессом или запущенным процессом.
Выполнение процесса должно происходить последовательно. Например, компьютерная программа записывается в текстовом файле, но после выполнения она превращается в процесс и последовательно выполняет все задачи, упомянутые в программе.
Примеры процессов
Обычный компьютер постоянно запускает ряд процессов, помогающих управлять операционной системой ( ОС ), оборудованием и приложениями, установленными на машине. Это может варьироваться от простой фоновой задачи, такой как проверка орфографии или обработчик системных событий, до полноценного приложения, такого как Microsoft Word.
В Microsoft Windows каждый процесс, запущенный на компьютере, можно наблюдать, открыв вкладку «Процессы» в диспетчере задач . Процессы обычно представляют собой фоновые программы, которые обычно не видны при использовании компьютера.
Ниже приведены несколько примеров процессов, которые можно наблюдать с помощью диспетчера задач:
- Winlogon.exe. Этот процесс принадлежит диспетчеру входа в систему Windows и отвечает за обеспечение безопасности, например, загрузку профилей пользователей и блокировку экранов компьютеров во время работы хранителя экрана.
- Вининит.exe. Этот важный процесс выполняется постоянно и помогает настроить систему при первом входе в систему. Его основная роль — служить панелью запуска для большинства фоновых программ и процессов, которые запускаются в Windows.
- csrss.exe. В прошлом процесс csrss.exe использовался для управления графическими компонентами Windows, но в наши дни его две наиболее важные функции — закрытие Windows и запуск процесса conhost.exe, который запускает командную строку .
- Программы для принтера. Любая программа для принтера — это процесс, работающий в фоновом режиме и контролирующий уровень чернил и другие параметры во время работы компьютера.
Типы многопроцессорных систем
Многопроцессорные или параллельные системы обработки сейчас являются обычным явлением. Эти системы используют общую память и распределяют компьютерные часы, память, шину и периферийные устройства между несколькими параллельными процессорами. Многопроцессорность делится на следующие три типа:
- Симметричная многопроцессорность (SMP) . В симметричной (или «тесно связанной») многопроцессорной обработке процессоры совместно используют память и шину ввода-вывода или путь данных. Единая копия ОС управляет всеми процессорами. SMP, также известная как система «совместно используемое», обычно не превышает 16 процессоров.
- Асимметричная многопроцессорность (AMP). До разработки симметричных мультипроцессоров были доступны только асимметричные мультипроцессоры. Каждому процессору в асимметричной системе дается заранее определенная задача. Отношение первичный-вторичный существует в асимметричной многопроцессорной системе, где все процессоры получают инструкции от основного процессора. AMP — более дешевый вариант, чем SMP.
- Массово-параллельная обработка (MPP). При обработке MPP (или «слабо связанной») над одним и тем же приложением могут работать до 200 или более процессоров. Каждый процессор имеет свою собственную операционную систему и память, но расположение путей данных «взаимосвязь» позволяет отправлять сообщения между процессорами. Как правило, установка MPP более сложна и требует размышлений о том, как разделить общую базу данных между процессорами и как распределить работу между процессорами. Система MPP также известна как система «ничего общего».
Процесс против потока
Существует распространенное заблуждение, что процессы и потоки — это одно и то же, хотя на самом деле это отдельные последовательности выполнения.
Ниже приведены общие различия между процессом и потоком:
- Процесс — это часть работающей программы, а поток — часть процесса.
- Потоки легковесны по сравнению с процессами.
- Когда процесс завершается, он делает это медленнее, чем поток.
- Создание процесса требует больше времени, чем создание потока.
- Процессам требуется больше времени для переключения контекста, тогда как потокам требуется меньше времени.
- В отличие от потоков, которые совместно используют память, процесс в значительной степени разделен.
- Данные не распределяются между процессами, но распределяются между потоками.
Помимо ошибочного представления о процессах и потоках, многопроцессорность иногда путают с мультипрограммированием или чередующимся выполнением двух или более программ процессором. Сегодня этот термин используется редко, потому что все компьютерные операционные системы, кроме самых специализированных, поддерживают мультипрограммирование.
Многопроцессорность также можно спутать с многозадачностью или разделением времени, управлением программами и системными службами, которые они запрашивают, как задачами, которые можно чередовать, и с многопоточностью, управлением несколькими путями выполнения через компьютер или несколькими пользователями, совместно использующими одну и ту же копию.
Проблемы многопроцессорности
Хотя многопроцессорность повышает производительность и надежность системы, она также сопряжена с несколькими проблемами:
- Дорогой. Системы с несколькими процессорами могут быть дорогими. Иметь только один процессор дешевле, чем иметь два или более. Целесообразно инвестировать в несколько процессоров только в том случае, если они окупятся в долгосрочной перспективе, потому что, помимо первоначальных затрат, их обслуживание обходится дорого.
- Тупики. В системах с несколькими процессорами взаимоблокировка может возникнуть, если один процессор пытается получить доступ к устройству ввода-вывода ( I/O ), в то время как другой процессор пытается его использовать.
- Дополнительные требования к памяти. Благодаря улучшенным вычислительным возможностям широко используются многопроцессорные компьютеры. Однако они имеют повышенные требования к памяти. В многопроцессорных архитектурах память распределяется между всеми процессами, и каждому процессору требуется место в памяти. Все процессоры работают вместе и одновременно напрямую обращаются к основной памяти, что вызывает увеличение потребления памяти.
- Сложная операционная система. В многопроцессорных операционных системах каждый процессор имеет свою собственную операционную систему, которая назначает каждому процессору несколько второстепенных задач, а нагрузка распределяется между процессорами. Однако использование нескольких процессоров усложняет работу операционной системы.
Преимущества многопроцессорности
Многопроцессорные среды получили широкое распространение и предлагают широкий спектр преимуществ, таких как повышенная скорость, пропускная способность и надежность. Общие преимущества многопроцессорной обработки включают следующее:
- Надежность. В случае сбоя одного процессора в многопроцессорной системе другие процессоры могут восполнить пробел и продолжить работу. Хотя отключение одного процессора может привести к постепенному замедлению работы, система по-прежнему может работать бесперебойно. Это делает многопроцессорные системы очень надежными.
- Повышенная пропускная способность. Пропускная способность — это количество процессов, выполняемых в данный момент времени. Учитывая, что многопроцессорные системы используют много ЦП для обработки данных, ожидается повышение производительности, когда система использует параллельную обработку. Это означает, что большее количество задач может быть выполнено за более короткий промежуток времени, поскольку они распределяются между разными процессорами.
- Экономия затрат. Многопроцессорные системы более экономичны по сравнению с многопроцессорными системами. Это связано с тем, что несколько процессоров в одной системе совместно используют одну и ту же память, дисковое пространство, шины и периферийные устройства.
Симметричная многопроцессорная обработка, асимметричная многопроцессорная обработка и массово-параллельная обработка — вот некоторые из нескольких типов многопроцессорной обработки. Узнайте, чем эти режимы отличаются друг от друга, и ознакомьтесь с уникальными вариантами использования каждого из них.