现在的位置: 首页 > 综合 > 正文

关于有限状态机

2013年12月11日 ⁄ 综合 ⁄ 共 636字 ⁄ 字号 评论关闭
去年这个时候,也是已经开始做毕设了(今天也有人进实验室来做了);复习分布式时,第一次听说构建服务器还有第三种方式:用FSM 来做。以前一直以为除了最笨拙的顺序流之外,就只有依靠OS的多线程来做了。FSM?对于复杂的控制条件和众多的消息状态不会“爆炸”吗?像当年,做单片机的通信处理模块时,自以为是的采用FSM来设计,结果当需要修改通信协议时,检查switch-case/if-else的控制流让我白发突增……今天有幸搜到一片文章:为Linux应用构建有限状态机,文章介绍了两种FSM的辅助设计工具:

  • FSME是Linux下一个基于Qt的状态机建模工具,它能够自动生成状态机框架代码,并且同时支持C++和Python语言,通过网站 http://fsme.sourceforge.net/你可以了解到有关FSME的更多信息,并能够下载最新版本的FSME。
  • Qfsm也是一个运行在Linux下的状态机建模工具,它不仅提供了可视化的状态机编辑器,而且还能够对生成的状态机进行实时模拟,通过网站 http://qfsm.sourceforge.net/可以了解到Qfsm的更多信息。
  • 当然,FSM本身就是UML 重要组成部分。

          话说回来,FSM还是SISD(单指令流单数据流)体系下的产物,程序的执行过程完全在代码结构的控制之下,执行环境没有更多的干预(比如中断、上下文切换),比如在单片机上是没有多线程支持的,所以为了达到性能上的要求,采用非阻塞的通信操作,只能采用FSM设计模式。

    抱歉!评论已关闭.