Existen ocaciones en que dos o mas procesos se "bloquearan mutuamente", creando un estancamiento.
a) Interbloque potencial: Puede ocurrir un interbloqueo
b) Interbloqueo real: Se ha producido un interbloqueo
El interbloqueo o deadlock es un problema que afecta a "procesos concurrentes" que usan recursos en un sistema.
Los procesos concurrentes son cargados en la memoria RAM; en sistemas multitareas o proceso. En sistemas monoproceso el interbloqueo NO TIENE SENTIDO
Los procesos solicitan recursos liberandolos cuando no los necesitan. Un recurso puede estar disponible o asignado a algún proceso
Ejemplares: Son la cantidad de "copias" de un mismo tipo de recurso, por ejemplo: varias impresoras
SI UN PROCESO SOLICITA UN RECURSO, SE LE CONCEDE CUALQUIER EJEMPLAR DISPONIBLE
SI UN PROCESO SOLICITA UN RECURSO SIN EJEMPLAR DISPONIBLE, ESTE QUEDA BLOQUEADO, ESPERANDO A QUE SE LE ASIGNE ALGÚN EJEMPLAR DISPONIBLE
Problema: Si varios procesos bloqueados, esperan un recurso retenido por otro proceso. NINGÚN PROCESO PUEDE AVANZAR. Es en ese momento donde se genera un intebloqueo, abrazo mortal, bloque mutuo o deadlock
El interbloqueo no es responsabilidad de las aplicaciones, sino del sistema de gestión del sistema operativo
Ejemplo: Los procesos A y B se pueden interbloquear, aunque estén creados correctamente
No hay comentarios:
Publicar un comentario