Está en la página 1de 34

SISTEMAS OPERATIVOS MODERNOS - CLASE 16

SISTEMAS OPERATIVOS MODERNOS - CLASE 16
SISTEMAS OPERATIVOS MODERNOS - CLASE 16
SISTEMAS OPERATIVOS MODERNOS - CLASE 16

INDICE

1. Interbloqueo (Tanenbaum,6.4–6.7)

Detección y recuperación de un interbloqueo Cómo evitar interbloqueos Cómo prevenir interbloqueos Otras Cuestiones

Bloqueo de Dos Fases Interbloqueo de Comunicaciones Bloqueo Activo Inanicion

 Otras Cuestiones  Bloqueo de Dos Fases  Interbloqueo de Comunicaciones  Bloqueo Activo 

INTRODUCCIÓN A INTERBLOQUEOS

Deteccion y recuperación de un interbloqueo Realizar el grafico para estos datos

1. El proceso A contiene a R y quiere a S.

2. El proceso B no contiene ningún recurso pero quiere a T.

3. El proceso C no contiene ningún recurso pero quiere a S.

4. El proceso D contiene a U y quiere a S y a T.

5. El proceso E contiene a T y quiere a V.

6. El proceso F contiene a W y quiere a S.

7. El proceso G contiene a V y quiere a U.

proceso E contiene a T y quiere a V. 6. El proceso F contiene a W

INTRODUCCIÓN A INTERBLOQUEOS

INTRODUCCIÓN A INTERBLOQUEOS

INTRODUCCIÓN A

INTERBLOQUEOS

Detección con 1 Recurso de cada tipo El algoritmo opera al llevar a cabo los siguientes pasos:

1. Para cada nodo N en el gráfico, realizar los siguientes cinco pasos con N como el nodo inicial.

2. Inicializar L con la lista vacía y designar todos los arcos como desmarcados.

3. Agregar el nodo actual al final de L y comprobar si el nodo ahora aparece dos veces en L. Si lo hace, el gráfico contiene un ciclo (listado en L) y el algoritmo

comprobar si el nodo ahora aparece dos veces en L. Si lo hace, el gráfico contiene

INTRODUCCIÓN A

INTERBLOQUEOS

El algoritmo opera al llevar a cabo los siguientes pasos:

4. Del nodo dado, ver si hay arcos salientes desmarcados. De ser

así, ir al paso 5; en caso contrario, ir al paso 6.

5. Elegir un arco saliente desmarcado al azar y marcarlo. Después

seguirlo hasta el nuevo nodo actual e ir al paso 3.

6. Si este nodo es el inicial, el gráfico no contiene ciclos y el

algoritmo termina. En caso contrario, ahora hemos llegado a un punto muerto. Eliminarlo y regresar al nodo anterior; es decir, el

que estaba justo antes de éste, hacerlo el nodo actual e ir al paso

3

y regresar al nodo anterior; es decir, el que estaba justo antes de éste, hacerlo el

INTRODUCCIÓN A INTERBLOQUEOS

Ejemplo 1: Empezamos en R, L arranca vacío. Aplicamos el algoritmo y obtenemos L={R,A,S} S no tiene arcos salientes, por lo que es un punto muerto y volvemos hasta R, la raíz.

Ejemplo 2: Empezamos en B, L arranca vacío. Aplicamos el algoritmo y obtenemos L= [B, T, E, V, G , U , D, T], en donde descubrimos el ciclo y detenemos el algoritmo.

Aplicamos el algoritmo y obtenemos L= [B, T, E, V, G , U , D, T],

INTRODUCCIÓN A

INTERBLOQUEOS

Detección con varios Recursos de cada tipo

 INTRODUCCIÓN A INTERBLOQUEOS Detección con varios Recursos de cada tipo
 INTRODUCCIÓN A INTERBLOQUEOS Detección con varios Recursos de cada tipo

INTRODUCCIÓN A

INTERBLOQUEOS

Detección con varios Recursos de cada tipo El algoritmo de detección de interbloqueos se muestra a continuación.

1. Buscar un proceso desmarcado, Pi, para el que la i-

ésima fila de R sea menor o igual que A.

2. Si se encuentra dicho proceso, agregar la i-ésima fila de

C a A, marcar el proceso y regresar al paso 1.

3. Si no existe dicho proceso, el algoritmo termina.

Cuando el algoritmo termina, todos los procesos

y regresar al paso 1. 3. Si no existe dicho proceso, el algoritmo termina. Cuando el

INTRODUCCIÓN A INTERBLOQUEOS

INTRODUCCIÓN A INTERBLOQUEOS

INTRODUCCIÓN A

INTERBLOQUEOS

Detección con varios Recursos de cada tipo Ejemplo 1: Tenemos 3 Procesos.

Proceso1 no se puede ejecutar ya que no hay CD-ROOM Proceso2 tampoco ya que no hay escáner Proceso3 se ejecuta y devuelve A=(2,2,2,0) Ejecutamos Proceso2 y devuelve A=(4,2,2,1) Ejecutamos Proceso1 Termina

se ejecuta y devuelve A=(2,2,2,0)  Ejecutamos Proceso2 y devuelve A=(4,2,2,1)  Ejecutamos Proceso1  Termina

INTRODUCCIÓN A

INTERBLOQUEOS

Ejemplo 2:

A P2 agregamos un pedido

De CD-ROOM

Ninguna de las peticiones se

puede satisfacer, por lo

que todo el sistema está

en interbloqueo

un pedido De CD-ROOM Ninguna de las peticiones se puede satisfacer, por lo que todo el

INTRODUCCIÓN A

INTERBLOQUEOS

Recuperación de un interbloqueo Recuperación por medio de apropiación. Es difícil o imposible recuperarse de esta manera Recuperación a través del retroceso. Procesos realicen puntos de comprobación en forma periódica. Recuperación a través de la eliminación de procesos. La forma más cruda y simple de romper un interbloqueo es eliminar uno o más procesos

la eliminación de procesos. La forma más cruda y simple de romper un interbloqueo es eliminar

INTRODUCCIÓN A INTERBLOQUEOS

CÓMO EVITAR INTERBLOQUEOS

¿Hay algún algoritmo que siempre pueda evitar un interbloqueo al realizar la elección correcta todo el tiempo? Trayectorias de los recursos Los principales algoritmos para evitar interbloqueos se basan en el concepto de los estados seguros Vamos a analizar este concepto.

algoritmos para evitar interbloqueos se basan en el concepto de los estados seguros  Vamos a

INTRODUCCIÓN A INTERBLOQUEOS

INTRODUCCIÓN A INTERBLOQUEOS
INTRODUCCIÓN A INTERBLOQUEOS

INTRODUCCIÓN A INTERBLOQUEOS

Tenemos 2 procesos A y B El eje horizontal representa el número de instrucciones ejecutadas por el proceso A. El eje vertical representa el número de instrucciones ejecutadas por el proceso B. Cuando A cruza con la línea I1 en la ruta de r a s, solicita la impresora y se le otorga. Cuando B llega al punto t, solicita el trazador.

I1 en la ruta de r a s, solicita la impresora y se le otorga. 

INTRODUCCIÓN A

INTERBLOQUEOS

Regiones Sombreadas La región con las líneas que se inclinan de abajo arriba representa cuando ambos procesos tienen la impresora. La regla de exclusión mutua hace imposible entrar a esta región. La región sombreada de la otra forma representa cuando ambos procesos tienen el trazador, y es igual de imposible. Región cuadriculada interbloqueo.

Para evitar el interbloqueo, B se debe suspender hasta que A haya solicitado y liberado el trazador.

 Para evitar el interbloqueo, B se debe suspender hasta que A haya solicitado y liberado

INTRODUCCIÓN A

INTERBLOQUEOS

Estados Seguros e Inseguros Un estado es seguro si hay cierto orden de programación en el que se puede ejecutar cada proceso hasta completarse, incluso aunque todos ellos solicitaran de manera repentina su número máximo de recursos de inmediato.

completarse, incluso aunque todos ellos solicitaran de manera repentina su número máximo de recursos de inmediato.

INTRODUCCIÓN A

INTERBLOQUEOS

Estados Seguros e Inseguros

INTRODUCCIÓN A INTERBLOQUEOS Estados Seguros e Inseguros  Vale la pena observar que un estado inseguro

Vale la pena observar que un estado inseguro no es un estado en interbloqueo. Diferencia entre un estado seguro y uno inseguro: desde un estado seguro, el sistema puede garantizar que todos los procesos terminarán; desde un estado inseguro, no se puede dar esa garantía

el sistema puede garantizar que todos los procesos terminarán; desde un estado inseguro, no se puede

INTRODUCCIÓN A

INTERBLOQUEOS

El algoritmo del banquero para un solo recurso. Lo que hace el algoritmo es comprobar si al otorgar la petición se produce un estado inseguro

si al otorgar la petición se produce un estado inseguro   Para ver si un

Para ver si un estado es seguro, el banquero comprueba si tiene los suficientes recursos para satisfacer a algún cliente

Para ver si un estado es seguro, el banquero comprueba si tiene los suficientes recursos para

INTRODUCCIÓN A

INTERBLOQUEOS

El algoritmo del banquero para varios recursos. Matriz C

Recursos Asignados Matriz R

Recursos Necesitan

C Recursos Asignados  Matriz R Recursos Necesitan   Recursos existentes (E)  Recursos poseídos

Recursos existentes (E) Recursos poseídos (P) Recursos disponibles (A)

INTRODUCCIÓN A

INTERBLOQUEOS

El algoritmo del banquero para varios recursos.

1. Buscar una fila R, cuyas necesidades de recursos no

satisfechas sean menores o iguales que A. Si no existe dicha fila, el sistema entrará en interbloqueo en un momento dado, debido a que ningún proceso se podrá ejecutar hasta completarse (suponiendo que los procesos mantienen todos los recursos hasta que terminan).

2. Suponer que el proceso seleccionado de la fila solicita todos

los recursos que necesita (lo que se garantiza que es posible) y termina. Marcar ese proceso como terminado y agregar todos sus recursos al vector A.

que se garantiza que es posible) y termina. Marcar ese proceso como terminado y agregar todos

INTRODUCCIÓN A

INTERBLOQUEOS

El algoritmo del banquero para varios recursos.

3. Repetir los pasos 1 y 2 hasta que todos los procesos se marquen como terminados (en cuyo caso el estado inicial era seguro) o hasta que no haya ningún proceso cuyas necesidades de recursos se puedan satisfacer (en cuyo caso hay un interbloqueo).

o hasta que no haya ningún proceso cuyas necesidades de recursos se puedan satisfacer (en cuyo

INTRODUCCIÓN A INTERBLOQUEOS

CÓMO PREVENIR INTERBLOQUEOS

Evitar los interbloqueos es algo en esencia imposible, debido a que se requiere información sobre las peticiones futuras, que no se conocen

Entonces????? ¿Cómo evitan los sistemas reales el interbloqueo? La respuesta es volver a las cuatro condiciones establecidas por Coffman y colaboradores. Si podemos asegurar que por lo menos una de estas condiciones nunca se cumpla, entonces los interbloqueos serán estructuralmente imposibles

que por lo menos una de estas condiciones nunca se cumpla, entonces los interbloqueos serán estructuralmente

INTRODUCCIÓN A INTERBLOQUEOS

Cómo atacar la condición de exclusión mutua Si ningún recurso se asignara de manera exclusiva a un solo proceso, nunca tendríamos interbloqueos.

Pero dos procesos escribiendo en la impresora al mismo tiempo seria un caos. Entonces?

Colocar la salida de la impresora en una cola de impresión, así los procesos pueden generar salida al mismo tiempo. En este modelo, el único proceso que realmente solicita la impresora física es el demonio de impresión. Como el demonio nunca solicita ningún otro recurso, podemos eliminar el interbloqueo para la impresora

de impresión. Como el demonio nunca solicita ningún otro recurso, podemos eliminar el interbloqueo para la

INTRODUCCIÓN A INTERBLOQUEOS

Cómo atacar la condición de contención y espera Si podemos evitar que los procesos que contienen recursos esperen por más recursos, podemos eliminar los interbloqueos

1. Una forma de lograr esta meta es requerir que todos los procesos soliciten todos sus recursos antes de empezar su ejecución. Si todo está disponible, al proceso se le asignará lo que necesite y podrá ejecutarse hasta completarse. Si uno o más recursos están ocupados, no se asignará nada

2

y el proceso sólo esperará. Problemas? Qué recursos, uso óptimo.

R

i

li

it

lib

ocupados, no se asignará nada 2 y el proceso sólo esperará. Problemas? Qué recursos, uso óptimo.

INTRODUCCIÓN A INTERBLOQUEOS

Cómo atacar la condición no apropiativa Virtualizar como en el caso de la impresora antes mencionada. Sin embargo, no todos los recursos se pueden virtualizar de esta manera. Por ejemplo, los registros en las bases de datos o las tablas dentro del sistema operativo se deben bloquear para poder utilizarse, y ahí es donde se encuentra el potencial para el interbloqueo

sistema operativo se deben bloquear para poder utilizarse, y ahí es donde se encuentra el potencial

INTRODUCCIÓN A INTERBLOQUEOS

Cómo atacar la condición de espera circular

1. Tener una regla que diga que un proceso tiene derecho sólo a un recurso en cualquier momento. Si necesita un segundo recurso, debe liberar el primero.

2. Los procesos pueden solicitar recursos cada vez que quieran, pero todas las peticiones se deben realizar en orden numérico.

Explicación si i<j o i>j

Con esta regla, el gráfico de asignación de recursos nunca puede tener ciclos

Explicación si i<j o i>j Con esta regla, el gráfico de asignación de recursos nunca puede

INTRODUCCIÓN A

INTERBLOQUEOS

Los diversos métodos para evitar el interbloqueo

 INTRODUCCIÓN A INTERBLOQUEOS Los diversos métodos para evitar el interbloqueo

INTRODUCCIÓN A

INTERBLOQUEOS

Bloqueo a dos Fases: En la primera fase, el proceso trata de bloquear todos los registros que necesita, uno a la vez. Si tiene éxito pasa a la segunda fase, realizando sus actualizaciones y liberando los bloqueos. No se realiza ningún trabajo real en la primera fase. Si durante la primera fase se necesita cierto registro que ya esté bloqueado, el proceso sólo libera todos sus bloqueos e inicia la primera fase desde el principio

registro que ya esté bloqueado, el proceso sólo libera todos sus bloqueos e inicia la primera

INTRODUCCIÓN A

INTERBLOQUEOS

Interbloqueo de Comunicación: A envía un mensaje de petición al proceso B, y después se bloquea hasta que B envía de vuelta un mensaje de respuesta. Suponga que el mensaje de petición se pierde. A se bloquea en espera de la respuesta. B se bloquea en espera de una petición para que haga algo. Para evitarlos se utilizan tiempos de espera.

B se bloquea en espera de una petición para que haga algo.  Para evitarlos se

INTRODUCCIÓN A

INTERBLOQUEOS

Bloqueo Activo: En ciertas situaciones se utiliza el sondeo (ocupado en espera). Esta estrategia se utiliza a menudo cuando se va a usar la exclusión mutua por un tiempo muy corto, y la sobrecarga de la suspensión es grande en comparación con realizar el trabajo Sin importar que proceso se ejecute primero El segundo no podrá progresar pero tampoco Se bloqueará. Usará todo su quantum de CPU Preguntando si ya puede usar el recurso.

no podrá progresar pero tampoco Se bloqueará. Usará todo su quantum de CPU Preguntando si ya

INTRODUCCIÓN A

INTERBLOQUEOS

Inanición: Se necesita cierta política para decidir acerca de quién obtiene qué recurso y cuándo. Esta política, aunque parece razonable, puede ocasionar que ciertos procesos nunca reciban atención, aun cuando no estén en interbloqueo.

parece razonable, puede ocasionar que ciertos procesos nunca reciban atención, aun cuando no estén en interbloqueo.

INTRODUCCIÓN A

INTERBLOQUEOS

Realizar los Gráficos, y marcar que procesos y recursos están en interbloqueo.

A. P3 quiere a R1, P1 contiene a R1, R3 y quiere a R2, P2 contiene a R2 y quiere a R3 B. P1 quiere R2, R3 y contiene a R1, P2 quiere a R3 y contiene a R2, P3 quiere a R1 y contiene a R3, P4 contiene a R3

R3 B. P1 quiere R2, R3 y contiene a R1, P2 quiere a R3 y contiene