Ответ 1
транслятор;: parallelism (в смысле истинного одновременного выполнения) на одном, не гиперпоточном ядре ЦП, НЕ возможно.
Аппаратное обеспечение (< - EDIT) Параллеллизм может быть достигнут на нескольких уровнях. Упорядочено путем уменьшения детализации:
- multi-host
- многопроцессорный
- многоядерные
- многопоточность ( "Hyper-Threading", т.е. "HT" ) (EDIT: я voluntarity опускают случай векторизованных вычислений, когда несколько ALU могут управляться одним и тем же ядром)
Ваш вопрос связан с запуском двух программных потоков в случаях 3. (в случае, если HT недоступен/отключен) или 4.
-
В обоих случаях процессы фактически НЕ запускаются параллельно. Пользователь имеет впечатление одновременности из-за чрезвычайно быстрых переключателей контекста, выполняемых на уровне ЦП, которые, как правило, выделяют, последовательно физическое ядро (соответственно поток), на один или другой программный поток
-
В обоих случаях эти процедуры просто не выполняются одновременно, а последовательно
Относительный приоритет, назначенный каждой из этих двух подпрограмм, может быть установлен в разных операционных системах с помощью "Приоритета", который вы передаете процессу, который будет обрабатываться планировщиком ОС, который, в свою очередь, будет выделять процессорное время.
НТН.
Чтобы выполнить тесты, чтобы лучше понять эту тему, вы можете захотеть "cpu affinity" в Google. Это позволит вам запустить двухпоточный процесс на одном физическом ядре многоядерного процессора и время, затрачиваемое каждым из потоков, изменяя их приоритет и т.д.