Interbloqueo e Inanición 1 Tarea #2 Interbloqueo e Inanición. 1

Anuncio
Interbloqueo e Inanición
Tarea #2
Interbloqueo e Inanición.
1. Enumere Ejemplos de Recursos Consumibles y Reutilizables.
Un recurso reutilizable es aquél que puede ser usado con seguridad por un
proceso y no se agota con el uso. Ejemplos de estos recursos tenemos: los
procesadores, canales de E/S, memoria principal y secundaria, dispositivos y
estructuras de datos tales como archivos, bases de datos y semáforos.
Un recurso consumible es aquél que puede ser creado (producido) y destruido
(consumido). Se pueden mencionar ejemplos de estos recursos: interrupciones,
señales, mensajes e información en buffers de E/S.
2. Cuáles son las tres condiciones que deben darse para que sea posible el
interbloqueo?
En la política del sistema operativo, deben darse tres condiciones para que pueda
producirse un interbloqueo.
•
Exclusión Mutua. Sólo un proceso puede usar un recurso a la vez.
•
Retención y Espera. Un proceso puede retener unos recursos asignados
mientras espera que se le asignen otros.
•
No apropiación. Ningún proceso puede ser forzado a abandonar un recurso
que retenga.
3. Cuáles son las cuatro condiciones que dan lugar al interbloqueo?
•
Exclusión Mutua. Sólo un proceso puede usar un recurso a la vez.
•
Retención y Espera. Un proceso puede retener unos recursos asignados
mientras espera que se le asignen otros.
•
No apropiación. Ningún proceso puede ser forzado a abandonar un recurso
que retenga.
•
Círculo vicioso de espera. Existe una cadena cerrada de procesos, cada
uno de los cuales retiene, al menos, un recurso que necesita el siguiente
proceso de la cadena.
1
Interbloqueo e Inanición
Las tres primeras condiciones son necesarias, pero no suficientes, para que exista
interbloqueo. La cuarta condición es, en realidad, una consecuencia potencial de
las tres primeras. Es decir, dado que se producen las tres primeras condiciones,
puede ocurrir una secuencia de eventos que desemboque en un círculo vicioso de
espera irresoluble.
4. Cómo se puede prevenir la condición de retener y esperar?
La condición de retención y espera puede prevenirse exigiendo que todos los
procesos soliciten todos los recursos que necesitan a un mismo tiempo y
bloqueado el proceso hasta que todos los recursos puedan concederse
simultáneamente. Esta solución resulta ineficiente por dos factores. En primer
lugar, un proceso puede estar suspendido durante mucho tiempo, esperando que
se concedan todas sus solicitudes de recursos, cuando de hecho podría haber
avanzado con sólo algunos de los recursos. En segundo lugar, los recursos
asignados a un proceso pueden permanecer sin usarse durante periodos
considerables, tiempo durante el cual se priva del acceso a otros procesos.
5. Enumere dos formas en las que se puede prevenir la condición de no
apropiación?
•
Si un proceso que retiene ciertos recursos se le deniega una nueva
solicitud, dicho proceso deberá liberar sus recursos anteriores y solicitarlos
de nuevo, cuando sea necesario, junto con el recurso adicional.
•
Si un proceso solicita un recurso que actualmente está retenido por otro
proceso, el sistema operativo puede expulsar al segundo proceso y exigirle
que libere sus recursos.
6. Como se puede prevenir la condición de circulo vicioso de espera?
Esto se puede prevenir definiendo una ordenación lineal de los tipos de recursos.
Si a un proceso se le han asignado recursos de tipo R, entonces sólo podrá
realizar peticiones posteriores sobre los recursos de los tipos siguientes a R en la
ordenación.
2
Interbloqueo e Inanición
7. Cuál es la diferencia entre predicción, detención y prevención del
interbloqueo?
En la prevención del interbloqueo se obligaba a las solicitudes de recursos a
impedir que sucediera, por lo menos, alguna de las cuatro condiciones de
interbloqueo. Esto se hace directamente impidiendo la aparición de una de las tres
condiciones necesarias o directamente, impidiendo la aparición de un circulo
vicioso de espera.
Por otro lado, la predicción del interbloqueo, se puede alcanzar las tres
condiciones necesarias, pero se realizan elecciones acertadas para asegurar que
nunca se llega al punto de interbloqueo. La predicción, por lo tanto, permite más
concurrencia que la prevención.
Las estrategias de prevención del interbloqueo son muy conservadoras;
solucionan el problema del interbloqueo limitando el acceso a los recursos e
imponiendo restricciones a los procesos. En el lado opuesto, las estrategias de
detección del interbloqueo no limitan el acceso a los recursos ni restringen las
acciones de los procesos.
Problemas.
1. Se afirma que el interbloqueo no puede darse en la situación representada
en la figura 6.3 (libro de Stallings). Justifique esta afirmación.
En dicha figura no existe el interbloqueo por la sencilla razón que ambos procesos
no están haciendo uso de un mismo recurso, o mejor dicho no hacen petición de
un mismo recurso. Los procesos se ejecutan de tal forma que los recursos a
utilizar están siendo bien controlados por el SO.
2. Considérese la siguiente instantánea de un sistema. No hay solicitudes
pendientes en la cola.
3
Interbloqueo e Inanición
Procesos
p1
p2
p3
p4
p5
Asignación Actual
R1
r2
0
2
0
2
0
Disponibles
r1
R2
2
r3
0
0
0
3
3
r3
1
r4
1
0
3
5
3
2
0
4
4
2
Demanda Máxima
r1
r2
0
2
6
4
0
r3
0
7
6
3
5
r4
1
5
5
5
5
2
0
6
6
2
Demanda Restante
r1
r2
0
2
2
2
0
r3
0
1
1
3
3
r4
1
0
3
5
3
r4
0
0
a. El Sistema según el esquema dado se encuentra en un estado seguro, ya que da la estabilidad de poder terminar
los procesos en ejecución.
b. El Sistema no se encuentra bloqueado, ya que la asignación actual no consume el total de la cantidad de cada
recurso existente.
c. Los procesos que pueden llegar a estar interbloqueados son: P2, P3, P4; ya que hacen petición de la totalidad de
los recursos disponibles.
d. Si a P3 le llegase una solicitud de (0, 1, 0, 0) no podría concederse inmediatamente, ya que incurrirá en un estado
de interbloqueo.
4
2
0
4
4
2
Interbloqueo e Inanición
3. Aplíquese el algoritmo de detección del interbloqueo a los siguientes
datos y muestre los resultados.
Disponible = ( 2 1 0 0 )
Solicitud =
Asignación =
2 0 0 1
1 0 1 0
2 1 0 0
0 0 1 0
2 0 0 1
0 1 2 0
Se marca P1 ya que es el que tiene menos asignaciones; se procede a trabajar
con P3 ya que sus asignaciones son menores que el vector de recursos
disponibles. La asignación quedaría de la siguiente forma W = ( 2 2 2 0 )
4. Evaluar la utilidad en la vida real del algoritmo del banquero.
Los clientes son los procesos, las unidades de crédito son los recursos del sistema
y el banquero es el S. O. El banquero sabe que no todos los clientes necesitaran
su crédito máximo otorgado en forma inmediata, por ello reserva menos unidades
(recursos) de las totales necesarias para dar servicio a los clientes.
En la vida real puede ser aplicado en los lugares de servicio para asegurar los
recursos existentes a todos los clientes o usuarios que hacen solicitud del mismo.
Es una forma de manejar organizadamente dichos recursos.
5. Considérese las siguientes formas de tratar el interbloqueo: (1) Algoritmo
del Banquero, (2) Detección del Interbloqueo y eliminación del hilo, liberando
todos sus recursos, (3) reserva de todos los recursos por anticipado, (4)
reinicio de hilo y liberación de todos sus recursos si un hilo necesita
5
Interbloqueo e Inanición
esperar, (5) ordenación de recursos y (6) detección del interbloqueo y
retroceso de la acciones del hilo.
a) Un criterio que se utiliza en la evaluación de las diferentes soluciones al
interbloqueo es cuál permite el mayor grado de concurrencia. En otras
palabras, ¿cual permite que progresen más hilos sin esperar a que no haya
interbloqueo? Ordene en un rango de 1 a 6 cada uno de los anteriores
modos de gestión de interbloqueo, donde 1 permite el mayor grado de
concurrencia. Comente su ordenación.
El orden propuesto para esto es el siguiente:
- Detección del Interbloqueo y eliminación del hilo, eliminando todos sus recursos.
- Detección del interbloqueo y retroceso de las acciones del hilo.
- Reinicio de hilo y liberación de todos los recursos si un hilo necesita esperar.
- Reserva de todos los recursos por anticipado.
- Ordenación de Recursos.
- Algoritmo del Banquero.
Este orden se da, ya que con las opciones descritas podemos trabajar con más
procesos concurrentes.
b) Otro criterio es la eficiencia; en otras palabras, cuál produce menor
sobrecarga de procesador? Ordene en un rango de 1 a 6, donde 1 es el más
eficiente suponiendo que el interbloqueo se produce con muy poca
frecuencia. Comente su ordenación. Cambiaria el orden si el interbloqueo se
produjera con frecuencia?
Para tener un mejor manejo del procesador se tendrá lo siguiente;
-
Algoritmo del Banquero.
-
Reserva de todos los recursos por anticipado.
-
Detección del interbloqueo y eliminación, del hilo, liberando todo sus
recursos.
-
Ordenación de recursos.
-
Reinicio de Hilo y liberación de todos sus recursos si un hilo necesita
esperar.
6
Interbloqueo e Inanición
-
Detección del interbloqueo y retroceso de las acciones del hilo.
De esta forma podemos hacer un mejor uso del procesador.
7
Descargar