Qué es el bloqueo en el sistema operativo : Condiciones y algoritmo de detección
El objetivo principal de un sistema operativo es proporcionar una comunicación adecuada entre los recursos de hardware y software y también dar servicios comunes a los programas. Cuando un proceso del sistema operativo quiere acceder a cualquier recurso, primero envía una solicitud al recurso concreto al que quiere acceder, luego utiliza el recurso y finalmente lo libera después de utilizarlo. Si muchos procesos intentan acceder a un recurso al mismo tiempo, resulta difícil proporcionar un recurso a todos los procesos a la vez. Por lo tanto, este artículo describe cómo se produce el bloqueo y cómo superar esta situación de bloqueo.
¿Qué es el bloqueo en el sistema operativo?
Definición: El bloqueo es una situación en la que dos o más procesadores esperan que se produzca algún evento, pero que no se produzca es una condición de bloqueo, y se dice que los procesadores están en estado de bloqueo. Por ejemplo, supongamos un escenario en tiempo real, en el que hay dos coches A y B, conducidos por dos conductores individuales en una carretera de sentido único. Ahora se da la situación de que el conductor del coche A dice que moverse hacia el norte es una dirección correcta, mientras que el conductor del coche B dice que moverse hacia el sur es correcto. Pero ninguno de los dos retrocede para permitir que el otro coche avance, esta condición se llama condición de bloqueo.
Para comprender mejor, consideremos otro ejemplo en el que hay dos recursos R1, R2, y dos procesos P1 y P2, donde R1 está asignado a P1 y R2 a P2. Ahora bien, si P1 quiere acceder a R2, como ya sabemos que R2 está en manos de P2, y ahora P2 quiere acceder a R1, es decir, P1 se ejecuta sólo cuando accede a R2, también P2 se ejecuta sólo cuando accede a R1, esta situación es un estado de bloqueo.
Condiciones de bloqueo
Las siguientes son las cuatro condiciones de bloqueo importantes que pueden darse si todas las condiciones se dan simultáneamente, hay ciertas posibilidades de que se produzca el bloqueo.
Exclusión mutua
Significa que cualquier recurso que utilicemos debe ser utilizado de forma mutuamente excluyente. Donde sólo un proceso utiliza un recurso a la vez. Por ejemplo, el proceso de impresión está en marcha y de repente otro proceso intenta interrumpir el proceso de impresión. En este caso, en la situación de exclusión mutua, sólo se procesa la siguiente tarea después de que se haya completado la tarea de impresión. La exclusión mutua puede eliminarse compartiendo recursos simultáneamente, lo que no es posible en la práctica.
No hay exclusión previa
Según los algoritmos basados en el tanteo, si hay una tarea prioritaria que intenta interrumpir la tarea actual. El algoritmo preventivo retiene la tarea actual y ejecuta primero la tarea prioritaria y vuelve a su primera tarea. Una situación explicada según el ejemplo anterior en la que un proceso retiene el recurso mientras se ejecuta, es decir, P1 puede liberar a R1 sólo después de ejecutarse, de forma similar P2 libera a R2 sólo después de ejecutarse. Si no hay tanteo, puede producirse un bloqueo.
Mantener y esperar
Un proceso está reteniendo algunos recursos y está esperando recursos adicionales, pero esos recursos son adquiridos por algún otro proceso. En el ejemplo anterior, P1 está reteniendo R1 y esperando R2, donde R2 es adquirido por P2, y P2 está reteniendo R2 y esperando R1, donde R1 es adquirido por P1 es una situación de retención y espera que puede producirse un bloqueo en el sistema.
Espera circular
Se dice que un conjunto de procesos está en punto muerto si un proceso está esperando un recurso que está asignado a otro proceso y ese proceso está esperando un recurso, es similar al ejemplo explicado anteriormente en forma de bucle. Donde P1 está esperando a R2 y R2 está asignado a P2 y P2 está esperando a R1 y R1 está asignado a P1, que es una forma de espera circular, si esta condición se cumple se produce el bloqueo.
Algoritmo de detección de bloqueo de la red
Los casos en los que asignamos recursos a los procesos, y el sistema operativo vuelve a comprobar si se ha producido un bloqueo en el sistema o no utilizando 2 algoritmos principales de detección de bloqueos, que son
- Instancia única
- Múltiples instancias del tipo de recurso
Instancia única
Una instancia única es una situación en la que un sistema tiene instancias únicas de todos los recursos. También se conoce como algoritmo del gráfico de espera o gráfico de asignación de recursos. El gráfico de asignación de recursos está formado por un conjunto de procesos y un conjunto de recursos que se representan como dos vértices diferentes. Los recursos del gráfico de asignación de recursos se modifican y se representan en forma de gráfico de espera. La forma del gráfico de espera sólo tiene procesos que se representan como vértices, como se muestra a continuación,
- Gráfico de asignación de recursos: En el gráfico de asignación de recursos se representan los procesos P1, P2, P3 y los recursos R1, R2, R3.
- Gráfico de espera: Sólo los Procesos P1, P2, P3 se mencionan en el gráfico de espera.
- Si hay una condición de ciclo, es decir, si hay un flujo continuo de un proceso en una dirección, significa que la condición de ciclo sale y la espera del gráfico está en una condición de bloqueo.
Ejemplo 1: El siguiente ejemplo muestra que no hay un estado de bloqueo porque no se observa un flujo continuo en la espera del gráfico.
Ejemplo 2: Se ha producido una condición de bloqueo porque hay un flujo continuo de ciclo de P1 a P4.
Si el bloqueo se produce con mucha frecuencia en el sistema, el algoritmo de detección se utiliza con frecuencia. Si se utiliza más el algoritmo de detección, habrá más sobrecarga y más tiempo de cálculo. Por lo tanto, para superar esto, invocamos el algoritmo después, dando una cantidad de tiempo igual, así es como se utiliza el peso del gráfico para detectar el bloqueo.
Múltiples instancias del tipo de recurso
Las instancias múltiples del tipo de recurso es una situación en la que un sistema tiene múltiples instancias de todos los recursos, también se conoce como algoritmo Bankers. Según el algoritmo de los banqueros, en cuanto el proceso obtiene todos sus recursos necesarios, libera sus recursos.
Consideremos el siguiente ejemplo, supongamos que hay 3 procesos P0, P1, P2, y recursos de tipo A, B, C donde A puede ser la CPU, B puede ser la impresora y C puede ser el teclado. Los dígitos "0" de la columna representan la disponibilidad de los recursos.
Caso (i): Supongamos que tomamos la condición solicitud es "000" que está presente en P0 y P2, debemos comprobar qué solicitud se cumple, los procesos P0 liberan los procesos después de ser asignados, luego los siguientes procesos P2 liberan después de ser asignados. Así, en una secuencia, uno a uno los procesos liberan P0, P2, P3, P1, P4 en una secuencia. Finalmente, obtenemos los recursos disponibles como P7, P2, P6. La secuencia disponible es una condición en la que no hay bloqueo.
Caso(ii): Supongamos que P2 es 001 en lugar de 000, ahora aplica el algoritmo del banquero para comprobar el estado de bloqueo, donde sólo se ejecuta P0 entre los 5 procesos. Por lo tanto, P1, P2, P3, P4 están en estado de bloqueo excepto P0.
Aplicaciones del bloqueo
Las aplicaciones del bloqueo se pueden explicar con un ejemplo en tiempo real de resultados de exámenes en línea, en el que varios estudiantes intentan acceder a la página web de su universidad en el momento de la publicación. Se puede observar que a veces la página web no se carga a la vez para varios usuarios, esto es una condición de bloqueo. Esto puede superarse utilizando cualquiera de los algoritmos.
Ventajas
Las ventajas del bloqueo son
- En la evitación del punto muerto no se observa el tanteo
- No hay retraso en el proceso
Desventajas
La desventaja del bloqueo es
- El recurso que se va a utilizar debe conocerse de antemano
- Bloqueo del proceso durante mucho tiempo
- Las pérdidas por tanteo se heredan.
Este artículo resume cómo se produce un bloqueo cuando hay dos o más procesos y las tres condiciones que hacen que se produzca un bloqueo, así como los dos tipos de algoritmos, a saber, el algoritmo de compartición de recursos que detecta que existe un condición de bloqueo y el algoritmo de los banqueros, que es un algoritmo para evitar el bloqueo. La pregunta es: "¿Qué ocurre si se ignora el bloqueo?
Si quieres conocer otros artículos parecidos a Qué es el bloqueo en el sistema operativo : Condiciones y algoritmo de detección puedes visitar la categoría Generalidades.
Deja una respuesta
¡Más Contenido!