Comsin

Páginas: 22 (5260 palabras) Publicado: 7 de noviembre de 2015
Comunicación y
sincronización entre procesos
María de los Santos Pérez
Hernández
mperez@fi.upm.es

Índice








Procesos concurrentes.
El problema de la sección crítica.
Problemas clásicos de comunicación y
sincronización.
Mecanismos de comunicación y
sincronización.
Interbloqueos.

mperez@fi.upm.es

2

Referencias bibliográficas






“Sistemas Operativos: una visión aplicada”
JesúsCarretero et al.
McGraw Hill, 2001
“Sistemas Operativos” Willian Stalling
Willian Stalling
Prentice Hall, 1997
“Operating System Concepts”
A. Silberschatz, P. Galvin
Addison-Wesley, 1998
mperez@fi.upm.es

3

Procesos concurrentes (I)


Modelos






Multiprogramación en un único procesador
Multiprocesador
Multicomputador (proceso distribuido)

Razones






Compartir recursos físicosCompartir recursos lógicos
Acelerar los cálculos
Modularidad
Comodidad

mperez@fi.upm.es

4

Procesos concurrentes (II)


Tipos de procesos





Independientes
Cooperantes

Interacción entre procesos



Compiten por recursos
Comparten recursos

mperez@fi.upm.es

5



Problema de la interacción
entre procesos (procesos
Calcula
la suma de los N primeros
ligeros)
Si varios procesos
númerosutilizando procesos ligeros.


int suma_total = 0;
void suma_parcial(int ni, int nf)
{
int j = 0;
int suma_parcial = 0;
for (j = ni; j <= nf; j++)
suma_parcial = suma_parcial +j;
suma_total = suma_total +
pthread_exit(0);
}

suma_parcial; 

ejecutan
concurrentemente
este código se
puede obtener un
resultado
incorrecto.
Solución:
secciones críticas

mperez@fi.upm.es

6

Ejemplo con sección crítica(procesos ligeros)
void suma_parcial(int ni, int nf)
{
int j = 0;
int suma_parcial = 0;
for (j = ni; j <= nf; j++)
suma_parcial = suma_parcial + j;
Entrada en la sección crítica
suma_total = suma_total+
suma_parcial;
Salida de la sección crítica



Requisitos para
ofrecer secciones
críticas:




Exclusión mutua
Progreso
Espera limitada

pthread_exit(0);
}

mperez@fi.upm.es

7

Problema de lainteracción
entre procesos
void ingresar(char *cuenta,
int cantidad)
{
int saldo, fd;
fd = open(cuenta, O_RDWR);
read(fd, &saldo,sizeof(int));
saldo = saldo + cantidad;
lseek(fd, 0, SEEK_SET);
write(fd, &saldo,sizeof(int));
close(fd);
return;



Si dos procesos
ejecutan
concurrentemente
este código se
puede perder algún
ingreso.



Solución:
secciones críticas

}

mperez@fi.upm.es

8

Ejemplocon sección crítica
void ingresar(char *cuenta,
int cantidad)
{
int saldo, fd;



fd = open(cuenta, O_RDWR);
Entrada en la sección crítica
read(fd,
&saldo, sizeof(int));
saldo = saldo + cantidad;
lseek(fd, 0, SEEK_SET);
write(fd, &saldo, sizeof(int));
Salida de la sección crítica

Requisitos para
ofrecer secciones
críticas:




Exclusión mutua
Progreso
Espera limitada

close(fd);
return;
}mperez@fi.upm.es

9

Mecanismos de comunicación







Ficheros
Pipes
FIFOS
Variables en memoria compartida
Paso de mensajes
Sockets

mperez@fi.upm.es

10

Mecanismos de
Sincronización




Construcciones de los lenguajes concurrentes
(procesos ligeros)
Servicios del sistema operativo:









Señales (asincronismo)
Pipes
FIFOS
Semáforos
Mutex y variables condicionales
Paso demensajes

Las operaciones de sincronización deben ser
atómicas
mperez@fi.upm.es

11



Características de los
mecanismos de
comunicación

Identificación


Mecanismos de nombrado








Sin nombre
Con nombre local
Con nombre de red








Identificador propio
Descriptor de fichero





Unidireccional
Bidireccional

Buffering


Identificador interno


Flujo de datos

Sin buffering
Conbuffering

Sincronización



Síncrono (bloqueante)
Asíncrono (no
bloqueante)

mperez@fi.upm.es

12

Problemas clásicos de
comunicación y
sincronización
• Productor-consumidor: • Lectores-escritores:
P ro c e s o
C o n s u m id o r

P ro c e s o
P ro d u c to r

L e c to r

L e c to r

E s c r ito r

L e c to r

E s c r ito r

F l u jo d e
d a to s

M e c a n is m o d e
c o m u n ic a c ió n

R...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Acta Para La Integracin De La Comsin Mixta Para El Reparto De Utilidades

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS