在 Windows 7 中将用户限制为一个 CPU 核心

在 Windows 7 中将用户限制为一个 CPU 核心

我让我的家人通过 RDP 使用我的 PC 玩基于 Flash 的游戏,因为如果他们直接使用笔记本电脑,笔记本电脑会过热。我已经设置好了,这样我就可以和他们同时使用 PC。这台 PC 有一个四核 CPU,我希望能够将其中一个核心分配给通过 RDP 登录的用户,这样其他 3 个核心就可以了。这可能吗?

他们通过为此目的设置的特定用户帐户登录。

谢谢您的任何建议!

答案1

Windows 函数 SetThreadAffinityMask 允许您设置线程的处理器/核心亲和性。因此,使用此函数,您可以指示/强制线程使用一个特定的核心。

要解决您的问题,请执行以下操作:

  • 编写一个应用程序,循环遍历所有进程并检查用户
  • 如果进程的用户等于作为应用程序参数给出的用户名:
    • 循环遍历所有线程
    • 将亲和力设置为第一个核心

您可以为该应用程序提供一个美观的窗口前端,并在您登录计算机时自动运行它。

您还可以将此应用程序设为 Windows 服务,并使其在计算机启动时自动运行。

答案2

这不是一个简单的解决方案,但这是使用 VM(虚拟机)软件将计算机完全拆分为两台(或更多台)计算机的最佳方法。这将解决您的问题,也可能解决未来的相关问题(垃圾、病毒……)

安装 VM 后,您可以选择每台计算机将获得多少 CPU 处理时间。此选择也适用于其他资源,如内存、磁盘空间、网络带宽...

如果您选择这样做,最好确保您的 CPU 支持虚拟化。

答案3

这里有很多事情。最简单的解决方案就是让它在笔记本电脑上运行,不是吗?

  • 也许笔记本电脑硬件、风扇有问题?
  • 您可以尝试降低笔记本电脑的频率以降低运行温度。

如果您打算使用 RDP,可以尝试:

  • 在任务管理器中降低 rdp 的进程优先级。(我没有 Windows 7,因此我不确定这是否作为单独的进程运行。)我认为这应该具有与您所追求的效果类似的效果。如果 rdp 作为服务运行,可能有一种方法可以降低其优先级,但它并不像我想象的那么简单。
  • 您还可以尝试在任务管理器中更改进程亲和性,我认为使用这个您可以将 rdp 分配给一个核心,但是,同样,这取决于 rdp 是否是一种服务,以及执行此操作有多么容易。

相关内容