2010-09-21 57 views
-1

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

回答

0

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

什么你应该现在要做的,它实际上取决于什么是目标系统,什么是你的程序(你可以写我所知道的一个OS),等等

0

实时系统是所有关于确定性 - 每个固定时间。检查了这一点对于一些准则:

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

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

在软件方面(你的重点):

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

b。最小化条件分支,因为它会生成不同的路径,导致不同的时序,这对时间敏感的组件尤其重要。

c。避免异步或基于中断的设计。尽可能使用轮询 - 这将增加时间的可预测性。 d)。尽可能使用实时操作系统(如LynxOS RTOS)。它在处理过程中具有很高的响应能力和可预测性。但是如果你看看它的内部结构,你会发现它跳过了很多错误处理过程,它可以产生的最大进程数量门槛很低,也就是说,有很多剩余的CPU计算能力总是保留下来,以确保反应能力在那里。当然,当你将数字推到极限(例如,产生大量进程)时,LynxOS的实时行为不再显示出来。

当你编码时只应用很多常识.....