Modelado de sistemas concurrentes

Anuncio
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.
Descargar