Está en la página 1de 48

COMUNICACIONES

INTERPROCESOS, MODELOS,
MENSAJES, DENOMINACIÓN Y
SERVICIO DE NOMBRES
Integrantes:
- Alcantara Ninatanta Luis
-Flores Rodriguez Carlos
-Huamani Almanza Alejandro
-Ponce Graos Jherry
-Valderrama Quino Steven
COMUNICACIONES
INTERPROCESOS

La comunicación interprocesos IPC es una


función básica de los sistemas operativos. Los
procesos pueden comunicarse entre sí a través
de compartir espacios de memoria.
La IPC provee un mecanismo que permite a los
procesos comunicarse y sincronizarse entre sí,
normalmente a través de un sistema de bajo
nivel de paso de mensajes que ofrece la red.
ELEMENTOS BÁSICOS DE UNA API DE
IPC PARA REDES

• Cuando un ordenador tiene soporte de red, ofrece una API que proporciona
los servicios de comunicaciones.
• Dos tipos de operaciones principales al desarrollador.

ENVIAR: (Send) Es una primitiva que invoca el proceso emisor con


el propósito de transmitir datos a un proceso receptor.

RECIBIR:(Recieve) Es una primitiva que invoca el proceso


receptor con el objetivo de aceptar datos de un proceso emisor.
TIPOS DE COMUNICACIÓN

Síncrona

• Quien envía permanece


bloqueado esperando a
que llegue una
respuesta del receptor
antes de realizar
cualquier otro ejercicio.
• Cada operación se
completa cuando el par
envía() recibe() se
completa.
TIPOS DE COMUNICACIÓN

Asíncrona

• Quien envía
continúa con su
ejecución
inmediatamente
después de
enviar el mensaje
al receptor.
TIPOS DE COMUNICACIÓN

Directa Indirecta

• Las primitivas enviar y recibir • Las operaciones de envió y


explicitan el nombre del recepción se realizan atreves
proceso con el que se de la especificación de un
comunican. canal(enlace de comunicación)
• Ejemplo: enviar (A, mensaje) que generalmente tiene un tipo
envía un mensaje al proceso A asociado y sobre el cual solo se
• Es decir se debe especificar cual pueden enviar datos del mismo
va a ser el proceso fuente y cual tipo.
va a ser el proceso Destino.
• Envío: send ( destino,
mensaje).
• Recepción: receive ( fuente,
mensaje).
TIPOS DE COMUNICACIÓN

Simétrica Asimétrica

• Todos los procesos • Un proceso puede


pueden enviar o recibir. enviar, los demás
También llamada procesos solo reciben.
bidireccional para el También llamada
caso de dos procesos. unidireccional. Suele
Es una comunicación usarse para hospedar
equilibrada donde servidores en Internet.
tanto emisor como
receptor reciben la
misma información.
MODELOS DE COMUNICACIÓN

Los procesos están separados lógica y físicamente por lo que se requiere una comunicación entre
ellos para transferir datos y sincronizarse.
Los modelos de comunicación más utilizados en el diseño de sistemas distribuidos son:
• Modelo cliente-servidor
• Modelo multicast
MODELO CLIENTE-SERVIDOR

• El modelo cliente-servidor está orientado a la provisión de servicios.


1° El proceso cliente transmite una petición al proceso servidor.
2° El proceso servidor ejecuta la petición solicitada.
3° El proceso servidor transmite la respuesta al cliente.
MODELO MULTICAST

El modelo de comunicación multicast


consiste en el envío de un mismo
mensaje desde un origen a un grupo de
nodos de destino.
Aplicaciones:
• Búsqueda de un objeto o recurso
• Tolerancia a fallos
• Actualizaciones
MECANISMO DE COMUNICACIÓN

MEMORIA COMPARTIDA PASO DE MENSAJES


MEMORIA COMPARTIDA

La memoria compartida es la
memoria a la que pueden acceder
simultáneamente varios procesos.
MEMORIA COMPARTIDA

• La región de memoria compartida se conoce como búfer.


• Hay 2 tipos de búfer.
• Búfer limitado: El búfer limitado tiene un límite de tamaño.
• Búfer no limitado: No hay límite de tamaño en este tipo de
búfer.
MEMORIA COMPARTIDA

• Ventajas
Más rápido que el modelo de paso de mensajes.
El kernel no está involucrado.
• Desventajas
Sobreescritura de memoria.
Problemas de sincronización.
PASO DE MENSAJES

Como alternativa al modelo de memoria compartida, se define el modelo de paso de


mensajes:
• Los procesos no comparten memoria (variables, objetos, etc.)
• La comunicación se hace mediante operaciones explícitas de envío y recepción.
PASO DE MENSAJES

MODALIDADES DE ENVIO Y RECEPCION


• Envío con buffer / envío síncrono
• Un buffer almacena una copia temporal del mensaje
• El send con buffer finaliza cuando el mensaje se ah copiado de memoria del programa a un buffer del
sistema.
• El send síncrono no finaliza hasta q se inicia el recv correspondiente en el otro proceso
OPERACIONES BLOQUEANTES / NO BLOQUEANTES
• A finalizar la llamada a send bloqueante es seguro modificar el buffer de envío
• A finalizar la llamada a recv bloqueante se garantiza que el buffer contiene el mensaje
• Las no bloqueantes simplemente inician la operación
PASO DE MENSAJES

FINALIZACION DE LA OPERACION
• En las operaciones no bloqueantes hay que poder determinar la finalización
• En el recv para poder leer el mensaje
• En el send para poder sobrescribir la variable
El send y recv no bloqueantes renos dan un numero de operación req
Primitivas:
• wait(req): Se bloquea hasta que haya terminad la operación req
• test(req): Indica si ah finalizado o no
• waitany y waitall: Cuando hay varias operaciones pendientes.
PASO DE MENSAJES

SELECCIÓN DE MENSAJES
• La operación recv requiere un identificador de proceso id
• No concluye hasta que llega un mensaje de id
• Se ignoran los mensajes procedentes de otros procesos
Para mas flexibilidad, se permite usar un ‘comodín’ para recibir de cualquier proceso

Además se usa una etiqueta(tag) para distinguir entre mensajes


• También permite comodín para indicar cualquier etiqueta
PASO DE MENSAJES

PROBLEMA DE INTERBLOQUEO
Un mal uso de send y recev puede producir interbloqueo
Caso de comunicación síncrona:

/* Proceso 0 */ /* Proceso 1 */
send(x,1); send(y,0);
recv(y,1); recv(x,0);

• Ambos quedan bloqueados en el envío


Caso de comunicación por un buffer:

/* Proceso 0 */ /* Proceso 1 */
recv(y,1); recv(x,0);
send(x,1); send(y,0);
PASO DE MENSAJES

PROBLEMA DE SERIALIZACION
Cada proceso tiene que enviar un dato a su vecino derecho

/* Proceso i */
recv(y, i-1);
send(x, i+1);

/* Proceso i */
send(x, i+1);
recv(y, i-1);

Posibles soluciones:
• Protocolo pares-impares: Los procesos pares hacen una variante, los imapres la otra
• send y recv no bloquante
• Operaciones combinadas: sendrecv
PASO DE MENSAJES

COMUNICACIÓN COLECTIVA
Las operaciones colectivas involucran a todos los procesos de un comunicador (en muchos casos, uno de
ellos tiene un papel destacado – proceso raíz)
• Sincronización (barrier): cada persona espera a que todos lleguen
• Movimiento de datos: Uno o varios envían a uno o varios
• Reducciones: además de comunicar se realiza un calculo sobre los datos
Estas operaciones pueden realizarse con comunicación punto a punto, pero es recomendable usar la
primitiva correspondiente
• Existen varios algoritmos para cada caso (lineal, árbol)
• La solución optima suele depender de la arquitectura (topología de la red)
DENOMINACIÓN
DEFINICIÓN

La denominación, o gestión de nombres, es la correspondencia entre


objetos lógicos y físicos. Normalmente el usuario se refiere a un fichero
por un nombre textual, el cual posteriormente se traduce a un
identificador numérico que acaba refiriéndose a bloques de un disco. Esta
correspondencia entre los dos niveles proporciona a los usuarios una
abstracción de cómo y dónde están realmente almacenados los datos.
CAPACIDAD Y ESTRUCTURA DEL
ESQUEMA DE NOMBRES

El Espacio de Nombres puede tener una capacidad


Limitada o Infinita. El actual espacio de las direcciones de
Internet es un ejemplo de capacidad limitada.
No se debe confundir la capacidad de nombres con la
capacidad de identificadores de dirección
CAPACIDAD Y ESTRUCTURA DEL
ESQUEMA DE NOMBRES

ESTRUCTURA

PLANA JERARQUICA
• NotasDiaEuiUpmEs • dia.eui.upm.es/notas.html
DENOMINACIÓN

NOMBRE Servidor IDENTIFICADOR DE


Pepe@eui.upm.es de COMUNICACIÓN
nombres 138.100.56.67 + puerto
DENOMINACIÓN
DENOMINACIÓN

SE DEBE PERSEGUIR

TRANSPARENCIA DE INDEPENDENCIA DE
UBICACIÓN UBICACIÓN
DENOMINACIÓN

TIPOS DE NOMBRES

PUROS IMPUROS

Sin interpretación Tiene información


salvo para la S. N. explicita.
DENOMINACIÓN

Control de acceso: El servidor de nombres debe


comprobar la identidad del cliente antes de proporcionar el
id.
SERVICIO DE NOMBRES
INTRODUCCION
Se utilizan para compartir
recursos, para identificar
entidades de manera única, para
hacer referencia a ubicaciones, y
más
INTRODUCCION

DNI:******** DIR:158.42.4.2
NOMBRE:JUAN PEREZ NOMBRE:www.upv.es
DEFINICIÓN
Servicio de
Nombres
¿Qué es un servicio de nombres?

Los nombres se usan para hacer


referencia a los recursos. Un
ejemplo de nombre es una URL
para acceder a una página web.
NOMBRES, DIRECCIONES Y ATRIBUTOS

Nombre Direccion Atributos


UNIFORM RESOURCE IDENTIFIERS
(URI) ofrece una solución general para cualquier tipo de recurso. Hay dos clases especiales:

URL: Uniform Resource


Locator

✓ Tipificado por el protocolo (http, ftp, nfs, etc.)


✓ Parte del nombre es un servicio específico
✓ Los recursos no se pueden mover entre dominios.

URN: Uniform Resource Name

Estructura:
urn:<nid>:<nss></nss></nid>
ESTRUCTURA URN

Estructura:

urn:<nid>:<nss></nss></nid>

Nid: namespace identifier

Nss: namespace-specific string

urn:nbn:de:101:1-2019072802401757702913
SISTEMA DE NOMBRES DE DOMINIO

01 Sintaxis para los Nombres

02 Base de datos Distribuida

03 Protocolo de Nivel de Aplicacion


EJEMPLO1
EJEMPLO 2
RESOLUCIÓN DE NOMBRES
RESOLUCIÓN DE NOMBRES
RESOLUCIÓN DE NOMBRES
RESOLUCIÓN DE NOMBRES
RESOLUCIÓN DE NOMBRES
BIBLIOGRAFÍA

• Coulouris, G . (2001) Sistemas distribuidos : conceptos y diseño ; Editorial


Alfaomega
• Tanembaum, A (2008) Sistemas distribuidos : principios y paradigmas; 2
Edision Pearson
• Lozada, J. (2014), Servidores de Nombre - DNS Disponible en:
http://www.eslared.org.ve/walcs/8vaeslared/download/track2/DNS
• Sistemas Distribuidos (2016), Sistemas de Archivos. Disponible en: https:
http://www.sc.ehu.es/acwlaroa/SDI/Apuntes/Cap5.pdf
• Pacheco, C. (2018), Sistemas distribuidos (NOMBRES, IDENTIFICADORES Y
DIRECCIONES ). Disponible en:
https://www.youtube.com/watch?v=XH92T8j6vv

También podría gustarte