SlideShare una empresa de Scribd logo
SISTEMAS OPERATIVOS Administración de los procesos
Introducción La administración de los recursos es una de las principales tareas del sistema operativo. •  Los sistemas operativos tienen que ofrecer mecanismos que permitan a los procesos acceder de forma exclusiva a este tipo de recursos. •  Cuando un proceso solicita ciertos recursos y éstos no están disponibles en ese momento, entra en un estado de espera. •  Los SO deben requerir  el  acceso  exclusivo  no  sólo  a  un recurso, sino a varios.
Llamadas al sistema -Solicitud.- , Si el recurso no esta  disponible el proceso debe esperar: El proceso se bloquea hasta que este libre La solicitud falla y devuelve un error -Utilización -Liberación Expropiables .-  aquel que se puede tomar  del Proceso  que lo posee sin efectos dañinos No expropiables .-  aquel que no se puede Tomar de su poseedor  sin provocar un fallo de calculo - Físicos - Lógicos Recursos Objetos conocidos, cualquier cosa que solo puede ser usada por un único proceso. Un sistema se compone de un numero finito de Recursos que se distribuyen entre varios procesos que compiten entre ellos RECURSOS Pasos para usar un recurso :
El sistema operativo como administrador de recursos
Tipos de recursos Recursos reutilizables : Pueden ser usados por un proceso y no se agotan con el uso. Los procesos solicitan, usan y liberan los recursos para que posteriormente otros procesos los reutilicen Ejemplos: procesadores, impresoras, dispositivos de E/S, memorias principal y sec., archivos, DDBB y semáforos Recursos consumibles : Pueden ser producidos (creados) y consumidos (derruidos)  por un proceso Cuando un proceso adquiere un recurso este deja de existir. Ejemplos : Interrupciones, señales, mensajes e información en buffers de E/S
BLOQUEOS
Definición de “BLOQUEO” El interbloqueo se puede definir como el bloqueo permanente de un conjunto de procesos que compiten por los recursos del sistema o bien se comunican unos con otros. Todos los interbloqueos suponen necesidades contradictorias de recursos por parte de dos o más procesos . •  Deadlock •  Abrazo mortal •  Bloqueo mutuo Interbloqueo La gestión del interbloqueo no es responsabilidad de las aplicaciones, sino del sistema de gestión de recursos.
Un sistema está en interbloqueo cuando uno o mas procesos están esperando un evento que no va ha suceder. Es una situación en la cual uno o mas procesos están bloqueados como consecuencia de que cada proceso tiene retenido un subconjunto de los recursos necesarios para su finalización y tengan que esperar la liberación de los recursos restantes retenidos por otros procesos del mismo grupo. Se presenta en sistemas multiprogramados. Se presenta cuando los recursos son compartidos y por consiguiente no son suficientes. Un conjunto de procesos se encuentra en estado de interbloqueo  cuando cada  uno  de ellos espera  un suceso  que  sólo  puede  originar  otro  proceso  del mismo conjunto.   DEFINICIONES DE  “BLOQUEO”
Ejemplo de una situación de interbloqueo
Principios de interbloqueo El interbloqueo puede ser definido como el bloqueo permanente de un conjunto de procesos que compiten por recursos del sistema o se comunican unos con otros En cuanto al uso de recursos Puede haber varias unidades del mismo tipo de recurso Cuando un proceso pide un recurso, le vale cualquier unidad de ese tipo Los bloqueos mutuos no se limitan a archivos, impresoras y Unidades de cinta; también pueden ocurrir en recursos compartibles, como Discos y bases de Datos, según veremos en los Ejemplos Que siguen.
Compras   P1  -    Ventas    P2 Ambos activos al mismo tiempo Para actualizar las transacciones cotidianas c/u necesita tener acceso  a 2 archivos Inventarios  F1 Proveedores  F2 Un día el sistema se bloquea mutuamente, cuando ocurre lo siguiente : 1.- Compras (P1) accede al archivo de proveedores (F2), para colocar un pedido para mas madera 2.- Ventas accede al archivo de inventarios (F1)para reservar los componentes que Se requerirán a fin de construir la casa-habitación pedida ese día 3.- Compras (P1) no libera el archivo de proveedores (F2), pero solicita el archivo de Inventarios (F1) para comprobar la cantidad de madera a mano, antes de colocar su perdido por mas, pero P1 esta bloqueado por que P2 tiene a F1 4.- Mientras tanto (P2) no libera el archivo de inventarios (F1), pero solicita el archivo  de proveedores (F1) para verificar el programa de un subcontratista. Al llegar a este  punto P2 también queda bloqueado por que F2 esta es manos de F1. CASO 1  .- Bloqueo mutuo en solicitudes de archivo
 
CASO2  .- Bloqueo mutuo en Bases de Datos Jones GPA=2.5 Direcc: Av. Sn Felipe Jones GPA=2.5 Direcc: Av.Salaverry P2 Proceso de actualización De Dirección lee Dato P1 Proceso de   actualización De Grado lee Dato Jones GPA=3.0 Direcc: Av. Sn Felipe Jones GPA=2.5 Direcc: Av.Salaverry Jones GPA=3.0 Direcc: Av. Sn Felipe Área de Trabajo P1 sobreescribe el Registro a la base De datos con la nueva Dirección Registro Final P1 sobreescribe el Registro a la base de  Datos con el nuevo grado Grado  actualizado Caso 2: Si P1 termina Primero ganará La carrera , pero Su versión del Registro pronto Será sobreescrita Por P2. Sea cual  sea el proceso ganador. La versión final de los Datos sera incorrecta Dirección Actualizada Bloqueos
Dos procesos desean imprimir cada uno un enorme archivo. 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 el escáner   y se le otorga. El proceso A solicita entonces el escáner, pero la solicitud es denegada hasta que B la libere. Por desgracia, en este momento, en vez de liberar el escáner, B solicita la impresora. Los procesos se bloquean en ese momento y permanecen así por siempre. Ejemplo: Los procesos A y B se pueden interbloquear, aunque estén escritos correctamente CASO3 .- Bloqueos en la asignación de dispositivos dedicados ( Dos procesos desean imprimir grandes archivos en cinta ) Solicita (escáner) Solicita (impresora) Usa impresora y escáner Libera (impresora) Libera (escáner) Solicita (impresora) Solicita (escáner) Usa impresora y escáner Libera (escáner) Libera (impresora) Proceso B Proceso A
CASO 4 .-  Bloqueos en la asignación de Múltiples Dispositivos P1 solicita y obtiene la unidad de cinta. P2 pide y obtiene la impresora. P3 solicita y obtiene gratificador. P1 pide la impresora pero se encuentra bloqueada. P2 solicita el gratificador pero está bloqueado. P3 pide la unidad de cinta pero se encuentra bloqueada Impresora Dispositivo de  cinta Graficador P1 P2 P3 Caso 4 Tres procesos  Mostrados como Círculos, esperan un dispositivo asignado a otro proceso, con lo que se genera un Bloqueo mutuo Bloqueos
CASO 5  .- Bloqueos mutuos en operaciones periféricas simultaneas  en línea Digamos que falta una hora antes de que se necesite el gran proyecto para la clase de  Computación. Veintiséis programadores acelerados, teclean sus cambios finales Y, con unos cuantos minutos disponibles emiten unos comandos de impresión El manejador de spool recibe las paginas de cada estudiante una por una, pero le  llegan por separado varias paginas uno, dos, etc.. La impresora esta listo  para  imprimir el primer programa completo que obtiene, pero conforme el manejador de  Spool ( esto es el operador periférico simultaneo en línea ) recorre sus archivos, Obtiene la primera pagina de muchos programa, pero no tiene la ultima de ninguno.  Por desgracia el  spool  esta lleno de salidas incompletadas, por lo que no puede  aceptar otra página; pero ninguno de los trabajos se puede imprimir (lo que liberaria Su espacio en disco), por que la impresora solo acepta archivos de salidas completos.  Una situación desafortunada. Este escenario no se limita a impresoras. Cualquier parte del sistema  que se base  en spooling, como el que maneja los trabajos de entrada o transfiere archivos en  una red, es vulnerable ante un bloqueo mutuo
CASO 6  .-Bloqueos al compartir Discos 1.-El proceso P1 desea mostrar un pago, por lo que un comando para leer  el saldo, que esta almacenado en el cilindro 20 de un paquete de discos. 2.-Mientras la unidad de control esta moviendo el brazo hacia el cilindro 20, P1 se pone en espera y el canal de entradas/salidas queda libre para procesar la siguiente solicitud de entrada/salida 3.-P2 obtiene el control de entrada/salida y emite el comando para emitir el pago de otra persona, en un registro almacenado en el cilindro 310. “Si el comando no esta bloqueado” P2 quedara en espera, mientras la unidad de control mueve el brazo hasta el cilindro 310 Bloqueos
4.-Puesto que P2 “esta en espera” el canal esta libre y P1 puede capturarlo de nuevo, lo que vuelve a confirmar su comando de”leer del cilindro 20”. 5.- dado que el ultimo comando de P2 ha obligado al mecanismo del brazo hasta el cilindro 310, la unidad de control de disco empieza a reubicarlo para el cilindro 20 a fin de satisfacer a P1. el canal de entradas/salidas, será liberado, por que P1 ha quedado de nuevo en espera, por lo que P2 puede de nuevo capturarlo. Este emite un comando  write y descubre que hay necesidad  de reubicar el mecanismo del brazo
CASO 6  .-Bloqueos al compartir Discos Cilindro 310 Cilindro 20 Unidad  de control de disco Canal de E / S P1 P2 Lee Registros del Cilindro  20 Escribe a un archivo colocado en el Cilindro  310 Disco Caso 6 .  Dos procesos Esperan una solicitud de E/S para llenarse: Uno en el cilindro 20 y el otro en el cilindro 310. Ninguna de estas puede satisfacerse, por que el dispositivo pone cada solicitud en espera cuando intenta llenar a la otra
CASO 7  .-Bloqueos Mutuos en una Red Un centro de procesamiento de palabras de tamaño medio tiene siete computadoras en red, c/u con dos nodos diferentes. C1 recibe mensaje de los nodos C2,C6 y C7 y solo envía mensajes a uno : C2 C2 recibe los mensajes de los nodos C1,C3 y C4 y nada mas manda mensajes a C1 y c3. La dirección de las flechas de la figura señala el flujo de los mensajes. Los mensajes recibidos por c1 desde C6 y C7 y destinados a C2 se almacenan en una cola de salida. Los mensajes recibido por C2 de C3  y de C4 destinados a C1 se almacenan en una cola de salida. Conforme se incrementa el trafico, aumenta la longitud de cada cola de salida, hasta que se llena el espacio disponible para las colas.  En este punto C1 ya no puede aceptar mas mensajes (de C2 o de cualquier otra computadora) por que no existe mas espacio disponible para almacenarlas. Por la misma razón, C2 no puedec aceptar mas mensajes de C1 para ninguna otra computadora, ni siquiera una solicitud para enviar. La trayectoria de comunicación entre C1 y C2 se bloquea y en vista  de que C1 solo puede recibir mensajes de C6 y C7, estos caminos también se han bloqueado. C1 no puede enviar palabras hasta C2 respecto al problema, por lo que el bloqueo mutuo no se puede resolver sin intervención del exterior Bloqueos
CASO 7  .-Bloqueos Mutuos en una Red C6 C7 C3 C5 C4 C2 C1 Caso 7 .  Flujo de red  Bloqueado  totalmente. Cada circulo representa Un nodo, y  cada línea,  una línea de  comunicación.  Las flechas  Indican la  dirección del flujo del  trafico Bloqueos
Ejemplo 1  ( Cruce en un puente ) . En una carretera de dos direcciones, donde en un determinado cruce con la vía del ferrocarril, se ha construido un puente que solo deja pasar vehículos en un solo sentido. El bloqueo ocurre cuando dos vehículos intentan pasar por el puente al mismo tiempo. (Ver la siguiente figura nº 30).
Aquí cada proceso está esperando por el otro para liberar uno de los recursos. El recurso retenido no será liberado hasta que el otro proceso usuario libere su recurso. Pero este último proceso usuario no liberará su recurso retenido hasta que el primer proceso usuario libere su recurso retenido. Entonces se produce una  espera circular  (Ver figura 31).   ( Interbloqueo de un recurso simple ) Ejemplo 2
Ejemplo 3  ( bloqueo de tráfico ) N S O E Cuatro coches 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 coches desean atravesar el cruce, las necesidades de recursos son las siguientes: -         El coche que va hacia el norte necesita los cuadrantes 1 y 2. -         El coche que va hacia el oeste necesita los cuadrantes 2 y 3. -         El coche que va hacia el sur necesita los cuadrantes 3 y 4. -         El coche que va hacia el este necesita los cuadrantes 4 y 1. Bloqueos
Condiciones necesarias para el Bloqueo mutuo
Condición de Exclusión Mutua :  Cuando un proceso usa un recurso del sistema realiza una serie de operaciones sobre el recurso y después lo deja de usar. A la parte que usa ese recurso se le llama 'región crítica'. La condición de exclusión mutua establece que solamente se permite a un proceso estar dentro de la misma región crítica. Esto se traduce que en cualquier momento  solamente un proceso puede usar un recurso a la vez , o en otras palabras  cada recurso esta asignado a un único proceso ó bien esta disponible .  Sólo un proceso puede usar un recurso cada vez. (cada recurso esta asignado a un único proceso ó bien esta disponible) Condición de Ocupar y Esperar un Recurso :  Consiste en que un proceso pide un recurso y se le asigna. Antes de soltarlo, puede solicitar un nuevo recurso. Un proceso solicita todos los recursos que necesita a un mismo tiempo. (los procesos que tienen, en un momento dado, recursos asignados con anterioridad, pueden solicitar nuevos recursos)   Condiciones necesarias para el bloqueo mutuo
Ningún proceso puede ser forzado a abandonar un recurso que tenga 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.   Condición de No Apropiación :  Esta condición no resulta precisamente de la concurrencia, pero juega un papel importante en este ambiente. Esta condición especifica que si un proceso tiene asignado un recurso, dicho recurso no puede arrebatársele por ningún motivo, y estará disponible hasta que el proceso lo 'suelte'  por su voluntad.  (los recursos otorgados con anterioridad no pueden ser forzados a dejar un proceso. El proceso que los posee debe liberarlos en forma explicita)
Condición de Espera Circular:   (o círculo vicioso de espera) : Esto ocurre cuando dos o más procesos forman una  cadena de espera  que los involucra a todos. Por ejemplo, suponga que el proceso A tiene asignado el recurso 'cinta' y el proceso B tiene asignado el recurso 'disco'. En ese momento al proceso A se le ocurre pedir el recurso 'disco' y al proceso B el recurso 'cinta'. Ahí se forma una  espera circular  entre esos dos procesos que se puede evitar quitándole a la fuerza un recurso a cualquiera de los dos procesos.  (Debe existir una cadena circular de dos o más procesos, cada uno de los cuales espera un recurso poseído por el siguiente miembro de la cadena).
Círculo vicioso de espera: Cadena cerrada de procesos, cada uno de los cuales retiene, al menos, un recurso que necesita el siguiente proceso de la cadena.  Recurso A Recurso B Solicitado Retenido por Solicitado Proceso P1 Proceso P2 Puede prevenirse definiendo una ordenación lineal de los tipos de recursos. Retenido por Circulo Vicioso Condiciones necesarias para el bloqueo mutuo
El deadlock es una condición que ningún sistema o conjunto de procesos quisiera exhibir, ya que consiste en que se presentan  al mismo tiempo  cuatro condiciones necesarias  Condiciones necesarias para el bloqueo mutuo Exclusión mutua No apropiación Ocupar y esperar Espera circular Simultáneamente Abrazo mortal ( deadlock )
Modelado de Bloqueos Mutuos
Modelado de Bloqueos
No se produce interbloqueo porque habrá un momento en el que acabe P2  porque tiene todo para ejecutarse, y el recurso que ocupa se lo asignará a P1. P4 como también tienen todo para acabar , cuando termine liberará el recurso y se lo asignaremos a P3.
Modelado de Bloqueos P2 P1 P3 R1 R2 R3 R4 Grafo de Asignación de Recursos
Modelado de Bloqueos En la grafica dirigida hay bloqueo mutuo porque todos los procesos esperan un recurso que esta detenido por otro proceso, pero ninguno quedara liberado sin la intervención del operador
Modelado de Bloqueos
Modelado de Bloqueos
Una gráfica dirigida (o grafo dirigido) indica las asignaciones y peticiones de recursos. Concretamente: Los cuadros representaran a los procesos y,  Los círculos representaran a los recursos.  En particular los círculos grandes indicaran clases de recursos idénticos y los círculos pequeños, dibujados dentro de los grandes, representan el número de recursos idénticos dentro de cada clase.  Modelado de Bloqueos
P1 P2 P3 3 4 5 1 6 1 R1 R2 R3 Modelado de Bloqueos Modelado de Bloqueos
R1 R2 R3 P1 P2 P3 P4 1 6 3 2 4 5 Modelado de Bloqueos
Reducción   de gráficas
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 de una gráfica  por un proceso determinado se muestra retirando:  Las flechas que van de los recursos al proceso (los recursos asignados al proceso).  Las flechas que van del proceso al recurso (las peticiones actuales del  proceso).  Si una gráfica puede ser reducida por todos sus procesos, entonces no hay interbloqueo.   Si una gráfica no puede ser reducida por todos sus procesos, entonces los procesos “irreducibles” constituyen la serie de procesos interbloqueados de la gráfica   Sincronización Mensajes Semáforos Monitores Figura 36   recibir  = espera enviar = señal En procesos  distintos
Reducción de Gráficas
Los procesos P1, P2 y P3 están en bloqueo mutuo.   Consideraciones: *   Si un grafo no contiene ciclos no esta en bloqueo mutuo.   *   Si el grafo esta en bloqueo mutuo entonces existe a lo menos un  ciclo en el grafo.   *  Si existe un ciclo en un grafo, no es condición suficiente para que exista bloqueo mutuo. Reducción de Graficas Reducción de Gráficas
ESTRATEGIAS PARA EL MANEJO DE BLOQUEOS
Estrateg. Para manejo de Bloqueos Para prevenir que se presente el interbloqueo  debemos asegurar que por lo menos una de la condiciones  necesarias no se cumpla. Entonces se debe plantear las siguientes políticas, independientes una de otra. Objetivo :  conseguir que sea imposible la aparición   de situaciones de interbloqueo Exclusión mutua Retención y espera No expropiación Espera circular Impedir que se produzca una  de las cuatro condiciones  necesarias para el  interbloqueo
Estrateg. Para manejo de Bloqueos
Se plantea cuatro áreas de interés para solucionar el problema del bloqueo mutuo.   Estrateg. Para manejo de Bloqueos
Exclusión mutua   Si no hay asignación exclusiva, no hay bloqueo mutuo. Dado que esta es una condición indispensable para un acceso seguro a recursos no compartibles, ningún sistema real la elimina Estrateg. Para manejo de Bloqueos Prevención – Exclusión Mutua Existen recursos para los que no es posible negar la condición de exclusión mutua.  Se la debe de conservar para los recursos no compartibles.   Ficheros :  permiten múltiples accesos de lectura, pero únicamente   un proceso puede escribir a la vez. Es posible eliminar la condición de exclusión mutua en Algunos recursos Impresora Spooler
¿Cuál es el problema planteado? Alguien necesita leche, pero no tanta Definiciones: Exclusión mutua : es el mecanismo que asegura que sólo una persona o proceso está haciendo algo en un instante determinado (los otros están excluidos) Sección crítica : es la sección de código, o colección de operaciones, en el que se actualizan variables comunes Cuando un proceso está ejecutando código de su sección crítica, ningún otro proceso puede estar en esa misma sección crítica Estrateg. Para manejo de Bloqueos Prevención – Exclusión mutua
Sincronización Persona A Persona B 3:00 Mira en la nevera. No hay leche 3:05 Va a la tienda 3:10 Llega a la tienda 3:15 Deja la tienda 3:20 Llega a casa y guarda la leche 3:25 3:30 Mira en la nevera. No hay leche Va a la tienda Llega a la tienda Deja la tienda Llega a casa y ... Estrateg. Para manejo de Bloqueos Prevención  -  Exclusión   mutua
Retención y Espera   Cada proceso deberá pedir todos los recursos que necesita al mismo tiempo y no podrá seguir hasta obtenerlos todos.   Estrateg. Para manejo de Bloqueos Prevención – Retención y espera
Estrateg. Para manejo de Bloqueos Prevención  –  Retención y espera El proceso solicita los recursos de forma Incremental  a lo largo de su ejecución, Pero libera todos los recursos retenidos Si se encuentra con una negativa POSIBILIDAD 2 Los cambios hechos sobre la  memoria  o sobre  ficheros Pueden corromper el sistema si no se llevan a termino Pueden conducir a la postergación indefinida (ó  inanición  ) de algunos procesos que Solicitan recursos muy utilizados Inconveniente adicional de ambos  métodos Menos exigente
Retención y espera: • Según esta condición, el proceso retiene los recursos concedidos, y espera que se le asigne uno nuevo. Por tanto, si se evita que un proceso pida más recursos, se acaba con el problema • Tenemos dos alternativas: A) Cada proceso pide recursos en bloque (generalmente cuando el proceso se crea) y el sistema operativo los otorga también en bloque. De esta manera se elimina la espera con recursos parcialmente asignados; si se espera, se hace por todos. Problemas :   Sobrestimación : se reclaman los recursos potencialmente necesitados, en lugar de los que en cada momento se necesitan. Infrautilización : aunque se utilicen durante un instante se retienen durante toda la vida del proceso, tendiendo el sistema a ejecutar secuencialmente los procesos. Estrateg. Para manejo de Bloqueos Prevención  –  Retención y espera
B) Los recursos se piden y otorgan escalonadamente y caso de que un proceso realice una petición de un recurso no disponible, deberán liberarse todos los recursos asignados hasta el momento, y pedirlos otra vez, junto con los nuevos. Problemas :  Existen recursos que no se pueden devolver, ejemplo una impresora que está imprimiendo, se podrá devolver cuanto termine la impresión. Este método también presenta la posibilidad de aplazamiento indefinido, además de una sobrecarga para el sistema si un proceso solicita y libera recursos repetidamente, pudiendo llegar a degradar el sistema. Estrateg. Para manejo de Bloqueos Prevención  –  Retención y espera
No Apropiación.   Si a un proceso le falta algún recurso, deberá liberar los recursos ya asignados. El S.O. está autorizado para quitar un recurso asignado a un proceso para dárselo a otro que lo necesita. Problemas : Los mismo que para  a supresión de retención y espera, cuando los recursos se piden y otorgan escalonadamente, pues habrá recursos que no se pueden devolver. Estrateg. Para manejo de Bloqueos Prevención  –  No apropiación
Estrateg. Para manejo de Bloqueos Prevención Espera Circular   A los recursos se les asigna un  ordenamiento lineal  (numeración única ascendente). Los números asignados a los recursos deben reflejar el orden natural en que son solicitados. Si a un proceso se le ha asignado un recurso en lo sucesivo solo podrá pedir los recursos que siguen en el ordenamiento. Prevención – Espera Circular
Estrateg. Para manejo de Bloqueos Prevención  –  Espera Circular
Eliminación o supresión de la espera circular: ( Asignar recursos en orden lineal .   ) La condición del círculo vicioso de espera puede prevenirse definiendo una ordenación lineal de los tipos • Se obliga que los recursos siempre se pidan en un orden fijo. • Así, los recursos se agrupan en clases y entre clases se establece un orden total. • Las peticiones por parte de los procesos deberán hacerse en orden estrictamente creciente y los recursos pertenecientes a una clase deberán otorgarse en bloque. EJEMPLO:  Sean dos procesos P1 y P2 que cada uno necesita utilizar dos discos y una impresora. Se establece el orden  Discos < Impresora P1 Wait (discos) (* pide los dos *)  P1 Wait (impresora) P2 Wait (discos) (* pide los dos *)  P2 Wait (impresora) ………… ..................... A ha adquirido  Discos  y solicitado  Impresora ,  mientras que  B ha adquirido  Impresora  y solicitado  Impresora Esta condición es imposible porque implica que   Discos   <   Impresora   y   Impresora   <   Discos . El primero que obtenga los discos también podrá obtener la impresora, ya que el otro para pedirla necesita antes conseguir los discos. Ventajas : Este método permite desechar peticiones incorrectas en tiempo de compilación de los procesos. Problemas : Obliga a seguir un orden en las peticiones y puede no ser conveniente para el proceso. Estrateg. Para manejo de Bloqueos Prevención  –  Espera Circular
PROBLEMAS: Los recursos deben ser adquiridos en el orden previsto y no en el orden en el que realmente se necesitan. El rendimiento cae por lo mismo de antes, ya que los procesos toman recursos que igual no los utilizan hasta el final y les tienen retenidos. Estrateg. Para manejo de Bloqueos Prevención  –  Espera Circular Podemos evitar la espera circular si imponemos un orden total a los recursos (o sea, asignamos a cada recurso  R  un número único  F(R) ), y obligamos a los procesos a que soliciten recursos en orden: un proceso no puede solicitar  Q  y después  R  si  F(Q)>F(R) . Por ejemplo:  F(CD-ROM)=1  F(impresora)=2  F(plotter)=3  F(Cinta)=4
Incluso si el sistema operativo no puede eliminar una de las condiciones del bloqueo mutuo, puede evitar uno, si conoce por anticipado la secuencia de solicitudes asociadas con cada proceso activo. Dijkstra( 1965)  propuso uno de esos algoritmos para regular la asignación de recursos a fin de evitar bloqueos, ese algoritmo fue conocido como : Cuando un proceso entra al sistema declara el numero máximo de ejemplares de cada recurso que va a necesitar (no podrá exceder del total de los recursos del sistema),  Indicando el orden en que solicitara sus recursos y cuando los liberara. Cuando un proceso solicita un conjunto de recursos, el sistema debe determinar si su asignación dejara al sistema en estado seguro. Si es así los recursos se asignan; si no, el proceso esperara hasta que otro libere suficientes recursos. Se necesitan varias estructuras de datos para representar el estado de asignación de recursos del sistema. EL ALGORITMO DEL BANQUERO Estrateg. Para manejo de Bloqueos Evitación
Estrateg. Para manejo de Bloqueos Evitación Palabras Clave Los métodos de prevención adolecen de que son muy costosos. (bajo uso de los recursos, reducción de la productividad del sistema). Existe al menos una  forma de que terminen todos los procesos. No se puede garantizar que los procesos terminen, pues algunos de ellos podría pedir un recurso más que no puede ser satisfecho. Pero este no es un estado de bloqueado, sino que no puede garantizarse que termine
Evitación Estrateg. Para manejo de Bloqueos Ejemplos de transición de un estado seguro a uno inseguro.
Análisis del Algoritmo del banquero de Dijkstra Con este algoritmo se satisfacen las condiciones de espera, no apropiación y espera circular, pero los procesos necesitan el uso exclusivo de los recursos. Los usuarios puede solicitar los recursos cuando lo necesiten. El sistema solo satisface las peticiones que lleven a un estado seguro   Estrateg. Para manejo de Bloqueos Evitación
Estrateg. Para manejo de Bloqueos Evitación
Estrateg. Para manejo de Bloqueos Evitación
¿ Cómo detectar un Deadlock ?.   Para detectar un deadlock, se puede usar el mismo algoritmo del banquero, que aunque no dice que hay un deadlock, sí dice cuándo se está en  estado inseguro  que es la antesala del deadlock. Sin embargo, para detectar realmente el deadlock se pueden usar las  'gráficas de recursos' . Como se dijo en punto anteriores en ellas se pueden usar cuadrados para indicar procesos y círculos para los recursos, y flechas para indicar si un recurso ya está asignado a un proceso o si un proceso está esperando un recurso. De esta forma el deadlock es detectado cuando se puede hacer un viaje de ida y vuelta desde un proceso o recurso.  Estrateg. Para manejo de Bloqueos Detección
Estrateg. Para manejo de Bloqueos Detección
Estrateg. Para manejo de Bloqueos Detección
En la figura anterior se observa como la gráfica de recursos fue evolucionando hasta que se presentó el deadlock, lo cual significa que se puede viajar por las flechas desde un proceso o recurso hasta regresar al punto de partida. En el deadlock están involucrados los procesos A, B y C.  Una vez que un deadlock se detecta, es obvio que el sistema está en problemas y lo único que resta por hacer es una de dos cosas: tener algún mecanismo de suspensión o reanudación que permita copiar todo el contexto de un proceso incluyendo valores de memoria y aspecto de los periféricos que esté usando para reanudarlo otro día, o simplemente eliminar un proceso o arrebatarle el recurso, causando para ese proceso la pérdida de datos y tiempo.  Evento  1 :  Proceso A pide recurso 1 y se le asigna .   Evento  2 :  Proceso A termina su quantum.   Evento  3 :  Proceso B pide recurso 2 y se le asigna.   Evento  4 :  Proceso B termina su quantum.   Evento  5 :  Proceso C pide recurso 3 y se le asigna.  Evento  6 :  Proceso C pide recurso 1 y como lo está ocupando el  proceso A, espera.   Evento  7 :  Proceso B pide recurso 3 y se bloquea porque lo ocupa el  proceso C.  E vento  8 :  Proceso A pide recurso 2 y se bloquea porque lo ocupa el proceso B.   Estrateg. Para manejo de Bloqueos Detección
Uso del algoritmo de detección ¿Cuándo se debe usar este algoritmo?. Se debe de determinar dos aspectos en el uso de este algoritmo: Estrateg. Para manejo de Bloqueos Detección
Técnicas una vez detectado el interbloqueo Abortar todos los procesos interbloqueados. 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. Apropiarse de recursos sucesivamente hasta que deje de haber interbloqueo. La menor cantidad de tiempo de procesador consumido hasta ahora. El menor número de líneas de salida producidas hasta ahora. El mayor tiempo restante estimado. El menor número total de recursos asignados hasta ahora. La prioridad más baja. Criterio de selección de los procesos interbloqueados
Estrateg. Para manejo de Bloqueos Recuperación
Terminación de procesos. Con estos métodos el sistema recupera todos los recursos asignados a los procesos terminados. Abortar todos los procesos que están en interbloqueo. Rompe el interbloqueo definitivamente pero es muy costoso. Pero no es fácil terminar un proceso, este podría estar realizando una operación que no se puede recuperar. Abortar un proceso gradualmente hasta lograr eliminar el interbloqueo. Incurre en tiempo de procesamiento, pues luego de abortar cada proceso se debe invocar al algoritmo de detección, hasta estar seguros que no existe interbloqueo. El problema es determinar que proceso se debe eliminar a continuación. Se tratara de abortar el proceso 'menos costoso'. Para determinar el proceso 'menos costoso' se deberá considerar los siguiente factores: Prioridad del proceso, tiempo de ejecución y tiempo ya ejecutado, cantidad de recursos asignados, facilidad de expropiar el recurso, recursos adicionales que necesita para terminar, proceso que deberán de abortarse adicionalmente. Cuando el algoritmo de detección determina que existe el interbloqueo, existen las siguientes alternativas: 1. Abortar uno o mas procesos para romper la espera circular 2. Quitar uno o mas recursos a los procesos bloqueados. Estrateg. Para manejo de Bloqueos Recuperación
Estrateg. Para manejo de Bloqueos Recuperación
Expropiación de los recursos. Los recursos se expropian y se asignan a otros proceso. Se debe considerar; Selección del proceso. Se debe seleccionar el proceso y el orden de expropiación de los recursos para 'minimizar el costo'. Se debe considerar: número de recursos asignados, cantidad de tiempo ya consumido, etc. Retroceso. Si se expropia un recursos a un proceso se debe de retroceder el proceso hasta llegar a un estado seguro, como esto no es sencillo se prefiere, retroceder totalmente. Bloqueo indefinido. Como garantizar que los recursos a expropiar no son del mismo proceso. Si la decisión de seleccionar a un proceso se basa en el costo, puede suceder que siempre se elija a la misma víctima. Si se llega a esto entonces habrá un situación de bloqueo indefinido. Una solución es incluir el numero de retrocesos en el factor costo. Estrateg. Para manejo de Bloqueos Recuperación
 
 
 
EL ALGORITMO DEL BANQUERO
Si el banquero tuviese fondos suficientes para prestar el máximo a cada cliente, es decir, tanto como la suma de los máximos, no habría problemas. Sin embargo, no ocurre así: los recursos del banquero están limitados, por lo que si todos piden el máximo, no podrá satisfacerlos simultáneamente. Por tanto, el banquero debe gestionar sus fondos de manera que todos los clientes puedan llegar al máximo, pero uno tras otro, sin que se produzca interbloqueo. Partiendo de una situación inicial, se dice que un estado es  seguro  si, partiendo de él, existe alguna secuencia de estados en la que todos los procesos alcancen el número máximo de recursos en algún momento, De lo contrario, el estado es  inseguro . Algoritmo del banquero
Idea  : Procesos manifiestan si  intención  de ingresar antes de verificar si procesos se excluyen mutuamente. En caso de colisión se arrepienten Procesos comparten un arreglo que indica si un proceso tiene intención o esta en su  SC,  i.e. shared boolean flag[2]; Inicialmente   flag[i] = FALSE;  /*  para todo proceso i  */ Condición   flag[i] == TRUE
1)  Estructuras de datos : que representan internamente el grafo general de recursos. A signados :  ARRAY  1..NumProcesos, 1..NumTipoRecursos OF INTEGER. Indica cuantos recursos de cada tipo tiene asignados cada proceso. Inicialmente está a 0. Reclamables :  ARRAY  1..NumProcesos, 1..NumTipoRecursos OF INTEGER. Indica cuantos recursos de cada tipo pueden aún solicitar cada proceso. Inicialmente contiene el valor de necesidades máximas de cada proceso. Conforme se vayan asignando recursos los componentes del array se irán decrementando. Disponibles :  ARRAY  1..NumTipoRecursos OF INTEGER. Indica el número de recursos de cada tipo que aún no han sido asignados. Inicialmente contiene el valor de recursos en el sistema y conforme se otorguen y se devuelvan se irá decrementando o incrementando ese valor. EJEMPLO: IMPLEMENTACIÓN DEL ALGORITMO.
IMPLEMENTACIÓN DEL ALGORITMO. 2)  Algoritmo : consiste en simular el comportamiento futuro del sistema y comprobar que una asignación, en el peor de los casos, no desemboca en interbloqueo. Los pasos del algoritmo son: 1. Modificar las estructuras de datos como si la petición se concediera. 2. Desmarcar todos los proceso, esto es poner a false todos los compones de un array  auxiliar: Procesos:  ARRAY 1..NumProcesos OF BOOLEAN. 3. Encontrar un proceso no marcado tal que para todo recurso i Reclamables  [proceso, i] ≤  Disponibles  [i] 4. Si se encuentra, marcar al proceso  y simular que acaba devolviendo todos los recursos  que tiene asignados a disponibles.   [i]  Disponibles  [i] :=  Disponibles  [i] +  Asignados  [proceso, i] 5. Volver al paso 3. 6. Si en el paso 3 no se encontró a ese proceso no marcado entonces revisar el array  procesos: • Si todos los procesos están marcados, entonces la petición es  segura . • Si hay alguno sin marcar, la petición es  insegura   .
Algoritmo del banquero Un ejemplo sencillo: Tengo 12 impresoras. Préstamo actual     Necesidad Máxima P1  5    10 P2  3    5 P3  2    6 -------------- 10 utilizadas ------>  (Tengo 2 libres.) -------------- A P2 le faltan 2 -> Finalizo P2. (Tengo 5 libres.) A P1 le faltan 5 -> Finalizo P1. (Tengo 10 libres.) A P3 le faltan 4 -> Finalizo P3.
C1 C2 C3 0 2,000 4,000 4,000 5,000 8,000 4,000 3,000 4,000 Cliente Cantidad de Préstamo Crédito máximo Crédito restante C1 C2 C3 2,000 3,000 4,000 4,000 5,000 8,000 2,000 2,000 4,000 Cliente Cantidad de Préstamo Crédito máximo Crédito restante El banco arranco con 10000 dólares y después de estos prestamos, tiene un capital restante de 4000. Por lo tanto, se encuentra en un “estado seguro” El banco ahora solo tiene capital restante de 1000 dólares después de estos prestamos, de modo que esta en un “estado inseguro” Total prestado : 6,000 Fondo Total de capital :10,000 Total prestado : 9,000 Fondo Total de capital :10,000
 
 
Inanición
Condición en la que un proceso se retarda indefinidamente por que otros procesos siempre tienen preferencia. Un proceso se encuentra en estado de inanición cuando, con otros procesos, espera un evento, pero ante la aparición del evento y su gestión, nunca es el elegido para continuar su ejecución. Un proceso espera indefinidamente un recurso que siempre se concede a algún otro que lo solicita. Depende de la política de asignación de recursos Definición de Inanición
Inanición Para los dos casos de intento de recuperación del  Interbloqueo (terminación de procesos o expropiación de recursos) hay que tener cuidado de no provocar La inanición de procesos. Que es la inanición ? Supón tres procesos que acceden periodicamente a un recurso. Considera P1 posee el recurso y que P2 y P3 están Esperando. Cuando P1 haya ejecutado su sección crítica, P1 Solicita acceso de nuevo y así sucesivamente,  se puede llegar a Una situación en la que P2 nunca accede al recurso
El  problema de los filósofos cenando  es un problema clásico de las ciencias de la computación propuesto por Edsger Dijkstra (1965 ) para representar el problema de la sincronización de procesos en un sistema operativo. Cabe aclarar que la interpretación está basada en pensadores chinos, quienes comían con dos palillos, donde es más lógico que se necesite el del comensal que se siente al lado para poder comer t1 t2 t3 t4 t5
G r a c i a s  . . .
Condiciones de competencia Son las situaciones en las que dos o más procesos leen o escriben en ciertos datos compartidos y el resultado final depende de quién ejecuta qué y en qué momento Exclusión mutua Forma de garantizar que si un proceso utiliza una variable o archivo compartidos, los demás procesos no puedan utilizarlos. Forma de prohibir que más de un proceso lea o escriba en los datos compartidos a la vez Secciones o regiones críticas Parte del programa en el cual se tiene acceso a la memoria compartida Palabras Clare
 
 
 
 
 
 
 
 
 

Más contenido relacionado

PPT
Normalizaciòn
PPTX
Trabajo de gestores de base de datos libres vs comerciales
PPT
Arquitectura de sistemas distribuidos
PDF
Resumen de los orígenes y evolución de las redes
DOCX
Ensayo Cliente Servidor
PPTX
DOCX
Sistemas de archivos
PPTX
VMware vSphere ventajas y desventajas
Normalizaciòn
Trabajo de gestores de base de datos libres vs comerciales
Arquitectura de sistemas distribuidos
Resumen de los orígenes y evolución de las redes
Ensayo Cliente Servidor
Sistemas de archivos
VMware vSphere ventajas y desventajas

La actualidad más candente (20)

PPTX
Segmentacion de memoria
PPTX
Protocolos de las capas sesion,presentacion y aplicacion
DOC
Características, componentes y arquitectura de los dbms.
PPT
MECANISMO DE PROTECCION
PPSX
Planificación por prioridad
PPTX
Estandares de la red lan
PPTX
Generacion de Sistemas Operativos
PPTX
Ventajas y desventajas de cmmi
PPTX
Proposiciones y bloques de código
PPTX
Entorno de Programacion
PDF
Enmanuel Rojas (Mapa Conceptual)
PPTX
Procesos e Hilos en los Sistemas Operativos
PPTX
Sistemas Operativos Distribuidos
PPTX
Los sistemas operativos de Red
PPTX
Arquitectura de objetos distribuidos 1
PPTX
Presentacion iconix
DOCX
Tabla comparativa de protocolos de enrutamiento vector distancia
DOCX
Estructura del sistema operativo windows
PPTX
Modelos de sistemas distribuidos
Segmentacion de memoria
Protocolos de las capas sesion,presentacion y aplicacion
Características, componentes y arquitectura de los dbms.
MECANISMO DE PROTECCION
Planificación por prioridad
Estandares de la red lan
Generacion de Sistemas Operativos
Ventajas y desventajas de cmmi
Proposiciones y bloques de código
Entorno de Programacion
Enmanuel Rojas (Mapa Conceptual)
Procesos e Hilos en los Sistemas Operativos
Sistemas Operativos Distribuidos
Los sistemas operativos de Red
Arquitectura de objetos distribuidos 1
Presentacion iconix
Tabla comparativa de protocolos de enrutamiento vector distancia
Estructura del sistema operativo windows
Modelos de sistemas distribuidos
Publicidad

Destacado (20)

PPT
Concurrencia interbloqueo e inanición
PDF
Atelier Delplanque Fouré JFK2009
ODP
Significado De Las Palabras
PPS
Heureux au Boulot
PPT
Core System + Web Shop
PPS
Corralablanca
ODP
Ama al Hombre que te Ame
PPT
PPT
Presentation de Frederic Dadoun
PPT
Les 6 de la semaine #1
 
PPTX
Primera Semana
PPS
Amesamis
PPT
Internet y nuevos medios - Hagamos un blog
PPT
11800462 scenario presentation_fcpr
PPT
21 Von Arx Paris
PPT
ODP
OpenOffice.org en la educacion
PPT
LA INVESTIGACION Y LA TRANSFORMACION UNIVERSITARIA
PDF
Contal jfk2011
Concurrencia interbloqueo e inanición
Atelier Delplanque Fouré JFK2009
Significado De Las Palabras
Heureux au Boulot
Core System + Web Shop
Corralablanca
Ama al Hombre que te Ame
Presentation de Frederic Dadoun
Les 6 de la semaine #1
 
Primera Semana
Amesamis
Internet y nuevos medios - Hagamos un blog
11800462 scenario presentation_fcpr
21 Von Arx Paris
OpenOffice.org en la educacion
LA INVESTIGACION Y LA TRANSFORMACION UNIVERSITARIA
Contal jfk2011
Publicidad

Similar a Capitulo5 (20)

PPTX
Bloqueos mutuos
DOCX
Bloqueo mutuo
PPTX
Bloqueo mutuo
PPTX
Kelly salina
PPTX
Kelly salina
PPTX
Kelly sistemas operativos
PPTX
PPTX
Kelly salina sistemas operativos
PPTX
PPT
Inf 324 01 2009 02 Bloqueos
PPT
Bloqueos _
PPTX
Interbloqueo
PPTX
Interbloqueos
PPT
Capitulo2
PPTX
Interbloqueo. Concurrencia Interbloqueo e Inanición(1).pptx
PDF
PPTX
Interbloqueos
PPTX
Sistemas operativos
PPTX
Interbloqueo sistemas operativos
PPTX
Modulo 2 interbloqueos
Bloqueos mutuos
Bloqueo mutuo
Bloqueo mutuo
Kelly salina
Kelly salina
Kelly sistemas operativos
Kelly salina sistemas operativos
Inf 324 01 2009 02 Bloqueos
Bloqueos _
Interbloqueo
Interbloqueos
Capitulo2
Interbloqueo. Concurrencia Interbloqueo e Inanición(1).pptx
Interbloqueos
Sistemas operativos
Interbloqueo sistemas operativos
Modulo 2 interbloqueos

Más de darkslayer (10)

PPT
Capitulo5
PPT
Capitulo11
PPT
Capitulo10
PPT
CapíTulo 8
PPT
Capitulo5
PPT
Capitulo7
PPT
Capitulo6
PDF
Capitulo 4
PPT
Capitulo 2
PDF
Capitulo 1
Capitulo5
Capitulo11
Capitulo10
CapíTulo 8
Capitulo5
Capitulo7
Capitulo6
Capitulo 4
Capitulo 2
Capitulo 1

Último (20)

PDF
informe_fichas1y2_corregido.docx (2) (1).pdf
PPTX
ANCASH-CRITERIOS DE EVALUACIÓN-FORMA-10-10 (2).pptx
PPTX
Presentación PASANTIAS AuditorioOO..pptx
PPTX
sa-cs-82-powerpoint-hardware-y-software_ver_4.pptx
PDF
capacitación de aire acondicionado Bgh r 410
PPTX
historia_web de la creacion de un navegador_presentacion.pptx
PPTX
la-historia-de-la-medicina Edna Silva.pptx
PDF
Influencia-del-uso-de-redes-sociales.pdf
PPTX
Presentación de Redes de Datos modelo osi
PDF
Tips de Seguridad para evitar clonar sus claves del portal bancario.pdf
PDF
programa-de-estudios-2011-guc3ada-para-el-maestro-secundarias-tecnicas-tecnol...
PPTX
Propuesta BKP servidores con Acronis1.pptx
PDF
Diapositiva proyecto de vida, materia catedra
PPTX
IA de Cine - Como MuleSoft y los Agentes estan redefiniendo la realidad
PPTX
RAP02 - TECNICO SISTEMAS TELEINFORMATICOS.pptx
PPT
introduccion a las_web en el 2025_mejoras.ppt
PPTX
COMO AYUDAN LAS TIC EN LA EDUCACION SUPERIOR.pptx
PDF
Instrucciones simples, respuestas poderosas. La fórmula del prompt perfecto.
PPTX
Historia Inteligencia Artificial Ana Romero.pptx
PDF
CyberOps Associate - Cisco Networking Academy
informe_fichas1y2_corregido.docx (2) (1).pdf
ANCASH-CRITERIOS DE EVALUACIÓN-FORMA-10-10 (2).pptx
Presentación PASANTIAS AuditorioOO..pptx
sa-cs-82-powerpoint-hardware-y-software_ver_4.pptx
capacitación de aire acondicionado Bgh r 410
historia_web de la creacion de un navegador_presentacion.pptx
la-historia-de-la-medicina Edna Silva.pptx
Influencia-del-uso-de-redes-sociales.pdf
Presentación de Redes de Datos modelo osi
Tips de Seguridad para evitar clonar sus claves del portal bancario.pdf
programa-de-estudios-2011-guc3ada-para-el-maestro-secundarias-tecnicas-tecnol...
Propuesta BKP servidores con Acronis1.pptx
Diapositiva proyecto de vida, materia catedra
IA de Cine - Como MuleSoft y los Agentes estan redefiniendo la realidad
RAP02 - TECNICO SISTEMAS TELEINFORMATICOS.pptx
introduccion a las_web en el 2025_mejoras.ppt
COMO AYUDAN LAS TIC EN LA EDUCACION SUPERIOR.pptx
Instrucciones simples, respuestas poderosas. La fórmula del prompt perfecto.
Historia Inteligencia Artificial Ana Romero.pptx
CyberOps Associate - Cisco Networking Academy

Capitulo5

  • 2. Introducción La administración de los recursos es una de las principales tareas del sistema operativo. • Los sistemas operativos tienen que ofrecer mecanismos que permitan a los procesos acceder de forma exclusiva a este tipo de recursos. • Cuando un proceso solicita ciertos recursos y éstos no están disponibles en ese momento, entra en un estado de espera. • Los SO deben requerir el acceso exclusivo no sólo a un recurso, sino a varios.
  • 3. Llamadas al sistema -Solicitud.- , Si el recurso no esta disponible el proceso debe esperar: El proceso se bloquea hasta que este libre La solicitud falla y devuelve un error -Utilización -Liberación Expropiables .- aquel que se puede tomar del Proceso que lo posee sin efectos dañinos No expropiables .- aquel que no se puede Tomar de su poseedor sin provocar un fallo de calculo - Físicos - Lógicos Recursos Objetos conocidos, cualquier cosa que solo puede ser usada por un único proceso. Un sistema se compone de un numero finito de Recursos que se distribuyen entre varios procesos que compiten entre ellos RECURSOS Pasos para usar un recurso :
  • 4. El sistema operativo como administrador de recursos
  • 5. Tipos de recursos Recursos reutilizables : Pueden ser usados por un proceso y no se agotan con el uso. Los procesos solicitan, usan y liberan los recursos para que posteriormente otros procesos los reutilicen Ejemplos: procesadores, impresoras, dispositivos de E/S, memorias principal y sec., archivos, DDBB y semáforos Recursos consumibles : Pueden ser producidos (creados) y consumidos (derruidos) por un proceso Cuando un proceso adquiere un recurso este deja de existir. Ejemplos : Interrupciones, señales, mensajes e información en buffers de E/S
  • 7. Definición de “BLOQUEO” El interbloqueo se puede definir como el bloqueo permanente de un conjunto de procesos que compiten por los recursos del sistema o bien se comunican unos con otros. Todos los interbloqueos suponen necesidades contradictorias de recursos por parte de dos o más procesos . • Deadlock • Abrazo mortal • Bloqueo mutuo Interbloqueo La gestión del interbloqueo no es responsabilidad de las aplicaciones, sino del sistema de gestión de recursos.
  • 8. Un sistema está en interbloqueo cuando uno o mas procesos están esperando un evento que no va ha suceder. Es una situación en la cual uno o mas procesos están bloqueados como consecuencia de que cada proceso tiene retenido un subconjunto de los recursos necesarios para su finalización y tengan que esperar la liberación de los recursos restantes retenidos por otros procesos del mismo grupo. Se presenta en sistemas multiprogramados. Se presenta cuando los recursos son compartidos y por consiguiente no son suficientes. Un conjunto de procesos se encuentra en estado de interbloqueo cuando cada uno de ellos espera un suceso que sólo puede originar otro proceso del mismo conjunto. DEFINICIONES DE “BLOQUEO”
  • 9. Ejemplo de una situación de interbloqueo
  • 10. Principios de interbloqueo El interbloqueo puede ser definido como el bloqueo permanente de un conjunto de procesos que compiten por recursos del sistema o se comunican unos con otros En cuanto al uso de recursos Puede haber varias unidades del mismo tipo de recurso Cuando un proceso pide un recurso, le vale cualquier unidad de ese tipo Los bloqueos mutuos no se limitan a archivos, impresoras y Unidades de cinta; también pueden ocurrir en recursos compartibles, como Discos y bases de Datos, según veremos en los Ejemplos Que siguen.
  • 11. Compras P1 - Ventas P2 Ambos activos al mismo tiempo Para actualizar las transacciones cotidianas c/u necesita tener acceso a 2 archivos Inventarios F1 Proveedores F2 Un día el sistema se bloquea mutuamente, cuando ocurre lo siguiente : 1.- Compras (P1) accede al archivo de proveedores (F2), para colocar un pedido para mas madera 2.- Ventas accede al archivo de inventarios (F1)para reservar los componentes que Se requerirán a fin de construir la casa-habitación pedida ese día 3.- Compras (P1) no libera el archivo de proveedores (F2), pero solicita el archivo de Inventarios (F1) para comprobar la cantidad de madera a mano, antes de colocar su perdido por mas, pero P1 esta bloqueado por que P2 tiene a F1 4.- Mientras tanto (P2) no libera el archivo de inventarios (F1), pero solicita el archivo de proveedores (F1) para verificar el programa de un subcontratista. Al llegar a este punto P2 también queda bloqueado por que F2 esta es manos de F1. CASO 1 .- Bloqueo mutuo en solicitudes de archivo
  • 12.  
  • 13. CASO2 .- Bloqueo mutuo en Bases de Datos Jones GPA=2.5 Direcc: Av. Sn Felipe Jones GPA=2.5 Direcc: Av.Salaverry P2 Proceso de actualización De Dirección lee Dato P1 Proceso de actualización De Grado lee Dato Jones GPA=3.0 Direcc: Av. Sn Felipe Jones GPA=2.5 Direcc: Av.Salaverry Jones GPA=3.0 Direcc: Av. Sn Felipe Área de Trabajo P1 sobreescribe el Registro a la base De datos con la nueva Dirección Registro Final P1 sobreescribe el Registro a la base de Datos con el nuevo grado Grado actualizado Caso 2: Si P1 termina Primero ganará La carrera , pero Su versión del Registro pronto Será sobreescrita Por P2. Sea cual sea el proceso ganador. La versión final de los Datos sera incorrecta Dirección Actualizada Bloqueos
  • 14. Dos procesos desean imprimir cada uno un enorme archivo. 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 el escáner y se le otorga. El proceso A solicita entonces el escáner, pero la solicitud es denegada hasta que B la libere. Por desgracia, en este momento, en vez de liberar el escáner, B solicita la impresora. Los procesos se bloquean en ese momento y permanecen así por siempre. Ejemplo: Los procesos A y B se pueden interbloquear, aunque estén escritos correctamente CASO3 .- Bloqueos en la asignación de dispositivos dedicados ( Dos procesos desean imprimir grandes archivos en cinta ) Solicita (escáner) Solicita (impresora) Usa impresora y escáner Libera (impresora) Libera (escáner) Solicita (impresora) Solicita (escáner) Usa impresora y escáner Libera (escáner) Libera (impresora) Proceso B Proceso A
  • 15. CASO 4 .- Bloqueos en la asignación de Múltiples Dispositivos P1 solicita y obtiene la unidad de cinta. P2 pide y obtiene la impresora. P3 solicita y obtiene gratificador. P1 pide la impresora pero se encuentra bloqueada. P2 solicita el gratificador pero está bloqueado. P3 pide la unidad de cinta pero se encuentra bloqueada Impresora Dispositivo de cinta Graficador P1 P2 P3 Caso 4 Tres procesos Mostrados como Círculos, esperan un dispositivo asignado a otro proceso, con lo que se genera un Bloqueo mutuo Bloqueos
  • 16. CASO 5 .- Bloqueos mutuos en operaciones periféricas simultaneas en línea Digamos que falta una hora antes de que se necesite el gran proyecto para la clase de Computación. Veintiséis programadores acelerados, teclean sus cambios finales Y, con unos cuantos minutos disponibles emiten unos comandos de impresión El manejador de spool recibe las paginas de cada estudiante una por una, pero le llegan por separado varias paginas uno, dos, etc.. La impresora esta listo para imprimir el primer programa completo que obtiene, pero conforme el manejador de Spool ( esto es el operador periférico simultaneo en línea ) recorre sus archivos, Obtiene la primera pagina de muchos programa, pero no tiene la ultima de ninguno. Por desgracia el spool esta lleno de salidas incompletadas, por lo que no puede aceptar otra página; pero ninguno de los trabajos se puede imprimir (lo que liberaria Su espacio en disco), por que la impresora solo acepta archivos de salidas completos. Una situación desafortunada. Este escenario no se limita a impresoras. Cualquier parte del sistema que se base en spooling, como el que maneja los trabajos de entrada o transfiere archivos en una red, es vulnerable ante un bloqueo mutuo
  • 17. CASO 6 .-Bloqueos al compartir Discos 1.-El proceso P1 desea mostrar un pago, por lo que un comando para leer el saldo, que esta almacenado en el cilindro 20 de un paquete de discos. 2.-Mientras la unidad de control esta moviendo el brazo hacia el cilindro 20, P1 se pone en espera y el canal de entradas/salidas queda libre para procesar la siguiente solicitud de entrada/salida 3.-P2 obtiene el control de entrada/salida y emite el comando para emitir el pago de otra persona, en un registro almacenado en el cilindro 310. “Si el comando no esta bloqueado” P2 quedara en espera, mientras la unidad de control mueve el brazo hasta el cilindro 310 Bloqueos
  • 18. 4.-Puesto que P2 “esta en espera” el canal esta libre y P1 puede capturarlo de nuevo, lo que vuelve a confirmar su comando de”leer del cilindro 20”. 5.- dado que el ultimo comando de P2 ha obligado al mecanismo del brazo hasta el cilindro 310, la unidad de control de disco empieza a reubicarlo para el cilindro 20 a fin de satisfacer a P1. el canal de entradas/salidas, será liberado, por que P1 ha quedado de nuevo en espera, por lo que P2 puede de nuevo capturarlo. Este emite un comando write y descubre que hay necesidad de reubicar el mecanismo del brazo
  • 19. CASO 6 .-Bloqueos al compartir Discos Cilindro 310 Cilindro 20 Unidad de control de disco Canal de E / S P1 P2 Lee Registros del Cilindro 20 Escribe a un archivo colocado en el Cilindro 310 Disco Caso 6 . Dos procesos Esperan una solicitud de E/S para llenarse: Uno en el cilindro 20 y el otro en el cilindro 310. Ninguna de estas puede satisfacerse, por que el dispositivo pone cada solicitud en espera cuando intenta llenar a la otra
  • 20. CASO 7 .-Bloqueos Mutuos en una Red Un centro de procesamiento de palabras de tamaño medio tiene siete computadoras en red, c/u con dos nodos diferentes. C1 recibe mensaje de los nodos C2,C6 y C7 y solo envía mensajes a uno : C2 C2 recibe los mensajes de los nodos C1,C3 y C4 y nada mas manda mensajes a C1 y c3. La dirección de las flechas de la figura señala el flujo de los mensajes. Los mensajes recibidos por c1 desde C6 y C7 y destinados a C2 se almacenan en una cola de salida. Los mensajes recibido por C2 de C3 y de C4 destinados a C1 se almacenan en una cola de salida. Conforme se incrementa el trafico, aumenta la longitud de cada cola de salida, hasta que se llena el espacio disponible para las colas. En este punto C1 ya no puede aceptar mas mensajes (de C2 o de cualquier otra computadora) por que no existe mas espacio disponible para almacenarlas. Por la misma razón, C2 no puedec aceptar mas mensajes de C1 para ninguna otra computadora, ni siquiera una solicitud para enviar. La trayectoria de comunicación entre C1 y C2 se bloquea y en vista de que C1 solo puede recibir mensajes de C6 y C7, estos caminos también se han bloqueado. C1 no puede enviar palabras hasta C2 respecto al problema, por lo que el bloqueo mutuo no se puede resolver sin intervención del exterior Bloqueos
  • 21. CASO 7 .-Bloqueos Mutuos en una Red C6 C7 C3 C5 C4 C2 C1 Caso 7 . Flujo de red Bloqueado totalmente. Cada circulo representa Un nodo, y cada línea, una línea de comunicación. Las flechas Indican la dirección del flujo del trafico Bloqueos
  • 22. Ejemplo 1 ( Cruce en un puente ) . En una carretera de dos direcciones, donde en un determinado cruce con la vía del ferrocarril, se ha construido un puente que solo deja pasar vehículos en un solo sentido. El bloqueo ocurre cuando dos vehículos intentan pasar por el puente al mismo tiempo. (Ver la siguiente figura nº 30).
  • 23. Aquí cada proceso está esperando por el otro para liberar uno de los recursos. El recurso retenido no será liberado hasta que el otro proceso usuario libere su recurso. Pero este último proceso usuario no liberará su recurso retenido hasta que el primer proceso usuario libere su recurso retenido. Entonces se produce una espera circular (Ver figura 31). ( Interbloqueo de un recurso simple ) Ejemplo 2
  • 24. Ejemplo 3 ( bloqueo de tráfico ) N S O E Cuatro coches 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 coches desean atravesar el cruce, las necesidades de recursos son las siguientes: -         El coche que va hacia el norte necesita los cuadrantes 1 y 2. -         El coche que va hacia el oeste necesita los cuadrantes 2 y 3. -         El coche que va hacia el sur necesita los cuadrantes 3 y 4. -         El coche que va hacia el este necesita los cuadrantes 4 y 1. Bloqueos
  • 25. Condiciones necesarias para el Bloqueo mutuo
  • 26. Condición de Exclusión Mutua : Cuando un proceso usa un recurso del sistema realiza una serie de operaciones sobre el recurso y después lo deja de usar. A la parte que usa ese recurso se le llama 'región crítica'. La condición de exclusión mutua establece que solamente se permite a un proceso estar dentro de la misma región crítica. Esto se traduce que en cualquier momento solamente un proceso puede usar un recurso a la vez , o en otras palabras cada recurso esta asignado a un único proceso ó bien esta disponible . Sólo un proceso puede usar un recurso cada vez. (cada recurso esta asignado a un único proceso ó bien esta disponible) Condición de Ocupar y Esperar un Recurso : Consiste en que un proceso pide un recurso y se le asigna. Antes de soltarlo, puede solicitar un nuevo recurso. Un proceso solicita todos los recursos que necesita a un mismo tiempo. (los procesos que tienen, en un momento dado, recursos asignados con anterioridad, pueden solicitar nuevos recursos) Condiciones necesarias para el bloqueo mutuo
  • 27. Ningún proceso puede ser forzado a abandonar un recurso que tenga 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. Condición de No Apropiación : Esta condición no resulta precisamente de la concurrencia, pero juega un papel importante en este ambiente. Esta condición especifica que si un proceso tiene asignado un recurso, dicho recurso no puede arrebatársele por ningún motivo, y estará disponible hasta que el proceso lo 'suelte' por su voluntad. (los recursos otorgados con anterioridad no pueden ser forzados a dejar un proceso. El proceso que los posee debe liberarlos en forma explicita)
  • 28. Condición de Espera Circular: (o círculo vicioso de espera) : Esto ocurre cuando dos o más procesos forman una cadena de espera que los involucra a todos. Por ejemplo, suponga que el proceso A tiene asignado el recurso 'cinta' y el proceso B tiene asignado el recurso 'disco'. En ese momento al proceso A se le ocurre pedir el recurso 'disco' y al proceso B el recurso 'cinta'. Ahí se forma una espera circular entre esos dos procesos que se puede evitar quitándole a la fuerza un recurso a cualquiera de los dos procesos. (Debe existir una cadena circular de dos o más procesos, cada uno de los cuales espera un recurso poseído por el siguiente miembro de la cadena).
  • 29. Círculo vicioso de espera: Cadena cerrada de procesos, cada uno de los cuales retiene, al menos, un recurso que necesita el siguiente proceso de la cadena. Recurso A Recurso B Solicitado Retenido por Solicitado Proceso P1 Proceso P2 Puede prevenirse definiendo una ordenación lineal de los tipos de recursos. Retenido por Circulo Vicioso Condiciones necesarias para el bloqueo mutuo
  • 30. El deadlock es una condición que ningún sistema o conjunto de procesos quisiera exhibir, ya que consiste en que se presentan al mismo tiempo cuatro condiciones necesarias Condiciones necesarias para el bloqueo mutuo Exclusión mutua No apropiación Ocupar y esperar Espera circular Simultáneamente Abrazo mortal ( deadlock )
  • 33. No se produce interbloqueo porque habrá un momento en el que acabe P2 porque tiene todo para ejecutarse, y el recurso que ocupa se lo asignará a P1. P4 como también tienen todo para acabar , cuando termine liberará el recurso y se lo asignaremos a P3.
  • 34. Modelado de Bloqueos P2 P1 P3 R1 R2 R3 R4 Grafo de Asignación de Recursos
  • 35. Modelado de Bloqueos En la grafica dirigida hay bloqueo mutuo porque todos los procesos esperan un recurso que esta detenido por otro proceso, pero ninguno quedara liberado sin la intervención del operador
  • 38. Una gráfica dirigida (o grafo dirigido) indica las asignaciones y peticiones de recursos. Concretamente: Los cuadros representaran a los procesos y, Los círculos representaran a los recursos. En particular los círculos grandes indicaran clases de recursos idénticos y los círculos pequeños, dibujados dentro de los grandes, representan el número de recursos idénticos dentro de cada clase. Modelado de Bloqueos
  • 39. P1 P2 P3 3 4 5 1 6 1 R1 R2 R3 Modelado de Bloqueos Modelado de Bloqueos
  • 40. R1 R2 R3 P1 P2 P3 P4 1 6 3 2 4 5 Modelado de Bloqueos
  • 41. Reducción de gráficas
  • 42. 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 de una gráfica por un proceso determinado se muestra retirando: Las flechas que van de los recursos al proceso (los recursos asignados al proceso). Las flechas que van del proceso al recurso (las peticiones actuales del proceso). Si una gráfica puede ser reducida por todos sus procesos, entonces no hay interbloqueo. Si una gráfica no puede ser reducida por todos sus procesos, entonces los procesos “irreducibles” constituyen la serie de procesos interbloqueados de la gráfica Sincronización Mensajes Semáforos Monitores Figura 36 recibir = espera enviar = señal En procesos distintos
  • 44. Los procesos P1, P2 y P3 están en bloqueo mutuo. Consideraciones: * Si un grafo no contiene ciclos no esta en bloqueo mutuo. * Si el grafo esta en bloqueo mutuo entonces existe a lo menos un ciclo en el grafo. * Si existe un ciclo en un grafo, no es condición suficiente para que exista bloqueo mutuo. Reducción de Graficas Reducción de Gráficas
  • 45. ESTRATEGIAS PARA EL MANEJO DE BLOQUEOS
  • 46. Estrateg. Para manejo de Bloqueos Para prevenir que se presente el interbloqueo debemos asegurar que por lo menos una de la condiciones necesarias no se cumpla. Entonces se debe plantear las siguientes políticas, independientes una de otra. Objetivo : conseguir que sea imposible la aparición de situaciones de interbloqueo Exclusión mutua Retención y espera No expropiación Espera circular Impedir que se produzca una de las cuatro condiciones necesarias para el interbloqueo
  • 47. Estrateg. Para manejo de Bloqueos
  • 48. Se plantea cuatro áreas de interés para solucionar el problema del bloqueo mutuo. Estrateg. Para manejo de Bloqueos
  • 49. Exclusión mutua Si no hay asignación exclusiva, no hay bloqueo mutuo. Dado que esta es una condición indispensable para un acceso seguro a recursos no compartibles, ningún sistema real la elimina Estrateg. Para manejo de Bloqueos Prevención – Exclusión Mutua Existen recursos para los que no es posible negar la condición de exclusión mutua. Se la debe de conservar para los recursos no compartibles. Ficheros : permiten múltiples accesos de lectura, pero únicamente un proceso puede escribir a la vez. Es posible eliminar la condición de exclusión mutua en Algunos recursos Impresora Spooler
  • 50. ¿Cuál es el problema planteado? Alguien necesita leche, pero no tanta Definiciones: Exclusión mutua : es el mecanismo que asegura que sólo una persona o proceso está haciendo algo en un instante determinado (los otros están excluidos) Sección crítica : es la sección de código, o colección de operaciones, en el que se actualizan variables comunes Cuando un proceso está ejecutando código de su sección crítica, ningún otro proceso puede estar en esa misma sección crítica Estrateg. Para manejo de Bloqueos Prevención – Exclusión mutua
  • 51. Sincronización Persona A Persona B 3:00 Mira en la nevera. No hay leche 3:05 Va a la tienda 3:10 Llega a la tienda 3:15 Deja la tienda 3:20 Llega a casa y guarda la leche 3:25 3:30 Mira en la nevera. No hay leche Va a la tienda Llega a la tienda Deja la tienda Llega a casa y ... Estrateg. Para manejo de Bloqueos Prevención - Exclusión mutua
  • 52. Retención y Espera Cada proceso deberá pedir todos los recursos que necesita al mismo tiempo y no podrá seguir hasta obtenerlos todos. Estrateg. Para manejo de Bloqueos Prevención – Retención y espera
  • 53. Estrateg. Para manejo de Bloqueos Prevención – Retención y espera El proceso solicita los recursos de forma Incremental a lo largo de su ejecución, Pero libera todos los recursos retenidos Si se encuentra con una negativa POSIBILIDAD 2 Los cambios hechos sobre la memoria o sobre ficheros Pueden corromper el sistema si no se llevan a termino Pueden conducir a la postergación indefinida (ó inanición ) de algunos procesos que Solicitan recursos muy utilizados Inconveniente adicional de ambos métodos Menos exigente
  • 54. Retención y espera: • Según esta condición, el proceso retiene los recursos concedidos, y espera que se le asigne uno nuevo. Por tanto, si se evita que un proceso pida más recursos, se acaba con el problema • Tenemos dos alternativas: A) Cada proceso pide recursos en bloque (generalmente cuando el proceso se crea) y el sistema operativo los otorga también en bloque. De esta manera se elimina la espera con recursos parcialmente asignados; si se espera, se hace por todos. Problemas : Sobrestimación : se reclaman los recursos potencialmente necesitados, en lugar de los que en cada momento se necesitan. Infrautilización : aunque se utilicen durante un instante se retienen durante toda la vida del proceso, tendiendo el sistema a ejecutar secuencialmente los procesos. Estrateg. Para manejo de Bloqueos Prevención – Retención y espera
  • 55. B) Los recursos se piden y otorgan escalonadamente y caso de que un proceso realice una petición de un recurso no disponible, deberán liberarse todos los recursos asignados hasta el momento, y pedirlos otra vez, junto con los nuevos. Problemas : Existen recursos que no se pueden devolver, ejemplo una impresora que está imprimiendo, se podrá devolver cuanto termine la impresión. Este método también presenta la posibilidad de aplazamiento indefinido, además de una sobrecarga para el sistema si un proceso solicita y libera recursos repetidamente, pudiendo llegar a degradar el sistema. Estrateg. Para manejo de Bloqueos Prevención – Retención y espera
  • 56. No Apropiación. Si a un proceso le falta algún recurso, deberá liberar los recursos ya asignados. El S.O. está autorizado para quitar un recurso asignado a un proceso para dárselo a otro que lo necesita. Problemas : Los mismo que para a supresión de retención y espera, cuando los recursos se piden y otorgan escalonadamente, pues habrá recursos que no se pueden devolver. Estrateg. Para manejo de Bloqueos Prevención – No apropiación
  • 57. Estrateg. Para manejo de Bloqueos Prevención Espera Circular A los recursos se les asigna un ordenamiento lineal (numeración única ascendente). Los números asignados a los recursos deben reflejar el orden natural en que son solicitados. Si a un proceso se le ha asignado un recurso en lo sucesivo solo podrá pedir los recursos que siguen en el ordenamiento. Prevención – Espera Circular
  • 58. Estrateg. Para manejo de Bloqueos Prevención – Espera Circular
  • 59. Eliminación o supresión de la espera circular: ( Asignar recursos en orden lineal . ) La condición del círculo vicioso de espera puede prevenirse definiendo una ordenación lineal de los tipos • Se obliga que los recursos siempre se pidan en un orden fijo. • Así, los recursos se agrupan en clases y entre clases se establece un orden total. • Las peticiones por parte de los procesos deberán hacerse en orden estrictamente creciente y los recursos pertenecientes a una clase deberán otorgarse en bloque. EJEMPLO: Sean dos procesos P1 y P2 que cada uno necesita utilizar dos discos y una impresora. Se establece el orden Discos < Impresora P1 Wait (discos) (* pide los dos *) P1 Wait (impresora) P2 Wait (discos) (* pide los dos *) P2 Wait (impresora) ………… ..................... A ha adquirido Discos y solicitado Impresora , mientras que B ha adquirido Impresora y solicitado Impresora Esta condición es imposible porque implica que Discos < Impresora y Impresora < Discos . El primero que obtenga los discos también podrá obtener la impresora, ya que el otro para pedirla necesita antes conseguir los discos. Ventajas : Este método permite desechar peticiones incorrectas en tiempo de compilación de los procesos. Problemas : Obliga a seguir un orden en las peticiones y puede no ser conveniente para el proceso. Estrateg. Para manejo de Bloqueos Prevención – Espera Circular
  • 60. PROBLEMAS: Los recursos deben ser adquiridos en el orden previsto y no en el orden en el que realmente se necesitan. El rendimiento cae por lo mismo de antes, ya que los procesos toman recursos que igual no los utilizan hasta el final y les tienen retenidos. Estrateg. Para manejo de Bloqueos Prevención – Espera Circular Podemos evitar la espera circular si imponemos un orden total a los recursos (o sea, asignamos a cada recurso R un número único F(R) ), y obligamos a los procesos a que soliciten recursos en orden: un proceso no puede solicitar Q y después R si F(Q)>F(R) . Por ejemplo: F(CD-ROM)=1 F(impresora)=2 F(plotter)=3 F(Cinta)=4
  • 61. Incluso si el sistema operativo no puede eliminar una de las condiciones del bloqueo mutuo, puede evitar uno, si conoce por anticipado la secuencia de solicitudes asociadas con cada proceso activo. Dijkstra( 1965) propuso uno de esos algoritmos para regular la asignación de recursos a fin de evitar bloqueos, ese algoritmo fue conocido como : Cuando un proceso entra al sistema declara el numero máximo de ejemplares de cada recurso que va a necesitar (no podrá exceder del total de los recursos del sistema), Indicando el orden en que solicitara sus recursos y cuando los liberara. Cuando un proceso solicita un conjunto de recursos, el sistema debe determinar si su asignación dejara al sistema en estado seguro. Si es así los recursos se asignan; si no, el proceso esperara hasta que otro libere suficientes recursos. Se necesitan varias estructuras de datos para representar el estado de asignación de recursos del sistema. EL ALGORITMO DEL BANQUERO Estrateg. Para manejo de Bloqueos Evitación
  • 62. Estrateg. Para manejo de Bloqueos Evitación Palabras Clave Los métodos de prevención adolecen de que son muy costosos. (bajo uso de los recursos, reducción de la productividad del sistema). Existe al menos una forma de que terminen todos los procesos. No se puede garantizar que los procesos terminen, pues algunos de ellos podría pedir un recurso más que no puede ser satisfecho. Pero este no es un estado de bloqueado, sino que no puede garantizarse que termine
  • 63. Evitación Estrateg. Para manejo de Bloqueos Ejemplos de transición de un estado seguro a uno inseguro.
  • 64. Análisis del Algoritmo del banquero de Dijkstra Con este algoritmo se satisfacen las condiciones de espera, no apropiación y espera circular, pero los procesos necesitan el uso exclusivo de los recursos. Los usuarios puede solicitar los recursos cuando lo necesiten. El sistema solo satisface las peticiones que lleven a un estado seguro Estrateg. Para manejo de Bloqueos Evitación
  • 65. Estrateg. Para manejo de Bloqueos Evitación
  • 66. Estrateg. Para manejo de Bloqueos Evitación
  • 67. ¿ Cómo detectar un Deadlock ?. Para detectar un deadlock, se puede usar el mismo algoritmo del banquero, que aunque no dice que hay un deadlock, sí dice cuándo se está en estado inseguro que es la antesala del deadlock. Sin embargo, para detectar realmente el deadlock se pueden usar las 'gráficas de recursos' . Como se dijo en punto anteriores en ellas se pueden usar cuadrados para indicar procesos y círculos para los recursos, y flechas para indicar si un recurso ya está asignado a un proceso o si un proceso está esperando un recurso. De esta forma el deadlock es detectado cuando se puede hacer un viaje de ida y vuelta desde un proceso o recurso. Estrateg. Para manejo de Bloqueos Detección
  • 68. Estrateg. Para manejo de Bloqueos Detección
  • 69. Estrateg. Para manejo de Bloqueos Detección
  • 70. En la figura anterior se observa como la gráfica de recursos fue evolucionando hasta que se presentó el deadlock, lo cual significa que se puede viajar por las flechas desde un proceso o recurso hasta regresar al punto de partida. En el deadlock están involucrados los procesos A, B y C. Una vez que un deadlock se detecta, es obvio que el sistema está en problemas y lo único que resta por hacer es una de dos cosas: tener algún mecanismo de suspensión o reanudación que permita copiar todo el contexto de un proceso incluyendo valores de memoria y aspecto de los periféricos que esté usando para reanudarlo otro día, o simplemente eliminar un proceso o arrebatarle el recurso, causando para ese proceso la pérdida de datos y tiempo. Evento 1 : Proceso A pide recurso 1 y se le asigna . Evento 2 : Proceso A termina su quantum. Evento 3 : Proceso B pide recurso 2 y se le asigna. Evento 4 : Proceso B termina su quantum. Evento 5 : Proceso C pide recurso 3 y se le asigna. Evento 6 : Proceso C pide recurso 1 y como lo está ocupando el proceso A, espera. Evento 7 : Proceso B pide recurso 3 y se bloquea porque lo ocupa el proceso C. E vento 8 : Proceso A pide recurso 2 y se bloquea porque lo ocupa el proceso B. Estrateg. Para manejo de Bloqueos Detección
  • 71. Uso del algoritmo de detección ¿Cuándo se debe usar este algoritmo?. Se debe de determinar dos aspectos en el uso de este algoritmo: Estrateg. Para manejo de Bloqueos Detección
  • 72. Técnicas una vez detectado el interbloqueo Abortar todos los procesos interbloqueados. 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. Apropiarse de recursos sucesivamente hasta que deje de haber interbloqueo. La menor cantidad de tiempo de procesador consumido hasta ahora. El menor número de líneas de salida producidas hasta ahora. El mayor tiempo restante estimado. El menor número total de recursos asignados hasta ahora. La prioridad más baja. Criterio de selección de los procesos interbloqueados
  • 73. Estrateg. Para manejo de Bloqueos Recuperación
  • 74. Terminación de procesos. Con estos métodos el sistema recupera todos los recursos asignados a los procesos terminados. Abortar todos los procesos que están en interbloqueo. Rompe el interbloqueo definitivamente pero es muy costoso. Pero no es fácil terminar un proceso, este podría estar realizando una operación que no se puede recuperar. Abortar un proceso gradualmente hasta lograr eliminar el interbloqueo. Incurre en tiempo de procesamiento, pues luego de abortar cada proceso se debe invocar al algoritmo de detección, hasta estar seguros que no existe interbloqueo. El problema es determinar que proceso se debe eliminar a continuación. Se tratara de abortar el proceso 'menos costoso'. Para determinar el proceso 'menos costoso' se deberá considerar los siguiente factores: Prioridad del proceso, tiempo de ejecución y tiempo ya ejecutado, cantidad de recursos asignados, facilidad de expropiar el recurso, recursos adicionales que necesita para terminar, proceso que deberán de abortarse adicionalmente. Cuando el algoritmo de detección determina que existe el interbloqueo, existen las siguientes alternativas: 1. Abortar uno o mas procesos para romper la espera circular 2. Quitar uno o mas recursos a los procesos bloqueados. Estrateg. Para manejo de Bloqueos Recuperación
  • 75. Estrateg. Para manejo de Bloqueos Recuperación
  • 76. Expropiación de los recursos. Los recursos se expropian y se asignan a otros proceso. Se debe considerar; Selección del proceso. Se debe seleccionar el proceso y el orden de expropiación de los recursos para 'minimizar el costo'. Se debe considerar: número de recursos asignados, cantidad de tiempo ya consumido, etc. Retroceso. Si se expropia un recursos a un proceso se debe de retroceder el proceso hasta llegar a un estado seguro, como esto no es sencillo se prefiere, retroceder totalmente. Bloqueo indefinido. Como garantizar que los recursos a expropiar no son del mismo proceso. Si la decisión de seleccionar a un proceso se basa en el costo, puede suceder que siempre se elija a la misma víctima. Si se llega a esto entonces habrá un situación de bloqueo indefinido. Una solución es incluir el numero de retrocesos en el factor costo. Estrateg. Para manejo de Bloqueos Recuperación
  • 77.  
  • 78.  
  • 79.  
  • 80. EL ALGORITMO DEL BANQUERO
  • 81. Si el banquero tuviese fondos suficientes para prestar el máximo a cada cliente, es decir, tanto como la suma de los máximos, no habría problemas. Sin embargo, no ocurre así: los recursos del banquero están limitados, por lo que si todos piden el máximo, no podrá satisfacerlos simultáneamente. Por tanto, el banquero debe gestionar sus fondos de manera que todos los clientes puedan llegar al máximo, pero uno tras otro, sin que se produzca interbloqueo. Partiendo de una situación inicial, se dice que un estado es seguro si, partiendo de él, existe alguna secuencia de estados en la que todos los procesos alcancen el número máximo de recursos en algún momento, De lo contrario, el estado es inseguro . Algoritmo del banquero
  • 82. Idea : Procesos manifiestan si intención de ingresar antes de verificar si procesos se excluyen mutuamente. En caso de colisión se arrepienten Procesos comparten un arreglo que indica si un proceso tiene intención o esta en su SC, i.e. shared boolean flag[2]; Inicialmente flag[i] = FALSE; /* para todo proceso i */ Condición flag[i] == TRUE
  • 83. 1) Estructuras de datos : que representan internamente el grafo general de recursos. A signados : ARRAY 1..NumProcesos, 1..NumTipoRecursos OF INTEGER. Indica cuantos recursos de cada tipo tiene asignados cada proceso. Inicialmente está a 0. Reclamables : ARRAY 1..NumProcesos, 1..NumTipoRecursos OF INTEGER. Indica cuantos recursos de cada tipo pueden aún solicitar cada proceso. Inicialmente contiene el valor de necesidades máximas de cada proceso. Conforme se vayan asignando recursos los componentes del array se irán decrementando. Disponibles : ARRAY 1..NumTipoRecursos OF INTEGER. Indica el número de recursos de cada tipo que aún no han sido asignados. Inicialmente contiene el valor de recursos en el sistema y conforme se otorguen y se devuelvan se irá decrementando o incrementando ese valor. EJEMPLO: IMPLEMENTACIÓN DEL ALGORITMO.
  • 84. IMPLEMENTACIÓN DEL ALGORITMO. 2) Algoritmo : consiste en simular el comportamiento futuro del sistema y comprobar que una asignación, en el peor de los casos, no desemboca en interbloqueo. Los pasos del algoritmo son: 1. Modificar las estructuras de datos como si la petición se concediera. 2. Desmarcar todos los proceso, esto es poner a false todos los compones de un array auxiliar: Procesos: ARRAY 1..NumProcesos OF BOOLEAN. 3. Encontrar un proceso no marcado tal que para todo recurso i Reclamables [proceso, i] ≤ Disponibles [i] 4. Si se encuentra, marcar al proceso y simular que acaba devolviendo todos los recursos que tiene asignados a disponibles. [i] Disponibles [i] := Disponibles [i] + Asignados [proceso, i] 5. Volver al paso 3. 6. Si en el paso 3 no se encontró a ese proceso no marcado entonces revisar el array procesos: • Si todos los procesos están marcados, entonces la petición es segura . • Si hay alguno sin marcar, la petición es insegura .
  • 85. Algoritmo del banquero Un ejemplo sencillo: Tengo 12 impresoras. Préstamo actual Necesidad Máxima P1 5 10 P2 3 5 P3 2 6 -------------- 10 utilizadas ------> (Tengo 2 libres.) -------------- A P2 le faltan 2 -> Finalizo P2. (Tengo 5 libres.) A P1 le faltan 5 -> Finalizo P1. (Tengo 10 libres.) A P3 le faltan 4 -> Finalizo P3.
  • 86. C1 C2 C3 0 2,000 4,000 4,000 5,000 8,000 4,000 3,000 4,000 Cliente Cantidad de Préstamo Crédito máximo Crédito restante C1 C2 C3 2,000 3,000 4,000 4,000 5,000 8,000 2,000 2,000 4,000 Cliente Cantidad de Préstamo Crédito máximo Crédito restante El banco arranco con 10000 dólares y después de estos prestamos, tiene un capital restante de 4000. Por lo tanto, se encuentra en un “estado seguro” El banco ahora solo tiene capital restante de 1000 dólares después de estos prestamos, de modo que esta en un “estado inseguro” Total prestado : 6,000 Fondo Total de capital :10,000 Total prestado : 9,000 Fondo Total de capital :10,000
  • 87.  
  • 88.  
  • 90. Condición en la que un proceso se retarda indefinidamente por que otros procesos siempre tienen preferencia. Un proceso se encuentra en estado de inanición cuando, con otros procesos, espera un evento, pero ante la aparición del evento y su gestión, nunca es el elegido para continuar su ejecución. Un proceso espera indefinidamente un recurso que siempre se concede a algún otro que lo solicita. Depende de la política de asignación de recursos Definición de Inanición
  • 91. Inanición Para los dos casos de intento de recuperación del Interbloqueo (terminación de procesos o expropiación de recursos) hay que tener cuidado de no provocar La inanición de procesos. Que es la inanición ? Supón tres procesos que acceden periodicamente a un recurso. Considera P1 posee el recurso y que P2 y P3 están Esperando. Cuando P1 haya ejecutado su sección crítica, P1 Solicita acceso de nuevo y así sucesivamente, se puede llegar a Una situación en la que P2 nunca accede al recurso
  • 92. El problema de los filósofos cenando es un problema clásico de las ciencias de la computación propuesto por Edsger Dijkstra (1965 ) para representar el problema de la sincronización de procesos en un sistema operativo. Cabe aclarar que la interpretación está basada en pensadores chinos, quienes comían con dos palillos, donde es más lógico que se necesite el del comensal que se siente al lado para poder comer t1 t2 t3 t4 t5
  • 93. G r a c i a s . . .
  • 94. Condiciones de competencia Son las situaciones en las que dos o más procesos leen o escriben en ciertos datos compartidos y el resultado final depende de quién ejecuta qué y en qué momento Exclusión mutua Forma de garantizar que si un proceso utiliza una variable o archivo compartidos, los demás procesos no puedan utilizarlos. Forma de prohibir que más de un proceso lea o escriba en los datos compartidos a la vez Secciones o regiones críticas Parte del programa en el cual se tiene acceso a la memoria compartida Palabras Clare
  • 95.  
  • 96.  
  • 97.  
  • 98.  
  • 99.  
  • 100.  
  • 101.  
  • 102.  
  • 103.