Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Resumen 6

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 10

29/05/2021

SISTEMAS OPERATIVOS RESUMEN 6

CAPÍTULO 6-INTERBLOQUEOS

El interbloqueo es el bloqueo de un conjunto de procesos que o bine compiten por recur-


sos del sistemao se comunican entre sí. El bloqueo es permanente a menos que el sistema
operativo tome acciones correctivas como abortar uno o mas procesos o forzar que la
ejecución de uno o mas procesos retroceda.El interbloqueo puede involucrar a recursos
reutilizables o consumibles.Un recurso reutilizable es aquel que no destruye cuando se
usa como un canal de E/S o una región de memoria.Un recurso consumible es aquel que
se destruye cuando lo adquiere un proceso : algunos ejemplos son los mensajes y la in-
formación almacenada en buffers de E/S.

Hay tres estrategias generales para tratar con los interbloqueos : prevención,deteccion y
prediccion .La prevencion del interbloqueo garantiza que no se produzca el interbloqueo
asegurandose de que no se cumpla una de las condiciones necesarias para el interblo-
queo.La deteccion del interbloqueo es necesaria si el sistema operativo esta siempre dis-
puesto a conceder peticiones de recursos: periodicamente,el sistema operativo debe
comprobar si hay interbloqueo y tomar las acciones pertinentes para romperlo.La predic-
cion del interbloqueo implica el analisis de cada nueva petición de un recurso para deter-
minar si se puede conducir a un interbloqueo,concediendola solo si no es posible el inter-
bloqueo.

1
SISTEMAS OPERATIVOS RESUMEN 6

PROBLEMAS
1. Proporcione un ejemplo de un interbloqueo tomado de las políticas.

-Considerando una elección presidencial en la que tres o más candidatos están intentando la nominación
de algún partido. Una vez finalizadas todas las elecciones primarias, cuando los delegados lleguen a la
convención del partido, podría suceder que ningún candidato tenga mayoría y que ningún delegado esté
dispuesto a cambiar su voto. Este es un punto muerto. Cada candidato tiene algunos recursos (votos) pero
necesita más para hacer el trabajo. En países con múltiples partidos políticos en el parlamento, podría
suceder que cada partido apoye una versión diferente del presupuesto anual y que sea imposible reunir
una mayoría para aprobar el presupuesto. Esto también es un punto muerto.

2. Los estudiantes que trabajan en PCs individuales en un laboratorio de computadoras envían sus
archivos para que los imprima un servidor que coloca los archivos en una cola de impresión en su
disco duro. ¿Bajo qué condiciones puede ocurrir un interbloqueo, si el espacio en disco para la cola
de impresión está limitado? ¿Cómo puede evitarse el interbloqueo?

-El espacio en disco de la partición de spool es un recurso limitado. Cada bloque que entra de facto reclama
un recurso y cada nuevo que llega quiere más recursos. Si el espacio de spooling es, digamos, 10 MB y
llega la primera mitad de diez trabajos de 2 MB, el disco estará lleno y no se podrán almacenar más
bloques, por lo que tendremos un punto muerto. El interbloqueo se puede evitar permitiendo que un trabajo
comience a imprimirse antes de que esté completamente en cola y reservando el espacio así liberado para
el resto de ese trabajo. De esta manera, un trabajo se imprimirá realmente hasta su finalización, luego el
siguiente puede hacer lo mismo. Si los trabajos no pueden comenzar a imprimirse hasta que estén com-
pletamente en cola, es posible que se produzca un bloqueo.

3. En la figura 6-1 los recursos se devuelven en el orden inverso de su adquisición. ¿Sería igual de
conveniente devolverlos en el otro orden?

-Si. No hace ninguna diferencia.

4. Las cuatro condiciones (exclusión mutua, contención y espera, no apropiativo y espera circular)
son necesarias para que ocurra un interbloqueo de recursos. Proporcione un ejemplo para mostrar
que estas condiciones no son suficientes para que ocurra un interbloqueo de recursos. ¿Cuándo son
suficientes estas condiciones para que ocurra un interbloqueo de recursos?

-Supongamos que hay tres procesos, A, B y C, y dos tipos de recursos, R y S. Suponga además que hay
una instancia de R y dos instancias de S. Considere el siguiente escenario de ejecución: A peticiones R y
lo consigue; B peticiones S y obtiene; C peticiones S y lo obtiene (hay dos instancias de S); B peticiones
R y está bloqueado; A peticiones S y está bloqueado. En esta etapa se cumplen las cuatro condiciones. Sin
embargo, no existe un punto muerto. Cuándo C termina, una instancia de S se libera que se asigna a UNA.
Ahora A puede completar su ejecución y liberación R que se puede asignar a B, que luego puede completar
su ejecución. Estas 4 condiciones son suficientes si hay 1 recurso de cada tipo.

2
SISTEMAS OPERATIVOS RESUMEN 6

5. La figura 6-3 muestra el concepto de un gráfico de recursos. ¿Existen los gráficos ilegales? Es
decir,¿los que violan estructuralmente el modelo que hemos utilizado del uso de recursos? De ser
así, proporcione un ejemplo de uno.

-Sí, existen gráficos ilegales. Dijimos que un recurso solo puede estar en manos de un proceso único. Un
arco desde un cuadrado de recursos a un círculo de proceso indica que el proceso es propietario del recurso.
Por lo tanto, un cuadrado con arcos que van desde él a dos o más procesos significa que todos esos proce-
sos contienen el recurso, lo que viola las reglas. En consecuencia, cualquier gráfico en el que varios arcos
salen de un cuadrado y terminan en diferentes círculos viola las reglas a menos que haya múltiples copias
de los recursos. Los arcos de cuadrados a cuadrados o de círculos a círculos también violan las reglas.

6. Suponga que hay un interbloqueo de recursos en un sistema. Proporcione un ejemplo para mos-
trar que el conjunto de procesos en interbloqueo puede incluir a los procesos que no están en la
cadena circular en la ruta de asignación de recursos correspondiente.

-Considere tres procesos, A, B y C y dos recursos R y S. Suponer A es esperando I que es sostenido por
B, B Esta esperando por S atrapado por A, y C Esta esperando por R atrapado por UNA. Los tres procesos,
A, B y C están estancados. Sin embargo, solo A y B pertenecen a la cadena circular.

7. El análisis del algoritmo de la avestruz menciona la posibilidad de que se llenen las entradas en
la tabla de procesos u otras tablas del sistema. ¿Puede sugerir una forma de permitir que un admi-
nistrador del sistema se recupere de dicha situación?

-Una parte de todos estos recursos podría reservarse para ser utilizada solo por procesos. propiedad del
administrador, por lo que siempre podría ejecutar un shell y los programas necesarios para evaluar un
punto muerto y tomar decisiones sobre qué procesos eliminar para que el sistema pueda volver a utilizarse.

8. Explique cómo se puede recuperar el sistema del interbloqueo en el problema anterior, usando a)
Recuperación por medio apropiativo; b) Recuperación por medio del retroceso; y c) Recuperación
por medio de la eliminación de procesos.

-Recuperación mediante preferencia: después de los procesos P2 y P3 completar, procesar P1 puede ser
forzado a apropiarse de 1 unidad de RS3. Esto hará que A = (0 2 1 3 2), y permitirá el proceso P4 com-
pletar. Una vez P4 completa y libera sus recursos P1 puede completar. Recuperación mediante reversión:
reversión P1 al control estatal antes de que adquiriera RS3. Recuperación mediante procesos de matanza:
matar P1.

9. Suponga que en la figura 6-6 Cij + Rij > Ej para cierto valor de i. ¿Qué implicaciones tiene esto
para el sistema?

-El proceso está pidiendo más recursos de los que tiene el sistema. No hay manera imaginable en la que
puede obtener estos recursos, por lo que nunca puede terminar, incluso si ningún otro proceso desea nin-
gún recurso en absoluto.

3
SISTEMAS OPERATIVOS RESUMEN 6

10. ¿Cuál es la diferencia clave entre el modelo que se muestra en la figura 6-8, y los estados seguro
e inseguro descritos en la sección 6.5.2? ¿Cuál es la consecuencia de esta diferencia?

-El modelo que se muestra en la Figura 6-8 requiere conocimiento de cuándo un proceso arrienda sus
recursos. Por otro lado, decidir si un estado es seguro o inseguro no requiere este conocimiento. Una
consecuencia de esto es que el modelo de la Figura 6-8 se puede utilizar para identificar las cajas como la
delimitada por I 1, I 2, I 5, y I 6 que garantizan que el sistema eventualmente se interbloqueará, un estado
inseguro significa que no hay garantía de que se produzca un interbloqueo no ocurrió.

11. ¿Se puede utilizar también el esquema de trayectorias de recursos de la figura 6-8 para ilustrar
el problema de los interbloqueos con tres procesos y tres recursos? De ser así, ¿cómo se puede hacer
esto? En caso contrario, ¿por qué no?

-Si. Hace todo en tres dimensiones. La z- El eje mide el número número de instrucciones ejecutadas por
el tercer proceso.

12. En teoría, los gráficos de trayectorias de recursos se podrían utilizar para evitar interbloqueos.
Mediante la programación astuta, el sistema operativo podría evitar las regiones inseguras. Sugiera
un problema práctico en el que se haga esto.

-El método solo se puede utilizar para guiar la programación si el instante exacto en qué recurso se va a
reclamar se conoce de antemano. En la práctica, esto rara vez es el caso.

13. ¿Puede un sistema encontrarse en un estado en el que no esté en interbloqueo ni sea seguro? De
ser así, proporcione un ejemplo. En caso contrario, demuestre que todos los estados están en inter-
bloqueo o son seguros.

-Hay estados que no son seguros ni estancados, pero que conducen a estados bloqueados. Como ejemplo,
supongamos que tenemos cuatro recursos: cintas,trazadores, escáneres y CD-ROM, como en el texto, y
tres procesos compitiendo por ellos. Podríamos tener la siguiente situación:

Posee Necesidades Disponible


A: 2 0 0 0 1020 0121
B: 1 0 0 0 0131
C: 0 1 2 1 1010

Este estado no está bloqueado porque aún pueden ocurrir muchas acciones, por ejemplo, A Todavía
puedo conseguir dos impresoras. Sin embargo, si cada proceso solicita sus requisitos restantes, tenemos
un punto muerto.

14. Considere un sistema que utilice el algoritmo del banquero para evitar los interbloqueos. En
cierto momento, un proceso P solicita un recurso R, pero esta petición se rechaza aun cuando R está
disponible en ese momento. ¿Significa que si el sistema asignara R a P, entraría en un interbloqueo?

4
SISTEMAS OPERATIVOS RESUMEN 6

-No. Se deniega un recurso disponible a un proceso de solicitud en un sistema que usa el algoritmo del
banquero, si existe la posibilidad de que el sistema se bloquee al conceder esa solicitud. Ciertamente, es
posible que el sistema no se haya bloqueado si se concedió esa solicitud.

15. Una limitación clave del algoritmo del banquero es que requiere un conocimiento de las necesi-
dades máximas de recursos de todos los procesos. ¿Es posible diseñar un algoritmo para evitar in-
terbloqueos que no requiera esta información? Explique su respuesta.

-Aparte de forzar una ejecución secuencial de procesos, no es posible Evite los puntos muertos si la infor-
mación sobre las necesidades máximas de recursos de todos los procesos no está disponible de antemano.
Considere el ejemplo de dos procesos que desean grabar un documento escaneado en un CD-ROM.
Cuando proceso B solicita la grabadora de CD-ROM, es imposible determinar si la concesión de esta
solicitud conducirá a un estado inseguro, porque no se sabe si A necesitará la grabadora de CD-ROM más
tarde y B necesitará el escáner más tarde.

16. Analice con cuidado la figura 6-11(b). Si D pide una unidad más, ¿conduce esto a un estado
seguro o a uno inseguro? ¿Qué pasa si la petición proviene de C en vez de D?

-Una solicitud de D es inseguro, pero uno de C es seguro.

17. Un sistema tiene dos procesos y tres recursos idénticos. Cada proceso necesita un máximo de dos
recursos. ¿Es posible el interbloqueo? Explique su respuesta.

-El sistema está libre de interbloqueo. Suponga que cada proceso tiene un recurso. Hay un recurso gratuito.
Cualquiera de los dos procesos puede solicitarlo y obtenerlo, en cuyo caso puede finalizar y liberar ambos
recursos. En consecuencia, el interbloqueo es imposible.

18. Considere el problema anterior otra vez, pero ahora con p procesos, en donde cada uno necesita
un máximo de m recursos y un total de r recursos disponibles. ¿Qué condición se debe aplicar para
que el sistema esté libre de interbloqueos?

-Si un proceso tiene metro recursos que puede terminar y no puede estar involucrado en un cerrar con
llave. Por lo tanto, el peor de los casos es cuando todos los procesos tienen metro -1 recursos y necesita
otro. Si queda un recurso, un proceso puede terminar y liberar todos sus recursos, dejando que el resto
también termine. Por lo tanto, la condición para evitar el estancamiento es r ≥ pm - 1) + 1.

19. Suponga que el proceso A en la figura 6-12 solicita la última unidad de cinta. ¿Conduce esta
acción a un interbloqueo?

-No. D todavía puede terminar. Cuando termina, devuelve suficientes recursos para permitir E ( o A) para
terminar, etc.

20. Una computadora tiene seis unidades de cinta, y n procesos compiten por ellas. Cada proceso
puede necesitar dos unidades. ¿Para qué valores de n está el sistema libre de interbloqueos?

5
SISTEMAS OPERATIVOS RESUMEN 6

-Con tres procesos, cada uno puede tener dos unidades. Con cuatro procesos, la distribución de unidades
será (2, 2, 1, 1), lo que permitirá que finalicen los dos primeros procesos. Con cinco procesos, la distribu-
ción será (2, 1, 1, 1, 1), lo que aún permite que termine el primero. Con seis, cada uno con una unidad de
cinta y queriendo otra, tenemos un punto muerto. Por lo tanto, para n < 6 el sistema está libre de interblo-
queo.

21. El algoritmo del banquero se está ejecutando en un sistema con m clases de recursos y n procesos.
En el límite de valores grandes para m y n, el número de operaciones que se deben realizar para
comprobar que un estado sea seguro es proporcional a ma nb. ¿Cuáles son los valores de a y b?

-Comparar una fila de la matriz con el vector de recursos disponibles requiere metro operaciones. Este
paso debe repetirse en el orden de norte veces para encontrar un proceso que pueda finalizar y marcarse
como hecho. Por lo tanto, marcar un proceso como hecho asume el orden de Minnesota pasos. Repitiendo
el algoritmo para todos norte procesos significa que el número de pasos es entonces Minnesota 2. Por lo
tanto a = 1 y b = 2.

22. Un sistema tiene cuatro procesos y cinco recursos asignables. La asignación actual y las necesi-
dades máximas son las siguientes:
Asignado Máximo Disponible
Proceso A 10211 11213 00x11
Proceso B 20110 22210
Proceso C 11010 21310
Proceso D 11110 11221
¿Cuál es el valor menor de x para el que éste es un estado seguro?

-La matriz de necesidades es la siguiente:


01002
02100
10300
00111
Si X es 0, tenemos un punto muerto inmediatamente. Si X es 1, proceso D puede ejecutarse hasta su
finalización. Cuando se termina, el vector disponible es 1 1 2 2 1. Desafortunadamente, ahora estamos en
un punto muerto. Si X es 2, después D se ejecuta, el vector disponible es 1 1 3 2 1 y C poder correr.
Después de que termine y devuelva sus recursos, el vector disponible es 2 2 3 3 1, lo que permitirá B para
ejecutar y completar, y luego A para ejecutar y completar. Por lo tanto, el valor más pequeño de X que
evita un punto muerto es 2.

23. Una manera de eliminar la espera circular es tener una regla que determine que un proceso
tiene derecho sólo a un recurso en un momento dado. Proporcione un ejemplo para mostrar que
esta restricción es inaceptable en muchos casos.

-Considere un proceso que necesita copiar un archivo enorme de una cinta a una impresora. Puede ser
debido a que la cantidad de memoria es limitada y el archivo completo no puede caber en esta memoria,
el proceso tendrá que recorrer las siguientes instrucciones hasta que se haya impreso todo el archivo:

6
SISTEMAS OPERATIVOS RESUMEN 6

 Adquirir unidad de cinta


 Copie la siguiente parte del archivo en la memoria (tamaño de memoria limitado)
 Libere la unidad de cinta
 Adquirir impresora
 Imprimir archivo desde la memoria
 Liberar impresora
Esto alargará el tiempo de ejecución del proceso. Además, dado que la impresora se
libera después de cada paso de impresión, no hay garantía de que todas las partes del
archivo se impriman en páginas continuas.

24. Dos procesos A y B necesitan cada uno tres registros (1, 2 y 3) en una base de datos. Si A los pide
en el orden 1, 2, 3 y B los pide en el mismo orden, no es posible un interbloqueo. No obstante, si B
los pide en el orden 3, 2, 1, entonces es posible el interbloqueo. Con tres recursos, hay tres o seis
posibles combinaciones en las que cada proceso puede solicitar los recursos. ¿Qué fracción de todas
las combinaciones se garantiza que esté libre de interbloqueo?

-Supongamos que el proceso A solicita los registros en el pedido a B C. Si proceso B también pide a
primero, uno de ellos lo obtendrá y el otro bloqueará. Esta situación siempre está libre de puntos muertos,
ya que el ganador puede correr hasta el final sin interferencias. De las otras cuatro combinaciones, algunas
pueden conducir a un punto muerto y otras están libres de puntos muertos. Los seis casos son los siguien-
tes:
ABC punto muerto libre
ACB punto muerto libre
BAC posible punto muerto
BCA posible punto muerto
CAB posible punto muerto
CBA posible punto muerto

Dado que cuatro de los seis pueden llevar a un punto muerto, hay una probabilidad de 1/3 de evitar un
punto muerto y una probabilidad de 2/3 de conseguir uno.

25. Un sistema distribuido que utiliza buzones de correo tiene dos primitivas IPC, send y receive.
La última primitiva especifica un proceso del que va a recibir mensajes, y se bloquea si no hay un
mensaje disponible de ese proceso, aun cuando pueda haber mensajes en espera de otros procesos.
No hay recursos compartidos, pero los procesos se necesitan comunicar con frecuencia sobre otras
cuestiones. ¿Es posible el interbloqueo? Explique.

- Si. Supongamos que todos los buzones de correo están vacíos. Ahora A envía a B y espera para una
respuesta, B envía a C y espera una respuesta, y C envía a A y espera una respuesta. Ahora se cumplen
todas las condiciones para un bloqueo de las comunicaciones.

26. En un sistema electrónico de transferencia de fondos hay cientos de procesos idénticos que fun-
cionan de la siguiente manera. Cada proceso lee una línea de entrada que especifica un monto de
dinero, la cuenta a la que se va a acreditar ese monto y la cuenta de la que se va a restar. Después
bloquea ambas cuentas y transfiere el dinero, liberando los bloqueos cuando ter mine. Con muchos
procesos ejecutándose en paralelo, hay un peligro muy real de que la cuenta x bloqueada no pueda

7
SISTEMAS OPERATIVOS RESUMEN 6

bloquear a y, debido a que y ha sido bloqueada por un proceso que ahora espera por x. Idee un
esquema que evite los interbloqueos. No libere un registro de una cuenta sino hasta que haya com-
pletado las transacciones (en otras palabras, no se permiten las soluciones que bloquean una cuenta
y después la liberan de inmediato si la otra está bloqueada).

- Para evitar esperas circulares, numere los recursos (las cuentas) con su cuenta números. Después de leer
una línea de entrada, un proceso bloquea primero la cuenta con el número más bajo, luego, cuando obtiene
el bloqueo (lo que puede implicar una espera), bloquea la otra. Dado que ningún proceso espera una cuenta
inferior a la que ya tiene, nunca hay una espera circular, por lo tanto, nunca hay un punto muerto.

27. Una manera de evitar los interbloqueos es eliminando la condición de contención y espera. En
el texto se propuso que antes de pedir un nuevo recurso, un proceso debe liberar primero los recur-
sos que contenga (suponiendo que sea posible). Sin embargo, esto introduce el peligro de que podría
obtener el nuevo recurso pero perder algunos de los existentes con los procesos competidores. Pro-
ponga una mejora a este esquema.

- Cambie la semántica de solicitar un nuevo recurso de la siguiente manera. Si un proceso solicita un nuevo
recurso y está disponible, obtiene el recurso y conserva lo que ya tiene. Si el nuevo recurso no está dispo-
nible, se liberan todos los recursos existentes. Con este escenario, el punto muerto es imposible y no hay
peligro de que se adquiera el nuevo recurso pero se pierdan los existentes. Por supuesto, el proceso solo
funciona si es posible liberar un recurso (puede liberar un escáner entre páginas o una grabadora de CD
entre CD).

28. Un estudiante de ciencias computacionales asignado para trabajar en los interbloqueos piensa
en la siguiente forma brillante de eliminar interbloqueos. Cuando un proceso solicita un recurso,
especifica un límite de tiempo. Si el proceso se bloquea debido a que el recurso no está disponible,
se inicia un temporizador. Si se excede el límite de tiempo, el proceso se libera y se le permite ejecu-
tarse de nuevo. Si usted fuera el profesor, ¿qué calificación le daría a esta proposición y por qué?

- Le daría una calificación F (reprobatoria). ¿Qué hace el proceso? Ya que claramente necesita el recurso,
simplemente vuelve a preguntar y bloquea de nuevo. Esto no es mejor que permanecer bloqueado. De
hecho, puede ser peor ya que el sistema puede realizar un seguimiento de cuánto tiempo han estado espe-
rando los procesos de la competencia y asignar un recurso recién liberado al proceso que ha estado espe-
rando por más tiempo. Al agotarse el tiempo periódicamente y volver a intentarlo, un proceso pierde su
antigüedad.

29. Explique las diferencias entre interbloqueo, bloqueo activo e inanición.

- Un interbloqueo ocurre cuando un conjunto de procesos se bloquea esperando un evento. que solo algún
otro proceso en el conjunto puede causar. Por otro lado, los procesos en un livelock no están bloqueados.
En su lugar, continúan ejecutando la verificación para que una condición se vuelva verdadera y que nunca
se cumplirá. Por lo tanto, además de los recursos que tienen, los procesos en livelock continúan consu-
miendo un valioso tiempo de CPU. Finalmente, la inanición de un proceso se produce debido a la presencia
de otros procesos, así como a un flujo de nuevos procesos entrantes que terminan con una prioridad más
alta que el proceso que se está privando de ella. A diferencia del interbloqueo o el bloqueo activo, la

8
SISTEMAS OPERATIVOS RESUMEN 6

inanición puede terminar por sí sola, por ejemplo, cuando los procesos existentes con mayor prioridad
terminan y no llegan nuevos procesos con mayor prioridad.

30. Cenicienta y el Príncipe se están divorciando. Para dividir su propiedad, han acordado el si-
guiente algoritmo. Cada mañana, cada uno puede enviar una carta al abogado del otro, solicitando
un artículo de su propiedad. Como se requiere un día para entregar las cartas, han acordado que si
ambos descubren que han solicitado el mismo artículo el mismo día, el siguiente día enviarán una
carta para cancelar la petición. Entre sus pertenencias está su perro Woofer, la casa de Woofer, su
canario Tweeter y la jaula de Tweeter. Los animales adoran sus hogares, por lo que se ha acordado
que cualquier división de propiedad que separe a un animal de su casa es inválida, y toda la división
tendrá que empezar desde cero. Tanto Cenicienta como el Príncipe quieren desesperadamente a
Woofer. Para que puedan salir de vacaciones (separadas), cada esposo ha programado una compu-
tadora personal para manejar la negociación. Cuando regresan de vacaciones, las computadoras
están todavía negociando. ¿Por qué? ¿Es posible el interbloqueo? ¿Es posible la inanición? Expli-
que.

- Si ambos programas solicitan Woofer primero, las computadoras se morirán de hambre con el final.
menos secuencia: solicitar woofer, cancelar solicitud, solicitar woofer, cancelar solicitud, etc. Si uno de
ellos pregunta por la caseta del perro y el otro pregunta por el perro, tenemos un punto muerto, que es
detectado por ambas partes y luego roto, pero simplemente se repite en el siguiente ciclo. De cualquier
manera, si ambas computadoras han sido programadas para perseguir primero al perro o la caseta del
perro,sobreviene la inanición o el estancamiento. Realmente no hay mucha diferencia entre los dos aquí.
En la mayoría de los problemas de estancamiento, la inanición no parece grave porque la introducción de
retrasos aleatorios normalmente hará que sea muy poco probable. Ese enfoque no funciona aquí.

También podría gustarte