Sistemas dependientes de datos Semana 10 Los valores de las variables cambian en función de condiciones tipo if-then-else. Para modelar a estos, se utilizan transiciones condicionales. Con este mecanismo podríamos incluir variables numéricas que indicen la disponibilidad de un producto, por ejemplo. Comparasiones aritméticas sobre e"os son nuevos átomos. Definiciones Un conjunto Var de variables con un tipo conocido. Booleana, caracter, entero, etc. El tipo se "ama el dominio de la variable ya que determina sus valores posibles a tomar. El conjunto de posibles evaluaciones es Eval(Var). El conjunto de posibles condiciones booleanas sobre las variables es Cond(Var), combinados con operadores lógicos. Grafo de programa (Loc, Act, Effect, ↪, Loc0, g0) Nodos: conjuntos de variables con su tipo asociado ∈ Loc. Aristas etiquetadas con condiciones y acciones. Effect : Act × Eval(Var) → Eval(Var) son los efectos. ↪ ⊆ Loc × Cond(Var) × Act × Loc es la relación condicional de transiciones. Loc0 ⊆ Loc son las ubicaciones iniciales. g0 ∈ Cond(Var) es la condicion inicial. Semántica de sistema de transiciones Para un grafo de programa se pueden definir su sistema de transiciones. Se toman las transiciones desde ↪ & Effect de forma sistemática. El conjunto de átomos es típicamente muy grande. Paralelismo Para la operación concurrente de múltiples sistemas de transición se ocupa un operador || que permite su combinación paralela. La manera en que se forma la secuencia (debido al scheduler si corren en el mismo procesador) de las acciones de cada una afecta fuertemente en la operación de la combinación. Para expresar esto en modelos formales, se ocupan los siguientes operadores: ; = ejecución secuencial. + = selección nondeterminista. ||| = ejecución concurrente. Comunicación Tarea Procesos paralelos se comunican a través de variables compartidas. Lean los ejemplos 2.29, 2.30, 2.32 del libro de texto para la segunda parte. Inventen su propio ejemplo simple. Acceso por exclusión mútua por consistencia. Partes de un sistema distribuido se comunican a través de mensajes. Retrasos y pérdidas; falta de un reloj compartido. Modélenlo como un sistema de transiciones o un grafo de programa, dependiendo de cuál sale más natural. De preferencia incluyendo por lo menos un diagrama. Puntos extra por incluir la representación en NanoPromela. Pueden hasta duplicar su puntaje máxima.