Sistemas Operativos José David Ortega Pacheco Instituto Politécnico Nacional Escuela Superior de Cómputo Departamento de Ingeniería en Sistemas Computacionales Academia de Sistemas Distribuidos Unidad II Administración de procesos
Sistemas Operativos
José David Ortega Pacheco
Instituto Politécnico NacionalEscuela Superior de Cómputo
Departamento de Ingeniería en Sistemas ComputacionalesAcademia de Sistemas Distribuidos
Unidad II
Administración de procesos
Orden de la presentación
2.1 Introducción
2.2 Comunicación entre procesos
2.3 Semáforos
2.4 Monitores
2.5 Transferencia de Mensajes
2.6 Problemas clásicos de la comunicación entre procesos
2.7 Planificación de procesos
2.8 Administración de procesos en UNIX
IPN, ESCOM, José David Ortega Pacheco 2
2.1 Introducción
IPN, ESCOM, José David Ortega Pacheco 3
2.1 Introducción
Definición preliminar de proceso: Programa en ejecución
Una definición más completa incluye en la definición anterior los términos:
Código de programa
Datos
IPN, ESCOM, José David Ortega Pacheco 4
2.1 Introducción
Para administrar procesos, el sistema operativo utiliza el Bloque de Control de Proceso, el cual contiene información como la siguiente:
Identificador, estado, prioridad, contador de programa, apuntadores a memoria, datos de contexto, estado de la E/S, información de auditoría
IPN, ESCOM, José David Ortega Pacheco 5
2.1 Introducción
El modelo de estados es una descripción del comportamiento de los procesos en un sistema operativo
IPN, ESCOM, José David Ortega Pacheco 6
Modelo de 2 estados: Diagrama de transición
Noejecutado
Ejecutando
Entrada
Activado
Desactivado
Salida
2.1 Introducción
Creación de un procesos: Razones
• Trabajo por lotes
• Inicio interactivo
• Proveer un servicio
• Petición de un proceso
IPN, ESCOM, José David Ortega Pacheco 7
2.1 Introducción
Culminación de un procesos: Razones
IPN, ESCOM, José David Ortega Pacheco 8
• Finalización normal
• Sobrepasar un límite de tiempo enprocesador
• Memoria no disponible
• Violación de memoria
• Error de protección
• Error aritmético
• Sobrepasar tiempo de espera
• Falla de E/S
• Instrucción inválida
• Instrucción privilegiada
• Error de dato
• A petición del usuario o delsistema operativo
• Culminación del padre
• Petición del padre
2.1 Introducción
Modelo de 5 estados: Diagrama de transición
IPN, ESCOM, José David Ortega Pacheco 9
Nuevo
EntradaListo
AdmitidoEjecutando
ActivadoSalida
Culminado
Bloqueado
Tiempo
Esperaevento
Ocurreevento
2.1 Introducción
Suspensión
Se utiliza cuando todos los estados descritos anteriormente se cargan en memoriaprincipal, lo cual representa un riesgo.
Se puede extender la memoria principal pero esto implica costos, además de quelos programas demandan de manera individual cada vez más espacio de memoria.
Otra solución es el Swapping.
IPN, ESCOM, José David Ortega Pacheco 10
2.1 Introducción
Swapping
Implica mover procesos de memoria principal a disco duro mediante un estadodenominado como suspendido.
Es una operación de E/S que tiene riesgos inherentes a los dispositivos de E/S, sinembargo termina siendo una buena solución debido a que el disco duro es de losdispositivos de E/S más rápidos.
IPN, ESCOM, José David Ortega Pacheco 11
2.1 Introducción
Modelo de 6 estados: Diagrama de transición
IPN, ESCOM, José David Ortega Pacheco 12
Nuevo
EntradaListo
AdmitidoEjecutando
ActivadoSalida
Culminado
Bloqueado
Tiempo
Esperaevento
Ocurreevento
SuspendidoSuspensión
Activado
2.1 Introducción
Modelo de 7 estados: Diagrama de transición
IPN, ESCOM, José David Ortega Pacheco 13
NuevoEntrada
ListoAdmitido
EjecutandoActivado
SalidaCulminado
Bloqueado
TiempoEsperaevento
Ocurreevento
ListoSuspendido
Suspensión
BloqueadoSuspendido
Activado
Ocurreevento
Suspensión
2.1 Introducción
Modelo de 5, 6 y 7 estados
En cualquiera de los modelos anteriores se puede pasar de cualquier estado alestado de salida, aunque no se tenga marcada la relación.
IPN, ESCOM, José David Ortega Pacheco 14
2.1 Introducción
Suspensión
Podemos generalizar el que un proceso en suspensión tiene cuatro característicasprincipales:
1. El proceso no está disponible de manera inmediata para su ejecución.
2. El proceso puede o no estar esperando un evento.
3. El proceso se puso en suspensión por medio de un agente externo o por elmismo.
4. El proceso no puede ser removido del estado de suspensión a menos que elagente lo ordene.
IPN, ESCOM, José David Ortega Pacheco 15
2.1 Introducción
Suspensión: Razones
• Swapping.
• Decisión del Sistema operativo.
• Requerimiento del usuario.
• Ejecución Periódica de algún proceso.
• Requerimiento del padre.
IPN, ESCOM, José David Ortega Pacheco 16
Descripción de procesos
El sistema operativo construye y mantiene tablas de información de cada entidadque debe mantener. Se tienen tablas de memoria, procesos, de E/S y archivos.
Las tablas de proceso son el mecanismo de control de procesos.
IPN, ESCOM, José David Ortega Pacheco 17
2.1 Introducción
IPN, ESCOM, José David Ortega Pacheco 18
2.1 Introducción
Memoria
E/S
Archivos
Procesos
Tablas de Memoria
Tablas de E/S
Tablas de Archivos
Proceso 1
Proceso n
Imagen de Proceso 1
Imagen de Proceso n
Tabla de Procesos
Descripción de procesos
Estructuras de control de procesos
La imagen de proceso representa la ubicación de física de un proceso:
• Datos
• Programa
• Pila
• Bloque de Control de Proceso
IPN, ESCOM, José David Ortega Pacheco 19
2.1 Introducción
Estructuras de control de procesos
• Bloque de Control de Proceso: Estructura más importante, contiene todala información que requiere el sistema operativo.
IPN, ESCOM, José David Ortega Pacheco 20
2.1 Introducción
Atributos de un procesos
La información contenida en el BCP, se divide en:
1. Identificación de proceso
2. Estado del procesador
3. Control de proceso
IPN, ESCOM, José David Ortega Pacheco 21
2.1 Introducción
Atributos de un procesos
1. Identificación de proceso
• PID
• PPID
• UID
• GID
IPN, ESCOM, José David Ortega Pacheco 22
2.1 Introducción
Atributos de un procesos
2. Estado del procesador
• Registros visibles al usuario
• Registros de Estatus y de Control
• Apuntadores a pila
IPN, ESCOM, José David Ortega Pacheco 23
2.1 Introducción
Atributos de un procesos
3. Control de proceso
• Planificación e información de estado
• Estructura de dato
• Comunicación entre procesos
• Privilegios
• Manejo de memoria
• Propiedad de recursos y utilizaciónIPN, ESCOM, José David Ortega Pacheco 24
2.1 Introducción
Creación de procesos
Pasos:
1. Se asigna un nuevo identificador de proceso
2. Se proporciona memoria de datos y de programa
3. Se inicializa el Bloque de Control de Proceso
4. Se inicializan los enlaces apropiados (Si se manejan listas)
5. Crear o expandir otras estructuras de datos
IPN, ESCOM, José David Ortega Pacheco 25
2.1 Introducción
Cambio de proceso en el uso de procesador
Mecanismos de interrupción de un procesos en el uso de procesador
IPN, ESCOM, José David Ortega Pacheco 26
2.1 Introducción
Mecanismo Causa Uso
Interrupción Externa a la ejecución de la instrucción actual
Reacción a un evento asíncrono externo
Trap Asociada con la ejecución de la instrucción actual
Manejo de un error o una condición de excepción
Supervisor de llamada Requerimiento explícito Llamada al sistema
Cambio de proceso en el uso de procesador
Algunos ejemplos de interrupción:
1. Interrupción de reloj
2. Interrupción de E/S
3. Error de memoria
IPN, ESCOM, José David Ortega Pacheco 27
2.1 Introducción
Cambio de proceso en el uso de procesador
Pasos
1. Guardar contexto de procesador
2. Actualizar el Bloque de Control de Proceso (BCP) del proceso actual
3. Mover el BCP a la cola del estado adecuado
4. Seleccionar otro proceso para ejecución
5. Actualizar el BCP del proceso seleccionado
6. Actualizar manejo de memoria y estructuras de datos
7. Restaurar el contexto de procesador con los datos del proceso a ejecutarIPN, ESCOM, José David Ortega Pacheco 28
2.1 Introducción
Cuestionario
1. ¿Qué es un proceso?
2. ¿A quién se le llama proceso padre y a quién proceso hijo?
3. ¿Qué eventos pueden llevar a la creación de un proceso y descríbalos?
4. Mencione 6 eventos que pueden llevar a la culminación de un proceso ydescríbalos.
5. ¿Qué es un modelo de estados de proceso?
6. Describa en qué consiste cada uno de los estados del modelo de 5estados para procesos.
IPN, ESCOM, José David Ortega Pacheco 29
Cuestionario
7. Bajo qué condiciones se pasa del estado de NUEVO a LISTO en el modelode 5 estados.
8. Bajo qué condiciones se pasa del estado de LISTO a EJECUTANDO en elmodelo de 5 estados.
9. Bajo qué condiciones se pasa del estado de EJECUTANDO a SALIDA en elmodelo de 5 estados.
10. Bajo qué condiciones se pasa del estado de EJECUTANDO a LISTO en elmodelo de 5 estados.
11. Bajo qué condiciones se pasa del estado de EJECUTANDO a BLOQUEADOen el modelo de 5 estados.
12. Bajo qué condiciones se pasa del estado de BLOQUEADO a LISTO en elmodelo de 5 estados.
IPN, ESCOM, José David Ortega Pacheco 30
Cuestionario
13. Bajo qué condiciones se pasa del estado de LISTO a SALIDA en el modelode 5 estados.
14. Bajo qué condiciones se pasa del estado de BLOQUEADO a SALIDA en elmodelo de 5 estados.
15. ¿Qué es un proceso suspendido y mencione sus 4 características?
16. Mencione las 5 razones para suspender procesos.
17. ¿Qué es Swapping?
18. Muestre el esquema del modelo de 7 estados para procesos y describaen qué consisten los estados de BLOQUEADO/SUSPENDIDO yLISTO/SUSPENDENDIDO.
IPN, ESCOM, José David Ortega Pacheco 31
Cuestionario
19. Bajo qué condiciones se pasa del estado de BLOQUEADO aBLOQUEADO/SUSPENDIDO en el modelo de 7 estados.
20. Bajo qué condiciones se pasa del estado de BLOQUEADO/SUSPENDIDO aLISTO/SUSPENDIDO en el modelo de 7 estados.
21. Bajo qué condiciones se pasa del estado de LISTO/SUSPENDIDO a LISTOen el modelo de 7 estados.
22. Bajo qué condiciones se pasa del estado de LISTO a LISTO/SUSPENDIDOen el modelo de 7 estados.
23. Bajo qué condiciones se pasa del estado de BLOQUEADO/SUSPENDIDO aBLOQUEADO en el modelo de 7 estados.
24. Bajo qué condiciones se pasa del estado de EJECUTANDO aLISTO/SUSPENDIDO en el modelo de 7 estados.
IPN, ESCOM, José David Ortega Pacheco 32
Cuestionario
25. ¿Qué son las tablas de control de procesos?
26. ¿Qué es la imagen de proceso y que información contiene de manerageneral?
27. ¿Cuáles son las tres categorías de información que contiene el Bloque deControl de Proceso y qué información contiene cada una?
28. ¿Cuáles son los pasos generales para la creación de procesos y describaen qué consiste cada uno?
29. Mencione tres mecanismos que interrumpen la ejecución de procesos.
30. ¿Cuál es la diferencia entre una interrupción y un trap?
31. Mencione los 7 pasos generales que se dan cuando un proceso cambiadel estado de ejecución a otro estado.
IPN, ESCOM, José David Ortega Pacheco 33
2.2 Comunicación entre procesos
IPN, ESCOM, José David Ortega Pacheco 34
Concurrencia
El manejo de procesos por parte del sistema operativo tiene tres temas principales:
1. Multiprogramación: Un procesador.
2. Multiprocesamiento: Esquema de más de un procesador.
3. Procesamiento distribuido: Esquema de más de un procesador en diferentesubicaciones.
IPN, ESCOM, José David Ortega Pacheco 35
2.2 Comunicación entre procesos
Concurrencia
La concurrencia surge en tres diferentes contextos:
1. Múltiples aplicaciones
2. Aplicaciones estructuradas
3. Estructura del sistema operativo
IPN, ESCOM, José David Ortega Pacheco 36
2.2 Comunicación entre procesos
Concurrencia
Conceptos importantes:
1. Sección crítica
2. Deadlock
3. Livelock
4. Exclusión mutua
5. Condición de carrera
IPN, ESCOM, José David Ortega Pacheco 37
2.2 Comunicación entre procesos
Concurrencia
Ejemplo (un sólo procesador):
void imprime() Proceso 1 Proceso 2
{
in = getchar(); in = getchar();
out = in in = getchar();
putchar(out); out = in
} putchar(out); out = in
putchar(out);IPN, ESCOM, José David Ortega Pacheco 38
2.2 Comunicación entre procesos
Concurrencia
Ejemplo (dos procesadores):
void imprime() Proceso 1 Proceso 2
{ in = getchar();
in = getchar(); in = getchar();
out = in; out = in; out = in;
putchar(out); putchar(out);
} putchar(out);
IPN, ESCOM, José David Ortega Pacheco 39
2.2 Comunicación entre procesos
Condición de carrera
P1 y P2 comparten a. P3 y P4 comparten b=1 y c=2.
P1 -> a=1, P2 -> a=2 P3 -> b=b+c, P4 -> c=b+c
Condición de carrera por escribir en a Si p3 se ejecuta primero: b=3 y c = 5
Si p4 se ejecuta primero: b=4 y c = 3
IPN, ESCOM, José David Ortega Pacheco 40
2.2 Comunicación entre procesos
Responsabilidades del sistema operativo
1. Administrar procesos.
2. Administrar el uso de recursos para cada proceso activo en el sistema, entre los quedestacan: Tiempo de procesador, Memoria, Archivos y Dispositivos de E/S.
3. Proteger los datos y recursos físicos de cada proceso ante una amenaza deinterferencia llevada a cabo por otros proceso.
4. El funcionamiento de un proceso, así como la salida que este produce, debe serindependiente de la velocidad con la que su ejecución se realiza con respecto a otroproceso.
IPN, ESCOM, José David Ortega Pacheco 41
2.2 Comunicación entre procesos
Interacción entre procesos
Se puede tener:
1. Cada proceso es independiente
2. De manera indirecta se tiene dependencia
3. Directamente se tiene comunicación entre ellos
IPN, ESCOM, José David Ortega Pacheco 42
2.2 Comunicación entre procesos
Interacción entre procesos
*Proceso que es subestimado por el planificador indefinidamente; aunque se puedeejecutar, no es seleccionado
IPN, ESCOM, José David Ortega Pacheco 43
2.2 Comunicación entre procesos
Dependencia Relación Influencia de un proceso a otro Problemas en el control
No hay Competencia• Resultados independientes• Tiempo de ejecución afectado
• Exclusión Mutua• Deadlock• Inanición*
IndirectaCooperación(comparten
recursos)
• Los resultados pueden depender de lainformación obtenida de otros
• Tiempo de ejecución afectado
• Exclusión Mutua• Deadlock• Inanición• Coherencia de datos
DirectaCooperación
(Comunicación)
• Los resultados pueden depender de lainformación obtenida de otros
• Tiempo de ejecución afectado
• Inanición• Deadlock
Competición por recursos
• Se necesita exclusión mutua
• El recurso compartido es un recurso crítico y el segmento de código que hacereferencia al mismo es una sección crítica
• Deadlock. Ejemplo: P1 y P2 requieren R1 y R2, P1 toma R2 y P2 R1, ambos van a dejarel recurso hasta que aseguren tener el otro recurso que necesitan utilizar.
• Inanición. Ejemplo: P1, P2 y P3 requieren acceso al recurso R, P1 toma el recurso y elsistema operativo garantiza que P1 tome el recurso R en su sección crítica, y cuandoéste sale, P3 toma el uso de R. Por alguna razón, P1 nuevamente pide el recurso R ycuando P3 termina su ejecución de sección crítica, nuevamente P1 usa el recurso.
IPN, ESCOM, José David Ortega Pacheco 44
2.2 Comunicación entre procesos
Cooperación entre procesos compartiendo recursos
• Compartir variables, archivos o bases de datos
• Se necesita exclusión mutua, se da nuevamente Deadlock e inanición
• El uso de recursos se da ahora bajo el contexto de dos modos de operación: Lectura yEscritura
• Se necesita coherencia de datos. Suponga que la relación que se busca tener es a = b,suponga se inicia con a=b=1:
P1 utiliza a = a+1 y b = b+1 P2 utiliza a = 2*a y b = 2*b
Se ejecuta a = a+1, b= 2*b, b = b+1 y a = 2*a, el que a = b ya no se cumple para losprocesos, dan a=4 y b=3 al final de las operaciones.
IPN, ESCOM, José David Ortega Pacheco 45
2.2 Comunicación entre procesos
Cooperación entre procesos mediante comunicación
• Los procesos tienen un fin en común, y la comunicación proporciona un mecanismode sincronización o coordinación de las actividades a realizar.
• No se necesita exclusión mutua, pero los problemas de Deadlock e Inanición sesiguen presentando.
IPN, ESCOM, José David Ortega Pacheco 46
2.2 Comunicación entre procesos
Requerimientos para Exclusión Mutua
1. Debe ser obligatoria.
2. Un proceso que ya no está en la sección crítica y termina, no debe interferir conotro proceso
3. Un proceso no debe esperar de manera indefinida el ingresar a su sección crítica(No debe darse deadlock ni inanición)
4. Cuando no existe proceso en sección crítica, si algún proceso después requiereingresar, debe permitirse el ingreso sin alguna restricción
5. Lo anterior no tiene alguna dependencia sobre el número de procesadores o de lavelocidad de ejecución de los procesos
6. Un proceso debe estar en su sección crítica por un tiempo finito
IPN, ESCOM, José David Ortega Pacheco 47
2.2 Comunicación entre procesos
Cuestionario
1. ¿Qué es concurrencia?
2. Defina los conceptos de Multiprogramación, Multiprocesamiento y Procesamiento Distribuido.
3. Explique los tres contextos en los que se da la concurrencia.
4. Defina los siguientes conceptos: sección crítica, exclusión mutua, deadlock, livelock, condición de carrera e inanición.
5. Mencione las 4 responsabilidades del sistema operativo respecto a procesos.
6. Mencione los 3 tipos de interacción entre procesos que se pueden tener de manera general.
IPN, ESCOM, José David Ortega Pacheco 48
Cuestionario
7. Complete la siguiente tabla:
8. Mencione los 7 requerimientos generales para Exclusión Mutua..
IPN, ESCOM, José David Ortega Pacheco 49
Dependencia Relación Influencia de un proceso a otro
No hay
Directa
Indirecta
2.3 Semáforos
IPN, ESCOM, José David Ortega Pacheco 50
Es una estructura (semaphore) que se utiliza para enviar señales y está conformada poruna variable contador (inicializada en un valor no negativo) y una cola:
struct semaphore {
int count;
queue queue;
};
Se utilizan dos funciones básicas: semSignal(semaphore s) para enviar mensajes ysemWait(semaphore s) para recibir mensajes.
IPN, ESCOM, José David Ortega Pacheco 51
2.3 Semáforos
• semWait
void semWait(semaphore s) {
s.count --;
if (s.count < 0){
1. El proceso se coloca en la cola del semáforo.
2. El proceso se manda al estado de bloqueado.
}
}
IPN, ESCOM, José David Ortega Pacheco 52
2.3 Semáforos
• semSignal
void semSignal(semaphore s) {
s.count ++ ;
if (s.count <= 0) {
1. Se quita un proceso de la cola del semáforo.
2. El proceso que sale de la cola del semáforo se manda al estado de listo.
}
}
IPN, ESCOM, José David Ortega Pacheco 53
2.3 Semáforos
Consecuencias del uso de semáforos:
• Una vez que un proceso decrementa un semáforo, no hay manera de saber si elproceso será bloqueado o no.
• Después de que un proceso incrementa un semáforo y otro proceso despierta, los doscontinúan ejecutándose de manera concurrente y no hay manera de saber queproceso se ejecutará primero en un esquema de un solo procesador.
• Cuando se envía una señal a un semáforo, no necesariamente se sabe si otro procesoesta esperando y si el número de procesos no bloqueados puede ser cero o uno.
IPN, ESCOM, José David Ortega Pacheco 54
2.3 Semáforos
Semáforos binarios
Sólo pueden tener valores de cero y uno, y se inicializa en cero o en uno.
struct binary_semaphore {
enum{zero, one } value;
queue queue;
};
IPN, ESCOM, José David Ortega Pacheco 55
2.3 Semáforos
Semáforos binarios
void semWaitB (binary_semaphore s) {
if (s.value == one) {
s.value = zero;
}
else {
1. El proceso se coloca en la cola del semáforo
2. El proceso se bloquea.
}
}
IPN, ESCOM, José David Ortega Pacheco 56
2.3 Semáforos
Semáforos binarios
void semSignalB (binary_semaphore s) {
if ( s.queue is empty() ){
s.value = one;
}
else {
1. Se quita un proceso de la cola del semáforo.
2. El proceso que sale de la cola del semáforo se manda al estado de listo.
}
}
IPN, ESCOM, José David Ortega Pacheco 57
2.3 Semáforos
Cola de semáforos
Cuando un semáforo utiliza en su cola un esquema FIFO se denomina semáforo fuerte ysi el esquema que utiliza no define un orden de tipo FIFO se define como semáforodébil.
IPN, ESCOM, José David Ortega Pacheco 58
2.3 Semáforos
Ejemplo REVISAR PÁG 238
• Se tienen 4 procesos A, B, C y D. Los procesos A, B y C dependen del valorque proporciona como resultado y ejecutan la ejecución de D para que seejecuten.
• A, B y C ejecutan semWait y D ejecuta semSignal.
• De manera inicial, el valor del semáforo (contador) esta en 1 (D seejecuto primero) y se está ejecutando el proceso A.
IPN, ESCOM, José David Ortega Pacheco 59
2.3 Semáforos
Ejemplo:
IPN, ESCOM, José David Ortega Pacheco 60
2.3 Semáforos
A
Procesador
Bloqueados
1
Semáforo
Listos
C D B
Ejemplo:
IPN, ESCOM, José David Ortega Pacheco 61
2.3 Semáforos
B
Procesador
Bloqueados
0
Semáforo
Listos
A C D
Ejemplo:
IPN, ESCOM, José David Ortega Pacheco 62
2.3 Semáforos
D
Procesador
Bloqueados
-1
Semáforo
B
Listos
A C
Ejemplo:
IPN, ESCOM, José David Ortega Pacheco 63
2.3 Semáforos
D
Procesador
Bloqueados
0
Semáforo
Listos
B A C
Ejemplo:
IPN, ESCOM, José David Ortega Pacheco 64
2.3 Semáforos
C
Procesador
Bloqueados
0
Semáforo
Listos
D B A
Ejemplo:
IPN, ESCOM, José David Ortega Pacheco 65
2.3 Semáforos
A
Procesador
Bloqueados
-1
Semáforo
C
Listos
D B
Ejemplo:
IPN, ESCOM, José David Ortega Pacheco 66
2.3 Semáforos
B
Procesador
Bloqueados
-2
Semáforo
A C
Listos
D
Ejemplo:
IPN, ESCOM, José David Ortega Pacheco 67
2.3 Semáforos
D
Procesador
Bloqueados
-3
Semáforo
B A C
Listos
Ejemplo:
IPN, ESCOM, José David Ortega Pacheco 68
2.3 Semáforos
Procesador
Bloqueados
-2
Semáforo
B A
Listos
D C
Ejemplo:
IPN, ESCOM, José David Ortega Pacheco 69
2.3 Semáforos
C
Procesador
Bloqueados
-2
Semáforo
B A
Listos
D
Ejemplo:
IPN, ESCOM, José David Ortega Pacheco 70
2.3 Semáforos
D
Procesador
Bloqueados
-3
Semáforo
C B A
Listos
Exclusión mutua
IPN, ESCOM, José David Ortega Pacheco 71
2.3 Semáforos
Cola de Semáforo s AContador de semáforo s
0
B C
B -1
C B -2
C -1
1
semWait(s)
semSignal(s)
semWait(s)
semWait(s)
Exclusión mutua
IPN, ESCOM, José David Ortega Pacheco 72
2.3 Semáforos
Cola de Semáforo s AValor de semáforo s
0
B C
1
semSignal(s)
semSignal(s)
Exclusión mutua
Se puede observar como:
• s.count >= 0: s.count es el número de procesos que pueden ejecutar semWait(s) sinsuspensión (si no se ha ejecutado semSignal), dando soporte a sincronización yexclusión mutua. En el caso anterior el valor es 1 (el valor inicial).
• s.count < 0: el valor de s.count indica el número de procesos suspendidos en la coladel semáforo
IPN, ESCOM, José David Ortega Pacheco 73
2.3 Semáforos
Cuestionario
1. Defina qué es un semáforo.
2. Mencione 2 consecuencias asociadas al uso de semáforos.
3. ¿Cuál es la función de semWait y de semSignal?
4. ¿Cuál es la operación asociada a semSignal respecto al contador dentro del semáforo?
5. ¿Cuál es la operación asociada a semWait respecto al contador dentro del semáforo?
6. En semWait, ¿qué valores de contador de semáforo provoca la entrada de un proceso a la cola de semáforo?
7. En semSignal, ¿qué valores de contador de semáforo provoca la salida de un proceso de la cola de semáforo?
IPN, ESCOM, José David Ortega Pacheco 74
Cuestionario
8. Mencione la diferencia entre un semáforo general y un semáforo binario.
9. ¿Con qué valores puede inicializarse un semáforo binario?
10. Diferencia entre semáforo fuerte y semáforo débil.
IPN, ESCOM, José David Ortega Pacheco 75
2.4 Monitores
IPN, ESCOM, José David Ortega Pacheco 76
2.5 Transferencia de mensajes
IPN, ESCOM, José David Ortega Pacheco 77
2.6 Problemas clásicos de la comunicación entre procesos
IPN, ESCOM, José David Ortega Pacheco 78
Deadlock
Bloqueo permanente de un conjunto de procesos que compiten por recursos o por comunicarse entre ellos.
Un conjunto de procesos se encuentra en deadlock si cada uno de los procesos en el conjunto se encuentra esperando un evento que sólo puede ser disparado por otro
proceso del conjunto
IPN, ESCOM, José David Ortega Pacheco 79
2.6 Problemas clásicos de la comunicación entre procesos.
Posible Deadlock
IPN, ESCOM, José David Ortega Pacheco 80
2.6 Problemas clásicos de la comunicación entre procesos.
Deadlock
a
bc
d
P1
P3
a
bc
d
P2
P1
P4
P3
P2
P1
P4
IPN, ESCOM, José David Ortega Pacheco 81
2.6 Problemas clásicos de la comunicación entre procesos.
Recursos
• Reutilizables: Es aquel que puede ser utilizado por sólo un proceso a la vez y no seacaba con su uso.
• Consumibles: Es aquel que puede ser creado (producido) y destruido (Consumido).
IPN, ESCOM, José David Ortega Pacheco 82
2.6 Problemas clásicos de la comunicación entre procesos.
Recursos reutilizables
Ejemplos de recursos reutilizables: Procesador, Dispositivos y canales de Entrada/Salida,Memoria principal y secundaria, Archivos, Bases de datos y estructuras de datos comolos Semáforos.
IPN, ESCOM, José David Ortega Pacheco 83
2.6 Problemas clásicos de la comunicación entre procesos.
Recursos reutilizables
Ejemplo de deadlock: Si cada proceso mantiene un recurso y solicita otro.
Paso Acción del proceso A
A0 Solicita (D1)
A1 Bloquea (D1)
A2 Solicita (D2)
A3 Bloquea (D2)
A4 Realiza Acción
A5 Desbloquea (D1)
A6 Desbloquea (D2)
Paso Acción del proceso B
B0 Solicita (D2)
B1 Bloquea (D2)
B2 Solicita (D1)
B3 Bloquea (D1)
B4 Realiza Acción
B5 Desbloquea (D2)
B6 Desbloquea (D1)
• Secuencia: A0 A1 B0 B1 A2 B2.
IPN, ESCOM, José David Ortega Pacheco 84
2.6 Problemas clásicos de la comunicación entre procesos.
Recursos reutilizables
Ejemplo de deadlock: Se tienen dos procesos que solicitan memoria principal, sinembargo, sólo se tiene disponible 200 Kbytes de espacio.
Acción del proceso A
. . .
Solicita 80 Kbytes
. . .
Solicita 60 Kbytes
. . .
• Segunda solicitud.Acción del proceso B
. . .
Solicita 70 Kbytes
. . .
Solicita 80 Kbytes
. . .
IPN, ESCOM, José David Ortega Pacheco 85
2.6 Problemas clásicos de la comunicación entre procesos.
Recursos Consumibles
• No existe límite con el número de recursos que se pueden crear.
• Un proceso productor de recursos no bloqueado puede producir cualquier cantidadde recursos.
• Cuando un proceso consumidor adquiere un recurso, el recurso deja de existir.
IPN, ESCOM, José David Ortega Pacheco 86
2.6 Problemas clásicos de la comunicación entre procesos.
Recursos Consumibles
Ejemplo de recursos consumibles: Se tienen dos procesos (P1 y P2), los cuales buscanenviar y recibir mensajes el uno al otro.
Acción del proceso P1
. . .
Recibir (P2)
. . .
Enviar (P2,M1)
. . .
• Si el receptor está bloqueado.Acción del proceso P2
. . .
Recibir (P1)
. . .
Enviar (P1,M2)
. . .
IPN, ESCOM, José David Ortega Pacheco 87
2.6 Problemas clásicos de la comunicación entre procesos.
Grafo de distribución de recursos
Grafo dirigido que representa el estado de uso de un recurso o conjunto de recursos,con cada proceso y recurso representado por un nodo. Se puede indicar la cantidad derecurso disponible mediante puntos.
P1 Ra
P1 Solicita Ra
P1 Ra
Ra es Retenido por P1
IPN, ESCOM, José David Ortega Pacheco 88
2.6 Problemas clásicos de la comunicación entre procesos.
Grafo de distribución de recursos
P1
Ra Deadlock
P2
Rb
P1
Ra No Deadlock
P2
Rb
IPN, ESCOM, José David Ortega Pacheco 89
2.6 Problemas clásicos de la comunicación entre procesos.
Grafo de distribución de recursos
P1
Deadlock
Ra
P2
Rb
P3
Rc
P4
Rd
a
bc
d
P1
P2
P3
P4
IPN, ESCOM, José David Ortega Pacheco 90
2.6 Problemas clásicos de la comunicación entre procesos.
Condiciones para Deadlock
1. Exclusión mutua: Ejecución de un proceso a la vez.
2. Retiene y Espera: Un proceso retiene un recurso mientras espera la asignación deotro.
3. No prioridad: Ningún recurso puede ser separado por la fuerza de un proceso quelo esta reteniendo.
Las tres condiciones anteriores son suficientes, es decir, puede darse una, dos o las tresy eso es un posible deadlock, pero no necesarias para que un deadlock exista.
IPN, ESCOM, José David Ortega Pacheco 91
2.6 Problemas clásicos de la comunicación entre procesos.
Condiciones para Deadlock
Para garantizar la existencia de un deadlock, se necesita una cuarta condición:
4. Espera circular: Existe una cadena cerrada de procesos en la cual cada procesoretiene un recurso que necesita el siguiente proceso en la cadena.
IPN, ESCOM, José David Ortega Pacheco 92
2.6 Problemas clásicos de la comunicación entre procesos.
Condiciones para Deadlock
P1
Ra
Deadlock
P2
Rb
P1
Deadlock
Ra
P2
Rb
P3
Rc
P4
Rd
IPN, ESCOM, José David Ortega Pacheco 93
2.6 Problemas clásicos de la comunicación entre procesos.
Condiciones para Deadlock
Existen 3 enfoques para tratar con un deadlock: Prevención, Evasión y Detección.
Posible Deadlock
1. Exclusión mutua2. Retiene y Espera3. No prioridad
Deadlock
1. Exclusión mutua2. Retiene y Espera3. No prioridad4. Espera circular
IPN, ESCOM, José David Ortega Pacheco 94
2.6 Problemas clásicos de la comunicación entre procesos.
Prevención
Se diseña un sistema en donde no cabe la posibilidad de que se presente un deadlock.Se pueden dar dos posibilidades de deadlock:
1. Método directo: Prevenir la ocurrencia de alguna de las 3 condiciones necesariaspara un deadlock (Exclusión Mutua, Retiene y Espera, No Prioridad).
2. Método directo: Prevenir que se presente una Espera Circular.
Se condicionan las peticiones de recursos para prevenir el caer en alguna de las cuatrocondiciones, lo que a la larga lleva a una administración inadecuada de los recursos.
IPN, ESCOM, José David Ortega Pacheco 95
2.6 Problemas clásicos de la comunicación entre procesos.
Prevención
Exclusión Mutua.
No se recomienda evitar debido a que la necesidad de que un recurso pueda seraccedido por varios procesos es muy común. Sin embargo, la probabilidad de que setenga la posibilidad de un deadlock radica en una sólo operación: Escritura.
IPN, ESCOM, José David Ortega Pacheco 96
2.6 Problemas clásicos de la comunicación entre procesos.
Prevención
Retiene y Espera.
Uno de los enfoques es bloquear al proceso que solicita más de un recurso hasta que segarantice que tendrá los recursos de manera simultánea. Inconvenientes:
• El proceso puede estar esperando por demasiado tiempo los recursos, mientras quepodría trabajar con el/los que se encuentran disponibles.
• Cuando los son tomados por el proceso, los mismos pueden estar sin uso por largotiempo.
IPN, ESCOM, José David Ortega Pacheco 97
2.6 Problemas clásicos de la comunicación entre procesos.
Prevención
No prioridad.
• Si a un proceso que tiene ciertos recursos se le niega una nueva solicitud, dichoproceso debe liberar sus recursos actuales, y si es necesario, solicitarlos de nuevojunto con el recurso adicional que requiere.
• Si un proceso solicita un recurso que es utilizado por otro proceso, el sistemaoperativo debe detener al segundo proceso y liberar el recurso, si es que el primerotiene una mayor prioridad que el segundo. Problema: Si los dos procesos tienen lamisma prioridad.
IPN, ESCOM, José David Ortega Pacheco 98
2.6 Problemas clásicos de la comunicación entre procesos.
Prevención
Espera Circular.
Definición de un orden lineal de los tipos de recursos: Si a un proceso se le hanasignado recursos del tipo R, podrá requerir recursos del tipo R en el orden establecido.Sin embargo, los problemas que surgen para el caso de Retiene y Espera se presentantambién
IPN, ESCOM, José David Ortega Pacheco 99
2.6 Problemas clásicos de la comunicación entre procesos.
Algunas definiciones previas a Evasión y Detección
𝑹 = [𝑅1, 𝑅2, … , 𝑅𝑚
𝑽 = [𝑉1, 𝑉2, … , 𝑉𝑚
Total de recursos de cada tipo de recursos
Total de recursos disponibles de cada tipo de recurso
Necesidad del Proceso isobre el Recurso j
Asignación actual del Recurso j al Proceso i
𝐂 =
𝐶11 𝐶12 𝐶13
𝐶21 𝐶22 𝐶23
𝐶31 𝐶32 𝐶33
𝐀 =
𝐴11 𝐴12 𝐴13
𝐴21 𝐴22 𝐴23
𝐴31 𝐴32 𝐴33
n es el número de procesos
m es el número de tipos de recursos
IPN, ESCOM, José David Ortega Pacheco 100
2.6 Problemas clásicos de la comunicación entre procesos.
Algunas definiciones previas a Evasión y Detección
Para lo anterior se mantienen las siguientes relaciones
1.- Total de recursos disponibles:
𝐶𝑖𝑗 ≤ 𝑅𝑗 , ∀ 𝑖, 𝑗 𝐴𝑖𝑗 ≤ 𝐶𝑖𝑗 , ∀ 𝑖, 𝑗
2.- Ningún recurso puede solicitar más recursos (de
cualquier tipo) del total en el sistema:
3.- Ningún proceso tiene más recursos asignados (de
cualquier tipo) de los que solicitó:
𝑅𝑗 = 𝑉𝑗 +
1
𝑛
𝐴𝑖𝑗 , ∀ 𝑗
IPN, ESCOM, José David Ortega Pacheco 101
2.6 Problemas clásicos de la comunicación entre procesos.
Evasión
Se permiten las tres condiciones necesarias para deadlock, realizando juicios para laselección adecuada de procesos que asegure el no alcanzar ese estado. La evasiónpermite una mayor concurrencia y tiene dos enfoques:
1. Denegar Inicio de Proceso: No iniciar un proceso si su demanda de recursos llevaráa un deadlock.
2. Denegar Asignación de Recursos: No otorgar un incremento de solicitudes derecurso a un proceso, si ésta asignación puede llevar a un deadlock.
IPN, ESCOM, José David Ortega Pacheco 102
2.6 Problemas clásicos de la comunicación entre procesos.
Evasión
Denegar Inicio de Proceso
Política de inicio de un proceso 𝑃𝑛+1
𝑅𝑗 ≥ 𝐶 𝑛+1)𝑗 +
1
𝑛
𝐶𝑖𝑗 , ∀ 𝑗
Un proceso inicia, sólo si el máximo de solicitudes de todos los procesos más las del mismo, es menor
o igual a la cantidad del tipo de recurso que se solicita. Si lo anterior no sucede, se bloquea.
IPN, ESCOM, José David Ortega Pacheco 103
2.6 Problemas clásicos de la comunicación entre procesos.
Evasión
Denegar Inicio de Proceso: Ejemplo
𝐂 =3 2 26 1 33 1 4
𝑹 = [9,3,6
Se tiene un nuevo proceso 𝑃3 𝑃𝑛+1=2+1):
𝑅1 ≥ 𝐶31 + 𝐶11 + 𝐶21
𝑅2 ≥ 𝐶32 + 𝐶12 + 𝐶22
𝑅3 ≥ 𝐶33 + 𝐶13 + 𝐶23
9 ≥ 3 + 3 + 6
3 ≥ 1 + 2 + 1
6 ≥ 4 + 2 + 3
9 ≥ 12
3 ≥ 4
6 ≥ 9
No se permite el inicio del proceso
P3, se bloquea
IPN, ESCOM, José David Ortega Pacheco 104
2.6 Problemas clásicos de la comunicación entre procesos.
Evasión
Denegar Asignación de Recursos: Algoritmo del Banquero
• Estado: refleja la asignación actual de recursos a procesos.
• Estado Seguro: es aquel estado en el que existe una secuencia de asignación derecursos a procesos que no resulta en un deadlock.
• Estado No Seguro: por obviedad es aquel que no es seguro.
IPN, ESCOM, José David Ortega Pacheco 105
2.6 Problemas clásicos de la comunicación entre procesos.
Evasión
Denegar Asignación de Recursos: Algoritmo del Banquero
Condición para determinar si un proceso puede ser capas de completar su ejecución con los recursos disponibles:
𝐶𝑖𝑗 − 𝐴𝑖𝑗 ≤ 𝑉𝑗 , ∀𝑗
IPN, ESCOM, José David Ortega Pacheco 106
2.6 Problemas clásicos de la comunicación entre procesos.
Evasión
Denegar Asignación de Recursos: Algoritmo del Banquero
Ejemplo 1
𝐂 =3 2 26 1 33 1 4
𝑹 = [9,3,6
V= [0,1,3
𝑉𝑗 = 𝑅𝑗 −
1
𝑛
𝐴𝑖𝑗 , ∀ 𝑗
𝐀 =1 0 06 1 22 1 1
n = 3 (tres procesos)
𝑄𝑖𝑗 = 𝐶𝑖𝑗 − 𝐴𝑖𝑗
𝐐 =2 2 20 0 11 0 3
1. Matriz de requerimiento del proceso i sobre el recurso j
ESTA
DO
INIC
IAL
¿Ele
sta
do
esse
gu
ro?
IPN, ESCOM, José David Ortega Pacheco 107
2.6 Problemas clásicos de la comunicación entre procesos.
𝑸 =2 2 20 0 11 0 3
Proceso 1
Proceso 2
Proceso 3
Evasión
Denegar Asignación de Recursos: Algoritmo del Banquero
Ejemplo 1
2 ≤ 1V= [0,1,3
2 ≤ 0
2 ≤ 3
0 ≤ 𝟏
0 ≤ 𝟎
1 ≤ 𝟑
0 ≤ 1
1 ≤ 0
3 ≤ 3
𝑪𝒊𝒋 − 𝑨𝒊𝒋 ≤ 𝑽𝒋, ∀𝒋
2. ¿Algún proceso puedecompletar su ejecución conlos recursos disponibles?
IPN, ESCOM, José David Ortega Pacheco 108
2.6 Problemas clásicos de la comunicación entre procesos.
Evasión
Denegar Asignación de Recursos: Algoritmo del Banquero
Ejemplo 1
3. El proceso que puede completar su ejecución lo hace: En éste caso, el Proceso 2es quien toma el recurso faltante y culmina.
𝐂 =3 2 20 0 03 1 4
𝑹 = [9,3,6
V= [6,2,5
𝑉𝑗 = 𝑅𝑗 −
1
𝑛
𝐴𝑖𝑗 , ∀ 𝑗𝐀 =
1 0 00 0 02 1 1
IPN, ESCOM, José David Ortega Pacheco 109
2.6 Problemas clásicos de la comunicación entre procesos.
Evasión
Denegar Asignación de Recursos: Algoritmo del Banquero
Ejemplo 1
𝐂 =3 2 20 0 03 1 4
V= [6,2,5
𝐀 =1 0 00 0 02 1 1
𝑄𝑖𝑗 = 𝐶𝑖𝑗 − 𝐴𝑖𝑗
𝐐 =2 2 20 0 01 0 3
1. Matriz de requerimiento del proceso i sobre el recurso j
IPN, ESCOM, José David Ortega Pacheco 110
2.6 Problemas clásicos de la comunicación entre procesos.
𝑸 =2 2 20 0 01 0 3
Proceso 1
Proceso 3
Evasión
Denegar Asignación de Recursos: Algoritmo del Banquero
Ejemplo 1
2 ≤ 𝟐
2 ≤ 𝟔
2 ≤ 𝟓
0 ≤ 𝟐
1 ≤ 𝟔
3 ≤ 𝟓
𝑪𝒊𝒋 − 𝑨𝒊𝒋 ≤ 𝑽𝒋, ∀𝒋
2. ¿Algún proceso puede completarsu ejecución con los recursosdisponibles?
V= [6,2,5
IPN, ESCOM, José David Ortega Pacheco 111
2.6 Problemas clásicos de la comunicación entre procesos.
Evasión
Denegar Asignación de Recursos: Algoritmo del Banquero
Ejemplo 1
3. El proceso que puede completar su ejecución lo hace: En éste caso son dosprocesos, seleccionamos el Proceso 1, quien toma los recursos que le faltan yculmina.
𝐂 =0 0 00 0 03 1 4
𝑹 = [9,3,6
V= [7,2,5
𝑉𝑗 = 𝑅𝑗 −
1
𝑛
𝐴𝑖𝑗 , ∀ 𝑗𝐀 =
0 0 00 0 02 1 1
IPN, ESCOM, José David Ortega Pacheco 112
2.6 Problemas clásicos de la comunicación entre procesos.
Evasión
Denegar Asignación de Recursos: Algoritmo del Banquero
Ejemplo 1
𝑄𝑖𝑗 = 𝐶𝑖𝑗 − 𝐴𝑖𝑗
𝐐 =0 0 00 0 01 0 3
1. Matriz de requerimiento del proceso i sobre el recurso j
𝐂 =0 0 00 0 03 1 4
𝐀 =0 0 00 0 02 1 1
V= [7,2,5
IPN, ESCOM, José David Ortega Pacheco 113
2.6 Problemas clásicos de la comunicación entre procesos.
𝑸 =0 0 00 0 01 0 3 Proceso 3
Evasión
Denegar Asignación de Recursos: Algoritmo del Banquero
Ejemplo 1
0 ≤ 𝟐
1 ≤ 𝟕
3 ≤ 𝟓𝑪𝒊𝒋 − 𝑨𝒊𝒋 ≤ 𝑽𝒋, ∀𝒋
2. ¿Algún proceso puede completarsu ejecución con los recursosdisponibles?
V= [7,2,5
IPN, ESCOM, José David Ortega Pacheco 114
2.6 Problemas clásicos de la comunicación entre procesos.
Evasión
Denegar Asignación de Recursos: Algoritmo del Banquero
Ejemplo 1
3. El proceso que puede completar su ejecución lo hace: El Proceso 3 toma losrecursos que le faltan y culmina.
𝐂 =0 0 00 0 00 0 0
𝑹 = [9,3,6
V= [9,3,6
𝑉𝑗 = 𝑅𝑗 −
1
𝑛
𝐴𝑖𝑗 , ∀ 𝑗𝐀 =
0 0 00 0 00 0 0
IPN, ESCOM, José David Ortega Pacheco 115
2.6 Problemas clásicos de la comunicación entre procesos.
Evasión
Denegar Asignación de Recursos: Algoritmo del Banquero
Ejemplo 1
Ya no existen más procesos y no se tiene deadlock, por lo tanto el ESTADO INICIAL es un ESTADO SEGURO.
IPN, ESCOM, José David Ortega Pacheco 116
2.6 Problemas clásicos de la comunicación entre procesos.
Evasión
Denegar Asignación de Recursos: Algoritmo del Banquero
Ejemplo 2
𝐂 =3 2 26 1 33 1 4
𝑹 = [9,3,6
V= [0,1,1
𝑉𝑗 = 𝑅𝑗 −
1
𝑛
𝐴𝑖𝑗 , ∀ 𝑗
𝐀 =2 0 15 1 12 1 3
n = 3 (tres procesos)
𝑄𝑖𝑗 = 𝐶𝑖𝑗 − 𝐴𝑖𝑗
𝐐 =1 2 11 0 21 0 1
1. Matriz de requerimiento del proceso i sobre el recurso j
ESTA
DO
INIC
IAL
¿Es
un
esta
do
seg
uro
?
IPN, ESCOM, José David Ortega Pacheco 117
2.6 Problemas clásicos de la comunicación entre procesos.
Proceso 1
Proceso 2
Proceso 3
Evasión
Denegar Asignación de Recursos: Algoritmo del Banquero
Ejemplo 2
2 ≤ 1
1 ≤ 𝟎
1 ≤ 1
0 ≤ 1
1 ≤ 𝟎
2 ≤ 1
0 ≤ 1
1 ≤ 𝟎
1 ≤ 1
𝑪𝒊𝒋 − 𝑨𝒊𝒋 ≤ 𝑽𝒋, ∀𝒋
2. ¿Algún proceso puedecompletar su ejecución conlos recursos disponibles?
V= [0,1,1
𝐐 =1 2 11 0 21 0 1
IPN, ESCOM, José David Ortega Pacheco 118
2.6 Problemas clásicos de la comunicación entre procesos.
Evasión
Denegar Asignación de Recursos: Algoritmo del Banquero
Ejemplo 2
Ningún proceso cumple con la condición para completarse, por lo que se tiene un posible deadlock, por lo tanto el ESTADO INICIAL
es un ESTADO NO SEGURO.
IPN, ESCOM, José David Ortega Pacheco 119
2.6 Problemas clásicos de la comunicación entre procesos.
Detección
• No limita el acceso a los recursos o restringe el inicio de los procesos.
• Se recomienda ejecutar cada vez que se realice una petición de recursos, aunquerevisar frecuentemente ocupa muchos recursos.
IPN, ESCOM, José David Ortega Pacheco 120
2.6 Problemas clásicos de la comunicación entre procesos.
Detección
Algoritmo para detección de deadlock
Ejemplo
𝐐 =
0 1 0 0 10 0 1 0 101
00
01
00
11
𝑹 = [2,1,1,2,1
𝑉𝑗 = 𝑅𝑗 −
1
𝑛
𝐴𝑖𝑗 , ∀ 𝑗
A =
1 0 1 1 01 1 0 0 000
00
00
10
00
𝑽 = [0,0,0,0,1
4 procesos, 5 recursos
IPN, ESCOM, José David Ortega Pacheco 121
2.6 Problemas clásicos de la comunicación entre procesos.
1. Marcar cada proceso que tieneuna fila en la matriz A con todossus elementos en cero.
2. Inicializar el vector temporal Wigual al vector V.
Detección
Algoritmo para detección de deadlock
Ejemplo
A =
1 0 1 1 01 1 0 0 00𝟎
0𝟎
0𝟎
1𝟎
0𝟎
𝑽 = 0,0,0,0,1 = 𝑾
IPN, ESCOM, José David Ortega Pacheco 122
2.6 Problemas clásicos de la comunicación entre procesos.
3. Encontrar un proceso i, tal que esté actualmente desmarcado en la matriz A y sufila correspondiente de la matriz Q cumpla con lo siguiente:
Detección
Algoritmo para detección de deadlock
Ejemplo
𝐐 =
0 1 0 0 10 0 1 0 1𝟎1
𝟎0
𝟎1
𝟎0
𝟏1
A =
1 0 1 1 01 1 0 0 0𝟎𝟎
𝟎𝟎
𝟎𝟎
𝟏𝟎
𝟎𝟎
𝑾 = 0,0,0,0,1
𝑷𝟑 = 0,0,0,0,1
𝑸𝒊𝒌 ≤ 𝑾𝒌
IPN, ESCOM, José David Ortega Pacheco 123
2.6 Problemas clásicos de la comunicación entre procesos.
¿Se encontró proceso?
Si: Pasar al paso 4
No: Termina el algoritmo
Detección
Algoritmo para detección de deadlock
Ejemplo
IPN, ESCOM, José David Ortega Pacheco 124
2.6 Problemas clásicos de la comunicación entre procesos.
4. Marcar el proceso i en la matriz A y sumar la fila de la matriz A a W y regresar alpaso 3.
Detección
Algoritmo para detección de deadlock
Ejemplo
A =
1 0 1 1 01 1 0 0 0𝟎𝟎
𝟎𝟎
𝟎𝟎
𝟏𝟎
𝟎𝟎
𝑾 = 𝑾 + 𝑷𝟑 = 0,0,0,1,0 + 0,0,0,0,1
𝑾 = 0,0,0,1,1
IPN, ESCOM, José David Ortega Pacheco 125
2.6 Problemas clásicos de la comunicación entre procesos.
3. Encontrar un proceso i, tal que esté actualmente desmarcado en la matriz A y sufila correspondiente de la matriz Q cumpla con lo siguiente:
Detección
Algoritmo para detección de deadlock
Ejemplo
𝐐 =
0 𝟏 0 0 10 0 𝟏 0 101
00
01
00
11
A =
1 0 1 1 01 1 0 0 0𝟎𝟎
𝟎𝟎
𝟎𝟎
𝟏𝟎
𝟎𝟎
𝑸𝒊𝒌 ≤ 𝑾𝒌
𝑾 = 0,0,0,1,1
IPN, ESCOM, José David Ortega Pacheco 126
2.6 Problemas clásicos de la comunicación entre procesos.
¿Se encontró proceso?
Si: Pasar al paso 4
No: Termina el algoritmo
Los Procesos no marcados son procesos en Deadlock: Proceso 1 y 2
Detección
Algoritmo para detección de deadlock
Ejemplo
IPN, ESCOM, José David Ortega Pacheco 127
2.6 Problemas clásicos de la comunicación entre procesos.
1. Abortar todos los procesos en deadlock (lo más común).2. Reiniciar los procesos en deadlock en un punto en donde éste no existía:
Capacidad del sistema para realizar tener un mecanismo de rollback y reinicio.3. Abortar de manera sucesiva un proceso en deadlock hasta evitar el problema.
La selección del proceso a abortar debe realizarse en base al mínimo costo.4. Proporcionar recursos mientras no exista riesgo de deadlock.
Detección
Posibles estrategias de recuperación