Sistemas Operativos 2
Ing. José Mendoza
Cuando varios procesos que compiten
necesiten recursos el modo de operación es el
siguiente:
• Petición del recurso
• Utilización
• Liberación
Un recurso se puede solicitar con:
• Acceso compartido: se puede utilizar
concurrentemente por más de un proceso.
• Acceso exclusivo: acceso en cada instante a
un único proceso.
Algunos se pueden utilizar e cualquier modo
Si un proceso pide acceso compartido
mientras otro lo está usando en forma
exclusiva, entonces debe esperar.
Si se estaba usando en forma
compartida puede seguir.
Como los
procesos
pueden
bloquearse al
solicitar
recursos, no
deben pedirlos
hasta que lo
necesiten.
Una vez
asignados deben
liberarse tan
pronto como sea
posible, una vez
que la acción que
se quería realizar
con el recurso
haya finalizado
 Dos procesos forman un interbloqueo cuando
cada uno mantiene un recurso mientras que
espera el recurso mantenido por el otro.
type Sem is ...;
X : Sem := 1; Y : Sem := 1;
task A;
task body A is
begin
...
Wait(X);
Wait(Y);
...
end A;
task B;
task body B is
begin
...
Wait(Y);
Wait(X);
...
end B;
También conocida como embotellamiento.
 Dos procesos forman un interbloqueo activo si cada
uno se ejecuta, pero ninguno es capaz de avanzar.
type Indicador is (Arriba, Abajo);
Indicador1 : Indicador := Arriba;
task A;
task body A is
begin
...
while Indicador1 =
Arriba loop
null;
end loop;
...
end A;
task B;
task body B is
begin
...
while Indicador1 = Arriba
loop
null;
end loop;
...
end A;
Varios procesos están intentando
continuamente conseguir acceso
exclusivo al mismo recurso. Si la
política con que se asignan no es
justa, puede que un proceso no
acceda nunca al recurso.
 En informática, inanición (starvation en
inglés)
 Un ejemplo podría ser el de un proceso de baja
importancia que está esperando en memoria para
usar el procesador, pero debido a que hay otros
trabajos de mayor importancia éste está en espera.
 Durante un rato los trabajos que estaban usando el
procesador con anterioridad se retiraron, pero
llegaron otros trabajos también de mucha
importancia y el primer programa sigue esperando.
 Esto puede continuar indefinidamente y el proceso
nunca llega a ejecutarse.
Exclusión Mutua
• solo un proceso
puede usar un
recurso al
mismo tiempo.
No Desalojo
• un recurso solo
puede ser
liberado
voluntariamente
por un proceso.
Mantenimiento y
espera
• debe haber
procesos que
mantengan
recursos
mientras
esperan otros.
Espera Circular
• debe existir una
cadena circular
de procesos, de
forma que cada
proceso
mantenga
recursos que
solicita el
siguiente
proceso.
Métodos
para Tratar
el
Interbloqueo
Prevención
de
Interbloqueo
Evitar el
Interbloqueo
Detección y
recuperación
del
interbloqueo
Estrategias
Ignorar el
problema
Afrontar el
problema
Garantizar que
nunca se entre
en un estado
de
Interbloqueo
Permitir que el
sistema entre
en
Interbloqueo y
luego se
recupere
Algoritmo del
Avestruz
• Prevención
• Evitación
• Detección
• Recuperación
Condición Estrategia
Exclusión
Mutua
Poner todo en Spool
Retener y
Esperar
Solicitar inicialmente todos los
recursos
No
expropiación
Quitar los recursos
Espera
circular
Ordenar los recursos
numéricamente
 Es posible que un determinado proceso
quede en esperando indefinidamente por
el recurso deseado, mientras otros reciben
la atención del sistema.
 Esto puede surgir en sistemas gestionados
por prioridades ya que un proceso puede
quedarse sin el control del procesador
debido a que continuamente lleguen
nuevos procesos de prioridad más alta.
Prevención de la condición de exclusión mutua.
 Con un Spooling de la salida a la impresora, varios procesos podrían
generar generar la salida al mismo tiempo.
Prevención de la condición Detenerse y esperar.
 Podemos evitar que los los procesos que conservan recursos esperan
más exigiendo recursos podríamos eliminar el bloqueo, exigir a todos
los procesos que soliciten todos sus recursos antes de iniciar su
ejecución . Si todo esta disponible, el proceso tendrá todo lo que
necesite y podrá ejecutarse hasta terminar. Si están ocupados no podrá
signarse recurso alguno y el proceso tendrá que esperar.
Prevención de la condición de la no apropiación.
 Si un proceso tiene asignada la impresora y se encuentra a la mitad de
la impresión de su salida, el hecho de quitarle a la fuerza la impresora
puesto que no se dispone de un plotter es por lo menos difícil, si no es
que imposible.
Prevención de la condición de esperar circular.
 La espera circular se puede eliminar disponiendo de una regla que un
proceso sólo está autorizado a utilizar un recurso.
P
r
e
v
e
n
c
i
ó
n
d
e
D
e
a
d
l
o
c
k
Se numeran los dispositivos en función de acuerdo a
como son requeridos de mayor a menor:
1. Disco Duro maestro
2. Disco duro respaldo
3. Unidad de CD-ROM
4. Impresora
5. Escáner
6. Etc.
Los procesos deben solicitar los dispositivos de
acuerdo con su numeración, un proceso no podrá
solicitar un dispositivo con un menor numero al que
tiene asignado.
Suponiendo que el algoritmo de detección de
bloqueos tiene éxito y detecte el bloqueo. Se necesita
alguna forma de recuperar y lograr que sistema
continúe nuevamente.
Recuperación mediante la apropiación:
 En ciertos casos, podría ser posible tomar un recurso en
forma temporal de su poseedor y dárselo a otro proceso.
 La posibilidad de quitar un recurso a un proceso, hacer
que otro recurso lo utilice y después regresarlo si que el
proceso lo note depende en gran medida de la naturaleza
del recurso. La recuperación mediante esta vía es difícil o
imposible.
Recuperación mediante rollback
 La verificación de un proceso indica que su estado se escribe en
un archivo de modo que pueda volver a iniciar más tarde. El
punto de verificación contiene la imagen de la memoria, el
estado de recurso; es decir los recursos asignados en ese
momento al proceso. Los nuevo puntos de verificación deben
escribirse en nuevos archivos; así durante la ejecución del
proceso se acumula toda una serie de archivos con puntos de
verificación.
 Al detectar un bloqueo , un proceso que posee un recurso
necesario regresa hasta cierto instante en el tiempo anterior a la
adquisición de algún otro recurso, mediante la inicialización de
alguno de sus anteriores puntos de verificación.
 La forma más sencilla de romper un bloqueo es eliminar
uno o más procesos. Una posibilidad es eliminar un
proceso del ciclo .
 Otra alternativa es elegir un proceso que no este en el
ciclo, para poder liberar sus recursos se elige con
cuidado el proceso por eliminar, como aquel que posee
recursos necesarios para algún proceso del ciclo.
 Cuando sea posible, es mejor eliminar un proceso que
pueda volver a iniciar su ejecución sin efectos dañino.
 Un proceso que actualiza una base de datos no siempre
se puede volver a ejecutar por segunda vez con
seguridad. Si el proceso añade 1 a cierto registro en esta
base de datos, al ejecutarlo una vez, eliminarlo y volver
a ejecutarlo se sumara 2 al registro, lo cual es incorrecto.
Hacer una dramatización en el aula de
metodologías activas, basado en todo
el contenido de esta presentación.
 W. Stallings
• Sistemas Operativos
 A. Tanuenbaum
• Sistemas Operativos Modernos

Modulo 2 interbloqueos

  • 1.
  • 2.
    Cuando varios procesosque compiten necesiten recursos el modo de operación es el siguiente: • Petición del recurso • Utilización • Liberación
  • 3.
    Un recurso sepuede solicitar con: • Acceso compartido: se puede utilizar concurrentemente por más de un proceso. • Acceso exclusivo: acceso en cada instante a un único proceso. Algunos se pueden utilizar e cualquier modo
  • 4.
    Si un procesopide acceso compartido mientras otro lo está usando en forma exclusiva, entonces debe esperar. Si se estaba usando en forma compartida puede seguir.
  • 6.
    Como los procesos pueden bloquearse al solicitar recursos,no deben pedirlos hasta que lo necesiten. Una vez asignados deben liberarse tan pronto como sea posible, una vez que la acción que se quería realizar con el recurso haya finalizado
  • 7.
     Dos procesosforman un interbloqueo cuando cada uno mantiene un recurso mientras que espera el recurso mantenido por el otro. type Sem is ...; X : Sem := 1; Y : Sem := 1; task A; task body A is begin ... Wait(X); Wait(Y); ... end A; task B; task body B is begin ... Wait(Y); Wait(X); ... end B;
  • 8.
    También conocida comoembotellamiento.
  • 9.
     Dos procesosforman un interbloqueo activo si cada uno se ejecuta, pero ninguno es capaz de avanzar. type Indicador is (Arriba, Abajo); Indicador1 : Indicador := Arriba; task A; task body A is begin ... while Indicador1 = Arriba loop null; end loop; ... end A; task B; task body B is begin ... while Indicador1 = Arriba loop null; end loop; ... end A;
  • 10.
    Varios procesos estánintentando continuamente conseguir acceso exclusivo al mismo recurso. Si la política con que se asignan no es justa, puede que un proceso no acceda nunca al recurso.
  • 11.
     En informática,inanición (starvation en inglés)
  • 12.
     Un ejemplopodría ser el de un proceso de baja importancia que está esperando en memoria para usar el procesador, pero debido a que hay otros trabajos de mayor importancia éste está en espera.  Durante un rato los trabajos que estaban usando el procesador con anterioridad se retiraron, pero llegaron otros trabajos también de mucha importancia y el primer programa sigue esperando.  Esto puede continuar indefinidamente y el proceso nunca llega a ejecutarse.
  • 13.
    Exclusión Mutua • soloun proceso puede usar un recurso al mismo tiempo. No Desalojo • un recurso solo puede ser liberado voluntariamente por un proceso. Mantenimiento y espera • debe haber procesos que mantengan recursos mientras esperan otros. Espera Circular • debe existir una cadena circular de procesos, de forma que cada proceso mantenga recursos que solicita el siguiente proceso.
  • 14.
  • 15.
    Estrategias Ignorar el problema Afrontar el problema Garantizarque nunca se entre en un estado de Interbloqueo Permitir que el sistema entre en Interbloqueo y luego se recupere Algoritmo del Avestruz • Prevención • Evitación • Detección • Recuperación
  • 16.
    Condición Estrategia Exclusión Mutua Poner todoen Spool Retener y Esperar Solicitar inicialmente todos los recursos No expropiación Quitar los recursos Espera circular Ordenar los recursos numéricamente
  • 17.
     Es posibleque un determinado proceso quede en esperando indefinidamente por el recurso deseado, mientras otros reciben la atención del sistema.  Esto puede surgir en sistemas gestionados por prioridades ya que un proceso puede quedarse sin el control del procesador debido a que continuamente lleguen nuevos procesos de prioridad más alta.
  • 18.
    Prevención de lacondición de exclusión mutua.  Con un Spooling de la salida a la impresora, varios procesos podrían generar generar la salida al mismo tiempo. Prevención de la condición Detenerse y esperar.  Podemos evitar que los los procesos que conservan recursos esperan más exigiendo recursos podríamos eliminar el bloqueo, exigir a todos los procesos que soliciten todos sus recursos antes de iniciar su ejecución . Si todo esta disponible, el proceso tendrá todo lo que necesite y podrá ejecutarse hasta terminar. Si están ocupados no podrá signarse recurso alguno y el proceso tendrá que esperar. Prevención de la condición de la no apropiación.  Si un proceso tiene asignada la impresora y se encuentra a la mitad de la impresión de su salida, el hecho de quitarle a la fuerza la impresora puesto que no se dispone de un plotter es por lo menos difícil, si no es que imposible. Prevención de la condición de esperar circular.  La espera circular se puede eliminar disponiendo de una regla que un proceso sólo está autorizado a utilizar un recurso. P r e v e n c i ó n d e D e a d l o c k
  • 19.
    Se numeran losdispositivos en función de acuerdo a como son requeridos de mayor a menor: 1. Disco Duro maestro 2. Disco duro respaldo 3. Unidad de CD-ROM 4. Impresora 5. Escáner 6. Etc. Los procesos deben solicitar los dispositivos de acuerdo con su numeración, un proceso no podrá solicitar un dispositivo con un menor numero al que tiene asignado.
  • 20.
    Suponiendo que elalgoritmo de detección de bloqueos tiene éxito y detecte el bloqueo. Se necesita alguna forma de recuperar y lograr que sistema continúe nuevamente. Recuperación mediante la apropiación:  En ciertos casos, podría ser posible tomar un recurso en forma temporal de su poseedor y dárselo a otro proceso.  La posibilidad de quitar un recurso a un proceso, hacer que otro recurso lo utilice y después regresarlo si que el proceso lo note depende en gran medida de la naturaleza del recurso. La recuperación mediante esta vía es difícil o imposible.
  • 21.
    Recuperación mediante rollback La verificación de un proceso indica que su estado se escribe en un archivo de modo que pueda volver a iniciar más tarde. El punto de verificación contiene la imagen de la memoria, el estado de recurso; es decir los recursos asignados en ese momento al proceso. Los nuevo puntos de verificación deben escribirse en nuevos archivos; así durante la ejecución del proceso se acumula toda una serie de archivos con puntos de verificación.  Al detectar un bloqueo , un proceso que posee un recurso necesario regresa hasta cierto instante en el tiempo anterior a la adquisición de algún otro recurso, mediante la inicialización de alguno de sus anteriores puntos de verificación.
  • 22.
     La formamás sencilla de romper un bloqueo es eliminar uno o más procesos. Una posibilidad es eliminar un proceso del ciclo .  Otra alternativa es elegir un proceso que no este en el ciclo, para poder liberar sus recursos se elige con cuidado el proceso por eliminar, como aquel que posee recursos necesarios para algún proceso del ciclo.  Cuando sea posible, es mejor eliminar un proceso que pueda volver a iniciar su ejecución sin efectos dañino.  Un proceso que actualiza una base de datos no siempre se puede volver a ejecutar por segunda vez con seguridad. Si el proceso añade 1 a cierto registro en esta base de datos, al ejecutarlo una vez, eliminarlo y volver a ejecutarlo se sumara 2 al registro, lo cual es incorrecto.
  • 24.
    Hacer una dramatizaciónen el aula de metodologías activas, basado en todo el contenido de esta presentación.
  • 25.
     W. Stallings •Sistemas Operativos  A. Tanuenbaum • Sistemas Operativos Modernos