PDF de programación - Concurrencia de Procesos: Exclusión Mutua y Sincronización

Imágen de pdf Concurrencia de Procesos: Exclusión Mutua y Sincronización

Concurrencia de Procesos: Exclusión Mutua y Sincronizacióngráfica de visualizaciones

Publicado el 14 de Enero del 2019
1.050 visualizaciones desde el 14 de Enero del 2019
1,7 MB
81 paginas
Creado hace 10a (25/02/2014)
Sistemas Operativos

Concurrencia de Procesos: Exclusión Mutua y Sincronización

Eloy Anguiano Rey

[email protected]

Rosa M. Carro

[email protected]

Ana González

[email protected]

Escuela Politécnica Superior

Universidad Autónoma de Madrid

Concurrencia de

Procesos:

Exclusión Mutua y

Sincronización

Introducción

Memoria
compartida en
UNIX

Sincronización

Exclusión mutua

Soluciones
software

Soluciones
hardware

Semáforos

Monitores

Mensajes

Introducción
Elementos a tener en cuenta

Afecta a ..

... la comunicación entre procesos.

... la compartición y competencia por los recursos.

... la sincronización de la ejecución de varios procesos.

... la asignación del tiempo de procesador a los procesos.

Presente en ...

... la ejecución de múltiples aplicaciones:

Multiprogramación

... las aplicaciones estructuradas:

Algunas aplicaciones pueden implementarse eficazmente como un conjunto de
procesos concurrentes.

... la estructura del sistema operativo:

Algunos sistemas operativos están implementados como un conjunto de
procesos o hilos.

Concurrencia de

Procesos:

Exclusión Mutua y

Sincronización

Introducción
Elementos a tener en
cuenta
Términos clave
Dificultades
Ejemplos de
problemas

Memoria
compartida en
UNIX

Sincronización

Exclusión mutua

Soluciones
software

Soluciones
hardware

Semáforos

Monitores

Introducción
Términos clave

Concurrencia de

Procesos:

Exclusión Mutua y

Sincronización

Introducción
Elementos a tener en
cuenta
Términos clave
Dificultades
Ejemplos de
problemas

Memoria
compartida en
UNIX

Sincronización

Exclusión mutua

Soluciones
software

Soluciones
hardware

Semáforos

Monitores

Sincronización: Los procesos coordinan sus actividades

Sección crítica: Región de código que sólo puede ser accedida por un proceso

simultáneamente (variables compartidas).

Exclusión mutua: Sólo un proceso puede estar en sección crítica accediendo a

recursos compartidos

Interbloqueo: Varios procesos, todos tienen algo que otros esperan, y a su vez

esperan algo de los otros.

Círculo vicioso: Procesos cambian continuamente de estado como respuesta a

cambios en otros procesos, sin que sea útil (ej: liberar recurso)

Condición de carrera: Varios hilos/procesos leen y escriben dato compartido. El

resultado final depende de coordinación.

Inanición: Proceso que está listo nunca se elige para ejecución

Introducción
Dificultades con la concurrencia

La ejecución intercalada de procesos mejora rendimiento, pero ... la velocidad
relativa de los procesos no puede predecirse puesto que depende de:

Actividades de otros procesos
Forma de tratar interrupciones
Políticas de planificación

Pero esto implica que surgen dificultades
Ejemplo

Hora Mi compañera

Yo

Sale hacia la tienda
Entra en la tienda
Compra leche
Sale de la tienda
Llega a casa y guarda la leche

3:00 Mira en la nevera No hay leche
3:05
3:10
3:15
3:20
3:25
3:30
3:35

Miro en la nevera No hay leche
Salgo hacia la tienda
Entro en la tienda
Compro leche
Salgo de la tienda
Llego a casa y guarda la leche OH OH!!!

Concurrencia de

Procesos:

Exclusión Mutua y

Sincronización

Introducción
Elementos a tener en
cuenta
Términos clave
Dificultades
Ejemplos de
problemas

Memoria
compartida en
UNIX

Sincronización

Exclusión mutua

Soluciones
software

Soluciones
hardware

Semáforos

Monitores

Introducción
Dificultades con la concurrencia

La imprevisibilidad de la velocidad relativa de los procesos implica que es
difícil ...

... compartir recursos. Ej: orden de lecturas y escrituras.

... gestionar la asignación óptima de recursos. Ej: recursos asignados a un
proceso y éste se bloquea, ¿recurso bloqueado? ⇒ posible interbloqueo
... detectar errores de programación (resultados no deterministas, no
reproducibles)

Concurrencia de

Procesos:

Exclusión Mutua y

Sincronización

Introducción
Elementos a tener en
cuenta
Términos clave
Dificultades
Ejemplos de
problemas

Memoria
compartida en
UNIX

Sincronización

Exclusión mutua

Soluciones
software

Soluciones
hardware

Semáforos

Monitores

Introducción
Ejemplos de problemas

Supóngase que se lanzan dos procesos idénticos con la siguiente estructura:

1
2
3
4
5
6

void echo()
{

ent = getchar();
sal = ent;
putchar(sal);

}

Cuando se ejecutan los dos simultáneamente la ejecución puede ser la
siguiente:

1
2
3
4
5
6

...
ent = getchar();
...
...
sal = ent;
putchar(sal);

1
2
3
4
5
6
7

...
...
ent = getchar();
sal = ent;
...
...
putchar(sal);

Concurrencia de

Procesos:

Exclusión Mutua y

Sincronización

Introducción
Elementos a tener en
cuenta
Términos clave
Dificultades
Ejemplos de
problemas

Memoria
compartida en
UNIX

Sincronización

Exclusión mutua

Soluciones
software

Soluciones
hardware

Semáforos

Monitores

Introducción
Ejemplos de problemas

Concurrencia de

Procesos:

Exclusión Mutua y

Sincronización

Introducción
Elementos a tener en
cuenta
Términos clave
Dificultades
Ejemplos de
problemas

Memoria
compartida en
UNIX

Sincronización

Exclusión mutua

Soluciones
software

Soluciones
hardware

Semáforos

Monitores

Supóngase la ejecución de estos dos procesos con variables compartidas
Proceso A

Proceso B

1
2
3

for(i=1 to 5) do {
}

x=x+1;

1
2
3

for(j=1 to 5) do {
}

x=x+1;

con las siguientes condiciones:

Valor inicial x=0.

Se comparten todas las variables.
La operación de incremento se realiza en tres instrucciones atómicas:

1 LD ACC, # (Carga el contenido de una dirección en el ACC).
2 ACC++ (Incrementa el acumulador).
3 SV ACC, # (Almacena el valor del acumulador en una dirección).
Ejercicio: calcula todos los valores posibles de salida para la variable x.

Introducción
Ejemplos de problemas

Caso mínimo

i

1

inst

BCPa

Acc

LD Acc

0

0
0

X

0
0

BCPb

inst

LD Acc

j

1

Concurrencia de

Procesos:

Exclusión Mutua y

Sincronización

Introducción
Elementos a tener en
cuenta
Términos clave
Dificultades
Ejemplos de
problemas

Memoria
compartida en
UNIX

Sincronización

Exclusión mutua

Soluciones
software

Soluciones
hardware

Semáforos

Monitores

Introducción
Ejemplos de problemas

Caso mínimo

i

1

inst

BCPa

Acc

X

BCPb

inst

LD Acc

0
0
0
0
0
0
0
0
0
0
0
0
Acc++ 0

0
0
1
1
1
2
2
2
3
3
3
4
4
1

0
0
0
1
1
1
2
2
2
3
3
3
4
4

4

LD Acc
Acc++
SV Acc
LD Acc
Acc++
SV Acc
LD Acc
Acc++
SV Acc
LD Acc
Acc++
SV Acc

j

1

2

3

4

Concurrencia de

Procesos:

Exclusión Mutua y

Sincronización

Introducción
Elementos a tener en
cuenta
Términos clave
Dificultades
Ejemplos de
problemas

Memoria
compartida en
UNIX

Sincronización

Exclusión mutua

Soluciones
software

Soluciones
hardware

Semáforos

Monitores

Introducción
Ejemplos de problemas

Caso mínimo

i

1

inst

BCPa

Acc

X

BCPb

inst

LD Acc

0
0
0
0
0
0
0
0
0
0
0
0
Acc++ 0
SV Acc
0

0
0
1
1
1
2
2
2
3
3
3
4
4
1
1

0
0
0
1
1
1
2
2
2
3
3
3
4
4
1

4
4

LD Acc
Acc++
SV Acc
LD Acc
Acc++
SV Acc
LD Acc
Acc++
SV Acc
LD Acc
Acc++
SV Acc

j

1

2

3

4

Concurrencia de

Procesos:

Exclusión Mutua y

Sincronización

Introducción
Elementos a tener en
cuenta
Términos clave
Dificultades
Ejemplos de
problemas

Memoria
compartida en
UNIX

Sincronización

Exclusión mutua

Soluciones
software

Soluciones
hardware

Semáforos

Monitores

Introducción
Ejemplos de problemas

Caso mínimo

i

1

inst

BCPa

Acc

LD Acc

0

0
0

X

0
0

BCPb

inst

LD Acc

j

1

Concurrencia de

Procesos:

Exclusión Mutua y

Sincronización

Introducción
Elementos a tener en
cuenta
Términos clave
Dificultades
Ejemplos de
problemas

Memoria
compartida en
UNIX

Sincronización

Exclusión mutua

Soluciones
software

Soluciones
hardware

Semáforos

Monitores

Introducción
Ejemplos de problemas

Caso mínimo

j

5

i

2

3

4

5

inst

BCPa

Acc

X

BCPb

inst

1
LD Acc
1
Acc++ 1
1
SV Acc
LD Acc
1
Acc++ 1
SV Acc
1
LD Acc
1
Acc++ 1
1
SV Acc
LD Acc
1
Acc++ 1
1
SV Acc

1
1
2
2
2
3
3
3
4
4
4
5
5
2

4
1
1
1
1
1
1
1
1
1
1
1
1

1
1
1
2
2
2
3
3
3
4
4
4
5
5

LD Acc

Acc++

Concurrencia de

Procesos:

Exclusión Mutua y

Sincronización

Introducción
Elementos a tener en
cuenta
Términos clave
Dificultades
Ejemplos de
problemas

Memoria
compartida en
UNIX

Sincronización

Exclusión mutua

Soluciones
software

Soluciones
hardware

Semáforos

Monitores

Introducción
Ejemplos de problemas

Caso mínimo

j

5

i

2

3

4

5

inst

BCPa

Acc

X

BCPb

inst

1
1
LD Acc
Acc++ 1
1
SV Acc
LD Acc
1
Acc++ 1
SV Acc
1
LD Acc
1
Acc++ 1
1
SV Acc
LD Acc
1
Acc++ 1
SV Acc
1

1
1
2
2
2
3
3
3
4
4
4
5
5
2
2

4
1
1
1
1
1
1
1
1
1
1
1
1

1
1
1
2
2
2
3
3
3
4
4
4
5
5
2

X=2

LD Acc

Acc++
SV Acc

Concurrencia de

Procesos:

Exclusión Mutua y

Sincronización

Introducción
Elementos a tener en
cuenta
Términos clave
Dificultades
Ejemplos de
problemas

Memoria
compartida en
UNIX

Sincronización

Exclusión mutua

Soluciones
software

Soluciones
hardware

Semáforos

Monitores

Introducción
Ejemplos de problemas

Caso máximo

i

inst

BCPa

Acc

X

BCPb

inst

0
1
1
1
2
2
2
3
3
3
4
4
4
5
5

0
0
1
1
1
2
2
2
3
3
3
4
4
4
5

LD Acc
Acc++
SV Acc
LD Acc
Acc++
SV Acc
LD Acc
Acc++
SV Acc
LD Acc
Acc++
SV Acc
LD Acc
Acc++
SV Acc

j

1

2

3

4

5

Concurrencia de

Procesos:

Exclusión Mutua y

Sincronización

Introducción
Elementos a tener en
cuenta
Términos clave
Dificultades
Ejemplos de
problemas

Memoria
compartida en
UNIX

Sincronización

Exclusión mutua

Soluciones
software

Soluciones
hardware

Semáforos

Monitores

Introducción
Ejemplos de problemas

Caso máximo

BCPb

inst

j

i

1

2

3

4

5

inst

BCPa

Acc

LD Acc
Acc++
SV Acc
LD Acc
Acc++
SV Acc
LD Acc
Acc++
SV Acc
LD Acc
Acc++
SV Acc
LD Acc
Acc++
SV Acc

5
6
6
6
7
7
7
8
8
8
9
9
9
10
10

X

5
5
6
6
6
7
7
7
8
8
8
9
9
9
10

X=10

Concurrencia de

Procesos:

Exclusión Mutua y

Sincronización

Introducción
Elementos a tener en
cuenta
Términos clave
Dificultades
Ejemplos de
problemas

Memoria
compartida en
UNIX

Sincronización

Exclusión mutua

Soluciones
software

Soluciones
hardwa
  • Links de descarga
http://lwp-l.com/pdf14854

Comentarios de: Concurrencia de Procesos: Exclusión Mutua y Sincronización (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad