实时系统概念证明项目

时间:2009-04-01 18:03:41

标签: real-time

我正在学习关于实时系统设计的入门课程(3个月),但任何实现。

我想建立一些东西,让我更好地理解我将在理论上学到什么,但由于我从未做过任何实时系统,我无法估计任何项目需要多长时间。鉴于我的可用时间和知识,这将是一个概念证明项目,或类似的东西。

拜托,你能给我一些想法吗?提前谢谢。

我在TSQL,Delphi和C#中编程,但在学习另一种语言时我没有任何问题。

4 个答案:

答案 0 :(得分:3)

建议您考虑探索Real-Time Specification for Java (RTSJ)。虽然它不是构建实时软件的传统环境,但它是一种备受关注的新兴技术。更好的是,您可以目睹一些关于实时系统中哪些重要和哪些不重要的争论。

Sun的JavaRTS可免费下载,并有一些有趣的演示可用于显示确定性行为,并展示他们的RT垃圾收集器。

就具体项目而言,我建议你从简单开始:1)构建一个工作生成器,你可以调整它以消耗给定的CPU时间; 2)将其放入一个框架中,该框架可以生成工作生成器任务的分布(作为线程,或者作为线程中执行的工作块)和用于记录生成的工作的机制; 3)制作执行时间,逗留时间,截止日期,这些任务的松弛/超限与其优先级相关的图表; 4)证明在实时线程(副分时)环境中运行的任务表现不同。

如果您可以通过确定提供的负载(工作生成器任务产生的总CPU时间除以挂钟时间)来确定调度程序中的开销,那么您的任务就会开始错过最后期限。

答案 1 :(得分:2)

尝试考虑时间要求严格的实时任务,例如视频播放,如果任务未及时完成(例如计算下一帧),则会失败。

您也可以考虑一些工业解决方案,但在您当地的环境中学习可能更困难。

答案 2 :(得分:1)

您绝对应该考虑使用配备小型处理器(ARM,PIC,AVR,任何人都可以)的硬件开发板构建您的系统。当我开始开发时,这确实有助于消除我对低级别的恐惧。你必须使用C或C ++。

然后您将有两种选择:要么使用裸机,要么使用实时操作系统。

走向裸机,你可以学习:

  • 如何从头开始处理您的处理器,最重要的是如何使用中断,这是您响应外部事件的最快方式
  • 如何使用快速上下文切换实现轻量级线程,这是每个实时操作系统实现的内容
  • 为了简化这一点,请查找包含大量文档和源代码的开发工具包。我使用嵌入式艺术家ARM板,他们给你很多材料。

使用RT OS:

  • 您将快速跟踪您的项目,并将能够学习如何微调RT OS
  • 您可以尝试使用开源操作系统,例如Linux或BSD,并从源代码中学到很多东西

无论选择是好的,你都会得到一个非常酷的实践项目,以展示并希望更好地理解你的课程材料。祝你好运!

答案 3 :(得分:0)

由于大多数实时系统仍然使用C或C ++实现,因此了解这些编程语言可能会更好。许多实时系统也是嵌入式系统,因此您可能想要使用像BeagleBoard(http://beagleboard.org/)这样的廉价开源系统。这也将使您有机会了解交叉编译等。