Sunteți pe pagina 1din 14

Problemas en aplicaciones

concurrentes
Programacin concurrente y distribuida
UPC
Referencias

Esta presentacin toma como referencia los siguientes trabajos:

S. Lu, S. Park, E. Seo y Y. Zhou, Learning from Mistakes A Comprehensive


Study on Real World Concurrency Bug Characteristics , 2008

Agenda

Non Deadlock bugs


Violacin de atomicidad
Violacin de orden
Deadlocks bugs
Problemas modelo
Dining philosophers
Producers and consumers
Non Deadlock Bugs
Violacin de atomicidad

Veamos un ejemplo:

// Hilo 1
if (variable != null) {
...
operacion(variable);
...
}
// Hilo 2
variable = null;

Cul es el error?
Violacin de atomicidad

Definicin: La serializabilidad deseada entre mltiples accesos a la memoria


es violada - Shan Lu
Cual es la solucin?
Mutex
Violacin de orden

Veamos un ejemplo:

// Hilo 1
void inicializar() {
...
hilo = crear();
...
}
// Hilo 2
void main() {
...
estado = hilo.getEstado();
...
}
Cul es el error?
Violacin de orden

Definicin: El orden deseado entre 2 accesos a la memoria es invertido -


Shan Lu
Cual es la solucin?
Variables Condicin
https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/locks/Condition.html
Deadlock bugs
Deadlock
Condiciones

Exclusin mutua
Mantener y esperar
No apropiatividad
Espera circular
Problemas modelo
Dining philosophers

S-ar putea să vă placă și