PDF de programación - Tema 4. IPC: Comunicación entre Procesos - Sistemas Operativos II

Imágen de pdf Tema 4. IPC: Comunicación entre Procesos - Sistemas Operativos II

Tema 4. IPC: Comunicación entre Procesos - Sistemas Operativos IIgráfica de visualizaciones

Publicado el 19 de Diciembre del 2018
1.276 visualizaciones desde el 19 de Diciembre del 2018
416,6 KB
30 paginas
Creado hace 15a (02/12/2008)
SISTEMAS OPERATIVOS II

TEMA 4. IPC: Comunicación entre Procesos

Área de Arquitectura y Tecnología de Computadores

Escuela Universitaria Politécnica de Teruel

http://????.????.es/SOII/

IPC: Comunicación entre Procesos

Introducción

Mecanismos de IPC en Unix

Programación Cliente / Servidor en C mediante sockets

Programación Cliente / Servidor en C mediante RPC

1

3

IPC: Comunicación entre Procesos

Objetivos:

Entender el concepto de Comunicación Entre

Procesos: IPC

Conocer y entender los principales mecanismos

de IPC en Unix basados en un SPM:

Sockets

Llamadas a procedimientos remotos: RPC

Introducción

IPC: “Interprocess Communication”

Dos tipos de comunicación:

Basada en variables compartidas

Requiere que el usuario introduzca código para gestionar los

buffers de comunicación

Inconveniente: Los procesos deben residir en la misma máquina

Basada en el paso de mensajes

Permite comunicar procesos sin recurrir a variables compartidas

Ventaja: Los procesos pueden residir en diferentes máquinas

2

4

Introducción

IPC: “Interprocess Communication”

El IPC proporciona un mecanismo que permite la

comunicación y sincronización entre procesos mediante el
paso de mensajes

Estructura básica del IPC:

Operación send(mensaje)

Operación receive(mensaje)

Nota: Los mensajes pueden ser de longitud fija o variable

Introducción

Ejemplo de IPC:

El problema del Productor/Consumidor

Proceso productor

Proceso consumidor

produce item en var nextp

receive(productor, nextc);

send(consumidor, nextp);

consume item en var nextc

repeat
. . .

. . .

. . .

until false;

repeat
. . .

. . .

. . .

until false;

Introducción

IPC: “Interprocess Communication”

Proceso de comunicación:

Establecer el enlace de comunicación o link

Realización física: memoria compartida, bus, red, etc.

Realización lógica

Intercambiar mensajes vía operaciones send / receive

6

Introducción

Cuestiones para la realización de un mecanismo

de IPC:

¿Cómo se establecen los enlaces de comunicación?

¿Puede un enlace de comunicación estar asociado a más de

dos procesos?

¿Cuántos enlaces de comunicación puede haber entre dos

procesos?

¿Qué capacidad tiene el enlace de comunicación?

¿Cuál es el tamaño del mensaje?, ¿mensajes de tamaño fijo

o mensajes de tamaño variable?

¿El enlace de comunicación es “uni-” o “bi-” direccional?

8

5

7

Introducción

Introducción

Características de los enlaces de comunicación:

IPC: Comunicación directa

Comunicación directa o indirecta
Comunicación simétrica o asimétrica
Especificación de los buffers de comunicación explícita o

automática

Características de las operaciones send / receive:

Operación receive:

Bloqueadora / NO Bloqueadora

Operación send

Bloqueadora / NO Bloqueadora
Por copia o por referencia

Introducción

Ejemplo de IPC: Comunicación directa

El problema del Productor/Consumidor

(Simetría de direccionamiento)

Proceso productor

Proceso consumidor

repeat
. . .

. . .

. . .

until false;

produce item en var nextp

send(consumidor, nextp);

receive(productor, nextc);

consume item en var nextc

repeat
. . .

. . .

. . .

until false;

9

11

Los procesos deben especificar el nombre del proceso con el

que se quieren comunicar
send(P, mensaje); enviar mensaje a P
receive(Q, mensaje); recibe mensaje de Q

Propiedades del enlace:

Los enlaces de comunicación se establecen automáticamente,

conociendo las identidades

Un enlace de comunicación está asociado exactamente con dos

procesos

Entre dos procesos sólo existe un enlace de comunicación
El enlace de comunicación puede ser uni-direccional, aunque

normalmente es bi-direccional

10

Introducción

Ejemplo de IPC: Comunicación directa

El problema del Productor/Consumidor

(Asimetría de direccionamiento)

Proceso productor

Proceso consumidor

repeat
. . .

. . .

. . .

until false;

produce item en var nextp

send(consumidor, nextp);

receive(identificador, nextc);

consume item en var nextc

repeat
. . .

. . .

. . .

until false;

12

Introducción

IPC: Comunicación indirecta

Los mensajes son enviados y recibidos a través de mailboxes

o puertos
Def.- Un mailbox es un objeto abstracto donde los procesos

depositan y extraen mensajes

Cada mailbox tiene un identificador único

Dos procesos pueden comunicarse sólo si comparten un

mailbox

Primitivas para la comunicación:

send(A, mensaje); enviar mensaje al mailbox A
receive(A, mensaje); recibe mensaje del mailbox A
Crear / Destruir un mailbox

Introducción

IPC: Comunicación indirecta

Propiedades del enlace de comunicación:

Los enlaces de comunicación se establecen solamente si los

dos procesos comparten un mailbox

Un enlace de comunicación puede estar asociado con muchos

procesos

Cada pareja de procesos puede compartir varios enlaces de

comunicación

El enlace de comunicación puede ser uni-direccional o

bi-direccional

13

14

Introducción

Introducción

IPC: Comunicación indirecta

“El problema de compartir los enlaces de comunicación”

P1, P2 y P3 comparten el mailbox A
P1 realiza una operación send a A
P2 y P3 realizan una operación receive de A

¿Quién obtiene el mensaje?

Soluciones:

Permitir que un enlace de comunicación esté asociado como

máximo con dos procesos

Permitir que como máximo un proceso ejecute una operación

receive

Permitir al sistema seleccionar arbitrariamente qué proceso recibirá

el mensaje: P2 o P3 pero no ambos

IPC: El enlace de comunicación

Def.- Capacidad de un enlace de comunicación es el
número de mensajes que puede contener temporalmente

El Buffering se puede ver como una cola de mensajes

asociada al enlace de comunicación:
Con capacidad 0

Los procesos deben sincronizarse para que la transferencia tenga

lugar: randezvous – comunicación síncrona

Con capacidad limitada: longitud máxima = n

Relación Productor / Consumidor: el proceso que envía, si el enlace

está lleno, debe esperar

Con capacidad ilimitada: longitud máxima = ∞

El proceso que envía nunca debe esperar

16

Introducción

IPC: El enlace de comunicación. Problemas
En enlaces de comunicación con capacidad no-nula:

El proceso que envía no sabe cuando ha sido leído su mensaje:

comunicación asíncrona

Cuando ocurre un fallo debe entrar en acción un recuperador

de errores: “exception condition handling”

Condiciones de excepción relacionadas con mensajes:

Terminación de procesos

Algunos mensajes nunca serán recibidos

Algunos procesos quedarán a la espera de mensajes que nunca

llegarán

IPC en Unix: sockets

La familia de protocolos TCP/IP
Nivel de red: IP
Nivel de transporte: UDP y TCP
La abstracción socket: interfaz con TCP/IP
Sockets: Llamadas al sistema
Sockets: Funciones interesantes
Obtener información de la máquina
Obtener información de la red
Obtener información de los protocolos
Otras funciones

17

19

Introducción

IPC: El enlace de comunicación. Problemas

Pérdida/Corrupción de mensajes

Detección de la pérdida de mensajes:

"time out"

códigos de error

Técnicas de retransmisión

Técnicas de notificación

18

20

IPC en Unix: sockets

La familia de protocolos TCP/IP

Internet es una red que ha sido diseñada sin respetar el

modelo OSI

La familia de protocolos TCP/IP fue creada a finales de los

60. El modelo OSI todavía no se había definido

Niveles OSI:

1.- Nivel Físico
2.- Nivel de Enlace
3.- Nivel de Red
4.- Nivel de Transporte
5.- Nivel de Sesión
6.- Nivel de Presentación
7.- Nivel de Aplicación

IPC en Unix: sockets

La familia de protocolos TCP/IP: Niveles de la

familia TCP/IP (Internet)

Data Link Layer: niveles 1, 2 de OSI

Internet Protocol (IP): nivel 3 de OSI

Transmisión Control Protocol (TCP) y User Datagram

Protocol (UDP): nivel 4 de OSI

IPC en Unix: sockets

La familia de protocolos TCP/IP:

Proceso de

usuario

Proceso de

usuario

TCP

UDP

OSI
Niveles 5-7

OSI
Nivel 4

ICMP

IP

ARP

RARP

OSI
Nivel 3

Servicios de usuario ofrecidos por la familia TCP/IP : niveles

5 - 7 de OSI
Transferencia de ficheros TCP (FTP)
Correo electrónico (SMTP)
Conexión remota (TELNET)

21

Interfaz
hardware

OSI
Niveles 1-2

22

IPC en Unix: sockets

IPC en Unix: sockets

La familia de protocolos TCP/IP: Lista de acrónimos

Nivel de red: IP

ICMP: Internet Control Message Protocol

ARP: Address Resolution Protocol

Mapeo de la @ Internet en la @ hardware

RARP: Reverse Address Resolution Protocol

Mapeo de la @ hardware en la @ Internet

Notar que ARP y RARP se usan para buscar la @ Internet

dada la @ hardware y viceversa

23

El protocolo IP de nivel de red nos proporciona un servicio sin

conexión NO seguro

Servicio sin conexión

@origen



servicio postal
@destino

Los mensajes pueden recibirse en orden distinto al orden de

envío

Servicio NO seguro:

No garantiza la lle
  • Links de descarga
http://lwp-l.com/pdf14611

Comentarios de: Tema 4. IPC: Comunicación entre Procesos - Sistemas Operativos II (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