Sistema operativos. Tarea 5
Universidad abierta para adultos (UAPA).
Bienvenidos a la quinta semana de trabajo en la asignatura sistemas operativos, en la que se realizarán las siguientes actividades:
Introducción:
En la presente practica se procede a realizar un informe sobre el interbloqueo. Este es el bloqueo permanente de un conjunto de procesos que compiten por los recursos del sistema o bien se comunican unos con otros. A diferencia de otros problemas de la gestión concurrente de procesos, para el caso general no existe una solución eficiente. En esta sección, se examinará la naturaleza del problema del interbloqueo.
La realización de dos ejercicios, a través de tres estrategias: prevención, detección y predicción de interbloqueo.
Distinguid@ participante:
Indaga sobre el interbloqueo, haciendo énfasis en los Recursos, algoritmos, detección, recuperación y prevención de un interbloqueo. Elaborar informe.
El interbloqueo es una anomalía que puede ocurrir durante la ejecución de procesos concurrentes debido a la competencia por los recursos.
Si bien es cierto que prácticamente ningún sistema operativo real incorpora mecanismos de tratamiento de interbloqueo, esto es debido a una cuestión de la pérdida de rendimiento que conlleva su tratamiento para la baja probabilidad que hay de que ocurra. En un sistema operativo ideal, sin embargo, sí deberían incluirse mecanismos para su tratamiento, dado que existen y son bien conocidos.
El interbloqueo es un problema que afecta a procesos concurrentes que utilizan recursos en un sistema. Los procesos solicitan recursos al sistema y los liberan cuando ya no los necesitan. Un recurso puede estar disponible o bien asignado a algún proceso.
Condiciones para el interbloqueo:
Si en un sistema se produce una situación de interbloqueo, entonces se cumplen simultáneamente estas cuatro condiciones:
- Exclusión mutua.
Los recursos no se pueden compartir.
- Retención y espera.
Un proceso que retiene uno o varios recursos se encuentran esperando por recursos asignados a otros procesos.
- No expropiación.
Un recurso sólo puede ser liberado por el proceso que lo retiene, voluntariamente.
- Espera circular.
Existe una serie de procesos en espera {Po, P1,…Pn} en la que todo Pi espera por un recurso retenido por Pi+1; y Pn espera por un recurso retenido por Po.
Tratamiento de interbloqueo.
Evite bloqueos en su sistema.
Prevención: Diseñe su sistema para que no se cumpla ninguna de las cuatro condiciones de interbloqueo.
Solución alternativa: Evite interbloqueos.
Permita que se produzcan interbloqueos y corríjalos cuando se produzcan. Requiere sistema de detección y mecanismo de recuperación.
No maneje el problema si hay un interbloqueo. El usuario debe intervenir.
Modelado de interbloqueos.
Los modelados de interbloqueos están representados por dos tipos de nodo los cuales son: Procesó representado gráficamente por un círculo y Recurso representado por un cuadrado y con dos arcos, 1 de solicitud y otro de asignación.
El algoritmo del avestruz.
En el algoritmo de avestruz los matemáticos la encuentran totalmente inaceptable y dicen que los interbloqueos se deben prevenir a toda costa; los ingenieros preguntan con qué frecuencia se espera el problema, con qué frecuencia falla el sistema por otras razones y qué tan grave es un interbloqueo.
Ejercicio 1:
Cuatro carros llegan aproximadamente en el mismo instante a un cruce de cuatro caminos. Los cuatro cuadrantes de la intersección son los recursos compartidos sobre los que se demanda control; por tanto, si los carros desean atravesar el cruce, las necesidades de recursos son las siguientes:
– El carro que va hacia el norte necesita los cuadrantes 1 y 2.
– El carro que va hacia el oeste necesita los cuadrantes 2 y 3.
– El carro que va hacia el sur necesita los cuadrantes 3 y 4.
– El carro que va hacia el este necesita los cuadrantes 4 y 1.
Como solucionarías lo planteado anteriormente.
Quedó claro que la forma más común en la carretera es que el automóvil se rinda al lado derecho de la carretera en una intersección de cuatro vías. Esta regla funciona si solo hay dos o tres autos en la intersección. Cuando los cuatro autos lleguen aproximadamente al mismo tiempo, cada uno se abstendrá de ingresar a la intersección y se producirá un interbloqueo. Si todos los autos ignoran las reglas y entran a la intersección (con cuidado), cada auto obtiene un recurso (cuadrante), pero no puede continuar porque el segundo recurso requerido ya está emboscado por otro auto.
También hay una clave aquí. Volviendo al campo de los sistemas operativos, el punto muerto es el bloqueo permanente de muchos procesos o subprocesos en un sistema que se están ejecutando al mismo tiempo, compitiendo por los recursos del sistema o comunicándose entre sí. A diferencia del problema de la concurrencia de otros procesos, es una solución común para los interbloqueos.
Ejercicio 2:
Dos procesos desean imprimir cada uno un archivo PDF de 500 MB en memoria USB. El proceso A solicita el permiso para utilizar la impresora, el cual se le concede. Es entonces cuando el proceso B solicita permiso para utilizar la unidad USB y se le otorga. El proceso A solicita entonces la unidad USB, pero la solicitud es denegada hasta que B lo libere. Por desgracia, en este momento, en vez de liberar unidad USB, B solicita la impresora.
Como pueden ser los recursos.
Un sistema se compone de un número finito de recursos que se distribuyen entre varios tipos.
Lógicos: Ficheros, tablas de los sistemas y semáforos.
Físicos: Ciclo de CPU, espacio en memoria, dispositivos de e/s (impresoras, unidades de cinta, entre otros.).
Cuales paso debe de seguir un proceso para solicitar un recurso.
Si el recurso no está disponible cuando se solicita, el proceso de solicitud debe esperar. En algunos sistemas operativos, un proceso se bloquea automáticamente cuando falla una solicitud de recurso y se activa cuando el recurso está disponible. En otros sistemas, la solicitud falla con un código de error y el proceso de solicitud debe esperar un poco y volver a intentarlo.
Un proceso cuya solicitud de recurso es denegada normalmente entra en un bucle, solicita el recurso, entra en suspensión y vuelve a intentarlo. Este proceso no está bloqueado, pero está efectivamente bloqueado porque no puede realizar ningún trabajo útil.
Conclusión:
Al final vimos lo que es un interbloqueo, ocurre cuando 2 procesos compiten por el acceso exclusivo a un recurso, pero no pueden obtener acceso exclusivo porque el otro proceso lo bloquea. Esto conduciría a un enfrentamiento en el que ninguna de las partes podría continuar.
Haciendo énfasis en los recursos, los algoritmos, detección, recuperación y prevención de un interbloqueo directamente en los sistemas operativos y se le dio una solución a cada uno de los problemas planteado.
Bibliografía:
2.4.3 Interbloqueo (DeadLock). – SISTEMAS OPERATIVOS (google.com)
so-11-Interbloqueo.ppt (ulpgc.es)
Sistemas Operativos II : Resumen de Interbloqueos (juancarivas.blogspot.com)
