Набор задач внутри виртуальной машины qemu не работает должным образом
Я эмулирую QEMU для Linux x86-64. В виртуальной машине QEMU я использую
taskset -c 0 prc1 & taskset -c 1 prc2 & taskset -c 2 prc3 & taskset -c 3 prc4;
одновременно выпускать 4 процесса и связывать их с четырьмя ядрами (prc - сокращение от процесса). Тем не менее, я считаю, что как только они начинают работать; затем впоследствии некоторые ядра (скажем, 1 и 2) не выполняют эти процессы, но либо бездействуют, либо делают что-то еще. Можете ли вы предложить, в чем может быть причина этого или способ улучшения, чтобы я мог убедиться, что процессы не переносятся из одного ядра в другое.
1 ответ
Процессы не мигрируют из одного ядра в другое. Всякий раз, когда им нужен процессор, они получают только то ядро, к которому вы их привязали. Это не помешает ЦП выполнять другую работу, и не заставит процесс использовать ядро, даже если он не может работать, скажем, потому, что он ожидает ввода-вывода.