Documentos de Académico
Documentos de Profesional
Documentos de Cultura
'Tema 6
'Tema 6
Tema 6: Concurrencia de
Procesos
1
Índice:
1. Cooperación de procesos
Tema 6: Concurrencia de Procesos
multiprogramado:
Competencia (procesos independientes)
Cooperación
Procesos que cooperan:
Colaboran en la consecución de algún fin
Comparten recursos
Tipos de recursos:
Consumibles (un solo uso)
Reutilizables en serie
4
1. Cooperación de Procesos
Formas de acceso a los recursos compartidos:
Tema 6: Concurrencia de Procesos
Concurrencia
• Acceso simultáneo directo al recurso
Sincronización
• Uso de mecanismos de coordinación para ordenar acceso
Comunicación
• Sólo un proceso accede directamente a recurso
• Demás procesos le envían peticiones (cliente/servidor)
5
Índice:
1. Cooperación de procesos
Tema 6: Concurrencia de Procesos
… …
tabla
tabla[i]= e1; tabla[i]= e2;
e2
e1 0
i= i+1; i= i+1;
1
i=0
i=1
i=2 ...
...
2
3
7
1. Concurrencia y Sección Crítica
P1 P2
…<protocolo de entrada> …<protocolo de entrada>
tabla
tabla[i]= e1; tabla[i]= e2;
0
i= i+1; i= i+1;
<protocolo de salida>
... 1
i=0 <protocolo de salida>
...
2
3
8
1. Concurrencia y Sección Crítica
Requisitos de la exclusión mutua:
Tema 6: Concurrencia de Procesos
Control Optimista:
No se fuerza exclusión mutua → pueden darse
condiciones de carrera!!
Si se dan las condiciones de carrera, se detecta y se
solucionan.
Protocolo de entrada típico: salvar estado
Protocolo de salida típico:
• Comprobar de ha habido condición de carrera
• En caso afirmativo, restaurar estado y repetir
11
3. Control Pesimista y Optimista de la Conc.
Control Pesimista:
Tema 6: Concurrencia de Procesos
Ventajas:
• Siempre es viable
Inconvenientes:
• Fuerza esperas (posiblemente innecesarias)
• Algunos métodos pueden ser muy drásticos
Control Optimista:
Ventajas:
• Mayor grado de paralelismo
Inconvenientes:
• Será posible o no en función de la naturaleza del recurso
• Si hay muchos procesos concurrentes, el nº de conflictos
puede aumentar y por tanto el nº de repeticiones
12
3. Control Pesimista y Optimista de la Conc.
¿Control Pesimista u Optimista? Depende de…
Tema 6: Concurrencia de Procesos
13
Índice:
1. Cooperación de procesos
Tema 6: Concurrencia de Procesos
crítica
Posibilidades:
Desactivar interrupciones
Uso exclusivo del procesador
15
4. Métodos basados en impedir la conmut.
Desactivar Interrupciones
Tema 6: Concurrencia de Procesos
Inconvenientes:
Posibilidad condición de carrera con rutinas de
interrupción
Tampoco es adecuado para multiprocesadores
¡Cuidado en sistemas con organización micronúcleo!
17
Índice:
1. Cooperación de procesos
Tema 6: Concurrencia de Procesos
¡Fallo!
No hay atomicidad entre comprobación y cierre
20
5. Métodos de espera ocupada
Alternancia Estricta
Tema 6: Concurrencia de Procesos
¡Funciona!
Más restrictivo que cerrojos: un proceso nunca se da
paso a sí mismo.
21
5. Métodos de espera ocupada
Alternancia Estricta
Tema 6: Concurrencia de Procesos
Ventajas:
Sencillez
Aplicable en muchos contextos
Inconvenientes:
¡Obliga a que alternancia sea estricta!
Esto atenta contra requisito 3 exclusión mutua:
22
5. Métodos de espera ocupada
Algoritmo de Dekker
Tema 6: Concurrencia de Procesos
Coordina a N procesos
Cuando más de un proceso interesado en recurso:
Ordena el acceso por turnos
Una etapa de espera por cada proceso interesado
prot_entrada: TS cerrojo
BNF prot_entrada
RETN
28
5. Métodos de espera ocupada
Instrucciones especiales: Comparar e Intercambiar (CS)
Tema 6: Concurrencia de Procesos
Sí No
¿previo=global? MOVE previo,global
calculo: ….
….
CS previo, nuevo, global
actualizar ccr actualizar ccr
BNEQ calculo
global←nuevo previo←global
29
Índice:
1. Cooperación de procesos
Tema 6: Concurrencia de Procesos
Procesadores dedicados
Sistemas monoprogramados
En el núcleo del SO, si se puede garantizar que tiempo
de espera es suficientemente inferior a tiempo de
conmutación
Si se coordinan procesos
Prioridad(P2) con diferentes prioridades:
> Prioridad(P1)
P1 P2
: :
cerrojo=1
cerrojo=0
while(cerrojo); while(cerrojo);
cerrojo=1; cerrojo=1;
: :
: :
: :
cerrojo=0; cerrojo=0;
: :
31