francisco j. mart´ın mateos - dpto. ciencias de la ... · inicial de forma aleatoria de entre...

39
NuSMV: Interacci´on con el sistema Francisco J. Mart´ ın Mateos Dpto. Ciencias de la Computaci´on e Inteligencia Artificial Universidad de Sevilla Razonamiento Autom´ atico – 2013/2014 NuSMV: Interacci´ on con el sistema

Upload: dangthuy

Post on 13-Jul-2019

220 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Francisco J. Mart´ın Mateos - Dpto. Ciencias de la ... · inicial de forma aleatoria de entre todos los disponibles ... A model must be read before. ... ¬FG (luz=verde) Despu´es

NuSMV: Interaccion con el sistema

Francisco J. Martın Mateos

Dpto. Ciencias de la Computacion e Inteligencia ArtificialUniversidad de Sevilla

Razonamiento Automatico – 2013/2014 NuSMV: Interaccion con el sistema

Page 2: Francisco J. Mart´ın Mateos - Dpto. Ciencias de la ... · inicial de forma aleatoria de entre todos los disponibles ... A model must be read before. ... ¬FG (luz=verde) Despu´es

Sistema que atiende peticiones

Consideremos el modelo representado por el siguiente grafo

peticionocupado

peticionocupado

peticion

peticionlibre

libre

Razonamiento Automatico – 2013/2014 NuSMV: Interaccion con el sistema

Page 3: Francisco J. Mart´ın Mateos - Dpto. Ciencias de la ... · inicial de forma aleatoria de entre todos los disponibles ... A model must be read before. ... ¬FG (luz=verde) Despu´es

Sistema que atiende peticiones

Ejemplo simple ejemplo.smv

MODULE mainVAR

peticion : boolean;situacion : {libre, ocupado};

ASSIGNinit(situacion) := libre;next(situacion) := case

peticion : ocupado;TRUE : libre;

esac;

El modulo principal del modelo es el identificado como main

(Seccion MODULE)

La descripcion de los estados se realiza mediante un conjuntofinito de variables de dominio finito (Seccion VAR)

La descripcion de las transiciones se realiza indicando comocambian cada variable para pasar de un estado al siguiente(Seccion ASSIGN)

Razonamiento Automatico – 2013/2014 NuSMV: Interaccion con el sistema

Page 4: Francisco J. Mart´ın Mateos - Dpto. Ciencias de la ... · inicial de forma aleatoria de entre todos los disponibles ... A model must be read before. ... ¬FG (luz=verde) Despu´es

NuSMV como herramienta de simulacion

Simulacion...> NuSMV -int ejemplo.smv

*** This is NuSMV 2.4.3 zchaff...

NuSMV > goNuSMV >

La opcion -int pone en marcha el sistema NuSMV en modointeractivo cargando la especificacion almacenada en el ficheroejemplo.smv

El comando go carga la descripcion del modelo en el sistemaNuSMV

Razonamiento Automatico – 2013/2014 NuSMV: Interaccion con el sistema

Page 5: Francisco J. Mart´ın Mateos - Dpto. Ciencias de la ... · inicial de forma aleatoria de entre todos los disponibles ... A model must be read before. ... ¬FG (luz=verde) Despu´es

NuSMV como herramienta de simulacion

SimulacionNuSMV > pick_state -rNuSMV > print_current_state -vCurrent state is 1.1peticion = 1situacion = libreNuSMV > pick_state -iNuSMV > pick_state -i -v

*************** AVAILABLE STATES *************

================= State =================0) -------------------------

peticion = 1situacion = libre

================= State =================1) -------------------------

peticion = 0

Choose a state from the above (0-1): 0

Chosen state is: 0Current state is 2.1peticion = 1situacion = libre

Razonamiento Automatico – 2013/2014 NuSMV: Interaccion con el sistema

Page 6: Francisco J. Mart´ın Mateos - Dpto. Ciencias de la ... · inicial de forma aleatoria de entre todos los disponibles ... A model must be read before. ... ¬FG (luz=verde) Despu´es

NuSMV como herramienta de simulacion

El comando pick_state sirve para seleccionar el estado inicialdel modelo

La opcion -i permite seleccionar un estado inicial de entretodos los disponiblesLa opcion -r deja que el sistema NuSMV seleccione el estadoinicial de forma aleatoria de entre todos los disponiblesSin las opciones -i o -r la seleccion del estado inicial esrealizada de forma determinista por el sistema NuSMVLa opcion -v muestra informacion detallada sobre el estadoseleccionado

El comando print_current_state sirve para mostrar elestado actual (numero de traza y numero de estado), con laopcion -v se muestra tambien el valor de todas las variablesen dicho estado

Razonamiento Automatico – 2013/2014 NuSMV: Interaccion con el sistema

Page 7: Francisco J. Mart´ın Mateos - Dpto. Ciencias de la ... · inicial de forma aleatoria de entre todos los disponibles ... A model must be read before. ... ¬FG (luz=verde) Despu´es

NuSMV como herramienta de simulacion

SimulacionNuSMV > simulate -r 4 -v

******** Simulation Starting From State 2.1 ********Trace Description: Simulation TraceTrace Type: Simulation-> State: 2.1 <-

peticion = 1situacion = libre

-> Input: 2.2 <--> State: 2.2 <-

peticion = 1situacion = ocupado

-> Input: 2.3 <--> State: 2.3 <-

peticion = 0situacion = ocupado

-> Input: 2.4 <--> State: 2.4 <-

peticion = 1situacion = libre

-> Input: 2.5 <--> State: 2.5 <-

peticion = 0situacion = ocupado

Razonamiento Automatico – 2013/2014 NuSMV: Interaccion con el sistema

Page 8: Francisco J. Mart´ın Mateos - Dpto. Ciencias de la ... · inicial de forma aleatoria de entre todos los disponibles ... A model must be read before. ... ¬FG (luz=verde) Despu´es

NuSMV como herramienta de simulacion

El comando simulate sirve para evaluar el modelo

Se ha de indicar el numero de pasos de simulacion que sequieren darLa opcion -i permite seleccionar los estados de entre todos losdisponiblesLa opcion -r deja que el sistema NuSMV seleccione losestados de forma aleatoria de entre todos los disponiblesSin las opciones -i o -r la seleccion de los estados esrealizada de forma determinista por el sistema NuSMVLa opcion -p muestra la traza generada, indicando lasvariables que cambian de un estado al siguienteLa opcion -v muestra la traza generada, indicando todas lasvariables en todos los estados

Razonamiento Automatico – 2013/2014 NuSMV: Interaccion con el sistema

Page 9: Francisco J. Mart´ın Mateos - Dpto. Ciencias de la ... · inicial de forma aleatoria de entre todos los disponibles ... A model must be read before. ... ¬FG (luz=verde) Despu´es

NuSMV como herramienta de simulacion

SimulacionNuSMV > show_traces -tThere is 1 trace currently available.NuSMV > show_traces 1<!-- ################### Trace number: 1 ################### -->Trace Description: Simulation TraceTrace Type: Simulation-> State: 1.1 <-

peticion = 1situacion = libre

-> Input: 1.2 <--> State: 1.2 <-

situacion = ocupado-> Input: 1.3 <--> State: 1.3 <-

peticion = 0-> Input: 1.4 <--> State: 1.4 <-

peticion = 1situacion = libre

-> Input: 1.5 <--> State: 1.5 <-

peticion = 0situacion = ocupado

Razonamiento Automatico – 2013/2014 NuSMV: Interaccion con el sistema

Page 10: Francisco J. Mart´ın Mateos - Dpto. Ciencias de la ... · inicial de forma aleatoria de entre todos los disponibles ... A model must be read before. ... ¬FG (luz=verde) Despu´es

NuSMV como herramienta de simulacion

El comando show_traces sirve para mostrar informacion sobrelas trazas realizadas en el sistema

La opcion -t muestra el numero total de trazas realizadasLa opcion -v muestra la traza generada, indicando todas lasvariables en todos los estadosSin la opcion -v solo se muestran las variables que cambian deun estado al siguienteLa opcion -a muestra todas las trazas generadasCon un argumento numerico se muestra la trazacorrespondiente

Razonamiento Automatico – 2013/2014 NuSMV: Interaccion con el sistema

Page 11: Francisco J. Mart´ın Mateos - Dpto. Ciencias de la ... · inicial de forma aleatoria de entre todos los disponibles ... A model must be read before. ... ¬FG (luz=verde) Despu´es

NuSMV como herramienta de simulacion

SimulacionNuSMV > resetNuSMV > show_traces -tThere are no traces currently available.NuSMV > pick_state -rA model must be read before. Use the "read_model" command.NuSMV > quit

El comando reset elimina todos los datos correspondientes almodelo cargado (descripcion y trazas)

El comando quit sale del modo interactivo

Razonamiento Automatico – 2013/2014 NuSMV: Interaccion con el sistema

Page 12: Francisco J. Mart´ın Mateos - Dpto. Ciencias de la ... · inicial de forma aleatoria de entre todos los disponibles ... A model must be read before. ... ¬FG (luz=verde) Despu´es

Un semaforo simple

Especificacion en NuSMV de un semaforo simple

Tiene tres luces, roja, ambar y verde que se van alternando dela siguiente forma: verde ⇒ ambar ⇒ roja ⇒ verde . . .

Las luces verde y roja pueden estar encendidas una cantidadindeterminada de tiempo mientras que la luz ambar solo estaencendida un instante de tiempo

El sistema de transicion asociado es el siguiente:

Razonamiento Automatico – 2013/2014 NuSMV: Interaccion con el sistema

Page 13: Francisco J. Mart´ın Mateos - Dpto. Ciencias de la ... · inicial de forma aleatoria de entre todos los disponibles ... A model must be read before. ... ¬FG (luz=verde) Despu´es

Un semaforo simple

Especificacion en NuSMV

MODULE mainVARluz : {rojo,verde,ambar};

ASSIGNinit(luz) := verde;next(luz) := case

luz = verde : {verde,ambar};luz = rojo : {rojo,verde};luz = ambar : rojo;

esac;

Razonamiento Automatico – 2013/2014 NuSMV: Interaccion con el sistema

Page 14: Francisco J. Mart´ın Mateos - Dpto. Ciencias de la ... · inicial de forma aleatoria de entre todos los disponibles ... A model must be read before. ... ¬FG (luz=verde) Despu´es

NuSMV como herramienta de verificacion

Propiedades deseables en el modelo del semaforo

Despues de que el semaforo se ponga en verde, en algunmomento se pondra en rojo, es decir, el semaforo no se quedabloqueado en la luz verdeEn LTL: G ((luz = verde) → F (luz = rojo))

¬F G (luz = verde)Despues de que el semaforo se ponga en rojo, en algunmomento se pondra en verde, es decir, el semaforo no sequeda bloqueado en la luz rojaEn LTL: G ((luz = rojo) → F (luz = verde))

¬F G (luz = rojo)La luz ambar se puede llegar a encender en algun momento, dehecho, se debe encender una cantidad infinita de veces en eltiempoEn CTL: EF (luz = ambar)

AG AF (luz = ambar)

Razonamiento Automatico – 2013/2014 NuSMV: Interaccion con el sistema

Page 15: Francisco J. Mart´ın Mateos - Dpto. Ciencias de la ... · inicial de forma aleatoria de entre todos los disponibles ... A model must be read before. ... ¬FG (luz=verde) Despu´es

NuSMV como herramienta de verificacion

Especificacion en NuSMV

MODULE mainVARluz : {rojo,verde,ambar};

ASSIGNinit(luz) := verde;next(luz) := case

luz = verde : {verde,ambar};luz = rojo : {rojo,verde};luz = ambar : rojo;

esac;LTLSPEC G ((luz = verde) -> F (luz = rojo));LTLSPEC ! F G (luz = verde);LTLSPEC G ((luz = rojo) -> F (luz = verde));LTLSPEC ! F G (luz = rojo);SPEC EF (luz = ambar);SPEC AG AF (luz = ambar);

Las formulas LTL se indican con el termino LTLSPEC

Las formulas CTL se indican con el termino SPEC

Razonamiento Automatico – 2013/2014 NuSMV: Interaccion con el sistema

Page 16: Francisco J. Mart´ın Mateos - Dpto. Ciencias de la ... · inicial de forma aleatoria de entre todos los disponibles ... A model must be read before. ... ¬FG (luz=verde) Despu´es

NuSMV como herramienta de verificacion

Verificacion...> NuSMV semaforo.smv

*** This is NuSMV 2.4.3 zchaff...

-- specification EF luz = ambar is true-- specification AG (AF luz = ambar) is false-- as demonstrated by the following execution sequenceTrace Description: CTL CounterexampleTrace Type: Counterexample-- Loop starts here-> State: 1.1 <-

luz = verde-> Input: 1.2 <--> State: 1.2 <-

El sistema indica para cada formula si es verdadera o falsa

En caso de que una formula sea falsa, el sistema proporcionauna traza que no la cumple

Razonamiento Automatico – 2013/2014 NuSMV: Interaccion con el sistema

Page 17: Francisco J. Mart´ın Mateos - Dpto. Ciencias de la ... · inicial de forma aleatoria de entre todos los disponibles ... A model must be read before. ... ¬FG (luz=verde) Despu´es

NuSMV como herramienta de verificacion

En algunos modelos es necesario anadir condiciones deimparcialidad: formulas que se deben cumplir una cantidadinfinita de veces a lo largo del tiempo

En LTL: G F φ

En CTL: AG AF φ

Este tipo de condiciones se pueden anadir como parte de laespecificacion del modelo en la seccion FAIRNESS

Razonamiento Automatico – 2013/2014 NuSMV: Interaccion con el sistema

Page 18: Francisco J. Mart´ın Mateos - Dpto. Ciencias de la ... · inicial de forma aleatoria de entre todos los disponibles ... A model must be read before. ... ¬FG (luz=verde) Despu´es

NuSMV como herramienta de verificacion

Especificacion en NuSMV

MODULE mainVARluz : {rojo,verde,ambar};

ASSIGNinit(luz) := verde;next(luz) := case

luz = verde : {verde,ambar};luz = rojo : {rojo,verde};luz = ambar : rojo;

esac;FAIRNESSluz = ambar;

LTLSPEC G ((luz = verde) -> F (luz = rojo));LTLSPEC ! F G (luz = verde);LTLSPEC G ((luz = rojo) -> F (luz = verde));LTLSPEC ! F G (luz = rojo);SPEC EF (luz = ambar);SPEC AG AF (luz = ambar);

Razonamiento Automatico – 2013/2014 NuSMV: Interaccion con el sistema

Page 19: Francisco J. Mart´ın Mateos - Dpto. Ciencias de la ... · inicial de forma aleatoria de entre todos los disponibles ... A model must be read before. ... ¬FG (luz=verde) Despu´es

Un contador de tres bits

Consideremos un contador binario de tres bits

El sistema de transicion asociado es el siguiente

000

001

011

100

101

111

010110

Aunque este modelo se puede especificar en NuSMV con unavariable con 8 valores distintos, lo haremos con 3 variables,una para cada bit

Razonamiento Automatico – 2013/2014 NuSMV: Interaccion con el sistema

Page 20: Francisco J. Mart´ın Mateos - Dpto. Ciencias de la ... · inicial de forma aleatoria de entre todos los disponibles ... A model must be read before. ... ¬FG (luz=verde) Despu´es

Un contador de tres bits

Especificacion en NuSMV

MODULE celda(acarreo)VARvalor : boolean;

ASSIGNinit(valor) := FALSE;next(valor) := case

valor: !acarreo;TRUE: acarreo;

esac;DEFINEsalida := valor & acarreo;

Cada bit del contador se especifica como una instancia delmodulo celda

El modulo celda tiene el argumento de entrada acarreo quehabra que especificar al realizar la instancia.

En el modulo se define la variable salida en la seccion DEFINE

Razonamiento Automatico – 2013/2014 NuSMV: Interaccion con el sistema

Page 21: Francisco J. Mart´ın Mateos - Dpto. Ciencias de la ... · inicial de forma aleatoria de entre todos los disponibles ... A model must be read before. ... ¬FG (luz=verde) Despu´es

Un contador de tres bits

Los argumentos de entrada son variables que intervienen en ladescripcion de los estados del sistema de transicion, cuyo valorinicial proviene de otro modulo

El modulo main no puede tener argumentos de entrada

Las variables definidas en una seccion DEFINE no intervienenen la descripcion del conjunto de estados del sistema detransicion

De esta forma, el sistema de transicion anterior tiene cuatroestados

valor valoracarreoacarreo

valor valoracarreoacarreo

Razonamiento Automatico – 2013/2014 NuSMV: Interaccion con el sistema

Page 22: Francisco J. Mart´ın Mateos - Dpto. Ciencias de la ... · inicial de forma aleatoria de entre todos los disponibles ... A model must be read before. ... ¬FG (luz=verde) Despu´es

Un contador de tres bits

Especificacion en NuSMV

MODULE mainVARbit0 : celda(TRUE);bit1 : celda(bit0.salida);bit2 : celda(bit1.salida);

SPECAG AF bit2.salida

El contador de tres bits se especifica con tres variables dondecada una de ellas es una instancia del modulo celda

El valor de entrada para bit0 es 1El valor de entrada para bit1 es el valor salida definido en elprimer bit bit0.salidaEl valor de entrada para bit2 es el valor salida definido en elsegundo bit bit1.salida

En este modelo se verifica que el tercer bit se activa unacantidad infinita de veces en el tiempoEn CTL: AG AF bit2.salida

Razonamiento Automatico – 2013/2014 NuSMV: Interaccion con el sistema

Page 23: Francisco J. Mart´ın Mateos - Dpto. Ciencias de la ... · inicial de forma aleatoria de entre todos los disponibles ... A model must be read before. ... ¬FG (luz=verde) Despu´es

Un anillo de inversores

Consideremos un anillo formado por tres inversoresconectados de la siguiente forma

pr1

pr3 pr2

Formalizaremos esta situacion en NuSMV como tres sistemasde transicion relacionados de la forma indicada en la figura,que se ejecutan de forma asıncrona

Razonamiento Automatico – 2013/2014 NuSMV: Interaccion con el sistema

Page 24: Francisco J. Mart´ın Mateos - Dpto. Ciencias de la ... · inicial de forma aleatoria de entre todos los disponibles ... A model must be read before. ... ¬FG (luz=verde) Despu´es

Un anillo de inversores

Especificacion en NuSMV

MODULE inversor(input)VARsalida : boolean;

ASSIGNinit(salida) := FALSE;next(salida) := !input;

Cada inversor se especifica como una instancia del moduloinversor

El modulo inversor tiene el argumento de entrada input quehabra que especificar al realizar la instancia.

La variable salida almacena el valor complementario delargumento de entrada input

Razonamiento Automatico – 2013/2014 NuSMV: Interaccion con el sistema

Page 25: Francisco J. Mart´ın Mateos - Dpto. Ciencias de la ... · inicial de forma aleatoria de entre todos los disponibles ... A model must be read before. ... ¬FG (luz=verde) Despu´es

Un anillo de inversores

Especificacion en NuSMV

MODULE mainVARpr1 : process inversor(pr3.salida);pr2 : process inversor(pr1.salida);pr3 : process inversor(pr2.salida);

El anillo de inversores se especifica con tres variables dondecada una de ellas es una instancia del modulo inversor

Cada inversor recibe como entrada el valor de la variablesalida de otro

Por defecto la asignacion de valores a las variables de losdistintos modulos de una especificicacion se hace en paralelo

Con un comportamiento asıncrono solo uno de los modulosesta en funcionamiento en cada momento

El comportamiento asıncrono se consigue incluyendo ladirectiva process delante del nombre del modulo

Razonamiento Automatico – 2013/2014 NuSMV: Interaccion con el sistema

Page 26: Francisco J. Mart´ın Mateos - Dpto. Ciencias de la ... · inicial de forma aleatoria de entre todos los disponibles ... A model must be read before. ... ¬FG (luz=verde) Despu´es

Un anillo de inversores

Especificacion en NuSMV

MODULE inversor(input)VARsalida : boolean;

ASSIGNinit(salida) := FALSE;next(salida) := !input;

FAIRNESSrunning;

El comportamiento asıncrono puede hacer que un modulo nose ejecute nunca

Para forzar que todos los modulos se ejecuten de formaequilibrada hay que anadir condiciones de imparcialidad

Cada modulo que se ejecuta de forma asıncrona tiene lavariable running asociada, cuyo valor es 1 si el modulo se estaejecutando o 0 en caso contrario

La condicion de imparcialidad se establece sobre esta variable

Razonamiento Automatico – 2013/2014 NuSMV: Interaccion con el sistema

Page 27: Francisco J. Mart´ın Mateos - Dpto. Ciencias de la ... · inicial de forma aleatoria de entre todos los disponibles ... A model must be read before. ... ¬FG (luz=verde) Despu´es

Exclusion mutua

Consideremos dos procesos que utilizan un recurso comun enexclusiva

Cada proceso puede estar en tres situaciones: normal (n),solicitando el uso del recurso (p) o utilizando en recurso (c),de acuerdo con el siguiente esquema de transicion:

c

n

p

El recurso no puede ser utilizado simultaneamente por ambosprocesos (exclusion mutua)

Razonamiento Automatico – 2013/2014 NuSMV: Interaccion con el sistema

Page 28: Francisco J. Mart´ın Mateos - Dpto. Ciencias de la ... · inicial de forma aleatoria de entre todos los disponibles ... A model must be read before. ... ¬FG (luz=verde) Despu´es

Exclusion mutua

Propiedades deseables en el modelo de exclusion mutua

Los procesos no pueden ocupar el recurso simultaneamenteSi un proceso solicita el recurso entonces en algun momento lodebe de poder utilizarLos procesos siempre tienen que tener la posibilidad de solicitarel recursoEl uso del recurso por los procesos no se realiza en secuenciaestricta

Razonamiento Automatico – 2013/2014 NuSMV: Interaccion con el sistema

Page 29: Francisco J. Mart´ın Mateos - Dpto. Ciencias de la ... · inicial de forma aleatoria de entre todos los disponibles ... A model must be read before. ... ¬FG (luz=verde) Despu´es

Exclusion mutua

Primera especificacion en NuSMV

MODULE mainVARproceso1 : process proceso;proceso2 : process proceso;

MODULE procesoVARestado: {n, p, c};

ASSIGNinit(estado) := n;next(estado) :=

case(estado = n) : {n,p};(estado = p) : {p,c};(estado = c) : {c,n};

esac;FAIRNESSrunning

FAIRNESS!(estado = c)

Razonamiento Automatico – 2013/2014 NuSMV: Interaccion con el sistema

Page 30: Francisco J. Mart´ın Mateos - Dpto. Ciencias de la ... · inicial de forma aleatoria de entre todos los disponibles ... A model must be read before. ... ¬FG (luz=verde) Despu´es

Exclusion mutua

Para conseguir que los procesos se ejecuten de formaequilibrada anadimos la condicion de imparcialidad running

La condicion de imparcialidad !(estado = c) asegura que unproceso no acapara el uso del recurso compartido, liberandolocada cierto tiempo

El uso del recurso compartido en exclusion mutua no estaasegurado

Razonamiento Automatico – 2013/2014 NuSMV: Interaccion con el sistema

Page 31: Francisco J. Mart´ın Mateos - Dpto. Ciencias de la ... · inicial de forma aleatoria de entre todos los disponibles ... A model must be read before. ... ¬FG (luz=verde) Despu´es

Exclusion mutua

El sistema de transicion de los dos procesos es el siguiente:

n1n2

p1n2

n1p2

p1p2

p1c2

c1c2

n1c2

c1n2

c1p2

Identificamos con un numero (1 o 2) cada proceso y con unaletra (n, p, c) su estado

Razonamiento Automatico – 2013/2014 NuSMV: Interaccion con el sistema

Page 32: Francisco J. Mart´ın Mateos - Dpto. Ciencias de la ... · inicial de forma aleatoria de entre todos los disponibles ... A model must be read before. ... ¬FG (luz=verde) Despu´es

Exclusion mutua

Formalizacion de las propiedades deseables en el modelo deexclusion mutua

Los procesos no pueden ocupar el recurso simultaneamenteEn LTL: G (¬(c1 ∧ c2))Si un proceso solicita el recurso entonces en algun momento lodebe de poder utilizarEn LTL: G (t1 → F c1)

G (t2 → Fc2)Los procesos siempre tienen que tener la posibilidad de solicitarel recursoEn CTL: AG (n1 → EX p1)

AG (n2 → EX p2)Los procesos no usan el recurso en secuencia estrictaEn CTL: EF (c1 ∧ E[c1 U (¬c1 ∧ E[¬c2 U c1])])

EF (c2 ∧ E[c2 U (¬c2 ∧ E[¬c1 U c2])])

Razonamiento Automatico – 2013/2014 NuSMV: Interaccion con el sistema

Page 33: Francisco J. Mart´ın Mateos - Dpto. Ciencias de la ... · inicial de forma aleatoria de entre todos los disponibles ... A model must be read before. ... ¬FG (luz=verde) Despu´es

Exclusion mutua

En el modelo anterior hay que evitar que los dos procesosocupen el recurso de forma simultanea

No se puede dar el estado con etiquetas [c1 c2]

Para ello cada proceso debe tener informacion de la situacionen la que se encuentra el otro proceso, para saber si el recursoya esta ocupado

Razonamiento Automatico – 2013/2014 NuSMV: Interaccion con el sistema

Page 34: Francisco J. Mart´ın Mateos - Dpto. Ciencias de la ... · inicial de forma aleatoria de entre todos los disponibles ... A model must be read before. ... ¬FG (luz=verde) Despu´es

Exclusion mutua

El sistema de transicion con exclusion mutua es el siguiente:

n1n2

p1n2

n1p2

p1p2

p1c2

n1c2

c1n2

c1p2

Razonamiento Automatico – 2013/2014 NuSMV: Interaccion con el sistema

Page 35: Francisco J. Mart´ın Mateos - Dpto. Ciencias de la ... · inicial de forma aleatoria de entre todos los disponibles ... A model must be read before. ... ¬FG (luz=verde) Despu´es

Exclusion mutua

Segunda especificacion en NuSMV

MODULE mainVARproceso1 : process proceso(proceso2.estado);proceso2 : process proceso(proceso1.estado);

MODULE proceso(otro)VARestado: {n, p, c};

ASSIGNinit(estado) := n;next(estado) :=

case(estado = n) : {p,n};(estado = p) & (otro = n) : c;(estado = p) & (otro = p) : c;(estado = c) : {c,n};TRUE : estado;

esac;FAIRNESSrunning

FAIRNESS!(estado = c)

Razonamiento Automatico – 2013/2014 NuSMV: Interaccion con el sistema

Page 36: Francisco J. Mart´ın Mateos - Dpto. Ciencias de la ... · inicial de forma aleatoria de entre todos los disponibles ... A model must be read before. ... ¬FG (luz=verde) Despu´es

Exclusion mutua

En el modelo anterior, uno de los procesos puede estarindefinidamente solicitando el recurso mientras es el otro elque lo utiliza

Para evitar esto, se puede establecer un turno de utilizaciondel recurso

Cada proceso utiliza el recurso por turnos alternativos

El turno de utilizacion del recurso se establece usando unavariable auxiliar que sirve para ’duplicar’ el estado etiquetadocon [p1 p2]

Tercera especificacion en NuSMV

MODULE mainVARproceso1 : process proceso(proceso2.estado,turno,FALSE);proceso2 : process proceso(proceso1.estado,turno,TRUE);turno : boolean;

ASSIGNinit(turno) := FALSE;

Razonamiento Automatico – 2013/2014 NuSMV: Interaccion con el sistema

Page 37: Francisco J. Mart´ın Mateos - Dpto. Ciencias de la ... · inicial de forma aleatoria de entre todos los disponibles ... A model must be read before. ... ¬FG (luz=verde) Despu´es

Exclusion mutua

Tercera especificacion en NuSMV

MODULE proceso(otro,turno,miturno)VAR

estado: {n, p, c};ASSIGN

init(estado) := n;next(estado) :=

case(estado = n) : {p,n};(estado = p) & (otro = n) : c;(estado = p) & (otro = p) & (turno = miturno) : c;(estado = c) : {c,n};TRUE : estado;

esac;next(turno) :=

case(turno = miturno) & estado = c : !turno;TRUE : turno;

esac;FAIRNESS

runningFAIRNESS

!(estado = c)

Razonamiento Automatico – 2013/2014 NuSMV: Interaccion con el sistema

Page 38: Francisco J. Mart´ın Mateos - Dpto. Ciencias de la ... · inicial de forma aleatoria de entre todos los disponibles ... A model must be read before. ... ¬FG (luz=verde) Despu´es

Exclusion mutua

El arbumento miturno sirve para identificar un proceso frenteal otro

La variable turno solo sirve para establecer un turno deacceso al recurso cuando ambos procesos lo solicitansimultaneamente

Los procesos no usan el recurso en secuencia estricta

Razonamiento Automatico – 2013/2014 NuSMV: Interaccion con el sistema

Page 39: Francisco J. Mart´ın Mateos - Dpto. Ciencias de la ... · inicial de forma aleatoria de entre todos los disponibles ... A model must be read before. ... ¬FG (luz=verde) Despu´es

Bibliografıa

Huth, M. and Ryan, M. Logic in Computer Science:

Modelling and Reasoning about Systems. (CambridgeUniversity Press, 2004)

Cavada, R., Cimatti, A., Keighren, G., Olivetti, E., Pistore, M.and Roveri, M. NuSMV 2.5 Tutorial.

Cavada, R., Cimatti, A., Jochim, C.A., Keighren, G., Olivetti,E., Pistore, M., Roveri, M. and Tchaltsev, A. NuSMV 2.5

User Manual.

Razonamiento Automatico – 2013/2014 NuSMV: Interaccion con el sistema