我的问题是了解实时系统的编程。我对这个话题感到困惑。我的源代码可以做什么,不能做什么?我知道在源代码编程期间有一些做法,但我不确切知道是什么。一些例子。是否有可能使用动态内存分配(新)?是否可以实时访问磁盘?我可以使用哪种IPC(进程间通信)?我可以使用标准进程间锁定吗?文件锁定是什么?我在互联网上搜索但没找到我想要的东西。哪里可以更好地理解这个问题?我希望有一个人可以帮助我。对不起我的英语不好!
答案 0 :(得分:0)
你可以做你选择支持的语言/编译器。
你现在应该做什么,这实际上取决于目标系统是什么,你的程序是什么(你可以为我所知道的所有人编写操作系统)等等。
答案 1 :(得分:0)
实时系统完全是关于确定性 - 每个系统的固定时间。请查看此指南:
http://cs.brown.edu/~ugur/8rulesSigRec.pdf
What defines a real-time/near-real time system?
在软件方面(你的重点):
一个。避免在代码中缓冲或缓存。缓存意味着在第一次加速之后加速后续处理,但是这导致时间的不确定性。
湾最小化条件分支,因为它会产生不同的路径,导致不同的时序,这对时间敏感的组件尤其重要。
℃。避免异步或基于中断的设计。尽可能使用轮询 - 这将增加时间的可预测性。
d。尽可能使用实时操作系统(如LynxOS RTOS)。它在处理过程中具有很高的响应性和可预测性。但是如果你看一下它的内部结构,你会发现它跳过很多错误处理,它可以产生最大数量的进程的阈值很低等等。也就是说,总有很多备用CPU计算能力,以确保响应性就在那里。当然,当你将数字推到极限时(例如,产生大量进程),LynxOS的实时行为不再表现出来。
编码时应用了很多常识.....