Вы находитесь на странице: 1из 21

CAPÍTULO 2

GESTIÓN DE PROCESOS

Docente: Ing. Fernanda Soto


Contenido

 Modelo del sistema


 Características de los interbloqueos
 Métodos para tratar los interbloqueos
OBJETIVOS

 Describir los interbloqueos que impiden que un conjunto de procesos


concurrentes completen su tarea

 Presentar una serie de métodos para prevenir o evitar los interbloqueos en


un sistema informático
Modelo del Sistema
 El sistema tiene un número de recursos finito.
 Tiene diferentes tipos de recursos como son: espacio de memoria, ciclos de
CPU, discos duros, impresoras , etc. R1, R2, R3,....Rn.
 Cada tipo de recursos Ri tiene Wi instancias.
 Un proceso puede usar un recurso solo en la siguiente secuencia.
 Solicitud. Si la solicitud no puede ser atendida, entonces el proceso
debe esperar.
 Uso. El proceso debe operar sobre el recurso.
 Liberación. El proceso debe liberar el recurso.
Modelo del Sistema
 La solicitud y la liberación son llamadas al sistema.
 Request y release device
 Open y close file
 Allocate y free memory

 Una tabla del sistema registra si cada recurso está libre o ha sido
asignado y para cada recurso asignado, a qué proceso.

 Un conjunto de procesos se encuentra en un interbloqueo cuando


cada proceso del conjunto esta esperando por un evento que sólo
puede ser provocado por otro procesos del mismo conjunto.
Características
 Una situación de interbloqueo surge si se presentan simultáneamente las
siguientes cuatro condiciones:
 Exclusión mutua: Sólo un proceso a la vez puede retener un recurso. Si
otro proceso solicita el recurso, debe esperar hasta que el recurso se haya
liberado.
 Retención y espera: Debe existir un proceso que por lo menos este
reteniendo un recurso y esta esperando adquirir recursos adicionales que
en ese momento están siendo retenidos por otro proceso.
 No apropiación: Un recurso solo puede ser liberado voluntariamente
por el proceso que lo está reteniendo.
 Espera Circular: debe existir un conjunto de procesos {P0, P1,
P2,....,Pn} de procesos que esperan, tal que P0 esté esperando un recurso
que está retenido por P1, P1 espera por un recurso retenido por P2,... y
Pn-1 espera por un recurso retenido por Pn y Pn espera por un recurso
retenido por P0.
Gráfica de asignación de recursos

 Se tiene un conjunto de vértices V y un conjunto de aristas E.

 El conjunto de vértices se divide en dos tipos de nodos:


 P={P1,P2, ... ,Pn} (procesos activos del sistema) y
 R={R1,R2, ... ,Rn} (tipos de recursos del sistema).

 Arista de Solicitud: P1 Rj
 Arista de Asignación: Rj Pi
Gráfica de asignación de recursos
 Proceso

 Tipo de recurso con 4 instancias.

 P1 solicita una instancia del recurso Ri Pi

 Una instancia de Ri esta asignada al Proceso P1 Pi


Ejemplo

 Si cada recurso solo tuviera una sola


instancia, la existencia de un ciclo en la
gráfica es un condición suficiente y necesaria
para afirmar que existe un interbloqueo.

 Si cada recurso tiene varias instancias


entonces un ciclo no implica necesariamente
que existe un interbloqueo. En este caso un
ciclo es una condición necesaria pero no
suficiente para la existencia de un
interbloqueo.
Ejemplo

• En esta gráfica existe un ciclo, y el


P3 esta solicitando un instancia del
recurso R2 y ya no están disponibles
mas instancias en ese momento.

• Existe interbloqueo?

• La respuesta es no, ya que P4 puede


liberar una instancia del recurso R2 y
ser asignado a P3, con lo cual se
rompería el ciclo.
Métodos para manejar los
interbloqueos
 Podemos utilizar un protocolo para que el sistema nunca entre en
un interbloqueo.
 Para asegurar que un sistema nunca entre en un interbloqueo se
puede usar un esquema de prevención o evasión de
interbloqueos.
 Podemos hacer que el sistema entre en un estado de interbloqueo
y luego hacer una recuperación.
 Se debe realizar un esquema que pueda detectar que el sistema
se encuentra en un interbloqueo y luego recuperarlo.
 Podemos ignorar el problema y pretender que los bloqueos mutuos
nunca ocurren en el sistema.
Prevención de interbloqueos
 Si se asegura que no se cumplan las condiciones necesarias para
que exista un interbloqueo se puede prevenir la ocurrencia de
interbloqueos en el sistema
 Exclusión mutua: La condición de exclusión mutua debe
cumplirse en caso de que los recursos no puedan compartirse.
 Retención y espera: Se debe garantizar que un proceso no solicite
un recurso que esta retenido por otro proceso.
 Un protocolo que se puede usar requiere que cada proceso
solicite y se le asigne todos sus recursos antes de su ejecución.
 Otro protocolo consiste en que un proceso solicite un recurso
cuando no tenga ningún otro asignado.
Prevención de interbloqueos
 No apropiación: Para asegurar que no se cumpla esta condición se puede
utilizar el siguiente protocolo.
 Si un proceso esta reteniendo algunos recursos y solicita otro recurso no
se le puede asignar inmediatamente, entonces todos los recursos se
liberan implícitamente
 De manera alterna, si un proceso solicita algunos recursos, primero
verifica si están disponibles, si es así los asigna, en caso contrario,
verificamos si están asignados a un proceso que está esperando recursos
adicionales. De ser así nos apropiamos de los recursos del procesos que
esta en espera y los asignamos al procesos solicitante.
 Espera circular: Una forma de evitar que se cumpla esta condición es
imponer un ordenamiento total de todos los tipos de recursos y requerir que
cada procesos solicite recursos en orden creciente.
Evasión de interbloqueos
 Un método alterno para evitar los interbloqueos es requerir información
adicional sobre como se van a solicitar los recursos.
 Conociendo exactamente la secuencia de cada solicitud y liberación de cada
procesos, el sistema puede decir, para cada solicitud si el proceso debe
esperar o no, con el fin de evitar un interbloqueo en el futuro.
 Para cada solicitud el sistema debe tomar en cuenta:

 Los recursos actualmente libres,


 Los recursos actualmente asignados a cada proceso y
 Las solicitudes y liberaciones futuras de cada procesos.
Evasión de interbloqueos estado
seguro
 Un estado es seguro si el sistema puede asignar recursos a cada proceso en
determinado orden sin que se produzca un interbloqueo.
 Si para cada Pi, las solicitudes de recursos que Pi puede todavía hacer, pueden
ser satisfechas mediante los recursos actuales disponibles.

 Factores:
 Si el sistema esta en un estado seguro, entonces no hay interbloqueos.
 Si el sistema esta en un estado inseguro, entonces podría haber
interbloqueos.
 El sistema debe evitar que entre en un estado inseguro.
Gráfica de asignación de recursos

• Arista de Asignación
• Arista de Solicitud
• Arista de declaración
• Una Arista de declaración especifica
que el proceso puede solicitar el
recurso en el futuro. Lo cual
permitirá determinar si el sistema
puede entrar en un estado de
interbloqueo
Gráfica de asignación de recursos
Detección de interbloqueos

• Si el sistema no emplea algoritmos para la prevención o evasión de


interbloqueos, entonces el sistema debe proporcionar:

o Un algoritmo que examine el estado del sistema para determinar si se


ha producido un interbloqueo.

o Un algoritmo para recuperarse del interbloqueo.


Detección de interbloqueos
Determinar si hay interbloqueos
 Una sola instancia
Detección de interbloqueos
Determinar si hay interbloqueos
 Varias instancias
– Algoritmo del banquero
• Available: Vector con los recursos disponibles
• Allocation: número de recursos de cada tipo que están
asignados actualmente a cada proceso.
• Request: Solicitud actual efectuado por un proceso

Realiza un comparación de las solicitudes actuales de un proceso y los


recursos disponibles
Recuperación de interbloqueos
 Terminación de procesos
 Interrumpir todos los procesos interbloqueados.
 Interrumpir un proceso cada vez hasta que el ciclo de
interbloqueo se elimine.

 Apropiación de recursos
 Seleccionar un víctima
 Anulación
 Inanición

Вам также может понравиться