2010-05-10 29 views
0

任何人都可以帮助我了解常用于RTOS的设计模式吗?
在VXworks中,哪种模式更可取?常用于RTOS(VXworks)的设计模式

+9

方式。太。通用。 ...我说这是一个以前的VxWorks用户。膝盖混乱的答案是“任何模式解决问题。” – 2010-05-10 04:24:22

+1

更喜欢什么!?每种模式都有不同的用途,它们不可互换。使用解决问题的人 – Clifford 2010-05-10 18:43:41

+0

我不确定这个问题是否值得赞成,但我建议您根据我的建议对其进行修改,以防止其他合理的问题得到不好的分数。 – Clifford 2010-05-28 08:35:37

回答

7

我们可以忽略你的问题,第二句?这是没有意义的,也许是对设计模式的误解。然而,第一部分很有趣。也就是说,我将其推广到覆盖实时系统而不是RTOS。

许多最熟悉的模式是机械的,但在实时系统中更高层次的架构模式也很重要。

Bruce Powell Douglass可能是对的模式进行实时系统这一主题的最重要作者。如果你想要的是什么,他不得不在随后的Embedded.com阅读this article主题说的味道(这是三个系列的第三部分,请务必仔细阅读前两个为好,因为他们还对主题触摸,(1)(2) )。您也可以访问Embedded.com并在搜索框中输入“设计模式”,还有一些关于该主题的特定模式和一般文章的文章。

尽管我认为您对“RTOS(VxWorks)”的请求模式的要求很高,但我特别使用的VxWorks模式是FacadeAdapter模式。部分提供OO API,并提供一定级别的RTOS不可知抽象。随后为Segger emBOS实现了最终的类(以允许我们运行更小,成本更低,免版税的RTOS),并且Windows和Linux都允许在更强大的工具的更丰富的环境中测试,调试和模拟代码。设置在Wikipedia,其中许多将适用于实时系统

的非穷尽很多模式的列表。列出的并发模式最为明显。

6

正如Mike DeSimone所评论的那样,过于通用。但是,对于RTOS(不仅仅是VxWorks),要记住几件事情。

  1. 避免做过多的ISR。如果可能的话,将一些处理传递给等待的任务。
  2. 保持多线程最佳。太多,你有背景切换的开销。太少,你的问题解决方案可能会很复杂。
+0

+1。第一个实际上是RTOS的设计模式,但也是其他操作系统驱动程序。有人应该想出一个好名字和一个适当的模式描述。 (即:你什么时候需要它,准确地做什么,等等) – MSalters 2010-05-10 10:44:38

+0

许多操作系统中的第一个项目被称为“延期服务程序”。 – 2010-05-10 20:41:51

+0

eCos将它们称为中断服务例程和延期服务例程。 Linux调用然后是上半部分和下半部分,IIRC。但是这些不是RTOS的模式......这些模式是用于*驱动程序的。* – 2010-05-11 18:20:55

1

另一个重要方面是让RTOS保持可预测性并且可以让用户理解。通常情况下,您会看到固定优先级的调度程序不会公平或不具有适应性,而是完全按照所讲的方式执行,如果您搞砸优先级并挨饿某些任务,那就这样做吧。完成内核操作的时间往往很短并且可以预测,通常记录下它们最糟糕的执行时间。