¿Qué es exactamente una máquina de estados?
Máquina de estados es la abreviatura de autómata de estados finitos. Es un modelo matemático abstraído de las reglas de funcionamiento de las cosas reales.
Primero, expliquemos qué es “Estado”. Las cosas reales tienen diferentes estados. Por ejemplo, un LED tiene dos estados: encendido y apagado. Lo que solemos llamar máquina de estados es una máquina de estados finitos, es decir, el número de estados de las cosas que se describen es limitado. Por ejemplo, los estados de una luz LED son dos: encendido y apagado.
Máquina de estados, también conocida como StateMachine, no hace referencia a una máquina real, sino a un modelo matemático. Para decirlo sin rodeos, generalmente se refiere a un diagrama de transición de estado.
La máquina de estados está compuesta por un registro de estado y un circuito lógico combinacional. Puede realizar la transición de estado según el estado preestablecido según la señal de control. Es un centro de control que coordina las acciones de las señales relacionadas. y completa operaciones específicas. La abreviatura de máquina de estados finitos es FSM (Máquina de estados finitos), que se divide principalmente en dos categorías:
La primera categoría, si la salida solo está relacionada con el estado y no tiene nada que ver con la entrada. , se llama máquina de estados de Moore;
p>La segunda categoría, donde la salida no solo está relacionada con el estado sino también con la entrada, se llama máquina de estados de Mealy.
Una máquina de estados finitos es una máquina conceptual que realiza alguna acción en respuesta a un evento externo. La acción exacta tomada puede depender no sólo de los eventos recibidos, sino también del orden relativo en que ocurren. Esto es posible porque la máquina realiza un seguimiento de un estado interno, que actualiza cuando se reciben eventos. Las acciones tomadas en respuesta a un evento dependen no sólo del evento en sí, sino también del estado interno de la máquina. Además, las acciones realizadas determinan y actualizan el estado de la máquina. De esta manera, cualquier lógica se puede modelar como una secuencia de combinaciones de evento/estado.
Información ampliada:
Los cuatro grandes conceptos de máquinas de estados:
Estado. Una máquina de estados debe contener al menos dos estados. Por ejemplo, en el ejemplo de bombilla anterior, hay dos estados: la bombilla está encendida y la bombilla está apagada.
Evento, evento. Un evento es una condición de activación o contraseña para realizar una operación. Para una bombilla, "encender el interruptor" es un evento.
Acción, acción. Es necesario tomar medidas después de que ocurra el evento. Por ejemplo, el evento es "encender el interruptor" y la acción es "encender la luz". Al programar, una Acción generalmente corresponde a una función.
Transición, transformación. Es decir, pasar de un estado a otro. Por ejemplo, el "proceso de transformación de la luz" es una transformación.
Aplicaciones de las máquinas de estados:
Una máquina de estados es una abstracción del mundo real y es una abstracción matemática lógicamente rigurosa, por lo que obviamente es muy adecuada para su uso en el mundo digital. campo. Se puede aplicar a todos los niveles, como diseño de hardware, diseño de compiladores y programación para implementar diversas lógicas comerciales específicas.
Modelo de proceso de 5 estados:
La gestión de procesos es uno de los cinco subsistemas principales de Linux. Su implementación real es muy complicada. Los procesos cambian de estado.
Material de referencia: Enciclopedia Baidu-Máquina de estado