Sunteți pe pagina 1din 30

Mdulo II.

Tcnicas de Comunicacin En un sistema de un procesador hay memoria compartida para los procesos: comparten semforos, etc La comunicacin en SDs se basa en transferencia de mensajes Procesos coincidan en significado de mensajes: - voltios bit - ltimo bit de mensaje - deteccin y correccin de errores - longitud y forma de representar elementos de datos 2.1 El modelo OSI (Interconexin de sistemas abiertos) Permite la comunicacin de los sistemas abiertos Sistema abierto.- aquel preparado para comunicarse con otro sistema abierto mediante estndares de formato, contenido y significado de los mensajes enviados y recibidos. Protocolo.- formalizacin de las reglas para desarrollarse la comunicacin. Dos tipos de protocolos: 1. Orientados a conexin: antes de intercambio de datos, emisor y receptor establecen una conexin y acuerdan un protocolo 2. Sin conexin: no necesita configuracin previa 1. 2. 3. La comunicacin se divide en siete niveles o capas: 4. Transporte Fsica Enlace 5. Sesin Red 6. Presentacin

7. Aplicacin

Cada capa proporciona una interfaz con la capa por encima de ella Interfaz.- Conjunto de operaciones que definen el servicio de la capa a sus usuarios
Universidad de Guadalajara Depto. de Cs. Computacionales - Sistemas Operativos Avanzados Prof. Luis Alberto Muoz Gmez 1

Cada capa aade un encabezado hacia abajo Cada capa tiene su propio protocolo (temas de discusin y tecnologa) Las decisiones de una capa no afectan a las otras

La capa fsica Transmisin de ceros y unos Estandarizacin de las interfaces elctricas, mecnicas y de sealizacin - Voltios 0 y 1 - Bits por segundo - Si es simultneo - Tamao y forma del conector en la red - Nmero de pines La capa de enlace de datos Deteccin y correccin de errores - Agrupar los bits en unidades (marcos) - Patrn de bits al inicio y final del marco - Suma de verificacin - Aade suma despus del marco - Si error en recepcin, solicita retransmisin

Universidad de Guadalajara Depto. de Cs. Computacionales - Sistemas Operativos Avanzados Prof. Luis Alberto Muoz Gmez

La capa de red Se encarga del ruteo (eleccin de la mejor ruta) - no siempre la ruta ms corta es la mejor - importa el retraso en una ruta dada: trfico y nmero de mensajes en una lnea Ejemplo: dos protocolos X25: orientado a conexin - Solicitud de llamada - Acepta o rechaza - Si acepta, enva identificador de conexin - La red puede escoger la ruta del emisor al receptor (durante la configuracin) IP: sin conexin - paquetes IP (se pueden enviar sin configuracin alguna) - rutas distintas La capa de transporte Proporciona confiabilidad de conexin en la entrega de mensajes - Divide mensajes en paquetes - Nmero secuencial de paquete - Conexiones confiables (por definicin orientado a conexin) construidas por arriba de X.25 o IP; paquetes llegan en orden correcto - Si es sin conexin: Ordena paquetes - No orientado a conexiones: datagrama UDP La capa de sesin Control del dilogo - Registro de quien habla en cierto momento - Sincronizacin; til para permitir a usuarios inserten puntos de verificacin en transferencias grandes La capa de presentacin El significado de los bits - Definicin de formato de registros - Para facilitar comunicacin entre mquinas con distinta representacin interna La capa de aplicacin Coleccin de protocolos para actividades comunes: correo, archivos, terminales remotas, servidor de directorios, etc.

2.2 El Modelo ATM (Modo de Transferencia Asncrona) - ARPANET, predecesor de Internet, 1969, lneas 56Kbps - Finales de 1970, inicio de 80s se reemplaz por T1 a 1.5Mbps - Columna vertebral evolucion a T3 a 45Mbps - Mayora de las lneas de Internet son T1 o menores - Nuevos desarrollos sobre los 155Mbps en extremos con troncales principales de 1Gbps o ms - Efecto enorme en los SDs

Universidad de Guadalajara Depto. de Cs. Computacionales - Sistemas Operativos Avanzados Prof. Luis Alberto Muoz Gmez

Qu es? - Las compaas telefnicas se dieron cuenta que haba ms en telecomunicaciones que transmitir solo voz Dilema encontrado: - trfico de voz es suave, ancho banda bajo y constante - trfico de datos es explosivo, si no hay trfico no necesita, pero gran cantidad de recursos en periodos muy breves - Ni conmutacin de circuitos (telefona) ni de paquetes (Internet) eran adecuadas Se eligi una forma hbrida - bloques de tamao fijo - sobre circuitos virtuales - rendimiento razonable para ambos trficos - estndar internacional - probable juegue papel principal en SDs LAN y WAN En qu consiste? - Emisor establece conexin (circuito virtual) con el (los) receptor(es) - Determinar ruta emisor-receptor guardando informacin de ruteo en conmutadores del camino - Paquetes son separados por el hardware en pequeas unidades de tamao fijo, llamadas celdas - Todas las celdas siguen la misma ruta - Cuando ya no necesita la conexin, se libera y se purga la informacin de ruteo en conmutadores Ventajas sobre conmutacin de circuitos y paquetes: - Utilizar una red para transportar una composicin arbitraria de voces, datos, televisin, videocintas, radio, y otras informaciones - Eficiente - Reemplaza lo que antes eran redes separadas (telfono, X.25, televisin por cable, etc.) Lo que ve la red son celdas - Ahorro en costos y simplificacin - Un cable para toda necesidad de informacin: videoconferencias, BDs remotas, etc. Multitransmisin (una celda, varios destinos: TV) - Conmutacin de circuitos no puede controlarlo - CATV puede, pero no controla trfico puntual sin desperdicio de ancho de banda Rpida conmutacin: despus de una, puede otra de otro paquete Protocolo de jerarquas ATM

La capa fsica Misma funcionalidad que capa 1 de OSI - Envo de flujo de celdas por cable o fibra - Flujo continuo - Sin datos, celdas vacas - En esta capa, ATM es en realidad sncrono, no asncrono - Dentro del circuito virtual es asncrono

Universidad de Guadalajara Depto. de Cs. Computacionales - Sistemas Operativos Avanzados Prof. Luis Alberto Muoz Gmez

La capa ATM Trabajo con celdas y transporte, incluyendo ruteo capa 2 y 3 de OSI sin recuperar celdas daadas La capa de adaptacin Controla la separacin de los paquetes en celdas y su ensamblaje en el otro extremo - No es un servicio perfectamente confiable - Las conexiones de transporte deben implantarse en capas superiores - A 155Mbps una celda llega en 3microseg. - Ninguna CPU puede con 300,000ints/seg - Esta capa controla el ensamblaje de manera que se produzca una interrupcin por paquete y no por celda Conmutacin ATM Redes formadas por cables o fibras pticas y conmutadores - pueden llegar tantas celdas como lneas de entrada

Llega celda, la examina Con la informacin del conmutador cuando se estableci el circuito, la celda va al puerto de salida correcto Entregar celdas en orden Problema que celdas lleguen al mismo tiempo Colas y bloqueos Bloqueo de encabezado: colas de entrada sin permitir paso de celdas a salidas libres

Implicaciones del ATM para SDs - redes a 155Mbps, 622Mbps y potencialmente a 2.5Gbps - efectos ms evidentes en SDs de WAN Ejemplos: - Archivo de 1Mb por EU - Control de flujo - Retraso trascontinental eliminar celdas por congestin conduce a probable retransmisin del paquete servicios de tasa uniforme como msica se nota la pausa aunque redes de alta velocidad introducen nuevas oportunidades ser requiere de buena cantidad de investigacin para saber como trabajar con ellas de manera eficiente

Universidad de Guadalajara Depto. de Cs. Computacionales - Sistemas Operativos Avanzados Prof. Luis Alberto Muoz Gmez

2.3 El Modelo Cliente-Servidor - Redes ATM importantes para futuro - OSI parece bueno pero no lo es; costo excesivo; ver 64K, ATM, LAN Clientes y servidores Para estructurar el SD SO, procesos en cooperacin Usuarios clientes Mismo microncleo Procesos de usuario Protocolos conexin OSI, TCP/IP excesivo Protocolo solicitud respuesta sencillo sin conexin

Cliente: mensaje solicitud para servicio Servidor: datos solicitados o cdigo de error Ventaja: sencillez solicitud-respuesta; no conexin hasta que se necesite Respuesta reconocimiento Ventaja: eficiencia, pila protocolo ms corta Estructura sencilla, reduccin de servicios del microncleo Dos llamadas a sistema: send(dest,&mptr) receive(addr,&mptr)

Universidad de Guadalajara Depto. de Cs. Computacionales - Sistemas Operativos Avanzados Prof. Luis Alberto Muoz Gmez

Universidad de Guadalajara Depto. de Cs. Computacionales - Sistemas Operativos Avanzados Prof. Luis Alberto Muoz Gmez

Universidad de Guadalajara Depto. de Cs. Computacionales - Sistemas Operativos Avanzados Prof. Luis Alberto Muoz Gmez

Direccionamiento Mensajes a mquinas Mensajes machine.process Mensajes machine.local-id Asignar direccin a proceso sin nmero de mquina, asignador centralizado Direccionamiento de procesos con transmisin, elijan id en espacio de 64-bits Bsqueda de direccionamiento por servidor de nombres - Hardware especial, procesos direccin aleatoria, marcos con direcciones de procesos

Primitivas con bloqueo vs sin bloqueo primitivas con bloqueo primitivas sncronas primitivas sin bloqueo primitivas asncronas diseadores de sistemas algunos sistemas con ambas ventajas y desventajas

Universidad de Guadalajara Depto. de Cs. Computacionales - Sistemas Operativos Avanzados Prof. Luis Alberto Muoz Gmez

Sin bloqueo, procesamiento y transmisin traslapados: - copia - interrupcin; disfraz hilo control para un hilo de control: - send bloqueo - send sin bloqueo, copia - send sin bloqueo, interrupcin receive sin bloqueo: - wait - test - conditional_receive - interrupcin + varios hilos + send de intervalo
Universidad de Guadalajara Depto. de Cs. Computacionales - Sistemas Operativos Avanzados Prof. Luis Alberto Muoz Gmez 10

Primitivas almacenadas en buffer vs no almacenadas

No almacenadas: - send antes que receive - procesamiento lento despus de receive - mensajes pendientes o descartados Almacenadas: - primitiva con almacenamiento en buffers, buzn - espera de reconocimiento de transmisin Primitivas confiables vs no confiables - semntica de send no confiable - semntica confiable por reconocimiento de ambos peticin y respuesta - semntica confiable por reconocimiento de respuesta cliente a servidor - mediacin a tiempo de respuesta

Universidad de Guadalajara Depto. de Cs. Computacionales - Sistemas Operativos Avanzados Prof. Luis Alberto Muoz Gmez

11

Implantacin del modelo Cliente-Servidor Elemento Opcin 1 Opcin 2 Direccionamiento Nmero de mquina Direcciones ralas de procesos Bloqueo Primitivas con Sin bloqueo, con bloqueo copia al ncleo Almacenamiento No almacenamiento, Sin almacenamiento, en buffers descartar mensajes mantenimiento inesperados temporal de mensajes inesperados Confiabilidad No confiable SolicitudReconocimientoRespuestaReconocimiento Detalles de implantacin de transferencia de mensajes: - Mensajes en paquetes - Reconocimientos de paquetes o mensajes completos - Tasa de prdidas de la red Protocolo de comunicacin: Cdigo Tipo paquete REQ Solicitud REP Respuesta ACK Reconocimiento AYA Ests vivo? IAA S estoy vivo TA Intenta de nuevo AU Direccin desconocida Opcin 3 Bsqueda de nombres en ASCII por servidor Sin bloqueo, con interrupciones Buzones

Solicitud-RespuestaReconocimiento

De Cliente Servidor Cualquiera Cliente Servidor Servidor Servidor

A Servidor Cliente Otro Servidor Cliente Cliente Cliente

Descripcin Cliente desea servicio Respuesta servidor Paquete anterior llegado Verifica si servidor descompuesto Servidor no descompuesto Servidor sin espacio Ningn proceso usa direccin

Universidad de Guadalajara Depto. de Cs. Computacionales - Sistemas Operativos Avanzados Prof. Luis Alberto Muoz Gmez

12

2.4 Llamadas a Procedimientos Remotos (RPC) El modelo Cliente-Servidor es una forma conveniente de estructurar un sistema operativo distribuido - Pero el paradigma bsico en torno al que se construye es la E/S - La E/S (send() y receive()) no es de lo fundamental en los sistemas centralizados como para que el cmputo distribuido se vea como el centralizado Una RPC consiste en: Permitir que los programadores llamasen a procedimientos localizados en otras mquinas, La informacin se puede transportar de un lado a otro mediante los parmetros y puede regresar en el resultado del procedimiento, El programador no se preocupe de la transferencia de mensajes ni de la E/S. La idea central parece sencilla pero... El procedimiento que realiza la llamada y el receptor utilizan espacios de direcciones distintos Transferencia de parmetros y resultados si las mquinas no son idnticas Se pueden descomponer ambas mquinas

An as estos problemas se pueden enfrentar y RPC es de uso amplio en muchos sistemas operativos distribuidos Operacin bsica de RPC - Diferencia entre parmetros llamados por valor y por referencia - Llamada con copia/restauracin - El mecanismo a utilizar para el paso de parmetros depende del tipo de datos por transferir; esto viene desde el diseo - La idea detrs de RPC es que una llamada a un procedimiento remoto se parezca lo ms posible a una llamada local. - Que la RPC sea transparente: el procedimiento que hace la llamada no debe ser consciente de que el procedimiento llamado se ejecuta en una mquina distinta, o viceversa.

Universidad de Guadalajara Depto. de Cs. Computacionales - Sistemas Operativos Avanzados Prof. Luis Alberto Muoz Gmez

13

En un sistema tradicional (con un procesador): - Colocar llamada a read() en el cdigo - Ligador extrae la rutina read() de la biblioteca y la inserta en el programa objeto. - Es un procedimiento corto, generalmente en ensamblador que coloca parmetros en registros y despus hace una llamada al sistema READ mediante un sealamiento al ncleo. - El procedimiento read() es cierto tipo de interfaz entre el cdigo del usuario y el sistema operativo. - Aunque read() hace un sealamiento al ncleo, se le llama de la manera usual, con parmetros en pila. - El programador no tiene que saber que en read() hay gato encerrado.

Universidad de Guadalajara Depto. de Cs. Computacionales - Sistemas Operativos Avanzados Prof. Luis Alberto Muoz Gmez

14

RPC logra su transparencia de manera anloga: - Si read() es en realidad un procedimiento remoto (en la mquina del servidor de archivos)... - Se coloca en la biblioteca una versin distinta de read(), llamada resguardo del cliente - Como el original, funciona con parmetros en pila - Tambin hace un sealamiento al ncleo - No coloca los parmetros en registros y pide al ncleo los datos - Sino que empaca los parmetros en un mensaje y le pide al ncleo lo enve al servidor - Despus de send(), el resguardo del cliente llama a receive() y se bloquea hasta que recibir la respuesta - Cuando llega el mensaje al servidor, el ncleo lo transfiere a un resguardo del servidor - Por lo general el resguardo ya llam a receive() - El resguardo desempaca los parmetros del mensaje y... - Llama al procedimiento del servidor, de la manera usual (por parmetros) - Desde el punto de vista del servidor, es como si tuviera una llamada directa del cliente: parmetros y direccin de retorno estn todos en la pila

En lo que respecta al cliente, se tiene acceso a los servicios remotos mediante llamadas ordinarias a procedimientos (es decir, locales) y no mediante las llamadas send() y receive().

Universidad de Guadalajara Depto. de Cs. Computacionales - Sistemas Operativos Avanzados Prof. Luis Alberto Muoz Gmez

15

Todo el detalle de la transferencia de mensajes se oculta en los procedimientos de biblioteca, al igual que los detalles de la realizacin de interrupciones a las llamadas al sistema se ocultan en las bibliotecas tradicionales En resumen, una llamada a un procedimiento remoto se realiza mediante los siguientes pasos: 1. El procedimiento cliente llama al resguardo del cliente de la manera usual 2. El resguardo del cliente construye un mensaje y hace un sealamiento al ncleo 3. El ncleo enva el mensaje al ncleo remoto 4. El ncleo remoto proporciona el mensaje al resguardo del servidor 5. El resguardo del servidor desempaca los parmetros y llama al servidor 6. El servidor realiza el trabajo y regresa el resultado al resguardo 7. El resguardo del servidor empaca el resultado en un mensaje y hace un sealamiento al ncleo 8. El ncleo remoto enva el mensaje al ncleo del cliente 9. El ncleo del cliente da el mensaje al resguardo del cliente 10.El resguardo desempaca el resultado y regresa al cliente

Universidad de Guadalajara Depto. de Cs. Computacionales - Sistemas Operativos Avanzados Prof. Luis Alberto Muoz Gmez

16

Transferencia de parmetros La funcin del resguardo del cliente es tomar sus parmetros, empacarlos en un mensaje y enviarlos al servidor - El empacamiento de parmetros en un mensaje se llama ordenamiento de parmetros - sum(i,j) - switch en resguardo servidor - la llamada real del resguardo del servidor se parece mucho a la llamada original del cliente, excepto que los parmetros son variables iniciadas a partir del mensaje recibido, en vez de ser constantes

Si las mquinas cliente y servidor son idnticas y todos los parmetros y resultados son de tipo escalar, como enteros, caracteres o booleanos, este modelo funciona bien En un sistema distribuido de gran tamao es comn tener distintos tipos de mquinas - Cada una tiene su propia representacin de los nmeros, caracteres y otros elementos - Mainframes IBM, cdigo de caracteres EBCDIC - Personales IBM utilizan ASCII - Posible interpretacin incorrecta de caracteres - Representacin de enteros (complemento a 1 o complemento a 2) - Nmeros de punto flotante - Intel 486 numera bytes de derecha a izquierda, little endian - Sun SPARC big endian
Universidad de Guadalajara Depto. de Cs. Computacionales - Sistemas Operativos Avanzados Prof. Luis Alberto Muoz Gmez 17

Se requiere de informacin adicional sobre la representacin de los tipos de datos De forma implcita ya se conoce esta informacin Los elementos del mensaje corresponden al identificador del procedimiento y los parmetros Tanto cliente como servidor conocen los tipos de los parmetros dado ya un acuerdo en los tipos Foobar x Y 5 z[0] z[1] z[2] z[3] z[4] b) el mensaje correspondiente

foobar(x,y,z) char x; float y; int z[5]; { ... }

(a) un procedimiento

- Queda pendiente cmo representar la informacin en los mensajes - Una forma es disear un estndar de red o forma cannica para los tipos y pedir que los emisores conviertan sus representaciones; el problema es que a veces es ineficiente por conversiones innecesarias - Otra opcin es que el cliente utilice su propio formato e indique en el primer byte del mensaje su formato; siempre que todos puedan realizar las conversiones de los formatos de los dems Compilador de resguardos - el origen de los procedimientos de resguardo - dada una especificacin del procedimiento servidor - reglas de codificacin - el formato del mensaje queda determinado de manera nica Transferencia de apuntadores - se transfieren slo con el mximo de dificultad, si se puede
Universidad de Guadalajara Depto. de Cs. Computacionales - Sistemas Operativos Avanzados Prof. Luis Alberto Muoz Gmez 18

- una solucin consiste en olvidarse en general de los apuntadores y los parmetros por referencia; pero estos son tan importantes que no es recomendable - Otra opcin es copiar en el mensaje el arreglo referenciado por el apuntador y enviarlo al servidor, suponiendo que se conoce el tamao del arreglo, efectuando lo que sera una copia/restauracin - Una optimizacin sera que, en base a la especificacin formal del procedimiento remoto, si el parmetro por referencia es de entrada o salida del servidor, eliminara as una de las copias - A partir de esta especificacin formal se generan los resguardos, mediante un compilador especial de resguardos - Algunos sistemas implementan el caso ms general del apuntador, mediante la transferencia al resguardo del servidor del apuntador real y la generacin de un cdigo especial para el uso de apuntadores en el procedimiento servidor; esto es usualmente mediante un direccionamiento indirecto a travs de un registro; el problema estara en la transferencia de mensajes por cada lectura/escritura desde/hacia la memoria referenciada (bytes) Conexin dinmica Para la localizacin del servidor por parte del cliente - Un mtodo para localizarlo sera integrar en el cdigo fuente la direccin del servidor; problema si este se desplaza, se duplica o si cambia de interfaz - La conexin dinmica parte de la especificacin formal del servidor - La especificacin indica el nombre del servidor, el nmero de versin y una lista de los procedimientos que proporciona - Los parmetros de los procedimientos quedan determinados como in, out, o in-out; la direccin es relativa al servidor #include <header.h> specification of file_server, version 3.1: long read(in char name[MAX_PATH], out char buf[BUF_SIZE], in long bytes, in long position); long write(in char name[MAX_PATH], in char buf[BUF_SIZE], in long bytes, in long position); int create(in char name[MAX_PATH], in int mode); int delete(in char name[MAX_PATH]); end; Figura 2-22. Una especificacion del servidor sin estado de la figura 2-9 - El principal uso de la especificacin formal es como una entrada del generador de resguardos, el cual produce tanto el resguardo del cliente como el del servidor
Universidad de Guadalajara Depto. de Cs. Computacionales - Sistemas Operativos Avanzados Prof. Luis Alberto Muoz Gmez 19

- Un parmetro in-out (el servidor lee y modifica la estructura de datos a la que se apunta) sera como copia/restauracin - En base al tipo de parmetro, el resguardo del cliente y el del servidor saben cuales datos hay que enviar - El concepto de RPC es en s mismo neutral y permite a diseadores de sistemas construir cualquier tipo de servidores - inicializar server - exportar interfaz - programa conector Llamada Registro De registro Bsqueda Entrada Salida Nombre, versin, asa, identificacin nica Nombre, versin, identificacin nica Nombre, versin Asa, identificador nico Figura 2-23. La interfaz del conector

identificador nico de 32 bits asa: direccin Ethernet, IP, id ralo se puede proporcionar otra informacin, como por ejemplo, la relativa a la autenticacin el ncleo del servidor utiliza el identificador nico en el mensaje para dirigirlo al servidor correcto

- importacin de interfaz - mtodo de importacin y exportacin de interfaces es altamente flexible - conector puede manejar varios servidores con la misma interfaz y difundir clientes entre servidores: carga ms justa - conector puede hacer muestreo peridico para cancelar servidores que no respondan (tolerancia a fallas) - lista de usuarios - costo de exportacin e importacin de interfaces - conector puede ser un cuello de botella - sincronizar conectores

Semntica de RPC en presencia de fallas - El objetivo de RPC es hacer que las llamadas a procedimientos remotos se parezcan a las locales - Esto funciona bien a excepcin de la incapacidad para manejar variables globales y el uso de la copia/restauracin para los apuntadores en vez de la llamada por referencia

Universidad de Guadalajara Depto. de Cs. Computacionales - Sistemas Operativos Avanzados Prof. Luis Alberto Muoz Gmez

20

Cliente no puede localizar al servidor - Si el binario cliente no se usa durante un tiempo y el servidor evoluciona a una nueva interfaz - Cuando un procedimiento falla regresa un -1 errno - en UNIX, variable global que indica un tipo de error uso de excepciones - un 1 en sum(i,j) es un resultado vlido - en lenguajes como Ada y Java - desventajas: - no todos los lenguajes tienen excepciones o seales (como Pascal) - escribir una excepcin o controlador de seales destruye la transparencia que se deseaba - el que sum(i,j) lance una excepcin no se pudo localizar servidor no es usual en un istema con un procesador Prdida de mensajes de solicitud - Ms fcil de tratar - Ncleo inicie cronmetro al enviar solicitud - Si no reconocimiento vuelve a enviar mensaje - si ncleo cliente se da por vencido, se conduce al caso anterior Prdida de mensajes de respuesta Idempotencia de solicitud - solicitud de los primeros 1024 bytes de un archivo es idempotente - transferencia de 1 milln de dlares no es idempotente - Solucin: Asignar a cada solicitud un nmero secuencial para distinguir las retransmisiones, dedicar un bit en el encabezado del mensaje Falla del servidor - Se relaciona con la idempotencia de solicitud, pero no se resuelve mediante nmeros secuenciales

Tres escuelas para tratar el primer caso de error semntica al menos una vez semntica a lo ms una vez no garanta
21

Universidad de Guadalajara Depto. de Cs. Computacionales - Sistemas Operativos Avanzados Prof. Luis Alberto Muoz Gmez

- lo deseable sera una semntica de exactamente una - no existe forma de garantizar esto en general - ejemplo: impresora, carga buffer y falla un microseg. antes o despus de activar el bit para impresin - La recuperacin depende del momento de la falla La posibilidad de fallas del servidor cambia de manera radical la naturaleza de la RPC y distingue claramente la naturaleza de los sistemas de un procesador de los sistemas distribuidos Falla del cliente Hurfano: labor de cmputo no deseado - Los hurfanos provocan varios problemas, al menos desperdician ciclos del CPU. Bloquean archivos o capturan recursos valiosos Soluciones: - Exterminacin: antes de RPC hacer un registro (en disco), al arrancar de nuevo se elimina hurfano de forma explcita. Ocasiona gasto de escritura, pueden haber hurfanos de hurfanos imposibles de localizar - Reencarnacin: sin escribir registros en disco, se divide el tiempo en pocas numeradas secuencialmente, cuando cliente arranca de nuevo enva transmisin de inicio de nueva poca eliminando cmputos remotos - Reencarnacin sutil: varia en que al llegar la transmisin de nueva poca, cada mquina verifica si tiene cmputos remotos, y si as es, intenta localizar a su poseedor, si no lo encuentra, se elimina el cmputo - Expiracin: a cada RPC se le asigna un tiempo T, si no alcanza pide otro quantum (lo cual es inconveniente), si no lo obtiene se cancela; el problema es elegir un valor razonable de T + La eliminacin de hurfanos puede conducir a bloqueos permanentes si se eliminan de manera sbita + Un hurfano podra crear entradas en colas remotas para inicio de procesos futuros, etc.

Universidad de Guadalajara Depto. de Cs. Computacionales - Sistemas Operativos Avanzados Prof. Luis Alberto Muoz Gmez

22

Aspectos de la implantacin Exito de un S.D <- desempeo <- vel. de comunucacin <- implantacin Protocolos RPC para reconocimientos

Ruta crtica Es la serie de instrucciones que se ejecutan con cada RPC

Universidad de Guadalajara Depto. de Cs. Computacionales - Sistemas Operativos Avanzados Prof. Luis Alberto Muoz Gmez

23

2.5 Fundamentos de Middleware El Middleware es un software (estrato de software) que provee una abstraccin de programacin, as como un enmascaramiento de la heterogeneidad subyacente de las redes, hardware, sistemas operativos y lenguajes de programacin. Ejemplos: CORBA (Common Object Request Broker Architecture) - ORB (Object Request Broker): intermediario de peticin de objetos, su papel es ayudar a un cliente a invocar un mtodo de un objeto Java RMI (Remote Method Invocation) El Middleware es un software de conectividad que permite ofrecer un conjunto de servicios que hacen posible el funcionamiento de aplicaciones distribuidas sobre plataformas heterogneas. Funciona como una capa de abstraccin de software distribuida que se sita entre la capa de aplicacin y las capas inferiores (sistema operativo y red). Esta capa est implementada en las capas de presentacin y de sesin del modelo de referencia OSI Tambin ofrece algunos servicios fundamentales como: - Servicio de nombrado, ofreciendo facilidades para la resolucin de nombres y localizacin; - Servicios de seguridad; y - Adems otros servicios de soporte para aplicaciones distribuidas

Universidad de Guadalajara Depto. de Cs. Computacionales - Sistemas Operativos Avanzados Prof. Luis Alberto Muoz Gmez

24

Caractersticas 1. El Middleware proporciona un modelo computacional uniforme al alcance de los programadores de servidores y aplicaciones distribuidas. Los posibles modelos incluyen: invocacin sobre objetos remotos, notificacin de eventos remotos, acceso remoto mediante SQL y procesamiento distribuido de transacciones

La implementacin oculta el hecho de que los mensajes se transmiten en red en cuanto al envo de la peticin de invocacin y su respuesta 2. El Middleware proporciona adems un modelo de programacin que emplea protocolos basados en paso de mensajes entre procesos para proporcionar abstracciones de un nivel mayor, tales como invocaciones remotas y eventos. La abstraccin de invocacin de un mtodo remoto se basa en el protocolo solicitudrespuesta

3. El Middleware proporciona transparencia de ubicacin e independencia de los detalles de los protocolos de comunicacin, los sistemas operativos y el hardware de los computadores. Algunas formas de middleware permiten que los componentes separados estn escritos en diferentes lenguajes de programacin

Universidad de Guadalajara Depto. de Cs. Computacionales - Sistemas Operativos Avanzados Prof. Luis Alberto Muoz Gmez

25

Ventajas Transparencia frente a ubicacin: RPC (el cliente que llama a un procedimiento no puede discernir si el procedimiento se ejecuta en el mismo proceso o e uno diferente); anlogamente RMI. En programas basados en eventos, los objetos que los generan y los que reciben las notificaciones tampoco necesitan conocer sus ubicaciones Protocolos de comunicacin: independencia de los protocolos de transporte subyacentes; ejem: el protocolo solicitud-respuesta puede estar implementado tanto sobre UDP como TCP Hardware de los computadores: estndares comunes para la representacin externa de datos que se emplean en el empaquetado y desempaquetado de mensajes y ocultan las diferencias de arquitectura en el hardware, como el ordenamiento de los bytes. Ejem: - CORBA CDR (Common Data Representation)

Universidad de Guadalajara Depto. de Cs. Computacionales - Sistemas Operativos Avanzados Prof. Luis Alberto Muoz Gmez

26

- Java Serialization

Sistemas Operativos: Las abstracciones de mayor nivel que provee la capa de middleware son independientes de los sistemas operativos subyacentes Utilizacin de diversos lenguajes de programacin: Diversos middleware se disean para permitir que las aplicaciones distribuidas sean escritas en ms de un lenguaje de programacin (ejem: CORBA). Esto se obtiene empleando un IDL (Interface Definition Language) para definir interfaces.

Universidad de Guadalajara Depto. de Cs. Computacionales - Sistemas Operativos Avanzados Prof. Luis Alberto Muoz Gmez

27

2.6 Comunicacin en Grupo - Existen ciertas circunstancias en las que la comunicacin es entre varios procesos y no solamente dos (como en RPC) Grupo.- coleccin de procesos que actan juntos en cierto sistema o alguna forma determinada por el usuario - Cuando un mensaje se enva al grupo, todos sus miembros lo reciben - La forma de comunicacin uno-muchos contrasta con la comunicacin puntual

- Los grupos son dinmicos: crear, destruir, unirse o dejar - Permitir que los procesos trabajen con colecciones de procesos como una abstraccin

Grupos cerrados vs Grupos abiertos Grupos cerrados: slo los miembros del grupo pueden enviar hacia el grupo; para procesamiento paralelo Grupos abiertos: procesos ajenos al grupo pueden enviar mensajes a l como un todo; soporte de servidores duplicados - todo proceso dentro de un grupo puede recibir mensajes puntuales del exterior del grupo

Universidad de Guadalajara Depto. de Cs. Computacionales - Sistemas Operativos Avanzados Prof. Luis Alberto Muoz Gmez

28

Grupos de compaeros vs Grupos jerrquicos - Sobre la estructura interna del grupo Grupos de compaeros: todos son iguales, nadie es el jefe, las decisiones se toman en forma colectiva; simtrico, sin punto de falla; toma de decisiones difcil Grupos jerrquicos: un proceso es el coordinador; solicitud al coordinador y ste decide cual trabajador es adecuado; alto por prdida del coordinador; para ejecucin en paralelo + membresa de grupo

Universidad de Guadalajara Depto. de Cs. Computacionales - Sistemas Operativos Avanzados Prof. Luis Alberto Muoz Gmez

29

Direccionamiento al grupo Transmisin mltiple: los mensajes son entregados slo a las mquinas del grupo; direccin de multitransmisin Transmisin simple: los mensajes son enviados a todas las mquinas, cada ncleo revisa si alguno de sus procesos es miembro del grupo y de lo contrario descarta el mensaje Unitransmisin: el ncleo de la mquina emisora debe contar con una lista de las mquinas que tienen procesos pertenecientes al grupo y enva a cada una un mensaje puntual

+ Primitivas send y receive Atomicidad (transmisin atmica).- Es la propiedad del todo o nada en la entrega de mensajes al grupo

Universidad de Guadalajara Depto. de Cs. Computacionales - Sistemas Operativos Avanzados Prof. Luis Alberto Muoz Gmez

30

S-ar putea să vă placă și