distribuido, paralelo e integrado - elisa schaeffer · • cliente-proxy-servidor • entre pares...

19
Retos del cómputo moderno Distribuido, paralelo e integrado Conferencia magistral, el 15 de octubre del 2008 Cuarto Congreso Internacional de las Tendencias Tecnológicas en Computación Centro de Innovación y Desarrollo Tecnológico en Cómputo, IPN, México D.F. Dra. Elisa Schaeffer CENTRO DE INNOVACIÓN, INVESTIGACIÓN Y DESARROLLO EN INGENIERÍA Y TECNOLOGÍA

Upload: trinhhanh

Post on 10-Apr-2018

222 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: Distribuido, paralelo e integrado - Elisa Schaeffer · • Cliente-proxy-servidor • Entre pares ... • diferencias en el hardware, ... solo procesador en una cierta versión de

Retos del cómputo modernoDistribuido, paralelo e integrado

Conferencia magistral, el 15 de octubre del 2008Cuarto Congreso Internacional de las Tendencias Tecnológicas en Computación Centro de Innovación y Desarrollo Tecnológico en Cómputo, IPN, México D.F.

Dra. Elisa Schaeffer

CENTRO DE INNOVACIÓN, INVESTIGACIÓN Y DESARROLLOEN INGENIERÍA Y TECNOLOGÍA

PISIS

El Programa de Posgrado en Ingeniería de Sistemas de la UANL

tiene su sede en la Facultad de Ingeniería Mecánica y Eléctrica

(FIME).

El énfasis del programa es en formar profesionales a nivel maestría

y doctorado capaces de proveer el soporte científico a los sistemas

de toma de decisiones que surgen en la industria, gobierno o

academia. !

Estas decisiones son de marcada importancia por el impacto

económico que éstas conllevan.

Page 2: Distribuido, paralelo e integrado - Elisa Schaeffer · • Cliente-proxy-servidor • Entre pares ... • diferencias en el hardware, ... solo procesador en una cierta versión de

Sistemas distribuidos

• Un sistema distribuido consiste en componentes ubicados en computadoras individuales que comunican entre ellos vía una red de telecomunicaciones.

• La motivación principal para sistemas distribuidos es compartir recursos, o sea contenidos (documentos, música, películas), dispositivos (pantallas, impresoras) o recursos computacionales (memoria, disco duro, procesador).

Page 3: Distribuido, paralelo e integrado - Elisa Schaeffer · • Cliente-proxy-servidor • Entre pares ... • diferencias en el hardware, ... solo procesador en una cierta versión de

Ejemplos de sistemas y servicios distribuidos

• Internet - una red de ruteadores, computadoras y otros dispositivos de red.

• WWW - un servicio que opera en la Internet que consiste de servidores HTTP y programas clientes (navegadores) para acceder contenido de los servidores vía identificadores tipo URL.

• Redes de telefonía celular - estaciones base, servidores y teléfonos móviles.

• Cómputo ubicuo - la cooperación y sincronización automatizada de dispositivos móviles con dispositivos en su ambiente.

• Redes P2P (peer-to-peer) - disponibilidad de contenido en las computadoras de los usuarios participantes para compartir en la Internet.

Page 4: Distribuido, paralelo e integrado - Elisa Schaeffer · • Cliente-proxy-servidor • Entre pares ... • diferencias en el hardware, ... solo procesador en una cierta versión de

Servicios y aplicaciones

CORBA

AdiumSSH

AMD

Estructura de un sistema distribuido

Capa de hardware

Sistema operativo

Intel

LinuxXP

OS X

RMI

SkypeFirefox

Middleware

Page 5: Distribuido, paralelo e integrado - Elisa Schaeffer · • Cliente-proxy-servidor • Entre pares ... • diferencias en el hardware, ... solo procesador en una cierta versión de

Ejemplos de arquitecturas posibles

• Cliente-servidor

• Cliente-multiservidor

• Cliente-proxy-servidor

• Entre pares (P2P)

Page 6: Distribuido, paralelo e integrado - Elisa Schaeffer · • Cliente-proxy-servidor • Entre pares ... • diferencias en el hardware, ... solo procesador en una cierta versión de

Retos principales de sistemas distribuidos

• Al diseñar y operar sistemas distribuidos, el ingeniero enfrenta numerosos retos:

• Los componentes pueden tener características diferentes.

• Es posible que todos o algunos de los componentes entran y salen el sistema independientemente de una manera dinámica, cambiando su estructura.

• Hay que atender los asuntos de seguridad: control de accesos, permisos y derechos.

• Hay que asegurar extensibilidad a un alto número de usuarios simultáneos.

• Si un componente falla, el sistema debe recuperar de los errores que causa la pérdida del componente.

• Todo el sistema debe funcionar de una manera transparente para que el usuario no tenga que estar consiente de la naturaleza distribuida.

Page 7: Distribuido, paralelo e integrado - Elisa Schaeffer · • Cliente-proxy-servidor • Entre pares ... • diferencias en el hardware, ... solo procesador en una cierta versión de

Puntos críticos

• Canales de comunicación - rapidez, confiabilidad

• Sincronización y un “reloj común” - poder establecer un orden temporal entre mensajes recibidos

• Detección de errores y fallas

• Recuperación de errores y fallas

• Adaptación a cambios dinámicos en la estructura

• Eficacia de los protocolos de comunicación y operación

• Ruteo de los mensajes en el sistema

• Control de congestión de las canales de comunicación

Page 8: Distribuido, paralelo e integrado - Elisa Schaeffer · • Cliente-proxy-servidor • Entre pares ... • diferencias en el hardware, ... solo procesador en una cierta versión de

Parelelismo

• En un sistema uniprocesador, el paralelismo refiere a la comunicación y coordinación entre los procesos que están esperando su turno de ejecución. En este caso, paralelismo es una abstracción del sistema.

• Actualmente, hasta una laptop barata ya puede contar con un procesador de doble núcleo, que permite que dos procesos estén en ejecución simultáneamente.

• Los retos del paralelismo son la coordinación, sincronización y cooperación de los procesos que se ejecuta de manera simultánea.

• Esto no es nada fácil - casi cada caída de una computadora se debe a un error en cómo el sistema maneja el paralelismo.

Page 9: Distribuido, paralelo e integrado - Elisa Schaeffer · • Cliente-proxy-servidor • Entre pares ... • diferencias en el hardware, ... solo procesador en una cierta versión de

Sistemas paralelos versus distribuidos

• Los sistemas distribuidos son necesariamente paralelos - los distintos componentes del sistema operan simultáneamente.

• Un sistema paralelo no es necesariamente distribuido: si los núcleos tienen acceso a una memoria local compartida, se facilita mucho la tarea de su coordinación.

• En sistemas distribuidos, frecuentemente se necesita establecer algún tipo de memoria compartida distribuida para la realización de ciertos tipos de operaciones.

• En ambos casos, una tarea importante es la recolección de basura - no es trivial saber qué memoria sigue en uso cuando no está manejado por un solo proceso centralizado.

Page 10: Distribuido, paralelo e integrado - Elisa Schaeffer · • Cliente-proxy-servidor • Entre pares ... • diferencias en el hardware, ... solo procesador en una cierta versión de

Coordinación justo, atómico y sin bloqueos

• Es necesario que la repartición de acceso y tiempo de uso de recursos compartidos sea justa (inglés: fairness) entre todos los procesos que lo solicitan.

• Cuando un proceso está realizando una transacción que no debe ser interrumpida (o sea, una transacción atómica), tiene que tener garantizado la continuidad de esa operación.

• No se debe ocurrir que bloqueo donde un proceso A se quede con algún recurso X esperando infinitamente por otro recurso Y que ya tiene reservado otro proceso B que espera por el recurso X (inglés: deadlock).

Page 11: Distribuido, paralelo e integrado - Elisa Schaeffer · • Cliente-proxy-servidor • Entre pares ... • diferencias en el hardware, ... solo procesador en una cierta versión de

Retos de la paralelización

• Es cierto que dos procesadores pueden ejecutar - en teoría - una tarea más rápidamente que uno solo.

• Sin embargo, el programador tiene que diseñar su programa de tal manera que sea posible identificar cuáles partes se puede ejecutar en paralelo y qué dependencias hay entre las tareas que ejecuta el programa.

Page 12: Distribuido, paralelo e integrado - Elisa Schaeffer · • Cliente-proxy-servidor • Entre pares ... • diferencias en el hardware, ... solo procesador en una cierta versión de

Sistemas integrados (inglés: embedded systems)

• Cuando el dispositivo final no es una computadora sino un aparato que tiene funcionalidad afuera de pura computación, nos enfrentamos con más retos.

• Las condiciones de operación están dictadas por la funcionalidad principal del aparato, sea un teléfono, un robot industrial, un vehículo o una lavadora.

• Típicamente la capacidad computacional de un dispositivo integrado es significativamente menor a la de computadoras tradicionales.

• Son sistemas de tiempo real: el tiempo de espera permisible entre la acción de un usuario y la reacción del sistema está mucho más limitada.

• En el desarrollo de sistemas integrados, los requisitos de diseño, especificación, verificación y respeto a los estándares es aún más importante que en el desarrollo de software para computadoras - los errores no serán puramente de cómputo, sino pueden tener repercusiones físicas inmediatas.

Page 13: Distribuido, paralelo e integrado - Elisa Schaeffer · • Cliente-proxy-servidor • Entre pares ... • diferencias en el hardware, ... solo procesador en una cierta versión de

Conocimientos necesarios

• Para poder exitosamente diseñar y desarrollar sistemas integrados, se requiere conocimientos previos de

• física (mecánica, electromagnetismo),

• electrónica (componentes básicos, diagramas),

• procesamiento de señales (transformaciones, teoría de control, sensores),

• arquitectura de computadoras (instrucciones de procesadores, manejo de memoria, canales de entrada y salida) y

• sistemas operativos (núcleos, controladores de dispositivos).

Page 14: Distribuido, paralelo e integrado - Elisa Schaeffer · • Cliente-proxy-servidor • Entre pares ... • diferencias en el hardware, ... solo procesador en una cierta versión de

Retos por dispositivos heterogéneos

• Al desarrollar código y operar el mismo software en distintos tipos de dispositivos, uno tiene que considerar los cambios con respeto a

• protocolos, interfaces y acceso a redes de telecomunicación,

• diferencias en el hardware, tales como

• cantidad, velocidad y persistencia de la memoria,• velocidad y tipo del procesador y• diferencias en tamaño, resolución y tipo de pantalla;

• los sistemas operativos y sus características fundamentales como

• el formato del sistema de archivos

• los módulos y mecanismos de control

• lenguajes de programación, verificando

• la disponibilidad de compiladores,

• la compatibilidad de librerías y

• la eficiencia del ejecutable.

Page 15: Distribuido, paralelo e integrado - Elisa Schaeffer · • Cliente-proxy-servidor • Entre pares ... • diferencias en el hardware, ... solo procesador en una cierta versión de

Retos por extensibilidad

• Para poder extender la funcionalidad del sistema, se atiende

• la definición de interfaces públicas de programación,

• reuso de código y componentes existentes,

• código abierto,

• interoperabilidad de código escrito por distintas personas y

• complejidad de las combinaciones de condiciones que emergen en el crecimiento del sistema.

• Para poder extender el uso del sistema a un mayor número de usuarios:

• El sistema debe funcionar eficientemente aún cuando el número de usuarios incremente de una manera significativa con respeto a tiempo de respuesta.

• El incremento en la cantidad necesaria de recursos no puede ser mayor que lineal en el número de usuarios.

Page 16: Distribuido, paralelo e integrado - Elisa Schaeffer · • Cliente-proxy-servidor • Entre pares ... • diferencias en el hardware, ... solo procesador en una cierta versión de

Retos de la seguridad de la información

• Una falla no debe destruir o corromper información; se puede recuperar a través de redundancia en la arquitectura y la operación del sistema.

• Acceso a información y recursos debe estar limitado a componentes y usuarios autorizados.

• Uso de criptografía - aplicación de sellos digitales, cifras y certificados.

Page 17: Distribuido, paralelo e integrado - Elisa Schaeffer · • Cliente-proxy-servidor • Entre pares ... • diferencias en el hardware, ... solo procesador en una cierta versión de

Retos de cambios dinámicos y la adaptación

• En la actualidad se busca desarrollar soluciones de cómputo integrado que no requieren intervención de un ser humano para ajustar su comportamiento al enfrentar un cambio en su ambiente de operación.

• Tales sistemas requieren el uso de técnicas de la inteligencia artificial para que el sistema sea capaz de observar su ambiente y deducir la necesidad de realizar cambios en su comportamiento.

• Ese tipo de sistemas ya existen y se están constantemente convirtiendo a algo más cotidiano:

• Sistemas de iluminación y aire acondicionado inteligentes.

• Sistemas de seguridad y control de accesos.

• Sistemas de control vehicular dentro de un vehículo individual y entre grupos de vehículos cercanos.

Page 18: Distribuido, paralelo e integrado - Elisa Schaeffer · • Cliente-proxy-servidor • Entre pares ... • diferencias en el hardware, ... solo procesador en una cierta versión de

Futuro del programador

• Ya no basta saber escribir un programa que funciona en un solo núcleo de un solo procesador en una cierta versión de un cierto sistema operativo con ciertos tipos de periféricos en una computadora individual.

• Hay que manejar...

• programación paralela para aprovechar de los múltiples núcleos o procesadores disponibles en las computadoras;

• programación distribuida: aplicaciones que comunican entre computadoras;

• programación web: aplicaciones que residen en servidores HTTP e interactúan con varios navegadores en diferentes sistemas operativos;

• programación de dispositivos integrados para crear una amplia gama de productos innovadores que facilitan la vida y el trabajo.

Page 19: Distribuido, paralelo e integrado - Elisa Schaeffer · • Cliente-proxy-servidor • Entre pares ... • diferencias en el hardware, ... solo procesador en una cierta versión de

Gracias por su atención.

Recibo con gusto sus preguntas y comentarios en este momento igual como posteriormente por correo electrónico o teléfono.

(81) 1340 4000 http://www.uanl.mx/

ext. 1637 http://www.fime.uanl.mx/

ext. 1509 & 1518 http://www.ciidit.uanl.mx/

[email protected]://it.ciidit.uanl.mx/~elisa/