Metodologa de desarrollo de aplicaciones concurrentes - PowerPoint PPT Presentation

1 / 17
About This Presentation
Title:

Metodologa de desarrollo de aplicaciones concurrentes

Description:

CPRE: si no es cierta en el momento de la llamada, se bloquea al proceso llamante. ... CPRE: Longitud(b) MAX. Poner(b, d) POST: A adimos un elemento al buffer ... – PowerPoint PPT presentation

Number of Views:30
Avg rating:3.0/5.0
Slides: 18
Provided by: lmlLs
Category:

less

Transcript and Presenter's Notes

Title: Metodologa de desarrollo de aplicaciones concurrentes


1
Metodología de desarrollo de aplicaciones
concurrentes
  • Una metodología define
  • Tareas a realizar
  • Notaciones arquitectura de la aplicación con
    distintos niveles de abstracción
  • Tareas
  • Análisis y Especificación
  • Identificación de recursos y tareas
  • Refinamiento de los recursos
  • Diseño basado en una primitiva (objetos
    protegidos, paso de mensajes, etc)
  • Implementación

2
Análisis y Especificación
  • Descripción del problema
  • Se deben identificar
  • Requisitos de seguridad
  • Operaciones excluyentes y simultáneas
  • Requisitos de vivacidad
  • Equidad/Prioridad en el acceso a los recursos

3
Identificación de recursos y tareas
  • Especificación informal de las tareas
  • Recursos en el programa variables de TipoRecurso
  • Grafo de recursos y tareas

Tarea A
Tarea B(i)
Nombre recurso
Estado interno (TipoRecurso)
op1
op3
op2
4
Identificación de recursos y tareas (ii)
  • Un recurso se define por medio de un TAD
    concurrente
  • Interfaz operaciones o acciones públicas
  • Estado interno Estado explícito Estado
    implícito
  • Estado explícito colección de campos
    (TipoRecurso)
  • Estado implícito estado de las operaciones
    invocadas (bloqueadas o ejecutándose)
  • Operación procedimiento con parámetros de E, S,
    y E/S.
  • Operaciones mutuamente excluyentes.

5
Identificación de recursos y tareas (y iii)
  • Similitudes con TADs
  • Encapsulamiento
  • Reusabilidad
  • Especificación formal ? demostrabilidad
  • Diferencias con TADs
  • El estado del recurso no es independiente del
    mundo externo (estado de las operaciones
    invocadas).
  • No se pueden comparar (igualdad).
  • No se pueden copiar.

6
Refinamiento de los recursos
  • Se especifican formalmente los recursos mediante
    C-TADSOLs.
  • Notación extendida con aspectos de sincronización
    (con respecto a los TADs).

7
Sintaxis C-TADSOL
  • C-TADSOL Nombre Recurso
  • USA TipoExterno
  • OPERACIONES
  • .......................
  • ACCIÓN Operacioni Tipo Recursoes xTipo1e x
    . . . x Tipons
  • ......................
  • SEMANTICA
  • DOMINIO
  • TIPO Tipo Recurso . . .
  • DONDE Tipo Adicional ..
  • INVARIANTE Fórmula que debe ser cierta antes y
    después de ejecutar una operación.

INICIAL(r) Fórmula que especifica el valor
inicial del recurso .........................
PRE Precondición PRE P(r, a1, ..... ,
an) CPRE Precondición de
concurrencia CPRE P(r, a1, .... , an)
Operacion Recursoi (r, a1, . . . , an) POST
Postcondición de la operación POST
Q(r, a1, .... , an) .........................
8
Sintaxis de las fórmulas
  • Se usan fórmulas en Invariante, inicial, PRE,
    CPRE y POST.
  • Lenguaje basado en lógica de primer orden
    extendido con operadores aritméticos, conjuntos y
    secuencias.

9
Declaración de operaciones
  • Sólo se especifican operaciones públicas.
  • Representan el único medio para acceder al estado
    del recurso.
  • Son mutuamente excluyentes.
  • Son acciones porque siempre conllevan un cambio
    de estado del recurso.
  • El primer parámetro es siempre el propio recurso,
    y siempre es de entrada/salida.

ACCIÓN Operacioni Tipo Recursoes xTipo1e x
. . . x Tipons
10
Declaración de dominio
  • Define el TipoRecurso y los tipos auxiliares
    necesarios.
  • TipoRecurso similar a un registro de un lenguaje
    imperativo (campos).
  • El TipoRecurso debe reflejar el estado del
    recurso
  • Datos
  • Información necesaria para la sincronización.
  • Invariante
  • Restricción sobre el universo de valores descrito
    en el TipoRecurso.
  • Se debe cumplir antes y después de ejecutar una
    operación, pero no tiene por qué cumplirse
    mientras se ejecuta.

11
Estado inicial del recurso
  • Establece los valores iniciales para los campos
    del TipoRecurso.
  • I(r) es una fórmula y r es una variable de
    TipoRecurso.

INICIAL(r) I(r)
12
Especificación de las operaciones
  • Precondición fórmula que debe ser cierta para
    poder ejecutar una operación
  • Depende de los datos de entrada y el estado del
    recurso.
  • Se desglosa en
  • CPRE si no es cierta en el momento de la
    llamada, se bloquea al proceso llamante.
  • PRE restricciones de uso.
  • Postcondición fórmula que debe ser cierta tras
    ejecutar la operación.
  • Depende de los datos de entrada, salida y el
    estado de recurso.
  • No se especifica el momento en el que serán
    desbloqueadas las operaciones.

13
Especificación de las operaciones (ii)
  • Aspectos de notación para las POSTs
  • Valores de entrada y salida se usan cuando en
    una fórmula hacemos referencia al valor de una
    variable antes y después de ejecutar una
    operación superíndices ent y sal.
  • Omisión de valores que no cambian
  • POST r.asal r.aent 1 ? r.bsal r.bent
  • r.csal r.cent ? r.dsal r.dent ? r.esal
    r.eent
  • Se abrevia así
  • POST rsal rent \ r.asal r.aent 1

14
C-TADSOL del semáforo
CPRE cierto Init(s,v) POST ssal v CPRE
cierto Signal(s) POST ssal sent 1 CPRE s
gt 0 Wait(s) POST ssal sent - 1
  • C-TADSOL Semáforo
  • OPERACIONES
  • ACCIÓN Init TipoSemaforos x Ne
  • ACCIÓN Signal TipoSemaforoes
  • ACCIÓN Wait TipoSemaforoes
  • SEMANTICA
  • DOMINIO
  • TIPO TipoSemaforo N
  • INVARIANTE cierto
  • INICIAL(s) cierto

15
C-TADSOL del aparcamiento
  • C-TADSOL Aparcamiento
  • OPERACIONES
  • ACCIÓN Entrar TipoAparcamientoes
  • ACCIÓN Salir TipoAparcamientoes
  • SEMANTICA
  • DOMINIO
  • TIPO TipoAparcamiento 0..Max
  • DONDE Max ...
  • INVARIANTE cierto
  • INICIAL(a) a 0

CPRE a lt Max Entrar(a) POST asal aent 1
CPRE cierto Salir(a) POST asal aent - 1
16
C-TADSOL del Buffer con 1 dato
  • C-TADSOL Almacen1Dato
  • USA TipoDato
  • OPERACIONES
  • ACCIÓN Poner TipoBufferes xTipoDatoe
  • ACCIÓN Tomar TipoBufferes xTipoDatos
  • SEMANTICA
  • DOMINIO
  • TIPO TipoBuffer (Dato TipoDato x HayDato B
    )
  • INVARIANTE cierto
  • INICIAL(b) ?b.HayDato

CPRE b.HayDato Tomar(b, e) POST esal
b.Dato ? ?b.HayDatosal CPRE ?b.HayDato
Poner(b, e) POST b.Datosal eent ?
b.HayDatosal
17
C-TADSOL del Buffer
  • C-TADSOL Buffer
  • USA TipoDato
  • OPERACIONES
  • ACCIÓN Poner TipoBufferes xTipoDatoe
  • ACCIÓN Tomar TipoBufferes xTipoDatos
  • SEMANTICA
  • DOMINIO
  • TIPO TipoBuffer Secuencia(TipoDato)
  • INVARIANTE ?b?TipoBuffer ? Longitud(b) ltMAX
  • DONDE MAX ...
  • INICIAL(b) Longitud(b) 0

CPRE El buffer no está vacío CPRE Longitud(b)
gt 0 Tomar(b, d) POST Retiramos un elemento del
buffer POST l Longitud(bent) ? bent(1) d
? bsal bent(2..l) CPRE El buffer no está
lleno CPRE Longitud(b) lt MAX Poner(b, d)
POST Añadimos un elemento al buffer POST l
Longitud(bent) Longitud(bsal) l 1 ?
bsal(l 1) d ? bsal(1..l) bent
Write a Comment
User Comments (0)
About PowerShow.com