Mecanismos de sincronización
De Wiki de Sistemas Operativos
Revisión del 15:45 28 mar 2011 de MMartín (discusión | contribuciones) (Página nueva: Existen dos tipos de mecanismos de sincronización: <pre> - Optimista: se considera que la frecuencia de acceso a un recurso compartido es baja. He aquí un ejemplo: Suponemos ...)
Existen dos tipos de mecanismos de sincronización:
- Optimista: se considera que la frecuencia de acceso a un recurso compartido es baja. He aquí un ejemplo: Suponemos 2 hilos, hx y hy. int compartida = 1, tmp; retry: tmp = compartida; /* anoto */ tmp++; /* actualizo temporal */ if(compartida+1 != tmp) goto retry; /* compruebo si la variable compartida ha sido modificada mientras operaba con el temporal */
- Pesimista: se considera que la frecuencioa de acceso al recurso compartido es alta. He aquí un ejemplo: Suponemos 2 hilos, hx y hy. int compartida = 1; no_permito_acceso_variable_compartida(); /* protocolo de entrada */ compartida++; /* sección crítica */ permito_acceso_a_variable_compartida(); /* protocolo de salida */