communicating sequential processes presentación realizada por : alberto calixto simon ivan olmos...

26
Communicating Sequential Processes Presentación realizada por : Alberto Calixto Simon Ivan Olmos Pineda

Upload: maritza-bosque

Post on 23-Jan-2016

218 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Communicating Sequential Processes Presentación realizada por : Alberto Calixto Simon Ivan Olmos Pineda

Communicating Sequential Processes

Presentación realizada por :

Alberto Calixto Simon

Ivan Olmos Pineda

Page 2: Communicating Sequential Processes Presentación realizada por : Alberto Calixto Simon Ivan Olmos Pineda

CSP

• Fue descrito por primera vez en un documento presentado por C. A. R. Hoare.

• La idea del nombre fue tratar de describir sistemas como un número de componentes (procesos) que operan independientemente y se comunican entre si por un número bien definido de canales.

• Influenciado por Ada

Page 3: Communicating Sequential Processes Presentación realizada por : Alberto Calixto Simon Ivan Olmos Pineda

CSP: Características

• Enfocado a desarrollar sistemas paralelos.

• Comunicación por medio de paso de mensajes mediante memoria compartida.

• Sintaxis y semántica enfocada a desarrollar sistemas paralelos con naturalidad.

• Sincronización entre procesos, comunicación síncrona.

Page 4: Communicating Sequential Processes Presentación realizada por : Alberto Calixto Simon Ivan Olmos Pineda

CSP: Características

• Facilidad para implementar programas con múltiples entradas y salidas.

• Se especifican claramente el número de procesos concurrentes, variables, etc.

• Se dice que más que un lenguaje, es una filosofía de programación.

Page 5: Communicating Sequential Processes Presentación realizada por : Alberto Calixto Simon Ivan Olmos Pineda

CSP: Sintaxis, Semántica

Comando asignación: :=x := x +1;

(x, y) := (y, x);

• En caso que las variables que intervienen en una asignación sean de distintos tipos, esta no se realiza.

Page 6: Communicating Sequential Processes Presentación realizada por : Alberto Calixto Simon Ivan Olmos Pineda

CSP: Sintaxis, Semántica

Instrucción ||:X(1) :: CL1 || X(2) :: CL2;

user :: USER || sort(i: 1 .. 1000) :: SORT ||...

• No hay almacenamiento de variables• Termina el procesamiento paralelo cuando

terminan todos los procesos paralelos.• Como cada proceso se define explícitamente, no

hay creación dinámica de procesos.

Page 7: Communicating Sequential Processes Presentación realizada por : Alberto Calixto Simon Ivan Olmos Pineda

CSP: Sintaxis y semántica

Comandos de entrada / salida

procl ? l

lpr ! l

La primera operación indica que del canal procl entra algo a l.

La segunda operación indica que del canal b sale el valor de l.

Page 8: Communicating Sequential Processes Presentación realizada por : Alberto Calixto Simon Ivan Olmos Pineda

CSP: Sintaxis y semántica

• Existen operadores básicos: +, -, <, >,...

[ coutn < 100 ; xyz < 20 -> count:=count+1

[] count = 100 -> xyz := 34;

[] xyz >= 20 -> xyz := 0

]

Page 9: Communicating Sequential Processes Presentación realizada por : Alberto Calixto Simon Ivan Olmos Pineda

CSP: Sintaxis y semántica

• En el ejemplo anterior, ; significa la conjunción lógica.

• Se pueden realizar programas simples como el siguiente, el cual solo recibe un conjunto de 100 caracteres desde el teclado e imprime los que sean caracteres imprimibles.

Page 10: Communicating Sequential Processes Presentación realizada por : Alberto Calixto Simon Ivan Olmos Pineda

CSP: Sintaxis y semántica

[ c: character;

(i: 1.. 100) continue(i); keyboard(i) ? c ->

[ c = LINEFEED -> console(i) ! RETURN;

console(i) ! LINEFEED

[] c <> LINEFEED -> console(i) ! C

]

]

Page 11: Communicating Sequential Processes Presentación realizada por : Alberto Calixto Simon Ivan Olmos Pineda

CSP: Sintaxis y semántica

• Para crear una iteración de un conjunto de instrucciones, se coloca un asterisco al inicio de estas.

*[ (i: 1.. 5) A(i) > A(i+1) (A(i),A(i+1)) := (A(i+1), A(i))]En este ejemplo, A es un arreglo de 1000 enteros. En este ejemplo, se ordena el arreglo en orden

ascendente.

Page 12: Communicating Sequential Processes Presentación realizada por : Alberto Calixto Simon Ivan Olmos Pineda

FDRFailures Divergence Refinement

Refinamiento Divergente de Fallas

Page 13: Communicating Sequential Processes Presentación realizada por : Alberto Calixto Simon Ivan Olmos Pineda

¿Qué es FDR ?

FDR es un modelo de chequeo para maquinas de estados, con base en la teoría de concurrencia establecida alrededor de CSP desarrollado en la Universidad de Oxford.

Page 14: Communicating Sequential Processes Presentación realizada por : Alberto Calixto Simon Ivan Olmos Pineda

Capacidad

La versión FDR2 mejora la ejecución de su antecesor, e incorpora una jerarquía abstracta y mecanismos de compresión que permiten al sistema analizar una gran cantidad de estados (7^(2^1024)) en minutos.

Page 15: Communicating Sequential Processes Presentación realizada por : Alberto Calixto Simon Ivan Olmos Pineda

Aplicaciones

• Desarrollo y verificación de comunicaciones de hardware (en el Transputer T9000 y el chip C104 de ruteadores)

• Protocolos de Seguridad - Propiedades

- Defectos en el intercambio de llaves - Autentificación, confidencialidad,...

Page 16: Communicating Sequential Processes Presentación realizada por : Alberto Calixto Simon Ivan Olmos Pineda

¿Que ofrece FDR2?

• Soporte de operadores fuera del núcleo de CSP y completamente diferente al lenguaje.

• Todos los procesos pueden ser parametrizados.

• Mejorar el manejo de la sincronización múltiple, con la representación de reglas de disparo basadas en los eventos los cuales integran.

Page 17: Communicating Sequential Processes Presentación realizada por : Alberto Calixto Simon Ivan Olmos Pineda

• Proveer de un lenguaje poderoso para los tipos de datos y expresiones.

• La habilidad de construir un sistema convergente gradualmente, en cada etapa comprime al subsistema a producir un proceso equivalente con menos estados.

Page 18: Communicating Sequential Processes Presentación realizada por : Alberto Calixto Simon Ivan Olmos Pineda

FDR Soporta Directamente Tres Modelos

• El modelo de trazos

• El modelo de fallos estables

• El modelo de fallos divergentes

Page 19: Communicating Sequential Processes Presentación realizada por : Alberto Calixto Simon Ivan Olmos Pineda

Entorno

FDR requiere un sistema workstation y se aconseja usar FDR en un sistema con almenos 32Mb de memoria física, y al menos 64Mb de memoria virtual.

Las plataformas de soporte son:

Sun Sparc systems (Solaris 2.3 o superiores)HP PA-RISC systems (HP-UX 9.0.5)IBM RS/6000 systems (AIX 3.2.5)

Page 20: Communicating Sequential Processes Presentación realizada por : Alberto Calixto Simon Ivan Olmos Pineda
Page 21: Communicating Sequential Processes Presentación realizada por : Alberto Calixto Simon Ivan Olmos Pineda
Page 22: Communicating Sequential Processes Presentación realizada por : Alberto Calixto Simon Ivan Olmos Pineda

Procesos

• c -> p prefijo simple

• c ?x ?x':a !y -> p prefijo complejo

• p ; q composición secuencial

• p [[ c <- c' ]] re-etiquetar

• !x salida

• ?x:a entrada obligada

• ?x entrada espontanea

Page 23: Communicating Sequential Processes Presentación realizada por : Alberto Calixto Simon Ivan Olmos Pineda

Ejemplos

BUFF(in,out) = in?x -> out!x -> BUFF(in, out)

square(n) = n * n

P = in ? x -> out ! square(x) -> P

Page 24: Communicating Sequential Processes Presentación realizada por : Alberto Calixto Simon Ivan Olmos Pineda

Ejemplos

-- First, the set of values to be communicateddatatype FRUIT = apples | oranges | pears

channel left,right,mid : FRUITchannel ack

COPY = left ? x -> right ! x -> COPY

Page 25: Communicating Sequential Processes Presentación realizada por : Alberto Calixto Simon Ivan Olmos Pineda

SEND = left ? x -> mid ! x -> ack -> SEND REC = mid ? x -> right ! x -> ack -> REC

SYSTEM = (SEND [| {| mid, ack |} |] REC) \ {| mid, ack |}

assert COPY [FD= SYSTEM assert SYSTEM [FD= COPY

Page 26: Communicating Sequential Processes Presentación realizada por : Alberto Calixto Simon Ivan Olmos Pineda

Referencias

• http://cswww.vuse.vanderbilt.edu/~raghavan/cs381/csplect/index.htm

• http://archive.comlab.ox.ac.uk/csp.html

• http://www.formal.demon.co.uk/CSP.html

• http://research.cem.itesm.mx/jesus/csp/csp.html