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

5895
Vishnu Vivek

Я слышал, что один процессор может одновременно работать только с одним процессом. Это правда? Если это так, то как можно одновременно выполнять один процесс на нескольких процессорах? Это вообще возможно?

Заранее спасибо!

2

2 ответа на вопрос

4
Ignacio Vazquez-Abrams

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

Как работает совместное использование адресного пространства между ядрами? Thirupathi Thangavel 7 лет назад 0
Все ядра имеют доступ к одной и той же адресной шине, если вы об этом. Ignacio Vazquez-Abrams 7 лет назад 1
Хорошо, а как насчет кеша, регистров? Разве они не разделены потоками одного процесса? Thirupathi Thangavel 7 лет назад 0
В многопоточном процессе потоки разделяют память. Если разные ядра работают с разными потоками, и каждое ядро ​​имеет свой собственный кэш и регистры, то как эта память распределяется? Thirupathi Thangavel 7 лет назад 0
1
David Schwartz

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