Tipos de comunicación La comunicación puede ser:

Documentos relacionados
EL MODELO DE ESTRATIFICACIÓN POR CAPAS DE TCP/IP DE INTERNET

Redes (IS20) Ingeniería Técnica en Informática de Sistemas. CAPÍTULO 8: El nivel de transporte en Internet

INTRODUCCIÓN. El protocolo TCP, funciona en el nivel de transporte del modelo de referencia OSI, proporcionando un transporte fiable de datos.

4. Programación Paralela

El Modelo de Referencia OSI

(decimal) (hexadecimal) 80.0A.02.1E (binario)

SISTEMAS OPERATIVOS AVANZADOS


RAID. Redundant Array of Independent Disks. Rafael Jurado Moreno Fuente: Wikipedia

Tema 4.1: - TRANSPORTE-

Anexo B. Comunicaciones entre mc y PC

TEMA: PROTOCOLOS TCP/IP

EL MODELO DE ESTRATIFICACIÓN POR CAPAS DE TCP/IP DE INTERNET

Entre los más conocidos editores con interfaz de desarrollo tenemos:

Fundamentos de Ethernet. Ing. Camilo Zapata Universidad de Antioquia

Índice general. Tipos de servicio de transporte. Por qué un nivel de transporte? TEMA 6 Funciones de los niveles superiores. Miguel A.

ARQUITECTURA DE REDES Laboratorio

Arquitecturas cliente/servidor

Capítulo 5. Cliente-Servidor.

Gracias a ese IP único que tiene cada ordenador conectado a la red de internet se pueden identificar y comunicar los ordenadores.

Tema 4. Gestión de entrada/salida

ARQUITECTURAS CLIENTE/SERVIDOR

Aspectos Básicos de Networking

Capitulo I. Introducción

Versión final 8 de junio de 2009

Propuesta de Portal de la Red de Laboratorios Virtuales y Remotos de CEA

Incidencias: Todas las incidencias que ocurrirán durante el apadrinamiento de un niño se deben registrar para poder buscar soluciones.

GedicoPDA: software de preventa

Servicio de Alta, Baja, Modificación y Consulta de usuarios Medusa

REDES INFORMATICAS: Protocolo IP

Capa de TRANSPORTE. Ing. José Martín Calixto Cely Original: Galo Valencia P.

DISCOS RAID. Se considera que todos los discos físicos tienen la misma capacidad, y de no ser así, en el que sea mayor se desperdicia la diferencia.

Tema 1 Introducción. Arquitectura básica y Sistemas Operativos. Fundamentos de Informática

MICQ. Trabajo Práctico Final Seminario de Ingeniería en Informática I Facultad de Ingeniería, UBA. Junio Cátedra: Pablo Cosso

Concurrencia. Primitivas IPC con bloqueo

Capas del Modelo ISO/OSI

Roles y Características

Introducción a la Firma Electrónica en MIDAS

M.T.I. Arturo López Saldiña

Práctica GESTIÓN Y UTILIZACIÓN DE REDES LOCALES. Curso 2001/2002. TCP/IP: protocolo TCP

INTERNET 4º ESO INFORMATICA / DEP. TECNOLOGIA

SERVIDOR WEB PARA ACCESO EN TIEMPO REAL A INFORMACIÓN METEOROLÓGICA DISTRIBUIDA

INSTITUTO TECNOLÓGICO DE SALINA CRUZ. Fundamentos De Redes. Semestre Agosto-Diciembre Reporte De Lectura

Unidad IV: TCP/IP. 4.1 Modelo Cliente-Servidor

INTRODUCCION. Tema: Protocolo de la Capa de aplicación. FTP HTTP. Autor: Julio Cesar Morejon Rios

Actividad 4: Comunicación entre PLC s vía Ethernet

IAP TÉCNICAS DE AUDITORÍA APOYADAS EN ORDENADOR (TAAO)

QUIERES COMPROBAR CÓMO LAS REDES DETECTAN Y CORRIGEN ERRORES?

SIIGO PYME PLUS. Proceso de Recuperación. Cartilla I

COMO FUNCIONA INTERNET

Una arquitectura para el desarrollo de sistemas de gestión empresarial. La Arquitectura AF y ASPL Fact.

Arquitectura de sistema de alta disponibilidad

Efectos de los dispositivos de Capa 2 sobre el flujo de datos Segmentación de la LAN Ethernet

UNIDADES FUNCIONALES DEL ORDENADOR TEMA 3

MANUAL DE AYUDA TAREA PROGRAMADA COPIAS DE SEGURIDAD

3.INSTALACIÓN Y CONFIGURACIÓN DE LOS EQUIPOS DE RED

Redes de Computadores I

ARQUITECTURA DE DISTRIBUCIÓN DE DATOS

Arquitectura de Aplicaciones

Información sobre seguridad

1.1.- Objetivos de los sistemas de bases de datos Administración de los datos y administración de bases de datos Niveles de Arquitectura

Las empresas dependen de las redes para funcionar correctamente todos los días.

Introducción a las redes de computadores

COPIAS DE SEGURIDAD AUTOMÁTICAS DE DIRECCIONES CALLEÇPAÑA

KW x hora. on/off

4 Pruebas y análisis del software

3. FUNCIONAMIENTO DE LA FUNCIONES TXD Y RXD 4. EJEMPLO DE ENVÍO DE SMS DESDE EL PLC 5. EJEMPLO DE RECEPCIÓN DE SMS EN EL PLC

Elementos requeridos para crearlos (ejemplo: el compilador)

Conceptos Básicos de Software. Clase III

Workflows? Sí, cuántos quiere?

WINDOWS : TERMINAL SERVER

1.- DESCRIPCIÓN Y UTILIDAD DEL SOFTWARE DAEMON TOOLS.

Tutorial BMS Server Studio UDP

La utilización de las diferentes aplicaciones o servicios de Internet se lleva a cabo respondiendo al llamado modelo cliente-servidor.

Examen Cisco Online CCNA4 V4.0 - Capitulo 5. By Alen.-

CRIPTOGRAFÍA SIMÉTRICA Y ASIMÉTRICA

Redes Locales: El protocolo TCP/IP

Estructuras de Sistemas Operativos

La interoperabilidad se consigue mediante la adopción de estándares abiertos. Las organizaciones OASIS y W3C son los comités responsables de la

Práctica GESTIÓN Y UTILIZACIÓN DE REDES LOCALES. Curso 2001/2002. TCP/IP: protocolo ICMP

Firewall Firestarter. Establece perímetros confiables.

TELECOMUNICACIONES Y REDES

servicios. El API es definido al nivel de código fuente y proporciona el nivel de

ENVÍO DE POR MEDIO DE SMTP

No se requiere que los discos sean del mismo tamaño ya que el objetivo es solamente adjuntar discos.

PRACTICA CAPITULO 2 MODULO 1 PROTOCOLOS Y LA FUNCIONALIDAD DE LA CAPA DE APLICACIÓN

Ingeniería del Software I Clase de Testing Funcional 2do. Cuatrimestre de 2007

Nivel de transporte: UDP

LINEAMIENTOS ESTÁNDARES APLICATIVOS DE VIRTUALIZACIÓN

Información sobre seguridad

LiLa Portal Guía para profesores

Asignatura: Laboratorio de Computadores. Curso º Semestre, 3er. Curso. Ingeniería Informática. Práctica de SOCKETS

CAPÍTULO 3 Servidor de Modelo de Usuario

Con esta nueva versión, si un artículo que está incluido dentro de un Paquete de Ventas tiene precio 0,00, significará gratis.

Acronis License Server. Guía del usuario

Redes (4º Ing. Informática Univ. Cantabria)

MANUAL DE AYUDA HERRAMIENTA DE APROVISIONAMIENTO

Introducción a las Redes

Los mayores cambios se dieron en las décadas de los setenta, atribuidos principalmente a dos causas:

3.1 INGENIERIA DE SOFTWARE ORIENTADO A OBJETOS OOSE (IVAR JACOBSON)

Transcripción:

Unidad 3. Procesos concurrentes 3.3 Semáforos (informática) Un semáforo es una variable especial (o tipo abstracto de datos) que constituye el método clásico para restringir o permitir el acceso a recursos compartidos (por ejemplo, un recurso de almacenamiento del sistema o variables del código fuente) en un entorno de multiprocesamiento (en el que se ejecutarán varios procesos concurrentemente). Fueron inventados por Edsger Dijkstra en 1965 y se usaron por primera vez en el sistema operativo THEOS. Los semáforos pueden ser usados para diferentes propósitos, entre ellos: Implementar cierres de exclusión mutua o locks Barreras Permitir a un máximo de N threads (hilos) acceder a un recurso, inicializando el semáforo en N Conceptos de Sincronización y comunicación entre procesos: Los procesos que ejecutan de forma concurrente en un sistema se pueden clasificar como procesos independientes o cooperantes. Un proceso independiente es aquel que ejecuta sin requerir la ayuda o cooperación de otros procesos. Un claro ejemplo de procesos independientes son los diferentes intérpretes de mandatos que se ejecutan de forma simultánea en un sistema. Los procesos son cooperantes cuando están diseñados para trabajar conjuntamente en alguna actividad, para lo que deben ser capaces de comunicarse e interactuar entre ellos. Tanto si los procesos son independientes como cooperantes, pueden producirse una serie de interacciones entre ellos. Estas interacciones pueden ser de dos tipos: Interacciones motivadas porque los procesos comparten o compiten por el acceso a recursos físicos o lógicos. Esta situación aparece en los distintos tipos de procesos anteriormente comentados. Por ejemplo, dos procesos totalmente independientes pueden competir por el acceso a disco. En este caso, el sistema operativo deberá encargarse de que los dos procesos accedan ordenadamente sin que se cree ningún conflicto. Esta situación también aparece cuando varios procesos desean modificar el contenido de un registro de una base de datos. Aquí es el gestor de la base de datos el que se tendrá que encargar de ordenar los distintos accesos al registro. Interacción motivada porque los procesos se comunican y sincronizan entre sí para alcanzar un objetivo común. Por ejemplo, un compilador se puede construir mediante dos procesos: el compilador propiamente dicho, que se encarga de generar código ensamblador, y el proceso ensamblador, que obtiene código en lenguaje máquina a partir del ensamblador. En este ejemplo puede apreciarse la necesidad de comunicar y sincronizar a los dos procesos. Estos dos tipos de interacciones obligan al sistema operativo a incluir mecanismo y servicios que permitan la comunicación y la sincronización entre procesos. 1

Tipos de comunicación La comunicación puede ser: Síncrona o asíncrona Persistente (persistent) o momentánea (transient) Directa o indirecta Simétrica o asimétrica Con uso de buffers explícito o automático Envío por copia del mensaje o por referencia Mensajes de tamaño fijo o variable Síncrona Quien envía permanece bloqueado esperando a que llegue una respuesta del receptor antes de realizar cualquier otro ejercicio. Asíncrona Quien envía continúa con su ejecución inmediatamente después de enviar el mensaje al receptor. Persistente El receptor no tiene que estar operativo al mismo tiempo que se realiza la comunicación, el mensaje se almacena tanto tiempo como sea necesario para poder ser entregado (Ej.: e-mail). Momentánea (transient) El mensaje se descarta si el receptor no está operativo al tiempo que se realiza la comunicación. Por lo tanto no será entregado. Directa Las primitivas enviar y recibir explicitan el nombre del proceso con el que se comunican. Las operaciones básicas Send y Receive se definen de la siguiente manera: Send (P, mensaje); envía un mensaje al proceso P (P es el proceso destino). Receive (Q, mensaje); espera la recepción de un mensaje por parte del proceso Q (Q es el proceso fuente). Nota: Receive puede esperar de un proceso cualquiera, un mensaje, pero el Send sí debe especificar a quién va dirigido y cuál es el mensaje. Indirecta La comunicación Indirecta: Es aquella donde la comunicación está basada en una herramienta o instrumento ya que el emisor y el receptor están a distancia. Simétrica Todos los procesos pueden enviar o recibir. También llamada bidireccional para el caso de dos procesos. 2

Asimétrica Un proceso puede enviar, los demás procesos solo reciben. También llamada unidireccional. Suele usarse para hospedar servidores en Internet. Uso de buffers automático El transmisor se bloquea hasta que el receptor recibe el mensaje (capacidad cero). RPC (Remote Procedure Call / llamada a un procedimiento remoto) Permitir que los programas realicen llamadas a funciones localizadas en otras máquinas. Los programadores no se tienen que preocupar por los detalles de la programación de la red. Conceptualmente simple. Desde el punto de vista de un programador la llamada a una función remota es y funciona de la misma manera que lo haría si la llamada fuese local. En este sentido, se logra transparencia. Cada función pasa a tener dos partes: cliente, la máquina local donde se implementa la interface (prototipo de una función) para invocar las funciones remotas. Servidor, implementación de las funciones propiamente dichas. Paso de parámetros No debería de existir ningún problema si dos máquinas son homogéneas, sin embargo la realidad no suele ser ésta. Pueden surgir problemas de diferentes codificación de caracteres (ej.: mainframe IBM: EBCDIC, IBM PC: ASCII) o diferentes tipos de ordenación de bytes (ej.: Intel: little endian, Sun SPARC: big endian). Como solución a estos problemas es importante lograr un acuerdo del protocolo usado. La parte encargada de generar los mensajes no debe de presuponer el uso de un lenguaje de programación específico. Invocación remota de métodos (RMI) Es un mecanismo de expansión de RPC cuyo objetivo es dar soporte a sistemas orientado a objetos. La idea es tener objetos distribuidos. Para acceder al estado de un objeto sólo se realiza a través de métodos definidos por un objeto interface. Un objeto ofrece múltiples interfaces. Una interface puede ser implementada por múltiples objetos. Comunicación orientada a mensajes Las comunicaciones RPC se basan en la idea que el receptor está operativo para poder invocar una cierta función, no podemos suponer que el receptor siempre estará operativo y esperando a comunicarse. La solución es definir la comunicación en término de paso de mensajes. Mensajes momentáneos vs. mensajes persistentes 3

Momentáneos: no soportan el envío de mensajes persistentes. (1) Sockets, (2) Messagepassing interface (MPI). Comunicación orientada a streams Los modelos RPC, RMI y MOM realizan comunicaciones independientes del tiempo. Existen también sistemas donde el tiempo es crucial en la comunicación, o los resultados de salida serán incorrecto; es así el caso de trasmisión de audio, video, sensor de datos, etc. (comunicación continua de datos) donde cortes de comunicación generan retardos no deseados. Comunicación entre procesos Linux La comunicación puede simplemente ser cuestión de dejar que otro proceso sepa que ha ocurrido algún evento, o puede implicar la transferencia de datos de un proceso a otro. Señales El mecanismo estándar para informar a un proceso que ha ocurrido un evento es la señal. Se pueden enviar señales de un proceso a otro pero sin enviar información. Las señales no necesitan ser generadas por otro proceso, también puede ser generada por el kernel. Linux también implementa un mecanismo de semáforos. Un proceso puede esperar un semáforo tan fácilmente como espera una señal. Paso de datos entre procesos El mecanismo de tubería (pipe) estándar permite a un proceso hijo heredar un canal de comunicación con su padre; los datos que se escriben en un extremo de la tubería se leen en el otro. También define un conjunto de servicios para trabajo en red que pueden enviar flujos de datos tanto a procesos locales como remotos. Hay otro método que es la memoria compartida que ofrece una forma extremadamente rápida de comunicar cantidades grandes o pequeñas de datos; cualquier dato escrito por un proceso en una región de memoria compartida puede ser leído por cualquier otro proceso que haya mapeado dicha region en su espacio de direcciones. Freedesktop Para comunicación entre aplicaciones gráficas existe D-Bus, usado por GNOME y KDE entre otros. Permite fácilmente comunicar unas aplicaciones con otras o controlar cualquier elemento de una interfaz gráfica desde consola a con un programa hecho al efecto. Comunicación multicast Es la abstracción de diseminación de datos. Utilizando el soporte de difusión (broadcast) en las redes locales para realizar tareas como protocolos epidémicos. Funciones de TCP En la pila de protocolos TCP/IP, TCP es la capa intermedia entre el protocolo de internet (IP) y la aplicación. Habitualmente, las aplicaciones necesitan que la comunicación sea fiable y, dado que la capa IP aporta un servicio de datagramas no fiable (sin 4

confirmación), TCP añade las funciones necesarias para prestar un servicio que permita que la comunicación entre dos sistemas se efectúe libre de errores, sin pérdidas y con seguridad. El protocolo TCP es un protocolo orientado a conexión, es decir, que permite que dos máquinas que están comunicadas controlen el estado de la transmisión. Transferencia de datos Durante la etapa de transferencia de datos, una serie de mecanismos claves determinan la fiabilidad y robustez del protocolo. Entre ellos están incluidos el uso del número de secuencia para ordenar los segmentos TCP recibidos y detectar paquetes duplicados, checksums para detectar errores, y asentimientos y temporizadores para detectar pérdidas y retrasos. Durante el establecimiento de conexión TCP, los números iniciales de secuencia son intercambiados entre las dos entidades TCP. Estos números de secuencia son usados para identificar los datos dentro del flujo de bytes, y poder identificar (y contar) los bytes de los datos de la aplicación. Siempre hay un par de números de secuencia incluidos en todo segmento TCP, referidos al número de secuencia y al número de asentimiento. Un emisor TCP se refiere a su propio número de secuencia cuando habla de número de secuencia, mientras que con el número de asentimiento se refiere al número de secuencia del receptor. Para mantener la fiabilidad, un receptor asiente los segmentos TCP indicando que ha recibido una parte del flujo continuo de bytes. Una mejora de TCP, llamada asentimiento selectivo (SACK, Selective Acknowledgement) permite a un receptor TCP asentir los datos que se han recibido de tal forma que el remitente solo retransmita los segmentos de datos que faltan. A través del uso de números de secuencia y asentimiento, TCP puede pasar los segmentos recibidos en el orden correcto dentro del flujo de bytes a la aplicación receptora. Los números de secuencia son de 32 bits (sin signo), que vuelve a cero tras el siguiente byte después del 232-1. Una de las claves para mantener la robustez y la seguridad de las conexiones TCP es la selección del número inicial de secuencia (ISN, Initial Sequence Number). Un checksum de 16 bits, consistente en el complemento a uno de la suma en complemento a uno del contenido de la cabecera y datos del segmento TCP, es calculado por el emisor, e incluido en la transmisión del segmento. Se usa la suma en complemento a uno porque el acarreo final de ese método puede ser calculado en cualquier múltiplo de su tamaño (16-bit, 32-bit, 64-bit...) y el resultado, una vez plegado, será el mismo. El receptor TCP recalcula el checksum sobre las cabeceras y datos recibidos. El complemento es usado para que el receptor no tenga que poner a cero el campo del checksum de la cabecera antes de hacer los cálculos, salvando en algún lugar el valor del checksum recibido; en vez de eso, el receptor simplemente calcula la suma en complemento a uno con el checksum incluido, y el resultado debe ser igual a 0. Si es así, se asume que el segmento ha llegado intacto y sin errores. El checksum de TCP es una comprobación bastante débil. En niveles de enlace con una alta probabilidad de error de bit quizá requiera una capacidad adicional de corrección/detección de errores de enlace. Si TCP fuese rediseñado hoy, muy probablemente tendría un código de redundancia cíclica (CRC) para control de errores en vez del actual checksum. La debilidad del checksum está parcialmente compensada por 5

el extendido uso de un CRC en el nivel de enlace, bajo TCP e IP, como el usado en el PPP o en Ethernet. Sin embargo, esto no significa que el checksum de 16 bits es redundante: sorprendentemente, inspecciones sobre el tráfico de Internet han mostrado que son comunes los errores de software y hardware[cita requerida] que introducen errores en los paquetes protegidos con un CRC, y que el checksum de 16 bits de TCP detecta la mayoría de estos errores simples. 6