Máquinas de estados finitos

Slides:



Advertisements
Presentaciones similares
Introducción ¿Qué es un Algoritmo?
Advertisements

Tabla de Contenido Concurrencia.
Basado en Redes de Petri
Diagrama de estado Alumnos: Hernández Darwin ( )
UML para programadores Java
I.T.E.S.R.C. Romina Tamez Andrea Martínez Ma. De Lourdes Solís
Máquinas de Estado Finito
MATEMÁTICAS DISCRETAS.
A Theory of Action for MultiAgent Planning Michael Georgeff.
Fundamentos de Ingeniería de Software
A fly… PROCESOS Y SISTEMAS DE CONTROL.
Representación en espacio de estado
ALGORÍTMICA Dpto. Ingeniería de Sistemas y Automática
SISTEMAS OPERATIVOS UNIDAD 1..
Sistemas Distribuidos “Técnicas de Especificación Formal”
CLASIFICACION DE LAS MAQUINAS DE TURING
ANALISIS SINTACTICO El análisis gramatical es la tarea de determinar la sintaxis, o estructura, de un programa. Por esta razón también se le conoce como.
UML Diagramas. Diagramas de Interacción Muestran como los objetos de la aplicación cooperan e interactúan para cumplir con los requisitos. Suele construirse.
3GIO – 3º Generación de entrada/salida Autores: Beltramo Ezequiel Santana Cabrera Bentejuí.
ALGORITMOS es un conjunto preescrito de instrucciones o reglas bien definidas, ordenadas y finitas que permite realizar una actividad mediante pasos.
MATEMATICAS DISCRETAS
HILOS Y COMUNICACIÓN ENTRE PROCESOS
AED I. Estructuras de Datos.
Facultad de Ingeniería Manufactura Integrada Por Computador II
Sistemas a Eventos Discretos
Grafos. Un Grafo G es un par de conjuntos (V, E), donde V es un conjunto no vacío de elementos llamados vértices o nodos y E es un conjunto formado por.
PROPIEDADES DE LAS REDES DE PETRI
Concurrencia: Exclusión Mútua y Sincronización
Una introduccion a las redes de Petri
2. ASYNCRONOUS TRANSFER MODE 2.1Características generales 2.2 Modelo de referencia del protocolo 2.3 Categorías de servicio ATM.
Cadenas de Markov de Tiempo Discreto
Universidad de los Andes-CODENSA
Análisis y Diseño Orientado a Objetos utilizando UML CAPITULO V DISEÑO DE SISTEMAS ORIENTADOS A OBJETOS.
Unidad III Administración de procesos
Problemas, algoritmos y programas: Modelar: Simular o programar su solución en un computador. Algoritmos: Es un conjunto finito, y no ambiguo de etapas.
Clase 10: Estructuras de datos y arreglos.
Modelado de Sistemas a Eventos Discretos.
Recurso “Estacionamiento Díaz Carmona Alberto Lizeth Chavira
Administración de Memoria
UNIDAD 2. ALGORITMOS Y ESTRUCTURAS DE DATOS.
INVESTIGACION DE OPERACIONES
Gestión de procesos Sistemas Operativos Edwin Morales
Sincronización de Procesos
DIAGRAMA DE ACTIVIDADES. NOTA: NOTA: Un diagrama de actividades es básicamente una proyección de los elementos de un grafo de actividades, un caso especial.
- 1 - Sistema Embebidos: Propiedades de los Lenguajes y SDL Agustín J. González 1s06 Se ha tomado como base el material generado por Peter Marwedel de.
Sistemas, Procesos y Modelos
J. García Martín 22/06/ SISTEMAS DE TIEMPO REAL Especificación formal de sistemas. Statecharts.
Redes de Petri - Introducción Dr Chris Ling School of Computer Science & Software Engineering Monash University (Traducido por Cesáreo Raimúndez)
Automatización Es la tecnología utilizada para realizar procesos o procedimientos sin la ayuda de las personas.
Villahermosa, Tab. 21 septiembre MATERIA: Investigacion de operaciones TEMA: Lineas de espera ALUMNOS: Maria isabel vega chanona HORA: 11:00 am a.
UML 2.0 Diagramas de Comportamiento
Modelo Dinámico (I) Prof. Leonid Tineo Departamento de Computación
Sistemas de eventos discretos.
TCP garantiza que la información es recibida en orden. Para ello, cada paquete enviado tiene un número de secuencia. Cada uno de los dos procesos involucrados.
DIAGRAMA DE SECUENCIA Y ACTIVIDADES.
Facultad de Ingeniería Manufactura Integrada Por Computador II.
2.1 DEFINICIONES CARACTERÍSTICAS Y SUPOSICIONES.
PROGRAMACIÓN ESTRUCTURADA LOS DIAGRAMAS DE ESTADO
INTERRUPCIONES – ABRAZO MORTAL
¿QUE ES EL DIAGRAMA DE ESTADO ?
Unidad 2 “Automatización del Flujo de Trabajo”
* Cuando nos permite desarrollar un programa que necesitamos para tomar un conjunto de buenas prácticas para hacer eso. Esto se debe a que podemos ahorrar.
UNIDAD 2: “Características del Modelado UML” CONTENDIDO Elaborado por: Ingeniero Harold Cabrera Meza Actualizado por: Ingeniero Nilson Albeiro Ferreira.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS GUI.
Especificación del sistema TIENE COMO OBJETIVOS: Describir el proceso por medio del cual se transforma una declaracion de requisitos del cliente en una.
Curso: Fundamentos de Computación
Asignaciones DHCP, Tipos. 07/10/20121Jesús Torres Cejudo.
Módulo 7: Resolución de nombres NetBIOS mediante el Servicio de nombres Internet de Windows (WINS)
Ing. José David Ortiz Salas
Análisis de las Redes de Petri
Transcripción de la presentación:

Máquinas de estados finitos

Características Simple Formal Operacional Número finito de estados

Definición Una máquina de estados finitos M consiste de: Un conjunto finito de estados, Q; Un conjunto finito de entradas, I; Una función de transición δ: Q  I  Q. δ puede ser una función parcial

Representación gráfica Grafo nodos representan los estados; un arco rotulado i va del estado q a q’ si y sólo si δ(q, i) = q’. Q = {q0, q1, q2, q3} I = {a, b, c} δ(q0, a) = q1 δ(q1, a) = q2 δ(q1, b) = q3 δ(q2, b) = q3 δ(q3, c) = q0

MEF que modela el switch de una lámpara Modelado con una MEF MEF que modela el switch de una lámpara

Modelado con una MEF Una planta química. Los niveles de temperatura y de presión deben ser monitoreados por razones de seguridad. Se han instalado sensores para generar señales adecuadas cuando alguno de dichos niveles excede un valor predefinido. Política trivial: cuando alguna de las señales es originada por el correspondiente sensor, el sistema de control apaga la planta y emite una señal de alarma; el sistema es re-iniciado manualmente cuando la causa de la falla ha sido corregida.

Modelado con una MEF

Modelado con una MEF Cuando se origina alguna de las dos señales, se invoca automáticamente una acción de recuperación (existe una “acción de temperatura” y una “acción de presión”).

Modelado con una MEF Si, después de un rato, la acción de recuperación tiene éxito, el sistema es automáticamente re-inicializado al estado “normal” y un mensaje de “todo OK” es emitido.

Modelado con una MEF Si la recuperación no tiene éxito, la señal de alarma debe ser lanzada y la planta debe ser apagada.

Modelado con una MEF El sistema debe también ser apagado si se está tratando de recuperar de algún tipo de anormalidad (de temperatura o presión) y la otra señal aparece.

Limitaciones de las MEF Limitación: Número finito de estados. Soluciones: No describir todos los detalles del sistema. Cambiar de herramienta de modelado. Enriquecer la notación.

Limitaciones de las MEF Sistema productor-consumidor Un proceso productor produce mensajes y los graba en un buffer. Un proceso consumidor lee mensajes y los saca de dicho buffer (consume). Si el buffer está lleno, el productor debe esperar hasta que el consumidor lo haya vaciado. Si el buffer está vacío, el consumidor debe esperar hasta que el productor coloque un mensaje en el buffer.

DTE - Una primera aproximación (a) proceso productor; (b) proceso consumidor; (c) buffer. Suponemos un buffer con capacidad para 1 mensaje.

DTE para Productor-Consumidor

DTE para Productor-Consumidor

DTE para Productor-Consumidor

DTE para Productor-Consumidor

DTE para Productor-Consumidor

DTE para Productor-Consumidor

DTE para Productor-Consumidor

DTE para Productor-Consumidor

DTE para Productor-Consumidor

Problemas en el modelo Tamaño: n subsistemas cada uno con ki estados, sistema resultante k1 k2  ...  kn estados. Modelo sincrónico. El sistema está siempre en un único estado y ejecuta exactamente una única acción en cada instante de tiempo, sin embargo por ej. no hay razón para imponer tal serialización entre la acción “produce” y la acción “consume” (las transiciones deberían ocurrir asincrónicamente).

Introducción a las Redes de Petri

Redes de Petri Notación formal, operacional, gráfica. Sistemas asincrónicos y concurrentes.

Redes de Petri - Definición Una Red de Petri es un multigrafo bipartito dirigido representado por una cuádrupla PN = <P, T, I, O> donde P = {p1, p2, ..., pn} conjunto finito de lugares (places), n  0 T = {t1, t2, ..., tm} conjunto finito de transiciones, m  0 I: T  P P denota los multisets o bolsas de P. pi  I(tj) si existe un arco de pi a tj O: T  P pi  O(tj) si existe un arco de tj a pi

Ejemplo 1 p1 p2 P = {p1, p2, p3, p4, p5, p6, p7} T = {t1, t2, t3, t4, t5, t6} I(t1) = {p1} O(t1) = {p4} I(t2) = {p2} O(t2) = {p5} I(t3) = {p3, p4} O(t3) = {p6} I(t4) = {p3, p5} O(t4) = {p7} I(t5) = {p6} O(t5) = {p1, p3} I(t6) = {p7} O(t6) = {p2, p3} t1 t2 p3 p4 p4 p5 t3 t4 p6 p7 t5 t6

Ejemplo 2 p1 p2 t1 P = {p1, p2} T = {t1} I(t1) = {p1, p1} O(t1) = {p2, p2, p2}

Si un arco va desde un place a una transición, al place se lo llama input place (lugar de entrada) de la transición. Si un arco va desde una transición a un place, al place se lo llama output place (lugar de salida) de la transición.

Redes de Petri Marcación y ejecución Una red de Petri recibe su estado marcando sus places. Una marcación (marking) consiste en asignar un número entero no negativo de tokens a cada place. En las redes tradicionales de Petri los tokens son indistinguibles y no representan información específica.

Ejemplo de red marcada   p1 p2 t1 P = {p1, p2} T = {t1} I(t1) = {p1, p1} O(t1) = {p2, p2, p2}

Marcación Una marcación de una Red de Petri PN = <P, T, I, O> es una función: : P  {0, 1, 2, ...} que asigna un número entero no negativo de tokens a cada place de la red.

Marcación Una marcación puede representarse como un vector de dimensión n (n es el número de lugares de la red).   p1 p2 t1 (p1) = 2 (p2) = 0  = (2,0)

Red de Petri marcada Una Red de Petri marcada M = <PN, > es un una estructura de Red de Petri PN = <P, T, I, O> y un marking .

p1 p2 • • P = {p1, p2, p3, p4, p5, p6, p7} T = {t1, t2, t3, t4, t5, t6} I(t1) = {p1} O(t1) = {p4} I(t2) = {p2} O(t2) = {p5} I(t3) = {p3, p4} O(t3) = {p6} I(t4) = {p3, p5} O(t4) = {p7} I(t5) = {p6} O(t5) = {p1, p3} I(t6) = {p7} O(t6) = {p2, p3}  = (1, 1, 1, 0, 0, 0, 0) t1 t2 p3 p4 p5 • t3 t4 p6 p7 t5 t6

Ejecución de una Red de Petri Durante la ejecución de la red el número y posición de los tokens puede variar dando lugar a una nueva marcación. Cada marcación corresponde a un estado de la red.

Reglas de Ejecución    Una transición puede disparar si está habilitada. Una transición está habilitada si en cada uno de sus input places existen al menos tantos tokens como arcos existan desde el place a la transición.   p1 p2 t1  t1 no habilitada t1 habilitada, puede disparar

Reglas de Ejecución Cuando una transición dispara, en cada uno de sus input places se remueven tantos tokens como arcos existan desde el input place hacia la transición, y en cada uno de los output places de la transición se insertan tantos tokens como arcos existan desde la transición al output place.  p1 p2 t1  Disparó t1 p3 p4

Reglas de Ejecución Formalmente, una transición t  T está habilitada en una red de Petri PN = <P, T, I, O> sii p  I(t) : (p)  #(p, I(t)) donde #(p, I(t)) es el número de arcos desde p a t.

p  P : ’(p) = (p)  #(p, I(t)) + #(p, O(t)) Reglas de Ejecución Formalmente, el disparo de una transición t  T con un marking  resulta en un nuevo marking ’ definido por: p  P : ’(p) = (p)  #(p, I(t)) + #(p, O(t)) donde #(p, I(t)) es el número de arcos desde p a t. #(p, O(t)) es el número de arcos desde t a p.

Ejecución de una Red de Petri • t1 t2 t3 t4 t5 t6 p4 p3 p5 p7 p6 0 = (1, 1, 1, 0, 0, 0, 0) t1 y t2 están habilitadas.

Ejecución de una Red de Petri • 0 = (1, 1, 1, 0, 0, 0, 0) 1 = (0, 1, 1, 1, 0, 0, 0) t1 t2 p3 p4 p5 • • secuencia de disparos: (t1) t2 y t3 quedaron habilitadas. t3 t4 p6 p7 t5 t6

Ejecución de una Red de Petri 0 = (1, 1, 1, 0, 0, 0, 0) 1 = (0, 1, 1, 1, 0, 0, 0) 2 = (0, 0, 1, 1, 1, 0, 0) t1 t2 p3 p4 p5 • • • t3 t4 p6 secuencia de disparos: (t1,t2) t3 y t4 quedaron habilitadas. p7 t5 t6

Ejecución de una Red de Petri 0 = (1, 1, 1, 0, 0, 0, 0) 1 = (0, 1, 1, 1, 0, 0, 0) 2 = (0, 0, 1, 1, 1, 0, 0) 3 = (0, 0, 0, 1, 0, 0, 1) t1 t2 p3 p4 p5 • t3 t4 p6 p7 • secuencia de disparos: (t1,t2,t4) t6 quedó habilitada. t5 t6

Ejecución de una Red de Petri • 0 = (1, 1, 1, 0, 0, 0, 0) 1 = (0, 1, 1, 1, 0, 0, 0) 2 = (0, 0, 1, 1, 1, 0, 0) 3 = (0, 0, 0, 1, 0, 0, 1) 4 = (0, 1, 1, 1, 0, 0, 0) t1 t2 p3 p4 p5 • • t3 t4 p6 p7 secuencia de disparos: (t1,t2,t4,t6) t2 y t3 quedaron habilitadas. ... t5 t6

Ejecución de la Red de Petri La secuencia de disparos dada es una de las posibles secuencias, no la única. El modelo es no determinístico, en el sentido que dado un marking inicial 0 distintas evoluciones de la red son posibles.

Ejecución de una Red de Petri t1 siempre habilitada

Modelado con Redes de Petri Una transición, usualmente, modela un evento o acción. El disparo de la transición representa la ocurrencia de tal evento o la ejecución de la acción. Una transición está habilitada, si se satisfacen las condiciones necesarias para la ocurrencia de tal evento o acción. La presencia de tokens en los input places modelan tales condiciones.

Modelado con Redes de Petri • • Eventos del proceso 1 t1 t2 p3 p4 p5 • t1 = proceso 1 solicita recurso t3 = proceso 1 toma recurso t5 = proceso 1 libera recurso t3 t4 p6 p7 t5 t6

Modelado con Redes de Petri • • Eventos del proceso 2 t1 t2 p3 p4 p5 • t2 = proceso 2 solicita recurso t4 = proceso 2 toma recurso t6 = proceso 2 libera recurso t3 t4 p6 p7 t5 t6

Modelado con Redes de Petri • • t1 t2 p3 p4 p5 • p3 representa la disponibilidad o no de un recurso. t3 t4 p6 p7 t5 t6

Modelado con Redes de Petri Transiciones concurrentes • • t1 t2 t1 y t2 habilitadas y el disparo de una no deshabilita la otra => concurrentes p3 p4 p5 • t3 t4 p6 p7 t5 t6

Modelado con Redes de Petri Transiciones en conflicto t3 y t4 habilitadas y el disparo de una deshabilita la otra => en conflicto p3 p4 p5 • • • t3 t4 p6 p7 t5 t6

Modelado con Redes de Petri Starvation • secuencia de disparos: (t2) t1 t2 p3 p4 p5 • • t3 t4 p6 p7 t5 t6

Modelado con Redes de Petri Starvation • secuencia de disparos: (t2,t4) t1 t2 p3 p4 p5 t3 t4 p6 p7 • t5 t6

Modelado con Redes de Petri Starvation • secuencia de disparos: (t2,t4,t6) • t1 t2 p3 p4 p5 • t3 t4 p6 p7 t5 t6

Modelado con Redes de Petri Starvation • secuencia de disparos: (t2,t4,t6,t2) t1 t2 p3 p4 p5 • • t3 t4 p6 p7 t5 t6

Modelado con Redes de Petri Starvation • secuencia de disparos: (t2,t4,t6,t2,t4) t1 t2 p3 p4 p5 t3 t4 p6 p7 • t5 t6

Modelado con Redes de Petri Starvation • secuencia de disparos: (t2,t4,t6,t2,t4,t6,...)  starvation de proceso 1 • t1 t2 p3 p4 p5 • t3 t4 p6 p7 t5 t6

Modelado con Redes de Petri Deadlock • p1 p2 t1 t2 • • t1: proc1 solicita ambos recursos t3’: proc1 toma un recurso t3’’: proc1 toma otro recurso t5: proc1 libera ambos recursos t2: proc2 solicta ambos recursos t4’: proc2 toma un recurso t4’’: proc2 toma otro recurso t6: proc2 libera ambos recursos

Modelado con Redes de Petri Una posible ejecución sin deadlock • • • secuencia de disparos: (t1)

Modelado con Redes de Petri Una posible ejecución sin deadlock • t1 p3 t2 secuencia de disparos: (t1, t3’) p4 • p5 t3’ t4’ p6 p7 • t3’’ t4’’ p8 p9 t5 t6

Modelado con Redes de Petri Una posible ejecución sin deadlock • t1 p3 t2 secuencia de disparos: (t1, t3’, t3’’) p4 p5 t3’ t4’ p6 p7 t3’’ t4’’ p8 p9 • t5 t6

Modelado con Redes de Petri Una posible ejecución sin deadlock • • t1 p3 t2 secuencia de disparos: (t1, t3’, t3’’, t5) p4 • • p5 t3’ t4’ p6 p7 t3’’ t4’’ p8 p9 t5 t6

Modelado con Redes de Petri Una posible ejecución con deadlock • • • secuencia de disparos: (t1)

Modelado con Redes de Petri Una posible ejecución con deadlock secuencia de disparos: (t1, t2) p4 • • p5 • • t3’ t4’ p6 p7 t3’’ t4’’ p8 p9 t5 t6

Modelado con Redes de Petri Una posible ejecución con deadlock secuencia de disparos: (t1, t2, t3’) p4 • p5 • t3’ t4’ p6 p7 • t3’’ t4’’ p8 p9 t5 t6

Modelado con Redes de Petri Una posible ejecución con deadlock secuencia de disparos: (t1, t2, t3’, t4’) deadlock (ninguno de los procesos puede continuar) p4 p5 t3’ t4’ p6 p7 • • t3’’ t4’’ p8 p9 t5 t6

DTE para Productor-Consumidor Primera aproximación (a) proceso productor; (b) proceso consumidor; (c) buffer. Suponemos un buffer con capacidad para 1 mensaje.

PN para Productor-Consumidor Primera aproximación write c1 c2 read consume • p1 • p2 produce 1 write read •

DTE para Productor-Consumidor

PN para Productor-Consumidor produce • c1 c2 read consume 1 write

Limitaciones de las Redes de Petri tradicionales y algunas extensiones Limitación: los tokens son anónimos. p.e. la presencia de un token en un place puede denotar la presencia de un mensaje en un buffer pero no lo que el mensaje dice. Extensión: asignación de valores a tokens más asociación de predicados y acciones a las transiciones.

t1 habilitada: tuplas ready: (3,7) (3,4) elecciones no determinísticas p1 < p2 p4:=p2+p1 p2 = p3 p4:=p3-p2 p5:= p2+p3 t1 habilitada: tuplas ready: (3,7) (3,4) elecciones no determinísticas t2 habilitada: tuplas ready: (4, 4)

t2 habilitada: tuplas ready: (4, 4) 1 p3 4 4 p2 = p3 p4:=p3-p2 p5:= p2+p3 p1 < p2 p4:=p2+p1 t1 t2 p5 p4 10 sec. de disparos: (t1) t1 deshabilitada. t2 habilitada: tuplas ready: (4, 4)

p2 p1 p3 t1 t2 p5 p4 sec. de disparos: (t1, t2) p2 = p3 p1 < p2 10 8 sec. de disparos: (t1, t2)

Limitaciones de las Redes de Petri tradicionales y algunas extensiones Limitación: no se pueden fijar políticas de selección cuando varias transiciones están habilitadas. Extensión: asignación estática o dinámica de prioridades a las transiciones.

 t1 t2 p1 p2 p3 p5 p4 prioridad = 2 prioridad = 1 t1 y t2 habilitadas, dispara t2 porque tiene mayor prioridad.

Limitaciones de las Redes de Petri tradicionales y algunas extensiones Limitación: Problemas con el manejo del tiempo. p.e. un proceso envía mensajes a una cierta velocidad. Estos son colocados en un buffer y procesados. Si un mensaje no es tomado del buffer antes del arribo del próximo, es sobrescrito por el nuevo. Extensiones: Redes de Petri con tiempo donde a cada transición se le asocia un par <tmin, tmax> que indica el intervalo de tiempo dentro del cual debe disparar.

 t1 t2 p1 p2 p3 p5 p4 prioridad = 1 prioridad = 2 tmin = 1 tmin = 2 tmax = 3 prioridad = 1 tmin = 1 tmax = 4