Una Máquina de Estado Finito (Finite State
Machine), llamada también Autómata Finito es una abstracción computacional que
describe el comportamiento de un sistema reactivo mediante un número
determinado de Estados y un número determinado de Transiciones entre dicho
Estados.
Las Transiciones de un estado a otro se generan en respuesta a eventos de
entrada externos e internos; a su vez estas transiciones y/o subsecuentes
estados pueden generar otros eventos de salida. Esta dependencia de las
acciones (respuesta) del sistema a los eventos de entrada hace que las Máquinas
de Estado Finito (MEF) sean una herramienta adecuada para el diseño de Sistemas
Reactivos y la Programación Conducida por Eventos (Event Driven Programming),
cual es el caso de la mayoría de los sistemas embebidos basados en microcontroladores
o microprocesadores.
Las MEF se describen gráficamente mediante los llamados Diagramas de Estado
Finito (DEF), llamados también Diagramas de Transición de Estados.
Sistemas Reactivos
Un Sistema Reactivo es aquel que interactúa constantemente con su medio
ambiente, tiene la característica de ser conducido por eventos (event driven),
la respuesta de tiempo es crítica y una vez que el sistema se activa permanece
en ese estado de manera indefinida. En estos sistemas los eventos llegan en
tiempos impredecibles y el sistema debe tener la capacidad de responder de
manera inmediata, en el orden de los milisegundos o microsegundos, sobre todo
en sistemas donde la seguridad es crítica (ejemplo: un piloto automático en un
avión o una máquina para soporte de vida en un hospital).
La gran mayoría de los sistemas embebidos (en base a microcontroladores o
microprocesadores) corresponden a esta categoría, debido a que estos sistemas
están típicamente conectados a varios tipos de sensores y transductores de
entrada encargados de captar los estímulos del medio ambiente (temperatura,
presión, luz, magnetismo, fuerza / peso, etc.), procesar dicha información y
generar una respuesta del sistema hacia el medio ambiente a través de
transductores de salida y actuadores.
Sistemas Transformacionales
A diferencia de los
Sistemas Reactivos un Sistema Transformacional es aquel que recibe cierta
información de entrada, realiza una cierta cantidad de cómputo, produce cierta
información de salida y luego termina. No muchos sistemas embebidos caen en
esta categoría; ejemplo más típicos son las aplicaciones para PC, como por
ejemplo: Un procesador de texto.