Windows可以configuration为仅使用单个硬件线程?

是可以configurationWindows只使用一个单一的硬件线程。 过去几年的每台机器似乎至less是双核的,但是一些时序错误只有在线程串行执行时才是可重现的。 我对Windows Vista特别感兴趣。

大卫,我们先来解决你的直接问题:如何将Windows Vista限制为一个核心。

我看到两种方式:

(a)在Hyper-V上的虚拟机中运行Vista,并为该VM分配一个逻辑处理器。 这使你机器的其余部分得到很好的使用。

(b)或者,您可以使用boot.ini中的/ numproc = 1选项强制机器使用单个处理器。 你可以通过msconfig来configuration它。

  1. 单击开始,单击运行,键入msconfig,然后单击确定。
  2. 点击“启动”标签。
  3. 点击“高级选项…”
  4. 单击以选中“处理器数”checkbox,并select“1”。
  5. 单击确定两次,然后重新启动计算机。

替代文字http://i39.tinypic.com/141789i.png

但是,也许这足以将您的程序限制单个内核中,那么设置处理器亲和力就是最佳select。 这可以通过configuration或直接从您的stream程代码来实现。

从这些你可能也想考虑先进的multithreadingdebugging工具,如英特尔的线程检查器,如果这适用于您的环境。

你正在寻找的是如何设置“过程关联”,以及如何设置它取决于你开始的程序,以及如何启动它。

我看到堆栈溢出这个答案: stackoverflow.com/questions/827754 / ….

还有许多机器可以在BIOS中禁用SMP(如果有相关的超线程)。

定时错误(或竞争条件的常见子集)似乎在多核机器上更普遍地可重现。

你会想在boot.ini中的/ onecpu开关看看这里: http : //support.microsoft.com/kb/170756