gpt4 book ai didi

windows - Windows 上的引脚处理器 CPU 隔离

转载 作者:可可西里 更新时间:2023-11-01 13:26:52 24 4
gpt4 key购买 nike

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

在 Windows 中,我发现最接近的东西是亲和性概念,它似乎将进程/线程绑定(bind)到处理器。但它不能保证处理器仅运行该进程/线程,这意味着仍然可能存在上下文切换和其他抖动。

有没有办法在 Windows 上隔离 CPU 以实现半确定性运行时间?

最佳答案

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

开始寻找 at this code here on MSDN关于枚举过程。除了您的枚举代码会将 PROCESS_SET_INFORMATION 指定为 OpenProcess 的标志外.您可能需要以管理员权限运行您的代码,以便为未作为您的 NT 信用运行的进程执行此操作。对于获得的每个进程句柄,调用 SetProcessAffinityMask将进程设置为在除一个内核之外的所有内核上运行。然后将您的进程设置为在您从所有其他进程句柄中剔除的保留核心上运行另一个进程。

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

您的里程可能会有所不同。如果这只是为了测试或专用于您的代码的机器,那么它可能没问题。如果这是针对旨在与所有其他应用程序一起运行的商业应用程序,那么客户在运行您的代码时看到所有其他应用程序和服务都将非常失望。小心行事。

关于windows - Windows 上的引脚处理器 CPU 隔离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15324586/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com