首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >windows服务器上的PTP同步(与Linux相比)-可以保证什么精度?

windows服务器上的PTP同步(与Linux相比)-可以保证什么精度?
EN

Stack Overflow用户
提问于 2012-10-30 09:46:44
回答 1查看 3.4K关注 0票数 3

我想知道是否每个人都知道在Windows 2008上如何保证精确的PTP同步。

我知道这个线程:在windows中进程的最低保证时间是多少?,它讨论了windows的本地时间,是的,这根本没有提供任何保证。

但是,当涉及到硬件解决方案(PTP)时呢?是否有任何限制阻止保证< 1ms?我知道依赖于时间的进程将竞争CPU时间,但是如果进程在需要时确实有CPU时间,那么还有什么可能会出现吗?

编辑1:我在标题中添加了“(与Linux相比)”,因为这最初是我关心的问题之一。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-10-30 11:30:46

为了在Windows 2008上获得可靠的进程时间,可以安排一些事情。其中一些是:

  1. 避免CPU上的重负载。
  2. 安排小内存占用的代码。
  3. 进程优先级类线程优先级设置为高。甚至可能和REALTIME_PRIORITY_CLASSTHREAD_PRIORITY_TIME_CRITICAL一样高。
  4. 设置线程亲和掩码以避免时间关键部分在Core 0上运行。Core 0专用于某些系统服务。使用不同的代码可以避免依赖关系。
  5. 适当时使用Sleep(0)。睡眠(0)是一个异步服务,迫使调度程序作出反应。通过这种方式,您可以触发调度程序,它将选择进程/线程以获得CPU,因为它具有最高优先级。
  6. 确保代码也为其他服务提供了时间。最高优先级将导致所有其他线程基本上停止。(不处理鼠标事件或任何东西)
  7. 可能通过多媒体计时器API增加系统的中断频率。使用timeGetDevCaps函数查询系统允许的最大中断频率,并在timeBeginPeriod结构中使用timeBeginPeriod返回的wPeriodMin。这将迫使您的系统以其最大中断频率运行。完成后,不要忘记通过调用timeEndPeriod来释放多媒体计时器资源。

当这些规则被狂喜地遵循时,精确的计时进入10微秒的范围是可以获得的高可靠性。然而,所有这些的总和导致了某种复杂性。因此,永远不可能提供保证。但即使在实时操作系统系统中,也没有这样的保证。当编码没有正确地完成时,不管操作系统是如何调用的,事情都不会按照他们应该做的方式工作。还可以找到更多指向等效.Net服务的注释和链接,这里

所有这些都可以使时间同步(精确时间协议)的实现缩短到10微秒。

精确时间协议开发人员常见问题可以找到http://wiki.eclipse.org/PTP/sync-projects

Linux之后的编辑也被要求:有一些可用的包,例如 one。这里报告的典型精度也在10到100微秒范围内。

毫不奇怪,在运行在类似标准硬件上时,Windows和Linux的结果非常相似。这两个人中的任何一个都能做任何魔术。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13136320

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档