【问题标题】:Programming on real-time system实时系统编程
【发布时间】:2014-10-21 15:01:54
【问题描述】:

我的问题是理解实时系统上的编程。我对这个话题感到困惑。在我的源代码中我能做什么和不能做什么?我知道在源代码编程期间有一些注意事项,但我不知道具体是什么。一些例子。是否可以使用动态内存分配(新)?是否可以实时访问磁盘?我可以使用哪种 IPC(进程间通信)?我可以使用标准的进程间锁定吗?什么是文件锁定?我在互联网上搜索过,但没有找到我想要的。我在哪里可以更好地理解这个问题?我希望有一个人可以帮助我。对不起我的英语不好!

【问题讨论】:

    标签: real-time


    【解决方案1】:

    可以做你选择的语言/编译器支持的任何事情。

    你现在应该做什么,这真的取决于目标系统是什么,你的程序是什么(据我所知,你可能正在编写一个操作系统)等等......

    【讨论】:

      【解决方案2】:

      实时系统都是关于确定性的——每个 .看看这里的一些指南:

      http://cs.brown.edu/~ugur/8rulesSigRec.pdf

      What defines a real-time/near-real time system?

      在软件方面(您的关注点):

      一个。避免在代码中缓冲或缓存。缓存旨在加速第一次之后的后续处理,但这会导致时间的不确定性。

      b.尽量减少条件分支,因为它会产生不同的路径导致不同的时序,这对于时间敏感的组件尤其重要。

      c。避免异步或基于中断的设计。尽可能使用轮询 - 这将增加时间的可预测性。

      d。尽可能使用实时操作系统(如 LynxOS RTOS)。它在处理过程中具有很高的响应性和可预测性。但是如果你看一下它的内部,你会发现它跳过了很多错误处理,它可以产生的最大进程数的阈值很低等等。也就是说,总是有很多空闲的 CPU 计算能力剩余,以确保响应能力就在那里。当然,当您将数字推到极限时(例如,产生大量进程),LynxOS 的实时行为就不再表现出来了。

      编码时应用了很多常识.....

      【讨论】:

        猜你喜欢
        • 2013-11-13
        • 2010-10-16
        • 2011-05-29
        • 2010-11-18
        • 1970-01-01
        • 2019-01-04
        • 1970-01-01
        • 2018-05-06
        • 2012-04-27
        相关资源
        最近更新 更多