Почему планировщик процессов Windows назначает задачи случайным процессорам?
Я использую двухъядерный процессор C2D, Windows 7 (хотя такое поведение одинаково во всех ОС MS, которые я видел). Когда я запускаю любую однопоточную задачу, интенсивно использующую процессор, она не привязывается к одному ядру, а случайным образом занимает около 50% первого ядра и около 50% второго.
Почему они это делают? Не приводит ли это к снижению эффективности кеша L1?
Я знаю, что могу установить сходство процессов, мне просто интересно узнать причины такого поведения.
1 ответ
Это не случайно. Они выбирают лучшее место для его удаления, нет смысла бросать его на процессор, который в настоящее время обрабатывает процесс с большим весом...
Это на самом деле не влияет на эффективность кэша L1, так как ВЫСОКО вероятно, что другие процессы уже сбросили L1-кэш всех полезных данных. Вот почему так много говорят об общих кешах L2 и L3...