Please enable JavaScript.
Coggle requires JavaScript to display documents.
Concurrencia: Interbloqueo e inanición. - Coggle Diagram
Concurrencia: Interbloqueo e inanición.
Interbloqueo
Características
Bloqueo permanente de un conjunto de procesos que compiten por los recursos o bien se comunican unos con otros.
Suponen necesidades contradictorias de recursos por parte de dos o más procesos.
No existe una solución eficiente.
Condiciones de interbloqueo
Exclusión mutua:
Sólo un proceso puede usar un recurso cada vez.
Retención y esperar:
Un proceso solicita todos los recursos que necesita a un mismo tiempo.
No apropiación
Si a un proceso que retiene ciertos recursos se le deniega una nueva solicitud, dicho proceso deberá liberar sus recursos anteriores.
Si un proceso solicita un recurso que actualmente está retenido por otro proceso, el sistema operativo puede retener el segundo proceso y exigirle que libere sus recursos.
Circulo vicioso de espera
Puede prevenirse definiendo una ordenación lineal de los tipos de recursos.
Predicción de interbloqueo
Se decide dinámicamente si la petición actual de asignación de un recurso podría, de concederse, llevar potencialmente a un interbloqueo.
Necesita conocer las peticiones futuras de recursos.
Dos enfoques para la predicción de interbloqueo
No iniciar un proceso si sus demandas pueden llevar a interbloqueo.
No conceder una solicitud de incrementar los recursos de un proceso si esta asignación puede llevar a interbloqueo.
Los procesos a considerar deben ser independientes, no hay condiciones de sincronización.
Debe haber un número fijo de recursos a repartir.
Se debe presentar la máxima demanda de recursos por anticipado.
Los procesos no pueden finalizar mientras retengan recursos.
Técnicas una vez detectado el interbloqueo
Retroceder cada proceso interbloqueado hasta algún punto de control definido previamente y volver a ejecutar todos los procesos: Puede repetirse el interbloqueo original.
Abortar sucesivamente procesos interbloqueados hasta que deje de haber interbloqueo.
Abortar todos los procesos interbloqueados.
Apropiarse de recursos sucesivamente hasta que deje de haber interbloqueo.
Criterio de selección de los procesos interbloqueados
El mayor tiempo restante estimado.
El menor número total de recursos asignados hasta ahora.
El menor número de líneas de salida producidas hasta ahora.
La prioridad más baja.
La menor cantidad de tiempo de procesador consumido hasta ahora.
Recursos
Recursos reutilizables
Procesadores, canales de E/S, memoria principal y secundaria, archivos, bases de datos y semáforos.
El interbloqueo se produce si cada proceso retiene un recurso y solicita el otro.
Los procesos obtienen unidades de recursos que liberan posteriormente para que otros procesos las reutilicen.
Pueden ser usados por un proceso y no se agotan con el uso.
Recursos consumibles
Puede ser creado y destruido por un proceso.
Interrupciones, señales, mensajes e información en buffers de E/S
El interbloqueo se produce si el Receive es bloqueante.
Puede darse una combinación de sucesos poco habitual que origine el interbloqueo.
Negativa de asignación de recursos
El estado del sistema es la asignación actual de recursos a los procesos.
Un estado seguro es un estado en el cual existe al menos una secuencia que no lleva al interbloqueo.
Denominada algoritmo del banquero.
Un estado inseguro es un estado que no es seguro.
Mecanismos de concurrencia en UNIX
Memoria compartida.
Semáforos.
Mensajes.
Señales.
Tubos (pipes).
Primitivas de sincronización de hilos en solaris
Semáforos.
Cierres de múltiples lectores, un escritor (lectores/escritores).
Cierres de exclusión mutua (mutex).
Variables de condición.
Mecanismos de concurrencia en Windows 2000
Entrada de consola.
Notificación de cambio de archivo.
Archivo.
Mutante.
Hilo.
Semáforo.
Proceso.
Suceso.
Temporizador.