有限状态机介绍剖析.pptVIP

  • 12
  • 0
  • 约6.13千字
  • 约 28页
  • 2020-07-19 发布于天津
  • 举报
有限状态机 2018/8/1 通信软件设计 第 2 页 1. 有限状态机的基本概念 2. 有限状态机编程方法 主要内容 2018/8/1 通信软件设计 第 3 页 状态机的引入 ? 状态机理论最初的发展在数字电路设计领域。 ? 在数字电路方面,根据输出是否与输入信号有关,状 态机可以划分为 Mealy 型和 Moore 型状态机。 Moore 型状态机的输出只和当前状态有关,和输入无关。 Mealy 型状态机的输入是由当前状态和输入共同决定。 ? 而在软件设计领域,状态机的理论俨然已经自成一体, 它经常用来描述一些复杂的算法,表明一些算法的内 部的结构和流程,更多的关注于程序对象的执行顺序。 2018/8/1 通信软件设计 第 4 页 ? 静态顺序结构 ? 动态结构 2018/8/1 通信软件设计 第 5 页 有限状态机 ? 有限自动机( Finite Automata Machine )是计算机科学 的重要基石,它在软件开发领域内通常被称作有限状态 机( Finite State Machine ),是一种应用非常广泛的软 件设计模式。 ? 有限状态机的作用主要是 描述对象在它的生命周期内所 经历的状态序列,以及如何响应来自外界的各种事件 。 ? 在现实中,有许多事情可以用有限个状态来表达,如 : 红绿灯、电话机等等。 其实,在资讯领域中,很多事情 都是由有限的状态所组成,再由于不同的输入而衍生出 各个状态。 2018/8/1 第 6 页 有限状态机 ? 有限状态机 FSM 思想广泛 应用 于 硬件控制 电路设计,也 是 软件 上常用的一种处理方法 ( 软件 上称为 FMM-- 有限 消息机 ) 。它把复杂的 控制 逻辑分解成 有限个 稳定状态, 在每个状态上判断事件,变连续处理为 离散 数字处理, 符合计算机的工作特点。 ? 同时,因为有限状态机具有有限个状态,所以可以在实 际的工程上实现。但这并不意味着其只能进行有限次的 处理,相反,有限状态机是闭环系统,有限无穷,可以 用有限的状态,处理无穷的事务。 2018/8/1 通信软件设计 第 7 页 有限状态机 — 例 1 ? 红绿灯 红绿灯运作的原理相当简单,从一开始绿灯,经过一段时间后, 将变为黄灯, 再隔一会儿,就会变成红灯,如此不断反覆。 其 FSM 如下。 2018/8/1 通信软件设计 第 8 页 有限状态机 — 例 2 ? 自动贩售机 假设有简单的一自动贩卖机贩售两类商品,一类售价 20 元, 另一类售价 50 元。 如果该贩卖机只能辨识 10 元及 50 元硬币。 一 开始机器处于 Hello 的状态,当投入 10 元时,机器会进入余额不足 的状态,直到投入的金额大于 20 元为止。 如果一次投入 50 元,则 可以选择所有的产品,否则就只能选择 20 元的产品。 完成选择后, 将会卖出商品并且找回剩余的零钱,随后,机器又将返回初始的状 态。 其 FSM 如下。 2018/8/1 通信软件设计 第 9 页 基本概念 ? 在描述有限状态机时,常会碰到的几个基本概念: ? 状态( State ) 指的是对象在其生命周期中的一种状况,处于 某个特定状态中的对象必然会满足某些条件、执行某些动作或 者是等待某些事件。 ? 事件( Event ) 指的是在时间和空间上占有一定位置,并且对 状态机来讲是有意义的那些事情。事件通常会引起状态的变迁, 促使状态机从一种状态切换到另一种状态。 ? 转换( Transition ) 指的是两个状态之间的一种关系,表明对 象将在第一个状态中执行一定的动作,并将在某个事件发生同 时某个特定条件满足时进入第二个状态。 ? 动作( Action ) 指的是状态机中可以执行的那些原子操作, 所谓原子操作指的是它们在运行的过程中不能被其他消息所中 断,必须一直执行下去。 2018/8/1 第 10 页 有限状态机模型 ? 通信协议建模 ? 基本出发点:认为通信协议主要是由响应多个“事件”的相对 简单的处理过程组成。 ? 状态转移图 ? 优点:简单明了,比较精确。 ? 缺点:对许多复杂的协议,事件数和状态数会剧增,处理困难。 2018/8/1 第 11 页 为什么使用有限状态机 ? 在面向对象的软件系统中,一个对象无论多么简单或者多么复杂,

文档评论(0)

1亿VIP精品文档

相关文档