Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows上的Pin处理器CPU隔离_Windows_Multithreading_Affinity_Isolation_Smp - Fatal编程技术网

Windows上的Pin处理器CPU隔离

Windows上的Pin处理器CPU隔离,windows,multithreading,affinity,isolation,smp,Windows,Multithreading,Affinity,Isolation,Smp,在我主要工作的linux中,我们使用了一种称为CPU隔离的技术,它可以有效地将进程锁定到处理器上,还可以防止处理器运行其他任何东西。我们的内核人员使用了一些魔法来处理中断 在windows中,我发现了一个最接近的概念,它似乎将进程/线程绑定到处理器。但它不能保证处理器只运行该进程/线程,这意味着仍然可能存在上下文切换和其他抖动 有没有办法在windows上隔离CPU以获得半确定性的运行时间?在用户模式下没有确切的方法。Windows主要是防止应用程序占用所有系统资源。但您可能会将大多数其他进程隔

在我主要工作的linux中,我们使用了一种称为CPU隔离的技术,它可以有效地将进程锁定到处理器上,还可以防止处理器运行其他任何东西。我们的内核人员使用了一些魔法来处理中断

在windows中,我发现了一个最接近的概念,它似乎将进程/线程绑定到处理器。但它不能保证处理器只运行该进程/线程,这意味着仍然可能存在上下文切换和其他抖动


有没有办法在windows上隔离CPU以获得半确定性的运行时间?

在用户模式下没有确切的方法。Windows主要是防止应用程序占用所有系统资源。但您可能会将大多数其他进程隔离到另一个核心/处理器,这样您的代码就可以在主要专用于它的核心上运行

从枚举进程开始。除此之外,枚举代码将指定进程设置信息作为标记。您可能需要使用admin Priv运行代码,以便对未按NT凭据运行的进程执行此操作。对于获得的每个进程句柄,调用将进程设置为在除一个内核之外的所有内核上运行。然后将进程设置为在从所有其他进程句柄中剔除的保留核心上运行另一个进程

这不会处理从启动到负载平衡的其他进程,也不会处理您试图在其上运行代码的核心


您的里程可能会有所不同。如果这只是用于测试或专用于您的代码的机器,那么它可能会很好。如果这是一个商业应用程序,打算与所有其他应用程序一起运行,那么当客户运行您的代码时,他们会非常失望地看到所有其他应用程序和服务都失败了。小心行事。

不。如果需要,你最好坚持使用Linux。