-
Condición de carrera
- Es cuando dos o más procesos acceden a un recurso compartido sin control. El resultado combinado de este acceso depende del orden de llegada
-
Secciones Críticas
- Parte del proceso en la cual se tiene acceso a un recurso compartido. Se necesitan cuatro condiciones para tener una buena solución
-
Condiciones
- 1. Dos procesos no deben encontrarse al mismo tiempo
- 2. No se deben hacer hipotesis sobre el numero de procesadores
- 3. Ninguno de los procesos pude bloquear a otros procesos
- 4. El proceso no puede esperar para entrar a su sección crítica
-
Dormir y despertar
- Dormir: cuando se realiza una operación de dormir sobre un evento, el proceso solicitante pierde el control del procesador y es añadido a la cola de procesos detenido en la cola del evento.
- Despertar: cuando se realiza la operación sobre un evento todos los procesos detenidos en la cola del evento son pasados a la cola del procesador. Si no existieran procesos detenidos en la cola del evento, la llamada no tiene efecto alguno.
-
Semaforo
- Variable especial que constituye el método clasico para restringir o conceder acceso a recursos compartidos en el que se ejecutan varios procesos concurrentes. Se emplean para permitir el acceso a diferentes partes de programas donde se manipulan variables o recursos
-
Monitores
- Los monitores son una construcción del lenguaje de programación. Es responsabilidad del compilador implementar la exclusión mutua en las entradas del monitor, pero una forma común de hacerlo es utilizar un mutex o semáforo binario. Solo puede haber un proceso activo en un monitor en cualquier instante
-
Exclusión mutua
- Se usan para evitar que entre mas de un proces a la vez en la sección crítica, el cual es el fragmento de código donde se puede modificar un recurso compartido
-
Deshabilitando interrupciones
- Variables de candado: cuando un proceso desea entrar a su región crítica, primero evalua el candado. Si este candado es cero (0), el proceso lo fija en uno (1) y entra a la región crítica. Si el candado ya es uno (1) solo espera hasta que el candado vuelva a cero (0)
- Alternancia estricta: solución que requiere que dos procesos alternen de manera estricta al entrar en sus regiones críticas
- Solución de Peterson: una vez que haya terminado con las variables compartidas, el proceso llama a salir región para indicar que ha terminado y permitir que los demás procesos entren.
-
Transmisión
- Mensajes: este método de comunicación entre procesos utiliza dos primitivas (send y receive) que al igual que los semáforos y a diferencia de los monitores son llamadas al sistema en vez de construcción del lenguaje. Se puede colocar con facilidad en procedimientos de biblioteca
- Barreras: algunas aplicaciones se dividen en fases y tienen la regla de que ningun procesos pueda continuar a la siguiente fase hasta que todos los procesos estén listos para hacerlo, esto se logra colocando una barrera al final de cada fase