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