状态机到底是什么

状态机到底是什么,第1张

状态机是有限状态自动机的简称,是现实事物运行规则抽象而成的一个数学模型。

先来解释什么是“状态”(State)。现实事物是有不同状态的,例如一个LED等,就有亮和灭两种状态。我们通常所说的状态机是有限状态机,也就是被描述的事物的状态的数量是有限个,例如LED灯的状态就是两个亮和灭。

状态机,也就是StateMachine,不是指一台实际机器,而是指一个数学模型。说白了,一般就是指一张状态转换图。

状态机由状态寄存器和组合逻辑电路构成,能够根据控制信号按照预先设定的状态进行状态转移,是协调相关信号动作、完成特定 *** 作的控制中心。有限状态机简写为FSM(Finite State Machine),主要分为2大类:

第一类,若输出只和状态有关而与输入无关,则称为Moore状态机;

第二类,输出不仅和状态有关而且和输入有关系,则称为Mealy状态机。

有限状态机是一种概念性机器,它能采取某种 *** 作来响应一个外部事件。具体采取的 *** 作不仅能取决于接收到的事件,还能取决于各个事件的相对发生顺序。之所以能 做到这一点,是因为机器能跟踪一个内部状态,它会在收到事件后进行更新。为一个事件而响应的行动不仅取决于事件本身,还取决于机器的内部状态。另外,采取 的行动还会决定并更新机器的状态。这样一来,任何逻辑都可建模成一系列事件/状态组合。

扩展资料:

状态机的四大概念:

State,状态。一个状态机至少要包含两个状态。例如上面灯泡的例子,有灯泡亮和灯泡灭两个状态。

Event,事件。事件就是执行某个 *** 作的触发条件或者口令。对于灯泡,“打开开关”就是一个事件。

AcTIon,动作。事件发生以后要执行动作。例如事件是“打开开关”,动作是“开灯”。编程的时候,一个AcTIon一般就对应一个函数。

TransiTIon,变换。也就是从一个状态变化为另一个状态。例如“开灯过程”就是一个变换。

状态机的应用:

状态机是一个对真实世界的抽象,而且是逻辑严谨的数学抽象,所以明显非常适合用在数字领域。可以应用到各个层面上,例如硬件设计,编译器设计,以及编程实现各种具体业务逻辑的时候。

进程5状态模型:

进程管理是Linux五大子系统之一,非常重要,实际实现起来非常复杂,我们来看下进程是如何切换状态的。

参考资料:

百度百科-状态机

Finite State Machine (FSM)有限状态机。在数字电路系统中,有限状态机是一种十分重要的时序逻辑电路模块。

有限状态机是指输出取决于过去输入部分和当前输入部分的时序逻辑电路。一般来说,除了输入部分和输出部分外,有限状态机还含有一组具有“记忆”功能的寄存器,这些寄存器的功能是记忆有限状态机的内部状态,它们常被称为状态寄存器。在有限状态机中,状态寄存器的的下一个状态不仅与输入信号有关,而且还与该寄存器的当前状态有关,因此有限状态机又可以认为是组合逻辑和寄存器逻辑的一种组合。其中,寄存器逻辑的功能是存储有限状态机的内部状态;而组合逻辑有可以分为次态逻辑和输出逻辑两部分,次态逻辑的功能是确定有限状态机的下一个状态,输出逻辑的功能是确定有限状态机的输出。

在实际的应用中,根据有限状态机是否使用输入信号,设计人员经常将其分为Moore型有限状态机和Mealy型有限状态机两种类型。1 Moore型有限状态机 其输出信号仅与当前状态有关,即可以把Moore型有限状态的输出看成是当前状态的函数。2 Mealy型有限状态机 其输出信号不仅与当前状态有关,而且还与所有的输入信号有关,即可以把Mealy型有限状态机的输出看成是当前状态和所有输入信号的函数。

----------------------------------------------------------------------------------------------------

以上内容来源于Baidu搜索。你的问题去看书是最好的解决方法,半天没人给你回复,是因为这个问题不是一两句话能说清楚。但你需要注意下,FSM在RTL级用的很多,都是通过综合工具自动去转换为硬件电路,适用于对数字电路能力不是特别熟悉的人。当你熟练掌握了数字电路,一般都是自己来写想要的硬件电路,这样效果是最好的。

关于状态机的一个极度确切的描述是它是一个有向图形,由一组节点和一组相应的转移函数组成。

状态机通过响应一系列事件而“运行”。

每个事件都在属于“当前” 节点的转移函数的控制范围内,其中函数的范围是节点的一个子集。

函数返回“下一个”(也许是同一个)节点。

这些节点中至少有一个必须是终态。

当到达终态, 状态机停止。

包含一组状态集(states)、一个起始状态(start state)、一组输入符号集(alphabet)、一个映射输入符号和当前状态到下一状态的转换函数(transition function)的计算模型。

当输入符号串,模型随即进入起始状态。

它要改变到新的状态,依赖于转换函数。

在有限状态机中,会有有许多变量,例如,状态 机有很多与动作(actions)转换(Mealy机)或状态(摩尔机)关联的动作,多重起始状态,基于没有输入符号的转换,或者指定符号和状态(非定有 限状态机)的多个转换,指派给接收状态(识别者)的一个或多个状态,等等。

传统应用程序的控制流程基本是顺序的:遵循事先设定的逻辑,从头到尾地执行。

很少有事件能改变标准执行流程;而且这些事件主要涉及异常情况。

“命令行实用程序”是这种传统应用程序的典型例子。

另一类应用程序由外部发生的事件来驱动——换言之,事件在应用程序之外生成,无法由应用程序或程序员来控制。

具体需要执行的代码取决于接收到的事件,或者它 相对于其他事件的抵达时间。

所以,控制流程既不能是顺序的,也不能是事先设定好的,因为它要依赖于外部事件。

事件驱动的GUI应用程序是这种应用程序的典 型例子,它们由命令和选择(也就是用户造成的事件)来驱动。

Web应用程序由提交的表单和用户请求的网页来驱动,它们也可划归到上述类 别。

但是,GUI应用程序对于接收到的事件仍有一定程度的控制,因为这些事件要依赖于向用户显示的窗口和控件,而窗口和控件是由程序员控制的。

Web应用 程序则不然,因为一旦用户采取不在预料之中的 *** 作(比如使用浏览器的历史记录、手工输入链接以及模拟一次表单提交等等),就很容易打乱设计好的应用程序逻辑。

显然,必须采取不同的技术来处理这些情况。

它能处理任何顺序的事件,并能提供有意义的响应——即使这些事件发生的顺序和预计的不同。

有限状态机正是为了满足这方面的要求而设计的。

有限状态机是一种概念性机器,它能采取某种 *** 作来响应一个外部事件。

具体采取的 *** 作不仅能取决于接收到的事件,还能取决于各个事件的相对发生顺序。

之所以能 做到这一点,是因为机器能跟踪一个内部状态,它会在收到事件后进行更新。

为一个事件而响应的行动不仅取决于事件本身,还取决于机器的内部状态。

另外,采取 的行动还会决定并更新机器的状态。

这样一来,任何逻辑都可建模成一系列事件/状态组合。

以上就是关于状态机到底是什么全部的内容,包括:状态机到底是什么、EDA中的状态机是什么、状态机的概念是什么等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10143402.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存