Interbloqueo
Un interbloqueo es una situación en la que cada proceso del equipo espera un recurso asignado a otro proceso. En esta situación no se ejecuta ninguno de los procesos, ya que el recurso necesario está retenido por otro proceso que también espera a que se libere otro recurso. Es importante evitar un interbloqueo antes de que se produzca. El planificador de recursos puede detectar los casos de interbloqueo, lo que ayuda al sistema operativo a controlar todos los recursos asignados a diferentes procesos. El interbloqueo puede producirse si se dan las cuatro condiciones siguientes al mismo tiempo:
•Falta de acciones de prevención: el proceso solo puede liberar un recurso de forma voluntaria una vez que haya finalizado su tarea.
•Exclusión mutua: tipo especial de semáforo binario que se utiliza para controlar el acceso al recurso compartido. Permite que las tareas actuales de mayor prioridad se bloqueen durante el menor tiempo posible.
•Retención y espera: en esta condición, los procesos deben dejar de retener uno o varios recursos al tiempo que esperan otros.
•Espera circular: impone un orden total de todos los tipos de recursos. La espera circular también requiere que los procesos soliciten recursos en orden de enumeración ascendente.
Hay tres formas de gestionar un interbloqueo:
•No permita que el sistema entre en un estado de interbloqueo.
•Deje que se produzca el interbloqueo y, a continuación, dé preferencia a gestionarlo.
•Si se produce un interbloqueo, reinicie el sistema.