首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Windows7.0中编程使其更具确定性?

如何在Windows7.0中编程使其更具确定性?
EN

Stack Overflow用户
提问于 2011-09-26 07:49:22
回答 3查看 1.7K关注 0票数 2

我的理解是,Windows是不确定的,在使用它进行数据采集时可能会遇到麻烦。使用32位总线和双核,是否可以使用内联asm来处理Visual Studio2005中的中断,或者至少设置某种标志以在时间上保持一致,并且抖动很小?

走RTOS(实时操作系统)的方向:在内核模式下编程的Windows CE对我们来说可能太昂贵了。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-09-26 21:12:07

针对Windows的实时解决方案(如LabVIEW Real-timeRTX )很昂贵;独立的RTOS通常会更便宜(甚至是免费的),但如果您还需要Windows的功能,您可能就不会再前进了。

如果成本很重要,您可以在虚拟机中运行免费或低成本的RTOS。虽然在RTOS和Windows之间没有硬件访问上的协作,也没有直接的通信机制(我想您可以在虚拟(或真实)网络上使用TCP/IP ),但这是可行的。

另一种方案是在独立的硬件(例如微控制器开发板或单板机)上执行实时数据采集,并通过USB或TCP/IP与Windows进行通信。有可能以这种方式将定时抖动降低到微秒级或更好。

票数 2
EN

Stack Overflow用户

发布于 2011-09-26 07:56:39

Windows有第三方实时扩展。例如,参见http://msdn.microsoft.com/en-us/library/ms838340(v=winembedded.5).aspx

票数 2
EN

Stack Overflow用户

发布于 2011-09-26 22:23:42

Windows不是RTOS,所以没有神奇的答案。然而,您可以做一些事情来使系统更加“实时友好”。

  1. 禁用可能窃取系统资源的后台进程。
  2. 使用多核处理器来减少上下文切换的影响
  3. 如果您的程序执行任何磁盘I/O,请将其移到自己的主轴上。
  4. 查看进程优先级。请确保您的进程以高模式或实时模式运行。
  5. 注意程序管理内存的方式。避免做一些会导致过多的磁盘paging.
  6. Consider Windows实时扩展(已经mentioned).
  7. Consider移动到真正的RTOS.
  8. Consider将系统分成两部分:(1)在微控制器/DSP/FPGA上运行的实时组件,和(2)在Windows PC上运行的用户界面部分)的厚度。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7549402

复制
相关文章

相似问题

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