Ограничить пользователя одним ядром процессора в Windows 7
Я позволил членам моей семьи использовать мой компьютер поверх rdp, чтобы играть в свои флэш-игры, поскольку их ноутбуки перегреваются, если они используют их напрямую. У меня есть настройки, чтобы я мог использовать компьютер одновременно с ними. На ПК установлен четырехъядерный процессор, и я хотел бы иметь возможность назначить одно из этих ядер пользователю, вошедшему в систему через RDP, чтобы остальные 3 ядра остались одни. Это возможно?
Они входят в систему с помощью определенной настройки учетной записи пользователя для этой цели.
Спасибо за любой совет!
3 ответа
Функция Windows SetThreadAffinityMask позволяет вам установить привязку процессора к ядру потока. Таким образом, с помощью этой функции вы можете указать / заставить поток использовать одно конкретное ядро.
Чтобы решить вашу проблему, сделайте следующее:
- Напишите приложение, которое перебирает все процессы и проверяет пользователя
- Если пользователь процесса равен имени пользователя, указанному в качестве аргумента приложения:
- перебрать все темы
- установить сродство к первому ядру
Вы можете дать этому приложению хороший оконный интерфейс и запускать его автоматически, как только вы войдете в свой компьютер.
Вы также можете сделать это приложение службой Windows и запускать его автоматически при загрузке компьютера.
Это не простое решение, а лучший способ полностью разделить компьютер на два (или более) компьютера с помощью программного обеспечения ВМ (виртуальная машина). Это решит вашу проблему, может решить и будущие проблемы (мусор, вирусы...)
С установленной виртуальной машиной вы можете выбрать, сколько времени процессорного времени получит каждый компьютер. Этот выбор также работает для других ресурсов, таких как память, дисковое пространство, пропускная способность сети...
Если вы решите сделать это, лучше убедитесь, что ваш процессор поддерживает виртуализацию.
Здесь есть несколько вещей. Простейшим решением было бы заставить его работать на ноутбуке, не так ли?
- Возможно, есть проблема с оборудованием ноутбука, вентилятором?
- Вы можете попробовать разогнать ноутбук, чтобы снизить рабочую температуру.
Если вы настроены на идею RDP, вы можете попробовать:
- уменьшение приоритета процесса для rdp в диспетчере задач. (У меня нет windows 7, поэтому я не уверен, работает ли это как отдельный процесс.) Я думаю, что это должно иметь эффект, аналогичный тому, что вы ищете. Если rdp работает как сервис, вероятно, есть способ уменьшить его приоритет, но это не так просто, как я себе представляю.
- Вы также можете попробовать изменить сходство процессов в диспетчере задач, я думаю, что с помощью этого вы можете назначить rdp ровно одному ядру, но, опять же, это зависит от того, является ли rdp сервисом, и насколько легко это сделать.