Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Capitulo5

1,708 views

Published on

Capitulo 5

Published in: Technology, Business
  • Be the first to comment

  • Be the first to like this

Capitulo5

  1. 1. SISTEMAS OPERATIVOS Administración de los procesos
  2. 2. Introducción <ul><li>La administración de los recursos es una de las principales tareas del sistema operativo. </li></ul><ul><li>• Los sistemas operativos tienen que ofrecer mecanismos que permitan a los procesos acceder de forma exclusiva a este tipo de recursos. </li></ul><ul><li>• Cuando un proceso solicita ciertos recursos y éstos no están disponibles en ese momento, entra en un estado de espera. </li></ul><ul><li>• Los SO deben requerir el acceso exclusivo no sólo a un recurso, sino a varios. </li></ul>
  3. 3. Llamadas al sistema <ul><li>-Solicitud.- , Si el recurso no esta </li></ul><ul><li>disponible el proceso debe esperar: </li></ul><ul><ul><li>El proceso se bloquea hasta que este libre </li></ul></ul><ul><ul><li>La solicitud falla y devuelve un error </li></ul></ul><ul><li>-Utilización </li></ul><ul><li>-Liberación </li></ul>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. 4. El sistema operativo como administrador de recursos
  5. 5. <ul><li>Tipos de recursos </li></ul><ul><li>Recursos reutilizables : </li></ul><ul><ul><li>Pueden ser usados por un proceso y no se agotan con el uso. </li></ul></ul><ul><ul><li>Los procesos solicitan, usan y liberan los recursos para que </li></ul></ul><ul><ul><li>posteriormente otros procesos los reutilicen </li></ul></ul><ul><ul><li>Ejemplos: procesadores, impresoras, dispositivos de E/S, </li></ul></ul><ul><ul><li>memorias principal y sec., archivos, DDBB y semáforos </li></ul></ul><ul><li>Recursos consumibles : </li></ul><ul><ul><li>Pueden ser producidos (creados) y consumidos (derruidos) </li></ul></ul><ul><ul><li>por un proceso </li></ul></ul><ul><ul><li>Cuando un proceso adquiere un recurso este deja de existir. </li></ul></ul><ul><ul><li>Ejemplos : Interrupciones, señales, mensajes e información </li></ul></ul><ul><ul><li>en buffers de E/S </li></ul></ul>
  6. 6. BLOQUEOS
  7. 7. Definición de “BLOQUEO” <ul><li>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 . </li></ul>• Deadlock • Abrazo mortal • Bloqueo mutuo Interbloqueo <ul><li>La gestión del interbloqueo no es responsabilidad de las aplicaciones, sino del sistema de gestión de recursos. </li></ul>
  8. 8. <ul><li>Un sistema está en interbloqueo cuando uno o mas procesos están esperando un evento que no va ha suceder. </li></ul><ul><li>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. </li></ul><ul><ul><li>Se presenta en sistemas multiprogramados. </li></ul></ul><ul><ul><li>Se presenta cuando los recursos son compartidos y por consiguiente no son suficientes. </li></ul></ul>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. 9. Ejemplo de una situación de interbloqueo
  10. 10. Principios de interbloqueo <ul><li>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 </li></ul><ul><li>En cuanto al uso de recursos </li></ul><ul><ul><li>Puede haber varias unidades del mismo tipo de recurso </li></ul></ul><ul><ul><li>Cuando un proceso pide un recurso, le vale cualquier unidad de ese tipo </li></ul></ul><ul><li>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. </li></ul>
  11. 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
  13. 14. <ul><li>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. </li></ul><ul><li>Ejemplo: Los procesos A y B se pueden interbloquear, </li></ul><ul><li>aunque estén escritos correctamente </li></ul>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
  14. 15. CASO 4 .- Bloqueos en la asignación de Múltiples Dispositivos <ul><li>P1 solicita y obtiene la unidad de cinta. </li></ul><ul><li>P2 pide y obtiene la impresora. </li></ul><ul><li>P3 solicita y obtiene gratificador. </li></ul><ul><li>P1 pide la impresora pero se encuentra bloqueada. </li></ul><ul><li>P2 solicita el gratificador pero está bloqueado. </li></ul><ul><li>P3 pide la unidad de cinta pero se encuentra bloqueada </li></ul>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
  15. 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
  16. 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
  17. 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
  18. 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
  19. 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
  20. 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
  21. 22. Ejemplo 1 ( Cruce en un puente ) . <ul><li>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). </li></ul>
  22. 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
  23. 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
  24. 25. Condiciones necesarias para el Bloqueo mutuo
  25. 26. <ul><li>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 . </li></ul><ul><ul><li>Sólo un proceso puede usar un recurso cada vez. </li></ul></ul><ul><li>(cada recurso esta asignado a un único proceso ó bien esta disponible) </li></ul><ul><li>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. </li></ul><ul><ul><li>Un proceso solicita todos los recursos que necesita a un mismo tiempo. </li></ul></ul><ul><li>(los procesos que tienen, en un momento dado, recursos asignados con anterioridad, pueden solicitar nuevos recursos) </li></ul>Condiciones necesarias para el bloqueo mutuo
  26. 27. <ul><li>Ningún proceso puede ser forzado a abandonar un recurso que tenga </li></ul><ul><ul><li>Si a un proceso que retiene ciertos recursos se le deniega una nueva solicitud, dicho proceso deberá liberar sus recursos anteriores. </li></ul></ul><ul><ul><li>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. </li></ul></ul>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)
  27. 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).
  28. 29. <ul><li>Círculo vicioso de espera: </li></ul><ul><ul><li>Cadena cerrada de procesos, cada uno de los cuales retiene, al menos, un recurso que necesita el siguiente proceso de la cadena. </li></ul></ul>Recurso A Recurso B Solicitado Retenido por Solicitado Proceso P1 Proceso P2 <ul><ul><li>Puede prevenirse definiendo una ordenación lineal de los tipos de recursos. </li></ul></ul>Retenido por Circulo Vicioso Condiciones necesarias para el bloqueo mutuo
  29. 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 )
  30. 31. Modelado de Bloqueos Mutuos
  31. 32. Modelado de Bloqueos
  32. 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.
  33. 34. Modelado de Bloqueos P2 P1 P3 R1 R2 R3 R4 Grafo de Asignación de Recursos
  34. 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
  35. 36. Modelado de Bloqueos
  36. 37. Modelado de Bloqueos
  37. 38. <ul><li>Una gráfica dirigida (o grafo dirigido) indica las asignaciones y peticiones de recursos. Concretamente: </li></ul><ul><ul><li>Los cuadros representaran a los procesos y, </li></ul></ul><ul><ul><li>Los círculos representaran a los recursos. </li></ul></ul><ul><ul><li>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. </li></ul></ul>Modelado de Bloqueos
  38. 39. P1 P2 P3 3 4 5 1 6 1 R1 R2 R3 Modelado de Bloqueos Modelado de Bloqueos
  39. 40. R1 R2 R3 P1 P2 P3 P4 1 6 3 2 4 5 Modelado de Bloqueos
  40. 41. Reducción de gráficas
  41. 42. <ul><li>Si las peticiones de recursos de un proceso pueden ser concedidas , se dice que una gráfica puede ser reducida por ese proceso. </li></ul><ul><li>La reducción de una gráfica por un proceso determinado se muestra retirando: </li></ul><ul><li>Las flechas que van de los recursos al proceso (los recursos asignados al proceso). </li></ul><ul><li>Las flechas que van del proceso al recurso (las peticiones actuales del proceso). </li></ul><ul><li>Si una gráfica puede ser reducida por todos sus procesos, entonces no hay interbloqueo. </li></ul><ul><li>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 </li></ul>Sincronización Mensajes Semáforos Monitores Figura 36 recibir = espera enviar = señal En procesos distintos
  42. 43. Reducción de Gráficas
  43. 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
  44. 45. ESTRATEGIAS PARA EL MANEJO DE BLOQUEOS
  45. 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
  46. 47. Estrateg. Para manejo de Bloqueos
  47. 48. Se plantea cuatro áreas de interés para solucionar el problema del bloqueo mutuo. Estrateg. Para manejo de Bloqueos
  48. 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
  49. 50. ¿Cuál es el problema planteado? <ul><li>Alguien necesita leche, pero no tanta </li></ul><ul><li>Definiciones: </li></ul><ul><ul><li>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) </li></ul></ul><ul><ul><li>Sección crítica : es la sección de código, o colección de operaciones, en el que se actualizan variables comunes </li></ul></ul><ul><ul><li>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 </li></ul></ul>Estrateg. Para manejo de Bloqueos Prevención – Exclusión mutua
  50. 51. Sincronización <ul><li>Persona A </li></ul><ul><li>Persona B </li></ul>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
  51. 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
  52. 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 <ul><li>Inconveniente adicional </li></ul><ul><li>de ambos métodos </li></ul>Menos exigente
  53. 54. <ul><li>Retención y espera: </li></ul><ul><li>• 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 </li></ul><ul><li>• Tenemos dos alternativas: </li></ul><ul><li>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. </li></ul><ul><li>Problemas : Sobrestimación : se reclaman los recursos potencialmente necesitados, en lugar de los que en cada momento se necesitan. </li></ul><ul><li>Infrautilización : aunque se utilicen durante un instante se retienen durante toda la vida del proceso, tendiendo el sistema a ejecutar secuencialmente los procesos. </li></ul>Estrateg. Para manejo de Bloqueos Prevención – Retención y espera
  54. 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
  55. 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
  56. 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
  57. 58. Estrateg. Para manejo de Bloqueos Prevención – Espera Circular
  58. 59. <ul><li>Eliminación o supresión de la espera circular: </li></ul><ul><li>( Asignar recursos en orden lineal . ) </li></ul><ul><li>La condición del círculo vicioso de espera puede prevenirse definiendo una ordenación lineal de los tipos </li></ul><ul><li>• Se obliga que los recursos siempre se pidan en un orden fijo. </li></ul><ul><li>• Así, los recursos se agrupan en clases y entre clases se establece un orden total. </li></ul><ul><li>• 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. </li></ul><ul><li>EJEMPLO: Sean dos procesos P1 y P2 que cada uno necesita utilizar dos discos y una impresora. Se establece el orden Discos < Impresora </li></ul><ul><li>P1 Wait (discos) (* pide los dos *) P1 Wait (impresora) </li></ul><ul><li>P2 Wait (discos) (* pide los dos *) P2 Wait (impresora) </li></ul><ul><li>………… ..................... </li></ul><ul><li>A ha adquirido Discos y solicitado Impresora , mientras que </li></ul><ul><li>B ha adquirido Impresora y solicitado Impresora </li></ul><ul><li>Esta condición es imposible porque implica que Discos < Impresora y Impresora < Discos . </li></ul><ul><li>El primero que obtenga los discos también podrá obtener la impresora, ya que el otro para pedirla necesita antes conseguir los discos. </li></ul><ul><li>Ventajas : Este método permite desechar peticiones incorrectas en tiempo de compilación de los procesos. </li></ul><ul><li>Problemas : Obliga a seguir un orden en las peticiones y puede no ser conveniente para el proceso. </li></ul>Estrateg. Para manejo de Bloqueos Prevención – Espera Circular
  59. 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
  60. 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 : <ul><li>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. </li></ul><ul><li>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. </li></ul><ul><li>Se necesitan varias estructuras de datos para representar el estado de asignación de recursos del sistema. </li></ul>EL ALGORITMO DEL BANQUERO Estrateg. Para manejo de Bloqueos Evitación
  61. 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
  62. 63. Evitación Estrateg. Para manejo de Bloqueos Ejemplos de transición de un estado seguro a uno inseguro.
  63. 64. <ul><li>Análisis del Algoritmo del banquero de Dijkstra </li></ul><ul><li>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. </li></ul><ul><li>Los usuarios puede solicitar los recursos cuando lo necesiten. </li></ul><ul><li>El sistema solo satisface las peticiones que lleven a un estado seguro </li></ul>Estrateg. Para manejo de Bloqueos Evitación
  64. 65. Estrateg. Para manejo de Bloqueos Evitación
  65. 66. Estrateg. Para manejo de Bloqueos Evitación
  66. 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
  67. 68. Estrateg. Para manejo de Bloqueos Detección
  68. 69. Estrateg. Para manejo de Bloqueos Detección
  69. 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
  70. 71. <ul><li>Uso del algoritmo de detección </li></ul><ul><li>¿Cuándo se debe usar este algoritmo?. </li></ul><ul><li>Se debe de determinar dos aspectos en el uso de este algoritmo: </li></ul>Estrateg. Para manejo de Bloqueos Detección
  71. 72. Técnicas una vez detectado el interbloqueo <ul><li>Abortar todos los procesos interbloqueados. </li></ul><ul><li>Retroceder cada proceso interbloqueado hasta algún punto de control definido previamente y volver a ejecutar todos los procesos: </li></ul><ul><ul><li>Puede repetirse el interbloqueo original. </li></ul></ul><ul><li>Abortar sucesivamente procesos interbloqueados hasta que deje de haber interbloqueo. </li></ul><ul><li>Apropiarse de recursos sucesivamente hasta que deje de haber interbloqueo. </li></ul>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
  72. 73. Estrateg. Para manejo de Bloqueos Recuperación
  73. 74. <ul><li>Terminación de procesos. </li></ul><ul><li>Con estos métodos el sistema recupera todos los recursos asignados a los procesos terminados. </li></ul><ul><li>Abortar todos los procesos que están en interbloqueo. </li></ul><ul><li>Rompe el interbloqueo definitivamente pero es muy costoso. </li></ul><ul><li>Pero no es fácil terminar un proceso, este podría estar realizando una operación que no se puede recuperar. </li></ul><ul><li>Abortar un proceso gradualmente hasta lograr eliminar el interbloqueo. </li></ul><ul><li>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. </li></ul><ul><li>El problema es determinar que proceso se debe eliminar a continuación. Se tratara de abortar el proceso 'menos costoso'. </li></ul><ul><li>Para determinar el proceso 'menos costoso' se deberá considerar los siguiente factores: </li></ul><ul><li>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. </li></ul>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
  74. 75. Estrateg. Para manejo de Bloqueos Recuperación
  75. 76. <ul><li>Expropiación de los recursos. </li></ul><ul><li>Los recursos se expropian y se asignan a otros proceso. </li></ul><ul><li>Se debe considerar; </li></ul><ul><li>Selección del proceso. </li></ul><ul><li>Se debe seleccionar el proceso y el orden de expropiación de los recursos para 'minimizar el costo'. </li></ul><ul><li>Se debe considerar: número de recursos asignados, cantidad de tiempo ya consumido, etc. </li></ul><ul><li>Retroceso. </li></ul><ul><li>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. </li></ul><ul><li>Bloqueo indefinido. </li></ul><ul><li>Como garantizar que los recursos a expropiar no son del mismo proceso. </li></ul><ul><li>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. </li></ul><ul><li>Si se llega a esto entonces habrá un situación de bloqueo indefinido. </li></ul><ul><li>Una solución es incluir el numero de retrocesos en el factor costo. </li></ul>Estrateg. Para manejo de Bloqueos Recuperación
  76. 80. EL ALGORITMO DEL BANQUERO
  77. 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
  78. 82. <ul><li>Idea : </li></ul><ul><li>Procesos manifiestan si intención de ingresar antes de verificar si procesos se </li></ul><ul><li>excluyen mutuamente. En caso de colisión se arrepienten </li></ul><ul><li>Procesos comparten un arreglo que indica si un proceso tiene intención o esta en su </li></ul><ul><li>SC, i.e. </li></ul><ul><li>shared boolean flag[2]; </li></ul><ul><li>Inicialmente </li></ul><ul><li> flag[i] = FALSE; /* para todo proceso i */ </li></ul><ul><li>Condición </li></ul><ul><li> flag[i] == TRUE </li></ul>
  79. 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.
  80. 84. <ul><li>IMPLEMENTACIÓN DEL ALGORITMO. </li></ul><ul><li>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: </li></ul><ul><ul><li>1. Modificar las estructuras de datos como si la petición se concediera. </li></ul></ul><ul><ul><li>2. Desmarcar todos los proceso, esto es poner a false todos los compones de un array auxiliar: </li></ul></ul><ul><ul><li>Procesos: ARRAY 1..NumProcesos OF BOOLEAN. </li></ul></ul><ul><ul><li>3. Encontrar un proceso no marcado tal que para todo recurso i </li></ul></ul><ul><ul><li>Reclamables [proceso, i] ≤ Disponibles [i] </li></ul></ul><ul><ul><li>4. Si se encuentra, marcar al proceso y simular que acaba devolviendo todos los recursos que tiene asignados a disponibles. </li></ul></ul><ul><ul><li> [i] Disponibles [i] := Disponibles [i] + Asignados [proceso, i] </li></ul></ul><ul><ul><li>5. Volver al paso 3. </li></ul></ul><ul><ul><li>6. Si en el paso 3 no se encontró a ese proceso no marcado entonces revisar el array procesos: </li></ul></ul><ul><ul><ul><ul><li>• Si todos los procesos están marcados, entonces la petición es segura . </li></ul></ul></ul></ul><ul><ul><ul><ul><li>• Si hay alguno sin marcar, la petición es insegura . </li></ul></ul></ul></ul>
  81. 85. <ul><li>Algoritmo del banquero </li></ul><ul><li>Un ejemplo sencillo: </li></ul><ul><li>Tengo 12 impresoras. </li></ul><ul><li>Préstamo actual Necesidad Máxima </li></ul><ul><li>P1 5 10 </li></ul><ul><li>P2 3 5 </li></ul><ul><li>P3 2 6 </li></ul><ul><li>-------------- </li></ul><ul><li>10 utilizadas ------> (Tengo 2 libres.) </li></ul><ul><li>-------------- </li></ul><ul><li>A P2 le faltan 2 -> Finalizo P2. (Tengo 5 libres.) </li></ul><ul><li>A P1 le faltan 5 -> Finalizo P1. (Tengo 10 libres.) </li></ul><ul><li>A P3 le faltan 4 -> Finalizo P3. </li></ul>
  82. 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
  83. 89. Inanición
  84. 90. <ul><ul><li>Condición en la que un proceso se retarda indefinidamente por que otros procesos siempre tienen preferencia. </li></ul></ul><ul><ul><li>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. </li></ul></ul><ul><ul><li>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 </li></ul></ul>Definición de Inanición
  85. 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
  86. 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
  87. 93. G r a c i a s . . .
  88. 94. <ul><li>Condiciones de competencia </li></ul><ul><li>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 </li></ul><ul><li>Exclusión mutua </li></ul><ul><li>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 </li></ul><ul><li>Secciones o regiones críticas </li></ul><ul><li>Parte del programa en el cual se tiene acceso a la memoria compartida </li></ul>Palabras Clare

×