You are on page 1of 15

UNIVERSIDAD NACIONAL DE

TRUJILLO
FACULTAD DE CIENCIAS FISICAS Y
MATEMATICAS
ESCUELA DE INFORMATICA
CURSO

: ESPECIFICACION FORMAL
DE SISTEMAS

DOCENTE: CRUZ FLORIAN, IRIS AUREA
ALUMNOS

:
o
o
o
o
o

CICLO

AVALOS ANAYA, ANGELICA
CAPA SIXE, JORDAN
GAVIDIA MEZA ALEXIS
GUZMAN CHUMAN, JOSE
PEREDA PURIZAGA, JANN
:

VIII

TRUJILLO – PERÚ
2015

.........................................8 3............................ 4 2............................................................. Conclusión...................................................... Uso y Beneficios......INDICE CONTENIDO MÉTODOS CONCURRENTES: PROCESO DE COMUNICACIÓN SECUENCIAL..............2...................................15 ........ Aplicaciones................................... 7 3......................... INTRODUCCION.................................................... 3 1................3............ COMUNICACIÓN SECUENCIAL DE PROCESOS (CSP).............. Operaciones Algebraicas..................................1.................................... 3 2... Primitivas................. 5 2...... 15 3.......... Introducción...........5............6.............................1...................................................................................................................5 2....................................................................................................3..............6..................... Historia....... 4 2............. Características.................................................................... OCCAM (A CONCURRENT PROGRAMMING LANGUAGE)........................9 3........8 3.............4......... 8 3............................................................ Ventajas................................................ Estructura /Sintaxis..................3 2.9 3............................ Referencias........4.......5.....2.................................... 5 2. Historia..................................

La P. permite que los sistemas sean más fácilmente escalables debido a la modularidad de su desarrollo y que también estos pueden ser mucho más eficientes debido a que permiten la ejecución en paralelo de múltiples instrucciones. e interactúan entre ellos. INTRODUCCION. Modelo Actor. el modelo de Maquina de acceso aleatorio. brinda una forma natural de asignar segmentos del programa para representar objetos físicos y por eso ayuda mucho a representar simulaciones. Estas tareas pueden ser un conjunto de procesos o hilos de ejecución creados por un único programa.MÉTODOS CONCURRENTES: PROCESO DE COMUNICACIÓN SECUENCIAL 1. que hacerlo encajar dentro del paradigma secuencial que de ninguna manera esquematiza el comportamiento de ese sistema. b) Se han desarrollado diversos modelos matemáticos para los cálculos concurrentes incluyendo: Redes de Petri.C. Existen varios aspectos en nuestro mundo inherentemente distribuido que hacen necesaria la programación concurrente. La P. . Concurrencia: Tópico avanzado mucho más difícil que la programación serial. es usada para modelar y simular sistemas físicos. a) Es la propiedad de los sistemas en la cual varios cálculos se ejecutan simultáneamente. Cálculo de procesos. La P. c) Es la simultaneidad en la ejecución de múltiples tareas interactivas. etc.C. COMUNICACIÓN SECUENCIAL DE PROCESOS (CSP) Fue descrito por primera vez en un documento presentado por Hoare en la década de los 70. En primera instancia es más fácil modelar de una manera concurrente un sistema del mismo tipo. 2. inclusive si esos sistemas no están controlados directamente por un computador.C.

el libro de Hoare sobre el tema seguía siendo la tercera más citada referencia en ciencias de la computación de todos los tiempos. Historia Publicado en 1985.1. que Hoare publicó en 1985.En ciencias de la computación. La Teoría sido algunos menores libro de la CSP ha objeto de cambios desde la publicación del Hoare. La versión teórica de CSP se presentó en el libro Comunicación de procesos secuenciales. para el procesos Ilustración 1. de La estos motivados las mayoría de cambios fueron por la llegada de herramientas automatizadas análisis de CSP y verificación. Tony Hoare . En mayo de 2005. 2. CSP es un lenguaje formal para describir patrones de interacción en sistemas concurrentes. CSP es un lenguaje desarrollado por Hoare que lleva a cuestas de su propio sistema de lógica explícitamente para su uso en sistemas con muchos procesos activos en un único sistema o sistemas múltiples que interactúan entre sí.

 En CSP. 2.2. variables. es una filosofía de programación.3.  Se especifican claramente el número de procesos concurrentes.  Se dice que más que un lenguaje.2. Primitivas .  Sincronización entre procesos.  Facilidad para implementar programas con múltiples entradas y salidas. Aplicaciones  Una primera e importante aplicación de CSP fue su uso para la especificación y verificación de los elementos del IN-MOS T9000.  Se aplica en la verificación y especificación en un sistema de comercio electrónico. los procesos y eventos son las nociones centrales  Todos los procesos en CSP son secuenciales a pesar de que el lenguaje fue diseñado para estudiar el problema de la concurrencia. comunicación síncrona.4.  Es difícil decir si CSP es un lenguaje tipado o no. 2. etc.  Es aplicado en la verificación de protocolos de seguridad y comunicaciones.  Sintaxis y semántica enfocada a desarrollar sistemas paralelos con naturalidad.  Comunicación por medio de paso de mensajes mediante memoria compartida. Características  Enfocado a desarrollar sistemas paralelos.

5. b) Procesos primitivos: Éstos representan comportamientos fundamentales. Por ejemplo.open. off) Nombres compuestos (valve. (a → P) ⊓(b → Q) d) Intercalado: Este operador representa concurrentes completamente independientes. a→P b) Elección Externa: Este operador permite que un proceso sea definido como una elección entre dos procesos componentes y permite al entorno resolver esta elección. Operaciones Algebraicas a) Prefijo: Este operador combina un evento y un proceso para producir un nuevo proceso.a) Eventos: Éstos representan comunicaciones o interacciones. valve.  SKIP: El cual representa terminación exitosa. Se asume que son indivisibles e instantáneos. pero no permite a su entorno elegir qué proceso. comunicando un evento inicial para uno de los procesos. actividades . screen!bitmap). 2.close) Eventos de entrada/salida (por ejemplo mouse? xy.  STOP: El proceso que no comunica nada. Pueden ser :    Nombres atómicos (por ejemplo on. también llamado DEADLOCK. (a → P) □ (b → Q) c) Elección Interna: Este operador permite que un proceso sea definido como una elección entre dos procesos componentes.

P∨¿∨Q e) Interfaz Paralela: Este operador representa actividades concurrentes que requieren sincronización entre los procesos componentes. Cualquier evento en el conjunto interfaz solo puede ocurrir cuando todos los procesos componentes son capaces de llamar a ese evento. Posee una semántica sencilla y por ende su facilidad de aplicar.6. ¿ ( a → P ) {a} 2. haciendo que algunos eventos sean inobservables. Su kernel es liviano mejorando así el rendimiento de las máquinas. que no permite que un proceso escriba si al mismo tiempo el otro proceso está haciendo un leer y viceversa. II. . El enfoque de sincronización que utiliza CSP es el de rende Vuez. Ventajas I. III. P|[ { a } ]|Q f) Ocultamiento: Este operador provee una forma de abstraer procesos.

3. Historia o David May fue el arquitecto principal trabajando con un equipo de INMOS o Informático o Trabajó en Bristol como Arquitecto del INMOS Transputer o Inspirado y motivado por Tony (C. El procesamiento paralelo / concurrente requiere un desglose de un problema.1.2. David May .) Hoare Ilustración 2. OCCAM (A CONCURRENT PROGRAMMING LANGUAGE) 3.R.A. Inglaterra y su ley (más tarde) llamado la navaja de Occam El procesamiento se realiza a través de la comunicación en serie (byte por byte de decodificación) Una CPU usada para realizar operaciones secuenciales que necesitan para ser ejecutado con el fin.3. lo que requiere más recursos. Introducción Proviene del nombre de filósofo Guillermo de Ockham.

3. Lenguaje OCCAM .4.No hacer nada y poner fin a la declaración (sin operación) • STOP .recibe un valor de un canal • (CH)Enviar . Estructura /Sintaxis 3.asigna la variable el valor de la expresión • (CH) Recibir . Visto como el lenguaje ensamblador para el Transputer. Uso y Beneficios Occam es un lenguaje procedimental imprescindible. Lenguaje OCCAM Hay 5 acciones primitivas de Occam: • (:=) Asignación .1.envía valor de expresión en un canal • SKIP .3.4. Lo que significa que está estructurado para tomar declaraciones secuencialmente (uno tras otro) y también tiene la capacidad de almacenar procedimientos (o funciones) que pueden ser llamados en cualquier momento.No hacer nada y nunca terminar la declaración (nunca llegar a la siguiente declaración) • El "!" Y "?" Símbolos vienen directamente de la notación utilizada en CSP de Hoare PRIMITIIVA assignment SINTAXIS EJEMPLO <variable> := <expression> x := y + 1 receive <channel> ? <variable> send <channel> ! <expression> Ch ? x Ch ! y + 1 SKIP SKIP SKIP STOP STOP STOP Ilustración 3.3.

declarando n como una constante [n][n] INT a: -. SEQ a := 3 b := a + 5 Ilustración 4. x := 2 * y + 1 -.para Booleanos BYTE .2.4.3. Declaración de Variables Las declaraciones están en la forma: <tipo> <uno o más identificadores> Los tipos de variables disponibles son:       INT . SEQ es un constructor que ejecuta un conjunto de instrucciones en un orden secuencial. y: CHAN q: La única estructura que dispone de datos en Occam son matrices: VAL n IS 100: -.para reales de 32 bits REAL64 . los constructores son un conjunto de palabras clave se aplica a un conjunto de estados.incorrecto! x := (2 * y) + 1 -. no hay precedencia de operadores.array “a” de 2 dimensiones 3. de forma similar a las palabras clave: begin-end utilizados en Pascal. Los Paréntesis deben ser utilizados para especificar el orden de operación.para reales de 64 bits CHAN para los canales Ejemplos: INT x. Precedencia En Occam.3.4. Constructor .para los números enteros BOOL .4.de carácter REAL32 .correcta aplicación 3. Constructores y SEQ En Occam.4.

abreviatura de forma paralela. PAR INT x: ch1 ? x -.5.4.3.recibir de canal ch2 3.recibir de canal ch1 INT y: ch2 ? y -.PAR PAR.4.6. If y While WHILE i < 10 i := i + 1 . se utiliza para ejecutar varias sentencias o procesos al mismo tiempo.

out: PAR buff(buffer.in.in. out) WHILE TRUE BYTE x: SEQ in ? x out ! x : -. PROC PROC. 3. buffer. ALT ALT. abreviatura de alternativa. PROC buff(CHAN OF BYTE in.fin del buff CHAN OF BYTE comms. los nombres de proceso y uno permite que las variables que se deben pasar por valor o por referencia. Si no hay guardias que son verdaderas. cortos de proceso.4.4. buffer. es la implementación de Occam de comandos de guardia de Dijkstra. ALT ch1 ? x A[1] := x ch2 ? x A[2] := x Aleatoriamente selecciona una verdadera guardia y ejecuta su declaración. comms) .7.8.3. entonces se espera a que uno sea verdadero. No se permite la recursividad.

3.9. Ejemplos  Tiempo de retardo PROC delay(VAL INT us) TIMER Tim: INT t: SEQ Tim ? t t := t PLUS us  Productor/Consumidor PROC producer (CHAN INT out!) INT x: SEQ x := 0 WHILE TRUE SEQ out ! x x := x + 1 : PROC consumer (CHAN INT in?) WHILE TRUE INT v: SEQ in ? v -.4.hacer algo con `v‘ : PROC network () CHAN INT c: PAR producer (c!) consumer (c?) : .

0.int(prev. 0. CHAN BYTE scr!) INT prev: INT curr: INT i: INT temp: SEQ prev := 0 curr := 1s SEQ i = 0 FOR num out. Secuencia de Fibonacci PROC Fibonacci(VAL INT num. scr) out. scr) temp := prev + curr prev := curr curr := temp : .string(“ “.

Bucknell University.5. Proceedings of the 36th SIGCSE technical symposium on Computer science education.edu/~cs366/occam.wotug. Jacobsen. 5 Nov.bucknell. St. Occam 2. Jadud.1047485] 3.pdf>.1 REFERENCE MANUAL.org/occam/documentation/oc21refman.  Proporciona un enfoque fundamental y simple de procesamiento paralelo. Web. Missouri. SGS-THOMSON Microelectronics Limited 1995. “Introduction to the Programming Language Occam. 2012. SGS-THOMSON. <http://www. 5 Nov.6. USA [doi>10. Louis. Web. 2.3. Conclusión  Occam ayudó a innovar y ser pioneros de la aplicación de la programación concurrente.pdf . 1995). Daniel C. (February 23-27. towards concrete concurrency: occam-pi on the LEGO mindstorms. Referencias 1. <http://www.eg. 3. (20 Mar. 2005). 2012. Christian L.1145/1047344. Matthew C. (1988). Hyde.  Estructura simple (inspirado en lenguajes de programación anteriores) ayudó a hacer que sea fácil de entender.