presentación concurrencia monitoreo

8
CONCURRENCIA EXCLUSIÓN MUTUA Y SINCRONIZACIÓN-MONITORES Presentado por: Alejandro Vargas Código: 10143

Upload: sistoperativos

Post on 20-Jul-2015

106 views

Category:

Design


1 download

TRANSCRIPT

CONCURRENCIA EXCLUSIÓN MUTUA Y

SINCRONIZACIÓN-MONITORES

Presentado por:

Alejandro Vargas

Código: 10143

Concurrencia-Monitores

¿que es concurrencia?

en informática, se habla de concurrencia cuando hay una existencia simultánea de varios procesos en ejecución.

Concurrencia-Monitores

Monitor

Los monitores son objetos destinados a ser usados sin peligro por más de un hilo de ejecución. La característica que principalmente los define es que sus métodos son ejecutados con exclusión mutua.

• El monitor fue propuesto por Hoare (1972).

• Tipo abstracto de datos.

o Estructura de datos privada.

o Operaciones públicas +

o Exclusión mutua.

o Sincronización (Variables condición).

Concurrencia-Monitoreo

Concurrencia-MonitoresMonitor ejemplo básico:

monitor contador {

// operaciones públicas

public contador () { valor = 0; }

public void incrementa () { valor ++;}

public int actual () { return valor; }

int valor; // variable interna privada

};

contador.incrementa ();

v = contador.actual ();

Concurrencia-Monitores

Si varios procesos intentan manipular el monitor al mismo tiempo, van entrando de uno en uno: no puede haber más de un proceso trabajando con el monitor en cada momento.

Concurrencia-Monitores

Monitor con variables condición.

Concurrencia-Monitores

¿como se implementa un monitor?

monitor MiMonitor {public void oper1 (...) {.....}public void oper2 (...) {....}

};

class Monitor {semaforo cerrojo = 1;public void oper1 (....) {cerrojo.P ();….. cuerpo de oper1 ... cerrojo.V ();

}public void oper2 (...) {....}cerrojo.P ();….. cuerpo de oper2 …

cerrojo.V ();}};

El compilador genera un código parecido a este:

El cerrojo garantiza que no puede haber más de un proceso dentro del monitor.