我想知道,如果每个人都知道如何精确PTP同步可以在Windows Server 2008上得到保证。
我知道这个线程: 什么是Windows中的过程中,最低保证时间? 其中讨论了Windows的本地时间,是的,这根本不会给出任何保证。
但是,当涉及到什么硬件解决方案(PTP)? 是否有预防<1毫秒的保证限制? 我知道,根据时间进程将争夺CPU时间,但如果进程需要时有CPU时间,有没有别的了可能出现的呢?
编辑1:我补充说:“(相比于Linux的)”的称号,因为这本来是我关心的问题之一。
我想知道,如果每个人都知道如何精确PTP同步可以在Windows Server 2008上得到保证。
我知道这个线程: 什么是Windows中的过程中,最低保证时间? 其中讨论了Windows的本地时间,是的,这根本不会给出任何保证。
但是,当涉及到什么硬件解决方案(PTP)? 是否有预防<1毫秒的保证限制? 我知道,根据时间进程将争夺CPU时间,但如果进程需要时有CPU时间,有没有别的了可能出现的呢?
编辑1:我补充说:“(相比于Linux的)”的称号,因为这本来是我关心的问题之一。
有几件事情可以安排到Windows服务器上获得可靠的处理时间2008年他们中的一些是:
在CPU上避免沉重的负担。
安排代码的小内存占用。
设置进程的优先级类和线程的优先级高。 甚至可能高达REALTIME_PRIORITY_CLASS
和THREAD_PRIORITY_TIME_CRITICAL
分别。
设置线程的亲和力口罩 ,以避免时间关键部分上运行的Core 0
。 核心0是专门为某些系统服务。 使用不同的代码避免依赖。
使用Sleep(0)
在适当的时候。 睡眠(0)是一个异步服务和强制调度器进行反应。 这样,您就可以触发这将选择你的进程/线程获得CPU immedeately,因为它有最优先调度。
确保代码不会给时间其他服务了。 最优先事项将导致所有其他线程基本上停止。 (无鼠标事件或任何将被处理)
可能增加系统由多媒体计时器API来中断的频率。 使用timeGetDevCaps函数来查询您的系统的最大允许中断的频率和使用timeBeginPeriod与wPeriodMin
通过返回timeBeginPeriod
在TIMECAPS
结构。 这将迫使你的系统在其最大的中断频率运行。 不要忘记通过调用释放多媒体计时器资源timeEndPeriod当您完成。
当这些规则carfully随后,精确的定时到10微秒制度与版本高可靠性获得。 然而,在一些复杂所有上述结果的总和。 因此保证永远无法给出。 但是,即使在RTOS系统没有这样的保证。 当编码做得不好的事情不工作,他们应该做的,不管是什么/如何操作系统的调用方式。 一些笔记和链接等的.NET服务可以发现在这里 。
考虑到所有使时间同步(实施精确时间协议 )下降到几10微秒。
精密时间协议开发人员常见问题都可以找到这里 。
Linux之后编辑是askted过:有一些可用的软件包,例如这一个。 这里报道的典型精度是在10到100微秒范围内了。
毫不奇怪可比标准的硬件上运行时的结果是Windows和Linux非常相似。 两个非无所不能的魔力。