2. Cuando varios procesos que compiten
necesiten recursos el modo de operación es el
siguiente:
• Petición del recurso
• Utilización
• Liberación
3. 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
4. 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.
5.
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 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;
9. 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;
10. 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.
12. 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.
13. 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.
15. 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
16. 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
17. 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.
18. 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
19. 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.
20. 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.
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 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.
23.
24. Hacer una dramatización en 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