Ограничить пользователя одним ядром процессора в Windows 7

1067
Dean Ward

Я позволил членам моей семьи использовать мой компьютер поверх rdp, чтобы играть в свои флэш-игры, поскольку их ноутбуки перегреваются, если они используют их напрямую. У меня есть настройки, чтобы я мог использовать компьютер одновременно с ними. На ПК установлен четырехъядерный процессор, и я хотел бы иметь возможность назначить одно из этих ядер пользователю, вошедшему в систему через RDP, чтобы остальные 3 ядра остались одни. Это возможно?

Они входят в систему с определенной учетной записью пользователя для этой цели.

Спасибо за любой совет!

1
Может быть, PsTools от Марка Руссиновича по адресу http://technet.microsoft.com/en-us/sysinternals/bb896649 могли бы помочь вам;) ATorras 13 лет назад 0

3 ответа на вопрос

2
Patrick

Функция Windows SetThreadAffinityMask позволяет вам установить привязку процессора / ядра потока. Таким образом, с помощью этой функции вы можете указать / заставить поток использовать одно конкретное ядро.

Чтобы решить вашу проблему, сделайте следующее:

  • Напишите приложение, которое перебирает все процессы и проверяет пользователя
  • Если пользователь процесса равен имени пользователя, заданному в качестве аргумента приложения:
    • перебрать все темы
    • установить сродство к первому ядру

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

Вы также можете сделать это приложение службой Windows и запускать его автоматически при загрузке компьютера.

Похоже, отличное решение и веселый проект! Я попробую и выпустлю программное обеспечение, когда закончу. Спасибо :) Dean Ward 13 лет назад 0
0

Здесь есть несколько вещей. Простейшим решением было бы заставить его работать на ноутбуке, не так ли?

  • Возможно, есть проблема с оборудованием ноутбука, вентилятором?
  • Вы можете попробовать разогнать ноутбук, чтобы снизить рабочую температуру.

Если вы настроены на идею RDP, вы можете попробовать:

  • уменьшение приоритета процесса для rdp в диспетчере задач. (У меня нет windows 7, поэтому я не уверен, работает ли это как отдельный процесс.) Я думаю, что это должно иметь эффект, аналогичный тому, что вы ищете. Если rdp работает как сервис, вероятно, есть способ уменьшить его приоритет, но это не так просто, как я себе представляю.
  • Вы также можете попробовать изменить сходство процессов в диспетчере задач, я думаю, что с помощью этого вы можете назначить rdp ровно одному ядру, но, опять же, это зависит от того, является ли rdp сервисом, и насколько легко это сделать.
Рассматриваемый ноутбук старый и недостаточно мощный. Он уже работает очень медленно, поэтому разгон, скорее всего, не подойдет. Я постараюсь найти процесс службы rdp и установить его на этом, хотя, спасибо за это предложение! 13 лет назад 0
нашел процесс размещения сервиса и установил его привязанность к одному ядру, но процесс игры все еще работал на других ядрах. Похоже, это будет не стартер! Спасибо, в любом случае. 13 лет назад 0
0
Gilad

Это не простое решение, а лучший способ полностью разделить компьютер на два (или более) компьютера с помощью программного обеспечения ВМ (виртуальная машина). Это решит вашу проблему, может решить и будущие проблемы (мусор, вирусы ...)

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

Если вы решите сделать это, лучше убедитесь, что ваш процессор поддерживает виртуализацию.

Я попытался пойти по маршруту VM, но обнаружил, что это дает намного больше накладных расходов, чем то, как я делаю это сейчас. 13 лет назад 0