Многоядерный процессор может выполнить несколько процессов одновременно?

Я понимаю, что многоядерный процессор может выполнить несколько потоков того же процесса одновременно с помощью его различных ядер.
Это может также выполнить несколько процессов одновременно (каждое ядро, выполняющее различный процесс)?

9
задан 14.03.2011, 13:37

3 ответа

Что касается операционной системы и приложений каждое ядро является отдельным процессором и подчиняется тем же правилам привязки как имеющий несколько процессоров.

Какой процессор (быть им реальный, базовый или гиперпоточный), на котором работает процесс, зависит полностью от системы планирования операционной системы. Именно эта система планирования (под влиянием настроек привязки) решает, куда процесс должен работать и когда. Процессы и потоки могут переключиться между процессорами и ядрами по желанию, поскольку планировщик считает целесообразным.

14
ответ дан 07.12.2019, 13:09

От моих ограниченных знаний операционных систем я полагаю, что каждый процесс имеет по крайней мере один поток, и именно эти потоки планируются, не сами процессы. Процесс просто содержит информацию о программе и потоках, что это установило выполнение. Таким образом, единственное потоковое приложение проходит то же лечение как многопоточное приложение, но многопоточное приложение может использовать ресурсы лучше.

Например, позволяет, предполагают, что у нас есть два процесса с двумя потоками каждый и единственное потоковое приложение, все упорно работающие на двухъядерном процессоре (или двойной ЦП, не имеет никакого значения здесь),

 Process A
    |_Thread A-1
    |_Thread A-2

 Process B
    |_Thread B-1
    |_Thread B-2

 Process C
    |_Thread C

Каждый поток schedulable через все ядра ЦП, и загрузка сбалансирована планировщиком ОС.

Если мы затем идем и настраиваем привязку процессора к Процессу B для ограничения его одним ЦП затем, все потоки того процесса связываются с тем, что ЦП также и не будет работать ни на каком другом ЦП. Выполнение того же для Обработки C не приведет ни к какому реальному изменению, поскольку это может только работать на одном ЦП за один раз.

7
ответ дан 07.12.2019, 13:09

Короткий ответ:

  1. Да, оказал поддержки ОС это.
  2. В наше время все OSs поддерживает его.

Процессы и потоки (как в многопоточности) являются конструкциями уровня ОС. После того как Вы получаете низкий уровень достаточно в планировании, они исчезают, и у Вас только есть набор потоки организации очередей выполнения для получения времени выполнения.

2
ответ дан 07.12.2019, 13:09

Теги

Похожие вопросы