Что будет эффективно в многоядерной системе - процесс с несколькими потоками или несколько процессов с одним потоком? - PullRequest
0 голосов
/ 07 мая 2018

Предположим, что есть система с 8 ядрами, имеющая 1 поток каждый и 32 ГБ ОЗУ. Я хочу запускать в случае 1 -> 4 потоков в одном процессе (потоки независимы, поэтому синхронизация не требуется) и в случае 2 -> 4 процессов с отдельными потоками каждый. Если оставить в стороне потребление памяти и время, затрачиваемое на их создание, будет ли существенная разница во времени выполнения в вышеупомянутых случаях в системе Linux? Почему, почему нет ? Большинство книг по операционной системе посвящены одноядерным и однопоточным системам.

1 Ответ

0 голосов
/ 07 мая 2018

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

...