MODELIZACION  Y VERIFICACION DE UN ALGORITMO CONCURRENTE
UTILIZANDO LA NOTACIÓN:

SENIL

(Simple Extensible Net Input Language)
                             .
1. Descripción del problema
1.2. Descripción del lenguaje SENIL
1.3. Utilización del programa check
1.4 Ejercicio 1.1
1.5 Ejercicio 1.2
1.6 Proposiones atómicas
Grafo completo de la red
1.1. Descripción del problema.

Se pretende modelizar el algoritmo para resolver el problema de la exclusión mutua de Dekker mediante una red de Petri segura (marcado lugares 1-limitado). También se procurarán verificar las propiedades del modelo obtenido, de una manera similar a lo realizado en prácticas anteriores sobre 'model checking'.
 

1.2. Descripción del lenguaje SENIL.



Es un lenguaje adecuado para describir redes de Petri seguras (todos sus lugares son 1-limitados) de un tamaño no muy grande, un máximo de aprox. 100 nodos.  Se pretende codificar las redes de Petri directamente en este lenguaje, ésto es no vamos a utilizar ningún editor gráfico. No se necesita, para utilizarlo, más que conocer conceptos básicos acerca de redes de bajo-nivel (redes lugar-transición). Hablando de forma general, los datos necesarios para poder definir redes de Petri seguras será sólo información (de tipo textual) referida a: lugares, transiciones, arcos y marcado inicial de la red.

Por lo tanto, más abajo se puede observar qué elementos sintácticos tiene el lenguaje para definir una red de Petri segura:

 SENIL

El lenguaje es fácilmente extensible ya que cada información adicional necesaria para nuevas especificaciones puede ser añadida definiendo una palabra reservada especial nueva anates de la nueva información.

1.3. Utilización del programa check con SENIL


 

Se pide->

  1. Hay que modelizar el algoritmo de Dekker  en SENIL. Para ello necesitaremos el algoritmo descrito como una red de Petri segura.


 Los lugares del P9 al P14 denotan los distintos valores que pueden tomar las variables del algoritmo de Dekker. Por ejemplo, si el proceso 1 dispara la transición T1, entonces el valor de la variable flag1 debería ser 1. Es más, sabemos que el valor de flag1 es 0 antes de la ejecución de T1. Para modelizar este comportamiento dinámico correctamente, hemos de dibujar arcos de P9 a T1 y de T1 a P10. La transición T2 debería se disparada sólo si el proceso 1 permanece en el estado P2 (se encuentra marcado) y si el valor de la variable flag2 es 0 antes de la ejecución de T2. Por lo que hemos de dibujar un arco de P13 a T2. También, hemos de dibujar un arco de T2 a P13 ya que el valor de  flag2 no puede ser cambiado durante la ejecución de T2.

Con el motivo de no hacer demasiado complejo el gráfico, se han omitido todos los arcos de la red anterior que conectan los lugares P9 a P14.  Mirar más abajo si se quiere ver la red completa.
 

Con la información del grafo de la red, ha de ser relativamente fácil modelizar el algoritmo de Dekker utilizando SENIL.
 

  1. Utilizar los algoritmos: pep-dl, prod-dl, smv-dl, mcs-dl , para demostrar que el algoritmo de Dekker está libre de interbloqueo. Así como los algoritmos: prod-ltl, pep-llt, prod-ctl, etc., para comprobar las propiedades de vivacidad del algoritmo.

 

Proposiciones atómicas en formulas

Las proposiones atómicas pueden consistir en ... Las etiquetas deben de ir entre comillas.
 



Grafo completo de la red de Petri segura que representa el A. de Dekker.