Bloqueos

Descripción

S.O. Fichas sobre Bloqueos, creado por Lourdes Soto el 30/09/2019.
Lourdes Soto
Fichas por Lourdes Soto, actualizado hace más de 1 año
Lourdes Soto
Creado por Lourdes Soto hace alrededor de 5 años
299
0

Resumen del Recurso

Pregunta Respuesta
¿Cuándo un proceso está interbloqueado? Un proceso dentro de un sistema de multiprogramación está en un estado de interbloqueo (o interbloqueado) si está esperando por un evento determinado que no ocurrirá.
Cuando los recursos son compartidos entre usuarios pueden producirse interbloqueos en los cuales los procesos de algunos usuarios nunca podrán llegar a su término, ¿qué se debe hacer en estos casos? Se debe considerar la prevención, evitación, detección y recuperación del interbloqueo y la postergación indefinida, que se da cuando un proceso, aunque no esté interbloqueado, puede estar esperando por un evento que probablemente nunca ocurrirá. En algunos casos: el precio de liberar interbloqueos en un sistema es demasiado alto y permitir el interbloqueo podría resultar catastrófico.
Los sistemas de cómputos tienen muchos recursos que solo pueden ser utilizados por un proceso a la vez, ejemplos Ej.: impresoras, unidades de cinta, espacio de la tabla de nodos-i.
¿Qué hacen los S.O. con estos recursos? Los S. O. tienen la capacidad de otorgar temporalmente a un proceso el acceso exclusivo a ciertos recursos. Frecuentemente un proceso necesita el acceso exclusivo no solo a un recurso, sino a varios.
¿Qué es la contención de recursos? La lucha de dos o más procesos por ciertos recursos. Los recursos pueden ser retenidos o liberados por los procesos que los utilizan. Acción de contender, pelear o combatir.
Ejemplo de bloqueo deadlock, interbloqueo de un recurso simple o espera circular.
Ejemplo de interbloqueo de tráfico Tiene similitud con el congestionamiento del tránsito en las ciudades. El tráfico puede detenerse completamente. Es necesaria una intervención externa para poner orden y restablecer la normalidad.
Ejemplo de interbloqueo en sistemas de spool Un sistema de spool: ejemplo Si un programa envía líneas a una impresora, en realidad son enviadas a un dispositivo más rápido (disco). Se almacenan temporalmente hasta ser impresas. Varios trabajos en ejecución que generan líneas de spool pueden interbloquearse si el espacio disponible se llena antes de completarse alguno de estos trabajos.
En este último caso, ¿cómo se reduce la probabilidad de interbloqueos del spool? * Proporcionando un espacio en disco considerablemente mayor que el necesario, preferentemente con asignación dinámica. * Limitando los spoolers de entrada para que no lean más trabajos cuando los archivos de spool llegan a cierto nivel de saturación.
Un problema relacionado: postergación indefinida, ¿cuándo sucede y una posible solución? Sucede cuando los recursos son planificados en función de prioridades, un proceso dado puede esperar indefinidamente, mientras sigan llegando procesos de prioridades mayores. En algunos sistemas se evita al permitir que la prioridad de un proceso aumente mientras espera por un recurso; a esto se llama envejecimiento.
Conceptos de Recursos Clasificación (2 criterios) * Apropiativos (el S.O. puede sacarle a los procesos): CPU, memoria. * No apropiativos (no pueden sacarse de los procesos a los que están asignados): unidades de cinta, impresoras. * Compartidos entre varios procesos. * Dedicados a procesos individuales.
¿Qué se debe establecer cuando se trabaja con recursos compartibles o de uso compartido? Se debe establecer si son utilizables por varios procesos simultáneamente o de a uno por vez, estos últimos son los recursos que más a menudo están implicados en los interbloqueos.
La secuencia de eventos para utilizar un recurso 1- Solicitar el recurso. 2- Utilizar el recurso. 3- Liberar el recurso.
¿Qué pasa si el recurso no está disponible? El proceso solicitante debe esperar. En algunos S. O. el proceso se bloquea automáticamente y se despierta cuando dicho recurso está disponible. En otros S. O. la solicitud falla y el proceso debe esperar para luego intentar nuevamente.
¿Qué es un bloqueo formalmente? Un conjunto de procesos se bloquea si cada proceso del conjunto espera un evento que solo puede ser provocado por otro proceso del conjunto. Ya que todos los procesos están esperando: ninguno podrá despertar a los demás y todos los procesos esperarán por siempre.
¿Qué evento generalmente espera cada proceso? Generalmente el evento que espera cada proceso es la liberación de cierto recurso que posee por el momento otro miembro del conjunto.
Las condiciones necesarias para el bloqueo (Coffman)
La modelación de bloqueos se puede mostrar mediante gráficas dirigidas.
Principales aspectos en la investigación de bloqueos
Estrategias utilizadas para enfrentar los bloqueos * Ignorar todo el problema. * Detección y recuperación. * Evitarlos dinámicamente mediante una cuidadosa asignación de recursos. * Prevención mediante la negación estructural de una de las cuatro condiciones necesarias.
El Algoritmo del Avestrúz o de Ostrich El punto de vista más simple es pretender que no existe el problema. Algunos S. O. soportan potencialmente bloqueos que ni siquiera se detectan, ya que se rompen automáticamente.
Los S. O. que ignoran el problema de los bloqueos asumen qué hipótesis La mayoría de los usuarios preferiría un bloqueo ocasional, en vez de una regla que restringiera a todos los usuarios en el uso de los distintos tipos de recursos. Pues para encarar el problema del bloqueo se paga un precio en forma de restricciones para los procesos y en el uso de recursos.
¿Cuál es un criterio de orden general utilizado por los S. O. que no hacen tratamiento específico del bloqueo? 1- intentar acceder al recurso compartido. 2- de no ser factible el acceso: esperar un tiempo aleatorio y reintentar nuevamente.
Reducción de Gráficas de Asignación de Recursos, ¿cuándo sucede?, ¿cómo se grafica? Si las peticiones de recursos de un proceso pueden ser concedidas, se dice que una gráfica puede ser reducida por ese proceso. La reducción se muestra retirando las fechas que unen los procesos y los recursos de la gráfica.
¿Qué pasa si una gráfica puede ser reducida para todos sus procesos y queé pasa en caso contrario? Si una gráfica puede ser reducida por todos sus procesos, entonces no hay interbloqueo. En caso contrario, los procesos “irreducibles” constituyen la serie de procesos interbloqueados de la gráfica.
Cuándo Buscar los Bloqueos * Cada vez que se solicita un recurso, pero esto podría sobrecargar al sistema. * Verificar cada k minutos. * Verificar cuando el uso de la CPU baje de cierto valor fijo pues si se bloquean suficientes procesos existirán pocos en ejecución y la CPU estará inactiva con más frecuencia.
¿Qué hay que hacer para romper o recuperarse de un bloqueo? Para romper el bloqueo de un sistema hay que anular una o más de las condiciones necesarias para el bloqueo. Normalmente, varios procesos perderán algo o todo lo realizado hasta el momento.
¿Qué factores dificultan la recuperación? * Puede no estar claro si el sistema se ha bloqueado o no. * Muchos sistemas tienen limitaciones para suspender un proceso por tiempo indefinido y reanudarlo más tarde: Ej.: procesos de tiempo real. * Los procedimientos de suspensión / reanudación implican una sobrecarga considerable. * La sobrecarga de recuperación está "en función de la magnitud del bloqueo" (algunos, decenas o centenas de procesos involucrados).
Pasos para la recuperación 1- Retirando forzosamente (cancelando) a un proceso. 2- Reclamando sus recursos. 3- Permitiendo que los procesos restantes puedan finalizar.
¿Qué proceso se retira?¿De acuerdo a que orden? Los procesos pueden ser retirados (cancelados) de acuerdo a un orden de prioridades, existiendo las siguientes dificultades: Pueden no existir las prioridades. Las prioridades instantáneas pueden ser incorrectas o confusas debido a consideraciones especiales. La decisión óptima puede requerir un gran esfuerzo.
Algunas formas de recuperación ante bloqueos * Recuperación mediante la apropiación. * Recuperación mediante rollback. * Recuperación mediante la eliminación de procesos.
Recuperación Mediante la Apropiación En ciertos casos podría ser posible tomar un recurso temporalmente de su poseedor y dárselo a otro proceso. Esto depende en gran medida de la naturaleza del recurso. La elección del proceso a suspender depende mucho de cuáles procesos poseen recursos que pueden ser tomados con facilidad y de las posibilidades de recuperación luego de la apropiación.
Recuperación Mediante Rollback Los procesos son verificados periódicamente: su estado se graba en de modo que pueda volver a iniciar más tarde. El punto de verificación o de control contiene: la imagen de la memoria y el estado de los recursos. Además se mantienen sin ser regrabados durante el proceso.
Al detectarse un bloqueo es fácil ver cuáles son los recursos necesarios. ¿Cuáles son los pasos a seguir? Para la recuperación, un proceso que posee un recurso necesario regresa a un tiempo anterior a la adquisición: • Inicializa alguno de sus puntos de verificación y regresa a un momento anterior en el que no poseía el recurso. • El recurso se asigna ahora a uno de los procesos bloqueados. • Si el proceso que volvió a iniciar intenta adquirir de nuevo el recurso, tendrá que esperar hasta que esté disponible.
Recuperación Mediante la Eliminación de Procesos Una posibilidad es eliminar un proceso del ciclo: si el bloqueo no se rompe, se puede intentar con otro proceso. Otra posibilidad es eliminar un proceso que no esté en el ciclo, para poder liberar sus recursos: debe elegirse un proceso que posea recursos necesarios por algún proceso del ciclo. Siempre que sea posible, es mejor eliminar un proceso que pueda volver a iniciar su ejecución sin efectos dañinos.
Evasión de Bloqueos: hasta el momento se supuso que un proceso solicita todos los recursos que usará al mismo tiempo, sin embargo ¿qué pasa en la realidad? En la mayoría de los sistemas los recursos se solicitan uno a la vez. El S. O. debe poder: decidir si el otorgamiento de un recurso es seguro o no y asignarlo solo en caso de que sea seguro. El objetivo es evitar el bloqueo haciendo la elección correcta todo el tiempo, pero para evitar los bloqueos se requiere de cierta información de antemano.
Los principales algoritmos para evitar los bloqueos se basan en el concepto de estados seguros. (practicar como usar el gráfico)
Un estado actual está conformado por “E”, “A”, “C” y “R”: “E”: vector de recursos en existencia. “A”: vector de recursos disponibles. “C”: matriz de asignación actual. “R”: matriz de solicitudes.
¿Cuándo un estado es "seguro"? Cuando no está bloqueado y existe una forma de satisfacer todas las solicitudes pendientes, mediante la ejecución de los procesos en cierto orden.
¿Qué implica y que no un "estado inseguro"? * No implica la existencia, ni siquiera eventual, de bloqueo. * Sí implica que alguna secuencia infortunada de eventos dé como resultado un bloqueo.
La diferencia entre estado seguro e inseguro * A partir de un estado seguro, el sistema puede garantizar la conclusión de todos los procesos. * A partir de un estado inseguro, no existe tal garantía. - Dado un estado actual seguro, ello no implica que vayan a ser seguros todos los estados futuros.
Algoritmo de planificación que puede evitar los bloqueos. El Algoritmo del Banquero (de Dijkstra) Los clientes son los procesos, las unidades de crédito son los recursos del sistema y el banquero es el S.O. El banquero sabe que no todos los clientes necesitaran su crédito máximo otorgado en forma inmediata, por ello reserva menos unidades (recursos) de las totales necesarias para dar servicio a los clientes. Un estado inseguro no tiene que llevar a un bloqueo.
El Algoritmo del Banquero (de Dijkstra) Para Solo Un Recurso
El Algoritmo del Banquero (de Dijkstra) Para Varios Recursos Acá también los procesos deben establecer sus necesidades totales de recursos antes de su ejecución y dada una matriz de recursos asignados, el S.O. debe poder calcular en cualquier momento la matriz de recursos necesarios.
En el algoritmo se permiten 3 de las 4 condiciones para bloqueos, ¿cuáles? ¿Cómo se hacen las peticiones por recursos? Se permiten las condiciones de “exclusión mutua”, “espera por” y “no apropiatividad”. Las peticiones son de un recurso a la vez. Si se niegan, el proceso retiene sus recursos y espera un tiempo finito a que la petición sea aceptada.
El S. O. concede peticiones que den como resultado solo estados seguros en el algoritmo anterior, ¿qué genera cómo consecuencia? Dado que el sistema se mantiene siempre en estado seguro, todas las peticiones serán atendidas en un tiempo finito.
Debilidades del Algoritmo del Banquero Requiere que exista un número fijo de recursos asignables. Requiere que la población de usuarios se mantenga constante. Requiere que los procesos reintegren los recursos en un tiempo finito. Requiere que los procesos indiquen sus necesidades máximas de recursos por adelantado.
¿Qué manifiesta el enunciado de Havender? Si se puede garantizar que al menos una de las cuatro condiciones de Coffman para el bloqueo nunca se satisface, entonces los bloqueos serán imposibles por razones estructurales.
Havender sugirió estrategias para evitar varias de las condiciones de bloqueo
Prevención de la Condición de Exclusión Mutua Si ningún recurso se asignara de manera exclusiva a un solo proceso, nunca tendríamos bloqueos, pero esto es imposible de aplicar, en especial en relación a ciertos tipos de recursos, que en un momento dado no pueden ser compartidos (ej.: impresoras). Se debe: evitar la asignación de un recurso cuando no sea absolutamente necesario. e intentar asegurarse de que los menos procesos posibles puedan pedir el recurso.
Prevención de la Condición “detenerse y esperar” o “espera por” Si se puede evitar que los procesos que conservan recursos esperen más recursos, se pueden eliminar los bloqueos. Una forma es exigir a todos los procesos que soliciten todos los recursos antes de iniciar su ejecución; si un proceso no puede disponer de todos los recursos, deberá esperar, pero sin retener recursos afectados.
¿Cuáles son los problemas con esta prevención? Un problema es que muchos procesos no saben el número de recursos necesarios hasta iniciar su ejecución. Otro problema es que puede significar desperdicio de recursos, dado que todos los recursos necesarios para un proceso están afectados al mismo desde su inicio hasta su finalización.
¿Hay otro criterio de aplicación de esta prevención? Si, exigir a un proceso que solicita un recurso que libere en forma temporal los demás recursos que mantiene en ese momento. Hacer que el proceso intente luego recuperar todo al mismo tiempo.
Prevención de la Condición de “no apropiación” Niega la condición de “no apropiación” y los recursos pueden ser retirados de los procesos que los retienen antes de la terminación de los procesos. El problema consiste esto puede significar la pérdida del trabajo efectuado hasta ese punto y tener que repetirlo luego.
¿Cuál es una consecuencia seria de está estrategia? Una consecuencia seria es la posible postergación indefinida de un proceso.
Prevención de la Condición de “espera circular” Tiene dos formas de implementación Una forma es que un proceso solo está autorizado a utilizar un recurso en cada momento: si necesita otro recursos, debe liberar el primero.Esto resulta inaceptable para muchos procesos.
La otra forma Todos los recursos se enumeran. Los procesos pueden solicitar los recursos en cualquier momento pero tienen que seguir el orden numérico (creciente). Una variante consiste: nunca se pueden solicitar recursos con números menores pero si igual o mayor al recurso mayor actual.
¿Cuál es el problema con está estrategia? El problema es que en casos reales podría resultar imposible encontrar un orden que satisfaga a todos los procesos.
Resumen de los métodos para prevenir el bloqueo
Otros aspectos interesantes relacionados con bloqueos La cerradura de dos fases Una operación frecuente en sistemas de BD consiste en solicitar el cierre de varios registros y actualizar todos los registros cerrados. Ante la ejecución de varios procesos al mismo tiempo, existe un grave riesgo de bloqueo. El método de la cerradura de dos fases consiste en: * Primer fase: el proceso intenta cerrar todos los registros necesarios, uno a la vez. * Segunda fase: se actualiza y se liberan las cerraduras. Si durante la primer fase se necesita algún registro ya cerrado el proceso libera todas las cerraduras y comienza en la primer fase nuevamente. Generalmente esto no resulta aplicable en la realidad pues no resulta aceptable dejar un proceso a la mitad y volver a comenzar.
Otros aspectos interesantes relacionados con bloqueos Bloqueos Sin Recursos Los bloqueos también pueden aparecer en situaciones que no están relacionadas con los recursos. Puede ocurrir que dos procesos se bloqueen en espera de que el otro realice cierta acción, por ej.: operaciones efectuadas sobre semáforos (indicadores o variables de control) en orden incorrecto.
Otros aspectos interesantes relacionados con bloqueos Inanición Podría suceder que ciertos procesos nunca lograran el servicio, aún sin estar bloqueados, porque se privilegia en el uso del recurso a otros procesos. La inanición se puede evitar mediante el criterio (política) de asignación de recursos FIFO “el primero en llegar es el primero en despachar (ser atendido)”.
Generalmente los S. O. han considerado al bloqueo como una incomodidad limitada. Muchos S. O. implementan métodos básicos de prevención de bloqueos sugeridos por Havender y los resultados son satisfactorios en gran número de casos. Sin embargo, la tendencia va en cambio La tendencia es que el bloqueo tenga una consideración mucho mayor en los nuevos S. O., debido a: * Orientación hacia la operación asincrónica en paralelo. * Asignación dinámica de recursos. * Consideración de los datos como un recurso.
Mostrar resumen completo Ocultar resumen completo

Similar

Sistema Operativo
Guadalupe Rguez
CLASIFICACIÓN DE LOS SISTEMAS OPERATIVOS
luisdavidmonsanc
Toma de decisiones
Aylin Hernández
Flash Card Software en linea
Shiram Cruz
Seguridad y Salud en el Trabajo
Edmi Zuluaga Bermudez
Sistema Operativo
Augoth Sanctuary
SISTEMAS OPERATIVOS
Ivan Mellado
Gerardo Rivera, Eduardo Vazque
gerardo.rivera.r
CLASIFICACIÓN DE LOS S.O.
angelica_garcia
INSTALACION S.O.
Priscila Esther