SlideShare une entreprise Scribd logo
1  sur  40
Sistemas Distribuidos
Contenido

•    Sistemas distribuidos
•    Sistemas operativos distribuidos
•    Comunicación de procesos
•    Sincronización de procesos
•    Gestión de procesos
•    Sistemas de archivos
•    Gestión de memoria
Sistemas operativos: una visión
aplicada
2                  © J.
Carretero, F. García, P. de
Conceptos
                                   previos
• Un programa es un conjunto de instrucciones.
• Un proceso es un programa en ejecución.
• Una red de computadores es un conjunto de
  computadores conectados por una red de
  interconexión.
• Un sistema distribuido (SD)
       – Modelo físico: conjunto de nodos (procesadores sin
         memoria ni reloj común) conectados por una red.
       – Modelo lógico: conjunto de procesos que ejecutan
         concurrentemente en uno o más computadores que
         colaboran y comunican intercambiando mensajes.
• Un protocolo es un conjunto de reglas e instrucciones
  que gobiernan la comunicación en un sistema
  distribuido, es decir, el intercambio de mensajes.
Sistemas operativos: una visión
aplicada
3                  © J.
Carretero, F. García, P. de
Características

• Compartir recursos (HW, SW, datos).
       – Acceso a recursos remotos.
              • Modelo cliente-servidor
              • Modelo basado en objetos
• Ofrecen una buena relación coste/rendimiento
• Capacidad de crecimiento
• Tolerancia a fallos, disponibilidad
       – Replicación
• Concurrencia
• Velocidad
       – Paralelismo
Sistemas operativos: una visión
aplicada
4                  © J.
Carretero, F. García, P. de
Desventajas

• Necesidad de software más complejo
• Problemas de fiabilidad
• Problemas de seguridad y confidencialidad




Sistemas operativos: una visión
aplicada
5                  © J.
Carretero, F. García, P. de
Arquitectura de un sistema
                          distribuido




                                  Red de interconexión




Sistemas operativos: una visión
aplicada
6                  © J.
Carretero, F. García, P. de
Redes e
                                  interconexión
• Paquete: tipo de mensaje que se intercambia entre dos
  dispositivos de comunicación.
       – Tamaño limitado por el hardware
• Mensaje: objeto lógico que se intercambian entre dos
  o más procesos.
       – Su tamaño puede ser bastante grande.
       – Un mensaje se descompone en paquetes.
• Subsistema de comunicación: conjunto de
  componentes
  HW y SW que proporcionan servicios de comunicación
  en un sistema distribuido.
• Protocolo: conjunto de reglas e instrucciones que
  gobiernan el intercambio de paquetes y mensajes
Sistemas operativos: una visión
aplicada
7                  © J.
Carretero, F. García, P. de
Propiedades de un subsistema de
                comunicación
• Tasa de transferencia: velocidad de transferencia
• Latencia: tiempo necesario para transferir un mensaje
  vacío
• Tiempo de transferencia = latencia + tamaño/tasa de
  trasferencia
• Paquetes/segundo
• Capacidad de crecimiento. Aumento en el nº de nodos
• Calidad de servicio
       – Importante en aplicaciones multimedia y de tiempo real
• Fiabilidad del subsistema
       – Mecanismos de detección de errores
• Seguridad: protección de los paquetes
• Confidencialidad: proteger la identidad de los emisores
Sistemas operativos: una visión
aplicada
8                  © J.
Carretero, F. García, P. de
Tipos de redes de
                                    computadores
• Redes de área local (LAN, Local Area Network)
       – Redes que enlazan sistemas cercanos
       – Posibilidad de difusión de mensajes (broadcast)
• Redes de área extensa (WAN, Wide Area Network)
       – Poco ancho de banda (20-500 Kbps)
       – Bajas latencias
       – Redes telefónicas, redes públicas de datos, fiabra óptica
         RDSI, B-RDSI, ATM
• Nuevos desarrollos en telecomunicaciones (ATM y
  RDSI)
       – Diferencias entre LAN y WAN cada vez más borrosas
Sistemas operativos: una visión
aplicada
9                  © J.
Carretero, F. García, P. de
Protocolos de
                                  comunicación
• Protocolo: conjunto de reglas y formatos que
  permiten la comunicación entre procesos.
• La definición de un protocolo tiene dos parte:
       – Especificación de la secuencia de mensajes que
         deben intercambiarse.
       – Especificación del formato de mensajes.
• El software de red se organiza en niveles

Sistemas operativos: una visión
aplicada
10                   © J.
Carretero, F. García, P. de
Funciones de una pila de
                            protocolos
• Segmentación y ensamblado de mensajes
• Encapsulado: incorporación de información de control
  a los datos
       – Dirección del emisor y receptor
       – Código de detección de errores
• Control de conexión
       – Protocolos orientados a conexión
       – Protocolos no orientados a conexión:
              • No se asegura el orden secuencial de los datos transmitidos
• Entrega ordenada en protocolos orientados a conexión
       – Números de secuencia

Sistemas operativos: una visión
aplicada
11                   © J.
Carretero, F. García, P. de
Funciones de una pila de
                            protocolos II
• Control de flujo: función realizada en el receptor para
  limitar la cantidad o tasa de datos que envía el emisor.
• Control de errores: se basan en el uso de una
  secuencia de comprobación y reenvío.
• Direccionamiento, conseguir que los mensajes
  alcancen al receptor
• Multiplexación: necesario para un uso más eficiente de
  los servicios
• Servicios de transmisión:
       – Prioridad
       – Calidad de servicio
       – Seguridad
Sistemas operativos: una visión
aplicada
12                   © J.
Carretero, F. García, P. de
Ejemplos de
                                   protocolos
• Protocolos internet:
       – Originados por el trabajo de DARPA en los 70
       – Muy utilizados en la actualidad
       – Gran crecimiento durante los 90 debido al uso del
         Web
• Protocolos OSI (open system interconection)
       – Estándar desarrollado por ISO
• Estándares propietarios
       – SNA de IBM (años 70)
       – DECnet desarrollado por DEC
       – NetWare: red de Novell para redes de PC
Sistemas operativos: una visión
aplicada
13                   © J.
Carretero, F. García, P. de
Protocolos
                                    TCP/IP
• Resultado de la investigación y desarrollo llevados
  a cabo en la red ARPANET (financiada por DARPA)
  en los años 70
• Familia de protocolos utilizados en Internet
• En los 90 se ha establecido como la arquitectura
  comercial dominante:
       – Se especificaron y utilizaron antes de OSI
       – Independiente de la tecnología de red utilizada
       – Internet está construida sobre un conjunto de
         protocolos TCP/IP.
       – Espectacular desarrollo de World Wide Web
Sistemas operativos: una visión
aplicada
14                   © J.
Carretero, F. García, P. de
Protocolos
                                       TCP/IP




                                  Emisor          Receptor

Sistemas operativos: una visión
aplicada
15                   © J.
Carretero, F. García, P. de
Protocolo Internet
                                      (nivel IP)
• La transmisión no es fiable (no se asegura la
  recepción de los paquetes IP). Los paquetes se
  pueden descartar por:
       – Expiración del tiempo de vida
       – Congestión
       – Error en la suma de comprobación
• Control de flujo muy limitado
• Calidad de servicio muy limitado
       – Seguridad: normal o alto
       – Retardo: normal o bajo
       – Rendimiento: normal o alto
Sistemas operativos: una visión
aplicada
16                   © J.
Carretero, F. García, P. de
Protocolos de
                                   transporte
• Protocolo TCP
       – Orientado a conexión
       – Garantiza que los datos se entregan en el orden en el que
         se envían
       – Las conexiones TCP se ven como un flujo de bytes
       – La transmisión se considera “fiable”. Pueden perderse
         mensajes (sobrecarga en la red, fallos en encaminadores,
         etc.)
       – Cuando los mensajes son muy pequeños, TCP los retrasa
         hasta conseguir uno más grande
              • Esta opción debe desactivarse si es necesario
       – Escrituras concurrentes sobre una misma conexión TCP
         pueden provocar que los datos se entremezclen.
Sistemas operativos: una visión
aplicada
17                   © J.
Carretero, F. García, P. de
Protocolos de
                                   transporte
• Protocolo UDP
       – Protocolo de datagramas no orientado a conexión.
       – Protocolo no fiable
              • Los paquetes se pueden perder, duplicar, recibir en
                orden distinto al enviado
       – Tamaño máximo del mensaje: 64 KB




Sistemas operativos: una visión
aplicada
18                   © J.
Carretero, F. García, P. de
Encaminamiento

• Permite que los paquetes viajen del proceso emisor al
  receptor.
• Algoritmo:
       – Un programa de aplicación genera un paquete, o bien se
         lee un paquete de la interfaz de red.
       – Si el paquete es para la máquina, se acepta.
       – En caso contrario, se incrementa el contador de saltos, si
         se excede el máximo, el paquete se descarta.
       – Si el paquete no es para la máquina se busca en la tabla de
         encaminamiento y se retransmite a la interfaz adecuada.
              • Tablas estáticas, las más utilizadas
              • Tablas dinámicas

Sistemas operativos: una visión
aplicada
19                   © J.
Carretero, F. García, P. de
Papel del sistema
                   operativo
• El SW de comunicación de un sistema operativo se
  organiza como un conjunto de componentes con tareas
  concretas
   – Subsistema de almacenamiento: buffers donde almacenar
     los paquetes que llegan y se envían (limitado)
• En implementaciones UNIX típicas
   – TCP reserva para cada puerto (socket) un buffer de 8 KB y
     UDP 2 buffers de 8KB. El tamaño se puede incrementar
     hasta 64 KB.
   – Los mensajes a enviar se copian a estos buffers
   – El contenido de estos buffers se fragmenta y se copian a
     nuevos bloques de memoria a utilizar por IP
   – IP envía finalmente los paquetes por la interfaz de red
     correspondiente
Papel del sistema
                 operativo
• Un sistema operativo puede perder paquetes cuando la
  tasa de envíos y de recepción es muy grande.
• En sistemas operativos multiusuario la pérdida de
  paquetes suele producirse a ráfagas debido a los
  algoritmos de planificación.
• La latencia del SO
                            40
  ha crecido en términos    35

  relativos                 30

                            25

                            20

                            15

                            10

                             5
                             0
                                 1985-1990   1990-1995   1995-2000   2000-20005
¿Dónde se pierde el
                                  tiempo?
• Códigos de corrección (Checksum)
       – Sobre datos TCP y UDP
       – Sobre cabeceras IP
• Copias de datos
       – Entre usuario y kernel
• Estructura de datos
       – Gestión de los buffers, colas de defragmentación de
         paquetes IP,
• Sistema Operativo
       – Sobrecarga impuesta por las operaciones del SO
Sistemas operativos: una visión
aplicada
22                   © J.
Carretero, F. García, P. de
Contenido

• Sistemas distribuidos
• Sistemas operativos distribuidos
•    Comunicación de procesos
•    Sincronización de procesos
•    Gestión de procesos
•    Sistemas de archivos
•    Gestión de memoria
Sistemas operativos: una visión
aplicada
23                   © J.
Carretero, F. García, P. de
Sistema operativo en red
                               (SOR)
              Aplicaciones                                  Aplicaciones
  Lenguajes de programación                          Lenguajes de programación
          Sistema operativo                               Sistema operativo
                  Hardware                                    Hardware

                                   Red de interconexión


• El usuario ve un conjunto de máquinas independientes
     – No hay transparencia
• Se debe acceder de forma explícita a los recursos de
  otras máquinas
• Difíciles de utilizar para desarrollar aplicaciones
  distribuidas
 Sistemas operativos: una visión
 aplicada
 24                   © J.
 Carretero, F. García, P. de
Sistema operativo
                                   distribuido (SOD)
                                           Aplicaciones
                                      Lenguajes de programación
                                     Sistema operativo distribuido
                    Hardware                                         Hardware

                                         Red de interconexión



• Se comporta como un SO único (visión única)
     – Distribución. Transparencia
• Se construyen normalmente como micronúcleos que
  ofrecen servicios básicos de comunicación
     – Mach, Amoeba, Chorus.
• Todos los computadores deben ejecutar el mismo SOD
 Sistemas operativos: una visión
 aplicada
 25                   © J.
 Carretero, F. García, P. de
Transparencia

• Acceso: acceso a recursos remotos y locales de igual forma
• Posición: acceso a los recursos sin necesidad de conocer su
  situación
• Concurrencia: acceso concurrente a recursos compartidos
  sin interferencias
• Replicación: Acceso a recursos replicados sin conocimiento
  de que lo son
• Fallos: mantenimiento del servicio en presencia de fallos.
• Migración: permite que los recursos y objetos se muevan
  sin afectar a la operación de los programas.
• Capacidad de crecimiento: facilidad para crecer sin afectar
  a la estructura del sistema


Sistemas operativos: una visión
aplicada
26                   © J.
Carretero, F. García, P. de
Middleware y entornos
                              distribuidos
                                         Aplicaciones
                                   Lenguajes de programación
                                          Middleware
             Sistema operativo                                 Sistema operativo
                    Hardware                                       Hardware

                                      Red de interconexión


• Servicios y protocolos estándarizados: Sistemas abiertos
• Ofrecen servicios no incluidos en el SO (servicios de
  ficheros distribuidos, servicios de nombres, ...)
• Facilitan el desarrollo de aplicaciones distribuidas
• Independientes del HW y del SO subyacente.
• DCE, CORBA, DCOM, Legion, Globe, Globus
 Sistemas operativos: una visión
 aplicada
 27                   © J.
 Carretero, F. García, P. de
Servicios de un sistema operativo
                   distribuido
•    Servicios de comunicación
•    Servicios de sincronización
•    Gestión distribuida de procesos
•    Sistemas de archivos distribuidos
•    Memoria compartida distribuida



Sistemas operativos: una visión
aplicada
28                   © J.
Carretero, F. García, P. de
Contenido

• Sistemas distribuidos
• Sistemas operativos distribuidos
• Comunicación de procesos
•    Sincronización de procesos
•    Gestión de procesos
•    Sistemas de archivos
•    Gestión de memoria
Sistemas operativos: una visión
aplicada
29                   © J.
Carretero, F. García, P. de
Comunicación en sistemas
                        distribuidos
• La comunicación de procesos es fundamental en
  cualquier sistema distribuido
• Existen diferentes posibilidades todas ellas basadas en
  el paso de mensajes
       – Mecanismos de bajo nivel, el programador debe
         preocuparse de establecer los protocolos de
         comunicación, representación de datos, etc.
              • Colas de mensajes
              • Sockets
       – Mecanismo de alto nivel, ofrecen abstracciones donde el
         programador no debe preocuparse de establecer
         protocolos
              • Llamadas a procedimientos remotos
              • Invocación de métodos remotos (entornos orientados a objetos)

Sistemas operativos: una visión
aplicada
30                   © J.
Carretero, F. García, P. de
Comunicación cliente-sevidor
Muy utilizada en entornos distribuidos (más del 90% de los sistemas distribuidos
  utilizan la arquitectura cliente-servidor)


        Máquina A                    petcición                Máquina B

              cliente                                            servidor

                                      respuesta
           NÚCLEO                                                NÚCLEO

                                                                             RED

   Protocolo típico: petición-respuesta

Sistemas operativos: una visión
aplicada
31                   © J.
Carretero, F. García, P. de
Comunicación de
                                     grupos
• Utiliza mensajes multicast
• Útil para:
       – Ofrecer tolerancia a fallos basado en servicios
         replicados
       – Localizar objetos en sistemas distribuidos
       – Mejor rendimiento mediante datos replicados
       – Actualizaciones múltiples
       – Operaciones colectivas en cálculo paralelo
Sistemas operativos: una visión
aplicada
32                   © J.
Carretero, F. García, P. de
Sockets
• Aparecieron en 1981 en UNIX BSD 4.2
       – Intento de incluir TCP/IP en UNIX
       – Diseño independiente del protocolo de comunicación
• Un socket es punto final de comunicación
  (dirección IP y puerto)
• Abstracción que:
       – Ofrece interfaz de acceso a los servicios de red en el
         nivel de transporte
              • Protocolo TCP
              • Protocolo UDP
       – Representa un extremo de una comunicación
         bidireccional con una dirección asociada
Sistemas operativos: una visión
aplicada
33                   © J.
Carretero, F. García, P. de
Sockets:
                                  introducción
• Sujetos a proceso de estandarización dentro
  de POSIX (POSIX 1003.1g)
• Actualmente
       – Disponibles en casi todos los sistemas UNIX
       – En prácticamente todos los sistemas operativos
              • WinSock: API de sockets de Windows
       – En Java como clase nativa


Sistemas operativos: una visión
aplicada
34                   © J.
Carretero, F. García, P. de
Sockets
                                   UNIX
•    Dominios de comunicación
•    Tipos de sockets
•    Direcciones de sockets
•    Creación de un socket
•    Asignación de direcciones
•    Solicitud de conexión
•    Preparar para aceptar conexiones
•    Aceptar una conexión
•    Transferencia de datos
Sistemas operativos: una visión
aplicada
35                   © J.
Carretero, F. García, P. de
Dominios de
                                  comunicación
• Un dominio representa una familia de protocolos
• Un socket está asociado a un dominio desde su
  creación
• Sólo se pueden comunicar sockets del mismo
  dominio
• Algunos ejemplos:
       – PF_UNIX (o PF_LOCAL): comunicación dentro de una
         máquina
       – PF_INET: comunicación usando protocolos TCP/IP
• Los servicios de sockets son independientes del
  dominio
Sistemas operativos: una visión
aplicada
36                   © J.
Carretero, F. García, P. de
Tipos de
                                  sockets
• Stream (SOCK_STREAM)
       –   Orientado a conexión
       –   Fiable, se asegura el orden de entrega de mensajes
       –   No mantiene separación entre mensajes
       –   Si PF_INET se corresponde con el protocolo TCP
• Datagrama (SOCK_DGRAM)
       –   Sin conexión
       –   No fiable, no se asegura el orden en la entrega
       –   Mantiene la separación entre mensajes
       –   Si PF_INET se corresponde con el protocolo UDP
• Raw (SOCK_RAW)
       – Permite el acceso a los protocolos internos como IP

Sistemas operativos: una visión
aplicada
37                   © J.
Carretero, F. García, P. de
Direcciones de
                                      sockets
   • Cada socket debe tener asignada una dirección única
   • Las direcciones se usan para:
           – Asignar una dirección local a un socket (bind)
           – Especificar una dirección remota (connect o sendto)
   • Dependientes del dominio
   • Se utiliza la estructura genérica struct sockaddr
   • Cada dominio usa una estructura específica
           – Direcciones en PF_UNIX (struct sockaddr_un)
                  • Nombre de fichero
           – Direcciones en PF_UNIX (struct sockaddr_in)
           – Uso de conversión de tipos (casting) en las llamadas
Sistemas operativos: una visión
aplicada
38                   © J.
Carretero, F. García, P. de
Direcciones de sockets en
                            PF_INET
• Host (32 bits) + puerto (16 bits)
• Una dirección IP se almacena en una estructura de
  tipo:
       – struct in_addr
• Estructura struct sockaddr_in
       –   Debe iniciarse a 0
       –   sin_family: dominio (AF_INET)
       –   sin_port: puerto
       –   sin_addr: dirección del host
• Función que facilita el nombre de la máquina en la que
  se ejecuta:
           int gethostname(char *name, int namelen);
Sistemas operativos: una visión
aplicada
39                   © J.
Carretero, F. García, P. de
Obtención de la dirección
                            de host
  • Usuarios manejan direcciones en forma de texto:
         – decimal-punto: 138.100.8.100
         – dominio-punto: laurel.datsi.fi.upm.es

  • Algunas funciones para trabajar con direcciones:
         – char *inet_ntoa(struct in_addr in);
            • Devuelve una dirección en notación decimal-punto.
         – struct hostent *gethostbyname(char *str);
                 • Convierte una dirección en notación dominio-punto a una
                   estructura que describe máquina.
                 • Algunos campos de la estructura struct hostent:
                        – char *name nombre oficial de la máquina
                        – char **h_addr_list  lista de direcciones
Sistemas operativos: una visión
aplicada
40                   © J.
Carretero, F. García, P. de

Contenu connexe

Tendances

Comparacion software comercial vs libre (Gestores De Base De Datos)
Comparacion software comercial vs libre (Gestores De Base De Datos)Comparacion software comercial vs libre (Gestores De Base De Datos)
Comparacion software comercial vs libre (Gestores De Base De Datos)Oscar Ruiz Zapata
 
Arquitectura de bases de datos distribuidas
Arquitectura de bases de datos distribuidasArquitectura de bases de datos distribuidas
Arquitectura de bases de datos distribuidasJimRocy
 
Bases De Datos Paralelas
Bases De Datos ParalelasBases De Datos Paralelas
Bases De Datos Paralelaspineda2
 
CAPA DE TRANSPORTE DEL MODELO OSI
CAPA DE TRANSPORTE DEL MODELO OSICAPA DE TRANSPORTE DEL MODELO OSI
CAPA DE TRANSPORTE DEL MODELO OSImafercita98
 
Tema2: Tecnologías de desarrollo web (Desarrollo Aplicaciones Web)
Tema2: Tecnologías de desarrollo web (Desarrollo Aplicaciones Web)Tema2: Tecnologías de desarrollo web (Desarrollo Aplicaciones Web)
Tema2: Tecnologías de desarrollo web (Desarrollo Aplicaciones Web)Micael Gallego
 
Sistemas operativos distribuidos
Sistemas operativos distribuidosSistemas operativos distribuidos
Sistemas operativos distribuidosChristian19121
 
Unidad 1. Desarrollo de Aplicaciones Distribuidas
Unidad 1. Desarrollo de Aplicaciones DistribuidasUnidad 1. Desarrollo de Aplicaciones Distribuidas
Unidad 1. Desarrollo de Aplicaciones DistribuidasIsidro Lopez Riuz
 
Funciones de la Administración de Redes
Funciones de la Administración de RedesFunciones de la Administración de Redes
Funciones de la Administración de RedesJose Manuel Acosta
 
Diagramas de clases y actividades
Diagramas de clases y actividadesDiagramas de clases y actividades
Diagramas de clases y actividadesTerryJoss
 
Router y su funcionamiento
Router y su funcionamientoRouter y su funcionamiento
Router y su funcionamientoAlejandro Murcia
 
Seguridad En Sistemas Distribuidos
Seguridad En Sistemas DistribuidosSeguridad En Sistemas Distribuidos
Seguridad En Sistemas DistribuidosHECTOR JAVIER
 

Tendances (20)

Bases de datos orientadas a objetos
Bases de datos orientadas a objetosBases de datos orientadas a objetos
Bases de datos orientadas a objetos
 
Comparacion software comercial vs libre (Gestores De Base De Datos)
Comparacion software comercial vs libre (Gestores De Base De Datos)Comparacion software comercial vs libre (Gestores De Base De Datos)
Comparacion software comercial vs libre (Gestores De Base De Datos)
 
Arquitectura de bases de datos distribuidas
Arquitectura de bases de datos distribuidasArquitectura de bases de datos distribuidas
Arquitectura de bases de datos distribuidas
 
Gestion de redes
Gestion de redesGestion de redes
Gestion de redes
 
Bases De Datos Paralelas
Bases De Datos ParalelasBases De Datos Paralelas
Bases De Datos Paralelas
 
Protocolo de capa 7
Protocolo de capa 7Protocolo de capa 7
Protocolo de capa 7
 
CAPA DE TRANSPORTE DEL MODELO OSI
CAPA DE TRANSPORTE DEL MODELO OSICAPA DE TRANSPORTE DEL MODELO OSI
CAPA DE TRANSPORTE DEL MODELO OSI
 
Base de datos distribuidas
Base de datos distribuidasBase de datos distribuidas
Base de datos distribuidas
 
Aplicaciones distribuidas
Aplicaciones distribuidasAplicaciones distribuidas
Aplicaciones distribuidas
 
Tema2: Tecnologías de desarrollo web (Desarrollo Aplicaciones Web)
Tema2: Tecnologías de desarrollo web (Desarrollo Aplicaciones Web)Tema2: Tecnologías de desarrollo web (Desarrollo Aplicaciones Web)
Tema2: Tecnologías de desarrollo web (Desarrollo Aplicaciones Web)
 
Sistemas operativos distribuidos
Sistemas operativos distribuidosSistemas operativos distribuidos
Sistemas operativos distribuidos
 
Unidad 1. Desarrollo de Aplicaciones Distribuidas
Unidad 1. Desarrollo de Aplicaciones DistribuidasUnidad 1. Desarrollo de Aplicaciones Distribuidas
Unidad 1. Desarrollo de Aplicaciones Distribuidas
 
Funciones de la Administración de Redes
Funciones de la Administración de RedesFunciones de la Administración de Redes
Funciones de la Administración de Redes
 
Diagramas de clases y actividades
Diagramas de clases y actividadesDiagramas de clases y actividades
Diagramas de clases y actividades
 
Router y su funcionamiento
Router y su funcionamientoRouter y su funcionamiento
Router y su funcionamiento
 
Topologias y protocolos de red
Topologias y protocolos de redTopologias y protocolos de red
Topologias y protocolos de red
 
Seguridad En Sistemas Distribuidos
Seguridad En Sistemas DistribuidosSeguridad En Sistemas Distribuidos
Seguridad En Sistemas Distribuidos
 
Transparencia
TransparenciaTransparencia
Transparencia
 
Casos de uso de negocios y sistemas
Casos de uso de negocios y sistemasCasos de uso de negocios y sistemas
Casos de uso de negocios y sistemas
 
Modelos de datos
Modelos de datosModelos de datos
Modelos de datos
 

En vedette

Sistemas distribuidos-la-comunicacion
Sistemas distribuidos-la-comunicacionSistemas distribuidos-la-comunicacion
Sistemas distribuidos-la-comunicacionGabriel Farfan Molina
 
Caracteristicas de los Sistemas Distribuidos
Caracteristicas de los Sistemas DistribuidosCaracteristicas de los Sistemas Distribuidos
Caracteristicas de los Sistemas DistribuidosJorge Guerra
 
comunicacion de sistemas distribuidos
comunicacion de sistemas distribuidoscomunicacion de sistemas distribuidos
comunicacion de sistemas distribuidoscarlosrolo
 
Aplicaciones para sistemas distribuidos slide
Aplicaciones para sistemas distribuidos slideAplicaciones para sistemas distribuidos slide
Aplicaciones para sistemas distribuidos slidemarieuri
 
Actividad2 gberon
Actividad2 gberonActividad2 gberon
Actividad2 gberonGLBERON
 
Comunicación en Grupo
Comunicación en GrupoComunicación en Grupo
Comunicación en Grupomallita
 
Transferencia de mensajes
Transferencia de mensajesTransferencia de mensajes
Transferencia de mensajesDeejay Sonder
 
Sistemas operativos distribuidos
Sistemas operativos distribuidosSistemas operativos distribuidos
Sistemas operativos distribuidosVictor Reyes
 
sistema de información
sistema de informaciónsistema de información
sistema de informaciónyohanabarbiero
 
Protocolo de comunicacion
Protocolo de comunicacionProtocolo de comunicacion
Protocolo de comunicacionuvitamaz
 
Capitulo1sod
Capitulo1sodCapitulo1sod
Capitulo1soddabiddo
 
Modelos de la comunicación
Modelos de la comunicaciónModelos de la comunicación
Modelos de la comunicaciónlmr96
 
Modelos de los sistemas distribuidos
Modelos de los sistemas distribuidosModelos de los sistemas distribuidos
Modelos de los sistemas distribuidosMargarita Labastida
 
P2P - Sistemas Distribuídos
P2P - Sistemas DistribuídosP2P - Sistemas Distribuídos
P2P - Sistemas DistribuídosGustavo Monteiro
 

En vedette (20)

Sistemas distribuidos-la-comunicacion
Sistemas distribuidos-la-comunicacionSistemas distribuidos-la-comunicacion
Sistemas distribuidos-la-comunicacion
 
Caracteristicas de los Sistemas Distribuidos
Caracteristicas de los Sistemas DistribuidosCaracteristicas de los Sistemas Distribuidos
Caracteristicas de los Sistemas Distribuidos
 
Arquitectura de sistemas distribuidos
Arquitectura de sistemas distribuidosArquitectura de sistemas distribuidos
Arquitectura de sistemas distribuidos
 
comunicacion de sistemas distribuidos
comunicacion de sistemas distribuidoscomunicacion de sistemas distribuidos
comunicacion de sistemas distribuidos
 
Aplicaciones para sistemas distribuidos slide
Aplicaciones para sistemas distribuidos slideAplicaciones para sistemas distribuidos slide
Aplicaciones para sistemas distribuidos slide
 
Actividad2 gberon
Actividad2 gberonActividad2 gberon
Actividad2 gberon
 
Desarrollo Orientado a Objetos
Desarrollo Orientado a ObjetosDesarrollo Orientado a Objetos
Desarrollo Orientado a Objetos
 
Comunicación en Grupo
Comunicación en GrupoComunicación en Grupo
Comunicación en Grupo
 
Transferencia de mensajes
Transferencia de mensajesTransferencia de mensajes
Transferencia de mensajes
 
Sistemas operativos distribuidos
Sistemas operativos distribuidosSistemas operativos distribuidos
Sistemas operativos distribuidos
 
Subsistema de comunicaciones
Subsistema de comunicaciones Subsistema de comunicaciones
Subsistema de comunicaciones
 
Distribuidas1
Distribuidas1Distribuidas1
Distribuidas1
 
sistemas distribuidos
sistemas distribuidossistemas distribuidos
sistemas distribuidos
 
sistema de información
sistema de informaciónsistema de información
sistema de información
 
Protocolo de comunicacion
Protocolo de comunicacionProtocolo de comunicacion
Protocolo de comunicacion
 
Capitulo1sod
Capitulo1sodCapitulo1sod
Capitulo1sod
 
Modelos de la comunicación
Modelos de la comunicaciónModelos de la comunicación
Modelos de la comunicación
 
Sistema centralizado
Sistema centralizadoSistema centralizado
Sistema centralizado
 
Modelos de los sistemas distribuidos
Modelos de los sistemas distribuidosModelos de los sistemas distribuidos
Modelos de los sistemas distribuidos
 
P2P - Sistemas Distribuídos
P2P - Sistemas DistribuídosP2P - Sistemas Distribuídos
P2P - Sistemas Distribuídos
 

Similaire à Sistemas distribuidos (20)

Sistemas_Operativos_Distribuidos
Sistemas_Operativos_DistribuidosSistemas_Operativos_Distribuidos
Sistemas_Operativos_Distribuidos
 
Sistemas distribuidosz
Sistemas distribuidoszSistemas distribuidosz
Sistemas distribuidosz
 
Presentación Grupo 2
Presentación Grupo 2 Presentación Grupo 2
Presentación Grupo 2
 
Redes informáticas
Redes informáticasRedes informáticas
Redes informáticas
 
Redes
RedesRedes
Redes
 
Presentacion final tics Lic en primaria
Presentacion final tics Lic en primariaPresentacion final tics Lic en primaria
Presentacion final tics Lic en primaria
 
MI BLOG
MI BLOGMI BLOG
MI BLOG
 
MI BLOG
MI BLOGMI BLOG
MI BLOG
 
Redes informaticas
Redes informaticasRedes informaticas
Redes informaticas
 
Daniela
DanielaDaniela
Daniela
 
Redes
RedesRedes
Redes
 
Protocolos de Red
Protocolos de RedProtocolos de Red
Protocolos de Red
 
T0 -arquitectura de internet
T0  -arquitectura de internetT0  -arquitectura de internet
T0 -arquitectura de internet
 
Internet
InternetInternet
Internet
 
Stephanie villa
Stephanie villaStephanie villa
Stephanie villa
 
Esquemas Unidad II CISCO
Esquemas Unidad II CISCOEsquemas Unidad II CISCO
Esquemas Unidad II CISCO
 
Redes t1 conceptos
Redes t1 conceptosRedes t1 conceptos
Redes t1 conceptos
 
Informatica
InformaticaInformatica
Informatica
 
Protocolos de red
Protocolos de redProtocolos de red
Protocolos de red
 
Redesitas
RedesitasRedesitas
Redesitas
 

Plus de ayreonmx

Presentation1
Presentation1Presentation1
Presentation1ayreonmx
 
Clase 6 sistemas raid
Clase 6   sistemas raidClase 6   sistemas raid
Clase 6 sistemas raidayreonmx
 
Sistemas operativos procesos
Sistemas operativos   procesosSistemas operativos   procesos
Sistemas operativos procesosayreonmx
 
Tratamiento de seguridad en aplicaciones
Tratamiento de seguridad en aplicacionesTratamiento de seguridad en aplicaciones
Tratamiento de seguridad en aplicacionesayreonmx
 
Maquinas virtuales
Maquinas virtualesMaquinas virtuales
Maquinas virtualesayreonmx
 
Presentacion 3
Presentacion 3Presentacion 3
Presentacion 3ayreonmx
 
1 fundamentos java
1 fundamentos java1 fundamentos java
1 fundamentos javaayreonmx
 
Introduccion poo2
Introduccion poo2Introduccion poo2
Introduccion poo2ayreonmx
 
Intro to the arduino
Intro to the arduinoIntro to the arduino
Intro to the arduinoayreonmx
 
Introducción a los microprocesadores vi
Introducción a los microprocesadores viIntroducción a los microprocesadores vi
Introducción a los microprocesadores viayreonmx
 
Programacion de microcontroladores
Programacion de microcontroladoresProgramacion de microcontroladores
Programacion de microcontroladoresayreonmx
 
Presentacion3
Presentacion3Presentacion3
Presentacion3ayreonmx
 
Presentacion2
Presentacion2Presentacion2
Presentacion2ayreonmx
 
Manual del proteus
Manual del proteusManual del proteus
Manual del proteusayreonmx
 
Java – ejercicio 3
Java – ejercicio 3Java – ejercicio 3
Java – ejercicio 3ayreonmx
 
Java – ejercicio 2
Java – ejercicio 2Java – ejercicio 2
Java – ejercicio 2ayreonmx
 
Presentacion 4
Presentacion 4Presentacion 4
Presentacion 4ayreonmx
 
Java ejercicio 1
Java   ejercicio 1Java   ejercicio 1
Java ejercicio 1ayreonmx
 

Plus de ayreonmx (20)

Raid
RaidRaid
Raid
 
Presentation1
Presentation1Presentation1
Presentation1
 
Clase 6 sistemas raid
Clase 6   sistemas raidClase 6   sistemas raid
Clase 6 sistemas raid
 
Sistemas operativos procesos
Sistemas operativos   procesosSistemas operativos   procesos
Sistemas operativos procesos
 
Tratamiento de seguridad en aplicaciones
Tratamiento de seguridad en aplicacionesTratamiento de seguridad en aplicaciones
Tratamiento de seguridad en aplicaciones
 
Maquinas virtuales
Maquinas virtualesMaquinas virtuales
Maquinas virtuales
 
Presentacion 3
Presentacion 3Presentacion 3
Presentacion 3
 
1 fundamentos java
1 fundamentos java1 fundamentos java
1 fundamentos java
 
Introduccion poo2
Introduccion poo2Introduccion poo2
Introduccion poo2
 
Intro to the arduino
Intro to the arduinoIntro to the arduino
Intro to the arduino
 
Introducción a los microprocesadores vi
Introducción a los microprocesadores viIntroducción a los microprocesadores vi
Introducción a los microprocesadores vi
 
Programacion de microcontroladores
Programacion de microcontroladoresProgramacion de microcontroladores
Programacion de microcontroladores
 
Presentacion3
Presentacion3Presentacion3
Presentacion3
 
Presentacion2
Presentacion2Presentacion2
Presentacion2
 
Cli unix2
Cli unix2Cli unix2
Cli unix2
 
Manual del proteus
Manual del proteusManual del proteus
Manual del proteus
 
Java – ejercicio 3
Java – ejercicio 3Java – ejercicio 3
Java – ejercicio 3
 
Java – ejercicio 2
Java – ejercicio 2Java – ejercicio 2
Java – ejercicio 2
 
Presentacion 4
Presentacion 4Presentacion 4
Presentacion 4
 
Java ejercicio 1
Java   ejercicio 1Java   ejercicio 1
Java ejercicio 1
 

Sistemas distribuidos

  • 2. Contenido • Sistemas distribuidos • Sistemas operativos distribuidos • Comunicación de procesos • Sincronización de procesos • Gestión de procesos • Sistemas de archivos • Gestión de memoria Sistemas operativos: una visión aplicada 2 © J. Carretero, F. García, P. de
  • 3. Conceptos previos • Un programa es un conjunto de instrucciones. • Un proceso es un programa en ejecución. • Una red de computadores es un conjunto de computadores conectados por una red de interconexión. • Un sistema distribuido (SD) – Modelo físico: conjunto de nodos (procesadores sin memoria ni reloj común) conectados por una red. – Modelo lógico: conjunto de procesos que ejecutan concurrentemente en uno o más computadores que colaboran y comunican intercambiando mensajes. • Un protocolo es un conjunto de reglas e instrucciones que gobiernan la comunicación en un sistema distribuido, es decir, el intercambio de mensajes. Sistemas operativos: una visión aplicada 3 © J. Carretero, F. García, P. de
  • 4. Características • Compartir recursos (HW, SW, datos). – Acceso a recursos remotos. • Modelo cliente-servidor • Modelo basado en objetos • Ofrecen una buena relación coste/rendimiento • Capacidad de crecimiento • Tolerancia a fallos, disponibilidad – Replicación • Concurrencia • Velocidad – Paralelismo Sistemas operativos: una visión aplicada 4 © J. Carretero, F. García, P. de
  • 5. Desventajas • Necesidad de software más complejo • Problemas de fiabilidad • Problemas de seguridad y confidencialidad Sistemas operativos: una visión aplicada 5 © J. Carretero, F. García, P. de
  • 6. Arquitectura de un sistema distribuido Red de interconexión Sistemas operativos: una visión aplicada 6 © J. Carretero, F. García, P. de
  • 7. Redes e interconexión • Paquete: tipo de mensaje que se intercambia entre dos dispositivos de comunicación. – Tamaño limitado por el hardware • Mensaje: objeto lógico que se intercambian entre dos o más procesos. – Su tamaño puede ser bastante grande. – Un mensaje se descompone en paquetes. • Subsistema de comunicación: conjunto de componentes HW y SW que proporcionan servicios de comunicación en un sistema distribuido. • Protocolo: conjunto de reglas e instrucciones que gobiernan el intercambio de paquetes y mensajes Sistemas operativos: una visión aplicada 7 © J. Carretero, F. García, P. de
  • 8. Propiedades de un subsistema de comunicación • Tasa de transferencia: velocidad de transferencia • Latencia: tiempo necesario para transferir un mensaje vacío • Tiempo de transferencia = latencia + tamaño/tasa de trasferencia • Paquetes/segundo • Capacidad de crecimiento. Aumento en el nº de nodos • Calidad de servicio – Importante en aplicaciones multimedia y de tiempo real • Fiabilidad del subsistema – Mecanismos de detección de errores • Seguridad: protección de los paquetes • Confidencialidad: proteger la identidad de los emisores Sistemas operativos: una visión aplicada 8 © J. Carretero, F. García, P. de
  • 9. Tipos de redes de computadores • Redes de área local (LAN, Local Area Network) – Redes que enlazan sistemas cercanos – Posibilidad de difusión de mensajes (broadcast) • Redes de área extensa (WAN, Wide Area Network) – Poco ancho de banda (20-500 Kbps) – Bajas latencias – Redes telefónicas, redes públicas de datos, fiabra óptica RDSI, B-RDSI, ATM • Nuevos desarrollos en telecomunicaciones (ATM y RDSI) – Diferencias entre LAN y WAN cada vez más borrosas Sistemas operativos: una visión aplicada 9 © J. Carretero, F. García, P. de
  • 10. Protocolos de comunicación • Protocolo: conjunto de reglas y formatos que permiten la comunicación entre procesos. • La definición de un protocolo tiene dos parte: – Especificación de la secuencia de mensajes que deben intercambiarse. – Especificación del formato de mensajes. • El software de red se organiza en niveles Sistemas operativos: una visión aplicada 10 © J. Carretero, F. García, P. de
  • 11. Funciones de una pila de protocolos • Segmentación y ensamblado de mensajes • Encapsulado: incorporación de información de control a los datos – Dirección del emisor y receptor – Código de detección de errores • Control de conexión – Protocolos orientados a conexión – Protocolos no orientados a conexión: • No se asegura el orden secuencial de los datos transmitidos • Entrega ordenada en protocolos orientados a conexión – Números de secuencia Sistemas operativos: una visión aplicada 11 © J. Carretero, F. García, P. de
  • 12. Funciones de una pila de protocolos II • Control de flujo: función realizada en el receptor para limitar la cantidad o tasa de datos que envía el emisor. • Control de errores: se basan en el uso de una secuencia de comprobación y reenvío. • Direccionamiento, conseguir que los mensajes alcancen al receptor • Multiplexación: necesario para un uso más eficiente de los servicios • Servicios de transmisión: – Prioridad – Calidad de servicio – Seguridad Sistemas operativos: una visión aplicada 12 © J. Carretero, F. García, P. de
  • 13. Ejemplos de protocolos • Protocolos internet: – Originados por el trabajo de DARPA en los 70 – Muy utilizados en la actualidad – Gran crecimiento durante los 90 debido al uso del Web • Protocolos OSI (open system interconection) – Estándar desarrollado por ISO • Estándares propietarios – SNA de IBM (años 70) – DECnet desarrollado por DEC – NetWare: red de Novell para redes de PC Sistemas operativos: una visión aplicada 13 © J. Carretero, F. García, P. de
  • 14. Protocolos TCP/IP • Resultado de la investigación y desarrollo llevados a cabo en la red ARPANET (financiada por DARPA) en los años 70 • Familia de protocolos utilizados en Internet • En los 90 se ha establecido como la arquitectura comercial dominante: – Se especificaron y utilizaron antes de OSI – Independiente de la tecnología de red utilizada – Internet está construida sobre un conjunto de protocolos TCP/IP. – Espectacular desarrollo de World Wide Web Sistemas operativos: una visión aplicada 14 © J. Carretero, F. García, P. de
  • 15. Protocolos TCP/IP Emisor Receptor Sistemas operativos: una visión aplicada 15 © J. Carretero, F. García, P. de
  • 16. Protocolo Internet (nivel IP) • La transmisión no es fiable (no se asegura la recepción de los paquetes IP). Los paquetes se pueden descartar por: – Expiración del tiempo de vida – Congestión – Error en la suma de comprobación • Control de flujo muy limitado • Calidad de servicio muy limitado – Seguridad: normal o alto – Retardo: normal o bajo – Rendimiento: normal o alto Sistemas operativos: una visión aplicada 16 © J. Carretero, F. García, P. de
  • 17. Protocolos de transporte • Protocolo TCP – Orientado a conexión – Garantiza que los datos se entregan en el orden en el que se envían – Las conexiones TCP se ven como un flujo de bytes – La transmisión se considera “fiable”. Pueden perderse mensajes (sobrecarga en la red, fallos en encaminadores, etc.) – Cuando los mensajes son muy pequeños, TCP los retrasa hasta conseguir uno más grande • Esta opción debe desactivarse si es necesario – Escrituras concurrentes sobre una misma conexión TCP pueden provocar que los datos se entremezclen. Sistemas operativos: una visión aplicada 17 © J. Carretero, F. García, P. de
  • 18. Protocolos de transporte • Protocolo UDP – Protocolo de datagramas no orientado a conexión. – Protocolo no fiable • Los paquetes se pueden perder, duplicar, recibir en orden distinto al enviado – Tamaño máximo del mensaje: 64 KB Sistemas operativos: una visión aplicada 18 © J. Carretero, F. García, P. de
  • 19. Encaminamiento • Permite que los paquetes viajen del proceso emisor al receptor. • Algoritmo: – Un programa de aplicación genera un paquete, o bien se lee un paquete de la interfaz de red. – Si el paquete es para la máquina, se acepta. – En caso contrario, se incrementa el contador de saltos, si se excede el máximo, el paquete se descarta. – Si el paquete no es para la máquina se busca en la tabla de encaminamiento y se retransmite a la interfaz adecuada. • Tablas estáticas, las más utilizadas • Tablas dinámicas Sistemas operativos: una visión aplicada 19 © J. Carretero, F. García, P. de
  • 20. Papel del sistema operativo • El SW de comunicación de un sistema operativo se organiza como un conjunto de componentes con tareas concretas – Subsistema de almacenamiento: buffers donde almacenar los paquetes que llegan y se envían (limitado) • En implementaciones UNIX típicas – TCP reserva para cada puerto (socket) un buffer de 8 KB y UDP 2 buffers de 8KB. El tamaño se puede incrementar hasta 64 KB. – Los mensajes a enviar se copian a estos buffers – El contenido de estos buffers se fragmenta y se copian a nuevos bloques de memoria a utilizar por IP – IP envía finalmente los paquetes por la interfaz de red correspondiente
  • 21. Papel del sistema operativo • Un sistema operativo puede perder paquetes cuando la tasa de envíos y de recepción es muy grande. • En sistemas operativos multiusuario la pérdida de paquetes suele producirse a ráfagas debido a los algoritmos de planificación. • La latencia del SO 40 ha crecido en términos 35 relativos 30 25 20 15 10 5 0 1985-1990 1990-1995 1995-2000 2000-20005
  • 22. ¿Dónde se pierde el tiempo? • Códigos de corrección (Checksum) – Sobre datos TCP y UDP – Sobre cabeceras IP • Copias de datos – Entre usuario y kernel • Estructura de datos – Gestión de los buffers, colas de defragmentación de paquetes IP, • Sistema Operativo – Sobrecarga impuesta por las operaciones del SO Sistemas operativos: una visión aplicada 22 © J. Carretero, F. García, P. de
  • 23. Contenido • Sistemas distribuidos • Sistemas operativos distribuidos • Comunicación de procesos • Sincronización de procesos • Gestión de procesos • Sistemas de archivos • Gestión de memoria Sistemas operativos: una visión aplicada 23 © J. Carretero, F. García, P. de
  • 24. Sistema operativo en red (SOR) Aplicaciones Aplicaciones Lenguajes de programación Lenguajes de programación Sistema operativo Sistema operativo Hardware Hardware Red de interconexión • El usuario ve un conjunto de máquinas independientes – No hay transparencia • Se debe acceder de forma explícita a los recursos de otras máquinas • Difíciles de utilizar para desarrollar aplicaciones distribuidas Sistemas operativos: una visión aplicada 24 © J. Carretero, F. García, P. de
  • 25. Sistema operativo distribuido (SOD) Aplicaciones Lenguajes de programación Sistema operativo distribuido Hardware Hardware Red de interconexión • Se comporta como un SO único (visión única) – Distribución. Transparencia • Se construyen normalmente como micronúcleos que ofrecen servicios básicos de comunicación – Mach, Amoeba, Chorus. • Todos los computadores deben ejecutar el mismo SOD Sistemas operativos: una visión aplicada 25 © J. Carretero, F. García, P. de
  • 26. Transparencia • Acceso: acceso a recursos remotos y locales de igual forma • Posición: acceso a los recursos sin necesidad de conocer su situación • Concurrencia: acceso concurrente a recursos compartidos sin interferencias • Replicación: Acceso a recursos replicados sin conocimiento de que lo son • Fallos: mantenimiento del servicio en presencia de fallos. • Migración: permite que los recursos y objetos se muevan sin afectar a la operación de los programas. • Capacidad de crecimiento: facilidad para crecer sin afectar a la estructura del sistema Sistemas operativos: una visión aplicada 26 © J. Carretero, F. García, P. de
  • 27. Middleware y entornos distribuidos Aplicaciones Lenguajes de programación Middleware Sistema operativo Sistema operativo Hardware Hardware Red de interconexión • Servicios y protocolos estándarizados: Sistemas abiertos • Ofrecen servicios no incluidos en el SO (servicios de ficheros distribuidos, servicios de nombres, ...) • Facilitan el desarrollo de aplicaciones distribuidas • Independientes del HW y del SO subyacente. • DCE, CORBA, DCOM, Legion, Globe, Globus Sistemas operativos: una visión aplicada 27 © J. Carretero, F. García, P. de
  • 28. Servicios de un sistema operativo distribuido • Servicios de comunicación • Servicios de sincronización • Gestión distribuida de procesos • Sistemas de archivos distribuidos • Memoria compartida distribuida Sistemas operativos: una visión aplicada 28 © J. Carretero, F. García, P. de
  • 29. Contenido • Sistemas distribuidos • Sistemas operativos distribuidos • Comunicación de procesos • Sincronización de procesos • Gestión de procesos • Sistemas de archivos • Gestión de memoria Sistemas operativos: una visión aplicada 29 © J. Carretero, F. García, P. de
  • 30. Comunicación en sistemas distribuidos • La comunicación de procesos es fundamental en cualquier sistema distribuido • Existen diferentes posibilidades todas ellas basadas en el paso de mensajes – Mecanismos de bajo nivel, el programador debe preocuparse de establecer los protocolos de comunicación, representación de datos, etc. • Colas de mensajes • Sockets – Mecanismo de alto nivel, ofrecen abstracciones donde el programador no debe preocuparse de establecer protocolos • Llamadas a procedimientos remotos • Invocación de métodos remotos (entornos orientados a objetos) Sistemas operativos: una visión aplicada 30 © J. Carretero, F. García, P. de
  • 31. Comunicación cliente-sevidor Muy utilizada en entornos distribuidos (más del 90% de los sistemas distribuidos utilizan la arquitectura cliente-servidor) Máquina A petcición Máquina B cliente servidor respuesta NÚCLEO NÚCLEO RED Protocolo típico: petición-respuesta Sistemas operativos: una visión aplicada 31 © J. Carretero, F. García, P. de
  • 32. Comunicación de grupos • Utiliza mensajes multicast • Útil para: – Ofrecer tolerancia a fallos basado en servicios replicados – Localizar objetos en sistemas distribuidos – Mejor rendimiento mediante datos replicados – Actualizaciones múltiples – Operaciones colectivas en cálculo paralelo Sistemas operativos: una visión aplicada 32 © J. Carretero, F. García, P. de
  • 33. Sockets • Aparecieron en 1981 en UNIX BSD 4.2 – Intento de incluir TCP/IP en UNIX – Diseño independiente del protocolo de comunicación • Un socket es punto final de comunicación (dirección IP y puerto) • Abstracción que: – Ofrece interfaz de acceso a los servicios de red en el nivel de transporte • Protocolo TCP • Protocolo UDP – Representa un extremo de una comunicación bidireccional con una dirección asociada Sistemas operativos: una visión aplicada 33 © J. Carretero, F. García, P. de
  • 34. Sockets: introducción • Sujetos a proceso de estandarización dentro de POSIX (POSIX 1003.1g) • Actualmente – Disponibles en casi todos los sistemas UNIX – En prácticamente todos los sistemas operativos • WinSock: API de sockets de Windows – En Java como clase nativa Sistemas operativos: una visión aplicada 34 © J. Carretero, F. García, P. de
  • 35. Sockets UNIX • Dominios de comunicación • Tipos de sockets • Direcciones de sockets • Creación de un socket • Asignación de direcciones • Solicitud de conexión • Preparar para aceptar conexiones • Aceptar una conexión • Transferencia de datos Sistemas operativos: una visión aplicada 35 © J. Carretero, F. García, P. de
  • 36. Dominios de comunicación • Un dominio representa una familia de protocolos • Un socket está asociado a un dominio desde su creación • Sólo se pueden comunicar sockets del mismo dominio • Algunos ejemplos: – PF_UNIX (o PF_LOCAL): comunicación dentro de una máquina – PF_INET: comunicación usando protocolos TCP/IP • Los servicios de sockets son independientes del dominio Sistemas operativos: una visión aplicada 36 © J. Carretero, F. García, P. de
  • 37. Tipos de sockets • Stream (SOCK_STREAM) – Orientado a conexión – Fiable, se asegura el orden de entrega de mensajes – No mantiene separación entre mensajes – Si PF_INET se corresponde con el protocolo TCP • Datagrama (SOCK_DGRAM) – Sin conexión – No fiable, no se asegura el orden en la entrega – Mantiene la separación entre mensajes – Si PF_INET se corresponde con el protocolo UDP • Raw (SOCK_RAW) – Permite el acceso a los protocolos internos como IP Sistemas operativos: una visión aplicada 37 © J. Carretero, F. García, P. de
  • 38. Direcciones de sockets • Cada socket debe tener asignada una dirección única • Las direcciones se usan para: – Asignar una dirección local a un socket (bind) – Especificar una dirección remota (connect o sendto) • Dependientes del dominio • Se utiliza la estructura genérica struct sockaddr • Cada dominio usa una estructura específica – Direcciones en PF_UNIX (struct sockaddr_un) • Nombre de fichero – Direcciones en PF_UNIX (struct sockaddr_in) – Uso de conversión de tipos (casting) en las llamadas Sistemas operativos: una visión aplicada 38 © J. Carretero, F. García, P. de
  • 39. Direcciones de sockets en PF_INET • Host (32 bits) + puerto (16 bits) • Una dirección IP se almacena en una estructura de tipo: – struct in_addr • Estructura struct sockaddr_in – Debe iniciarse a 0 – sin_family: dominio (AF_INET) – sin_port: puerto – sin_addr: dirección del host • Función que facilita el nombre de la máquina en la que se ejecuta: int gethostname(char *name, int namelen); Sistemas operativos: una visión aplicada 39 © J. Carretero, F. García, P. de
  • 40. Obtención de la dirección de host • Usuarios manejan direcciones en forma de texto: – decimal-punto: 138.100.8.100 – dominio-punto: laurel.datsi.fi.upm.es • Algunas funciones para trabajar con direcciones: – char *inet_ntoa(struct in_addr in); • Devuelve una dirección en notación decimal-punto. – struct hostent *gethostbyname(char *str); • Convierte una dirección en notación dominio-punto a una estructura que describe máquina. • Algunos campos de la estructura struct hostent: – char *name nombre oficial de la máquina – char **h_addr_list lista de direcciones Sistemas operativos: una visión aplicada 40 © J. Carretero, F. García, P. de