-1

Разве не будет эффективным для пользователя возможность назначать определенное ядро определенному приложению в современных многоядерных системах?

2 ответа2

5

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

Сказав это, я думаю, что большинство ОС дают вам возможность. В Windows вы можете открыть приложение диспетчера задач, выбрать процесс, и один из вариантов в контекстном меню - «Установить сходство». Это позволит вам выбрать, на каких ядрах будет выполняться процесс.

Окно диспетчера задач

Установить диалог сродства

2

Сложный вопрос, это отличается в каждой ситуации.

Планировщик потоков / процессов в любой операционной системе намного сложнее и эффективнее, чем вы, и он может очень быстро реагировать на различные рабочие нагрузки. Пользователь не должен знать обо всех механизмах "как запланирован мой процесс", и (моя личная заметка), почему это действительно важно для вас?

Вы рискуете оставить 3 ядра в спящем режиме, и единственное рабочее ядро планирует 2132121 потоков в вашем приложении.

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

В окнах вы можете изменить, какое ядро может использовать процесс в "Диспетчере задач", щелкните правой кнопкой мыши ПРОЦЕСС (не в приложении) и выберите "Сходство".

РЕДАКТИРОВАТЬ: я использовал его один раз, когда у меня было "очень важное приложение": на перегруженном сервере, это приложение должно было запускаться с высоким приоритетом, каждые несколько минут (по запросу от клиента). Мы заставили ОС назначить два ядра (более 8 ядер) исключительно для этого приложения. Мы получили наш результат, но в течение 90% времени два ядра спали.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .