angelo
INSTITUTO TECNOLÓGICO DE MATEHUALA.
INGENIERÍA EN SISTEMAS COMPUTACIONALES
MATERIA:
SISTEMAS DISTRIBUIDOS II
CONTENIDO:
ENSAYO DE
TENDENCIAS DE SISTEMAS DISTRIBUIDOS
TITULAR:
LIC.- LEÓN PEÑA RAMOS
PRESENTA:
JOSÉ ÁNGEL FLORES HERRERA
SEMESTRE:
NOVENO CURSO DE VERANO
MATEHUALA A JULIO DEL 2006
INTRODUCCIÓN
TENDENCIAS EN LOS SISTEMAS DISTRIBUIDOS
ARQUITECTURA MULTIPROCESADOR
SISTEMAS DISTRIBUIDOS QUE INTEGRAN ARQUITECTURAS MULTIPROCESADOR
APLICACIONES DE MULTIMEDIA EN SISTEMAS DISTRIBUIDOS
CONCLUSIONES
BIBLIOGRAFÍA
INTRODUCCIÓN
En el presente trabajo se expondrán los temas correspondientes a la unidad VII del programa de sistemas distribuidos II la cual se llama tendencia de los sistemas distribuidos y esta compuesta por tres temas: el primero de ellos es la arquitectura multiprocesador, el segundo de ellos es sistemas distribuidos que integran arquitecturas multiprocesador y por ultimo el tema de aplicaciones multimedia en sistemas distribuidos los cuales serán abordados aquí en este trabajo, abarcando sus características y aspectos mas relevantes de estos.
UNIDAD VII TENDENCIAS EN LOS SISTEMAS DISTRIBUIDOS
Veremos a continuación algunos aspectos en los que podrían presentarse cambios en un futuro no muy lejano, teniendo en cuenta que los cambios tecnológicos se producen día a día y en desmesurado avance.
Hardware reciente
Existen muchos dispositivos hardware que en los últimos años están abaratando sus costos, tales como las memorias. Esto mejoraría circunstancialmente los actuales servidores de archivos puesto que se podrá adquirir gran cantidad de gigabytes de memoria, aunque todavía se presente el problema de que la memoria sea volátil, es decir, que cuando se apaga el sistema se borran los archivos.
Una nueva innovación en hardware son los discos ópticos que ahora pueden ser utilizados más de una vez. Aunque son un poco más caros que las cintas de video siempre han sido un aporte importante para los sistemas de archivos, principalmente en el soporte de backups.
Otro desarrollo importante en hardware son las redes de fibra óptica de alta velocidad que agilizarían la transferencia de archivos y se podría prescindir de la memoria caché. Esto también simplificaría en mucho el software a utilizarse en los sistemas de archivos distribuidos.
Escalabilidad
El concepto de escalabilidad propone que cualquier computador individual ha de ser capaz de trabajar independientemente como un sistema de archivos distribuido, pero también debe poder hacerlo conectado a muchas otras máquinas.
Un sistema de archivos debería funcionar tanto para una docena de equipos como para varios millares. Igualmente no debería ser determinante el tipo de red utilizada (LAN o WAN) ni las distancias entre los equipos.
Redes de área amplia
La mayor parte del trabajo que se realiza actualmente en los sistemas distribuidos se basa en los sistemas alojados en redes LAN. La tendencia en el futuro es que veremos conectados entres sí muchos sistemas distribuidos LAN con el fin de formar sistemas distribuidos transparentes a través de todo el mundo. Pero para esto tendría que tomarse como punto de importancia el hecho de que no todos los países utilizan un mismo tipo caracteres para sus archivos, es decir, si en latinoamérica utilizamos los códigos ASCII, puede ser que en otras partes del mundo no se utilice este mismo concepto, lo que produciría una incompatibilidad de datos.
Por otro lado, también es importante el cambio que se producirá en las aplicaciones, puesto que la mayoría de experimentos que actualmente se realizan en las universidades están basados en sistemas parecidos a UNIX.
Un problema que se presentará aun mucho más tiempo es que la conexión de fibra óptica tardará muchos años en instalarse en todos los rincones del planeta y también la existencia de una red de mayor ancho de banda será difícil y costosa de implementar pues no se cuenta, todavía, con una mayor aceptación del potencial público usuario.
Usuarios móviles
Este hecho presenta la inconveniencia de que muchos usuarios no estarán conectados todo el tiempo al sistema, es decir, solo lo estarán algún tiempo y luego no aparecerán. Esto es debido a que todavía no se cuenta con una adecuada red instalada en diversos lugares para que el usuario pueda conectar su laptop, notebook y su PC de bolsillo a su respectivo sistema o al sistema al cual desea conectarse.
Tolerancia de fallas
En la actualidad, la mayor parte de los sistemas de cómputo no presentan tolerancia a fallas. Es común escuchar en las agencias bancarias la frase: "No hay sistema", por lo que tomamos este hecho como algo absolutamente normal. Salvo algunos sistemas especializados como los que se utilizan para el control de tráfico aéreo, otros sistemas no presentan este comportamiento que debería ser el óptimo.
Para que los sistemas cumplan con este requisito, deberá existir o implementarse una consistente infraestructura de hardware lo cual permita a los sistemas ser realmente confiables y seguros en cuanto a tiempo de funcionamiento efectivo se refiere.
7.1.- ARQUITECTURA MULTIPROCESADOR
Los sistemas multiprocesador (MP) son un tipo de arquitectura con una importancia creciente y ampliamente difundido. La mayoría de los constructores de computadores ofrece máquinas en las que están presentes más de una CPU, configuración que es hoy en día es de uso habitual en casi todos los sistemas de tamaño medio y grande. Asimismo, los fabricantes de procesadores incorporan a sus arquitecturas, desde hace pocos años, los mecanismos necesarios para que éstos se puedan emplear fácilmente, y con un coste reducido (publicidad de Sun Microsystems en 1999: "si compra un procesador, le regalamos otro"), en la construcción de este tipo de sistemas.
Los sistemas se clasifican de acuerdo a la distribución de la memoria como:
Memoria compartida: No utiliza ninguna librería y solo hace uso de compiladores.
Memoria distribuida: utiliza librerías de paso de mensajes (PVM, MPI o SHMEM ).
Clasificación atendiendo al criterio del tiempo de acceso a la memoria desde los procesadores, existen dos posibles tipos de sistemas: aquellos en que el acceso a la memoria se produce en un tiempo (latencia) fijo, denominados sistemasUMA (o Uniform Memory Access), y aquellos en que estos tiempos no son homogéneos sino que varían en función de qué procesador y qué porción de memoria consideramos y que se denominan sistemas NUMA (Non Uniform Memory Access)
Dependiendo de la forma en que los procesadores comparten la memoria, se clasifican en sistemas multiprocesador UMA, NUMA y COMA.
UMA (Uniform Memory Access)
Sistema multiprocesador con acceso uniforme a memoria. La memoria física es uniformemente compartida por todos los procesadores, esto quiere decir que todos los procesadores tienen el mismo tiempo de acceso a todas las palabras de la memoria. Cada procesador tiene su propia caché privada y también se comparten los periféricos.
Los multiprocesadores son sistemas fuertemente acoplados (tightly-coupled), dado el alto grado de compartición de los recursos (hardware o software) y el alto nivel de interacción entre procesadores, lo que hace que un procesador dependa de lo que hace otro.
El sistema de interconexión debe ser rápido y puede ser de uno de los siguientes tipos:
· Bus común
· Red crossbar
· Red multietapa
Este modelo es conveniente para aplicaciones de propósito general y de tiempo compartido por varios usuarios.
Existen varias categorías de sistemas UMA.
Sistema Simétrico
Cuando todos los procesadores tienen el mismo tiempo de acceso a todos los componentes del sistema (incluidos los periféricos), reciben el nombre de sistemas multiprocesador simétrico.
Los procesadores tienen el mismo dominio (prioridad) sobre los periféricos y cada procesador tienen la misma capacidad para procesar.
Sistema Asimétrico
Los sistemas multiprocesador asimétrico, son sistemas con procesadores maestros y procesadores esclavos, en donde sólo los primeros pueden ejecutar aplicaciones y dónde en tiempo de acceso para diferentes procesadores no es el mismo. Los procesadores esclavos (attached) ejecutan código usuario bajo la supervisión del maestro, por lo tanto cuando una aplicación es ejecutada en un procesador maestro dispondrá de una cierta prioridad.
NUMA (Non Uniform Memory Access)
Un sistema multiprocesador NUMA es un sistema de memoria compartida donde el tiempo de acceso varía según donde se encuentre localizado el acceso.
El acceso a memoria, por tanto, no es uniforme para diferentes procesadores. Existen memorias locales asociadas a cada procesador y estos pueden acceder a datos de su memoria local de una manera más rápida que a las memorias de otros procesadores, debido a que primero debe aceptarse dicho acceso por el procesador del que depende el módulo de memoria local.
Todas las memorias locales conforman la memoria global compartida y físicamente distribuida y accesible por todos los procesadores.
Cluster Jerárquico
Otro modelo NUMA que nace como la mezcla del modelo UMA explicado anteriormente y el modelo NUMA anterior, es el cluster jerárquico en el que se combinan las memorias locales y las globales obteniendo una cierta escalabilidad del sistema.
Los procesadores aparecen distribuidos en clusters (1 sistema UMA o un 1 sistema NUMA). Estos clusters están conectados a la memoria global compartida. El sistema en su totalidad es un sistema NUMA, ya que el acceso a memoria es no uniforme por parte de los clusters.
La ventaja de estos sistemas con respecto a los sistemas UMA, es que el acceso a memoria local es mucho más rápido.
COMA (Cache Only Memory Access)
Los sistemas COMA son un caso especial de los sistemas NUMA. Este tipo de sistemas no ha tenido mucha transcendencia, al igual que los sistemas SIMD.
Las memorias distribuidas son memorias cachés, por este motivo es un sistema muy restringido en cuanto a la capacidad de memoria global. No hay jerarquía de memoria en cada módulo procesador. Todas las cachés forman un mismo espacio global de direcciones. El acceso a las cachés remotas se realiza a través de los directorios distribuidos de las cachés.
Dependiendo de la red de interconexión utilizada, se pueden utilizar jerarquías en los directorios para ayudar a la localización de copias de bloques de cache.
Aplicaciones actuales
❖ Predicción del tiempo (48 horas) | 0.1GFLOPS | 0.1 GB |
❖ Predicción del tiempo (72 horas) | 3GFLOPS | 1 GB |
❖ Diseño fármacos | 100GFLOPS | 10 GB |
❖ Genoma | 1000 GFLOPS | 1000 GB |
7.2.- SISTEMAS DISTRIBUIDOS QUE INTEGREN ARQUITECTURAS MULTIPROCESADOR
La industria informática, ha tenido siempre un objetivo primordial, repetido a lo largo de toda su cadena (fabricantes de semiconductores, fabricantes de sistemas y usuarios): la búsqueda de la velocidad. Para alcanzar este objetivo se han invertido ingentes cantidades de recursos, hasta alcanzar los límites físicos del silicio.
Obviamente, la velocidad va ligada a las prestaciones, y por lo general, la primera ha sido la principal medida para decidirse por un sistema u otro. Sin embargo, por muy evidente que parezca, y dados los límites físicos de los semiconductores, las prestaciones pueden no estar forzosamente ligadas a la velocidad. Hoy es posible construir sistemas, que aún teniendo procesadores más "lentos" que otros, ofrezcan unas prestaciones significativamente superiores. Son los sistemas multiprocesador, que como su denominación indica, incorporan varios procesadores para llevar a cabo las mismas funciones.
No es un concepto nuevo, ya que los "minicomputadores" construidos por compañías como NCR, Sequent y Stratus, ya empleaban varios nodos de proceso como alternativas económicas a otros productos de otras compañías. Sin embargo, aquellos sistemas aún duplicaban recursos caros del sistema, como memoria y dispositivos de entrada/salida, y por tanto, confinaban a los sistemas multiprocesador al mundo de los sistemas de alto nivel.
Ahora, y en gran medida gracias a los procesadores de arquitectura RISC, el soporte multiprocesador es una solución integrada y fácilmente disponible en estaciones de trabajo de sobremesa, que resuelve, a través de hardware VLSI, los complejos problemas de compartición de recursos (memoria compartida) de aquellas primeras máquinas.
Evidentemente, estas mejoras en el hardware, para ser funcionales, requieren importantes desarrollos en el software, y de hecho, muchos sistemas operativos admiten extensiones multiproceso (Match, SCO, Solaris, System V, etc.), que proporcionan paralelismo "en bruto" (asignando múltiples tareas a múltiples procesadores) a nivel del sistema operativo.
Las aplicaciones escritas para facilitar el paralelismo en su ejecución, incrementan significativamente las prestaciones globales del sistema; esto es lo que se denomina multi-enhebrado (multithreading), que implica dividir una sola aplicación entre varios procesadores. Sin embargo, los desarrolladores de software y programadores de aplicaciones sólo han comenzado a explorar las vastas posibilidades de incremento de prestaciones que ofrecen los sistemas con capacidades reales de proceso en paralelo.
El multiproceso no es algo difícil de entender: más procesadores significa mas potencia computacional. Un conjunto de tareas puede ser completado más rápidamente si hay varias unidades de proceso ejecutándolas en paralelo. Esa es la teoría, pero otra historia es la práctica, como hacer funcionar el multiproceso, lo que requiere unos profundos conocimientos tanto del hardware como del software. Es necesario conocer ampliamente como están interconectados dichos procesadores, y la forma en que el código que se ejecuta en los mismos ha sido escrito para escribir aplicaciones y software que aproveche al máximo sus prestaciones.
Para lograrlo, es necesario modificar varias facetas del sistema operativo, la organización del código de las propias aplicaciones, así como los lenguajes de programación.
Es difícil dar una definición exacta de un sistema multiprocesador, aunque podemos establecer una clasificación de los sistemas de procesadores en:
SISD o secuencia única de instrucciones y datos (Single Instruction, Single Data): una sola secuencia de instrucciones opera sobre una sola secuencia de datos (caso típico de los ordenadores personales).
SIMD o secuencia única de instrucciones y múltiple de datos (Single Instruction, Multiple Data): una sola secuencia de instrucciones opera, simultáneamente, sobre múltiples secuencias de datos (array processors).
MISD o múltiples secuencias de instrucciones y única de datos (Multiple Instruction, Single Data): múltiples secuencias de instrucciones operan, simultáneamente, sobre una sola secuencia de datos (sin implementaciones útiles actualmente).
MIMD o múltiples secuencias de instrucciones y datos (Multiple Instruction, Multiple Data): múltiples secuencias de instrucciones operan, simultáneamente, sobre múltiples secuencias de datos.
Los sistemas multiprocesadores pueden ser clasificados con mayor propiedad como sistemas MIMD. Ello implica que son máquinas con múltiples y autónomos nodos de proceso, cada uno de los cuales opera sobre su propio conjunto de datos. Todos los nodos son idénticos en funciones, por lo que cada uno puede operar en cualquier tarea o porción de la misma.
7.3.- APLICACIONES MULTIMEDIA EN SISTEMAS DISTRIBUIDOS
Los sistemas multimedia surgen por la posibilidad económicamente viable de integrar video, audio y datos, y de procesarlos y transmitirlos a un coste razonable. La convergencia de telecomunicaciones, electrónica de consumo, ordenadores, televisión y proveedores de información abre posibilidades no imaginadas hace unos pocos años. Aplicaciones a la teleconferencia, la teleeducación, el trabajo cooperativo, etc. están modificando muchos aspectos socio-económicos de la vida cotidiana. En el presente curso se pretenden presentar algunas de las principales aplicaciones multimedia (tales como M-BONE, Netmeeting, CUSeeme, etc.) así como sus fundamentos técnicos. El curso se cerrará presentando experiencias reales y una panóramica de las perspectivas futuras.
Las aplicaciones multimedia distribuidas pueden programarse utilizando tecnologías Java de objetos distribuidos (como RMI). Una aplicación multimedia de alta calidad y distribuida debe ser capaz de ofrecer una cierta calidad de salida, es decir, ofrecer una imagen a la salida cada cierto tiempo. La corrección en el procesamiento temporal de las imágenes depende no sólo de la gestión local del procesamiento sino también de la gestión llevada a cabo por los protocolos de red. En este estudio se deberá estudiar la estructura de tecnologías Java para la integración eficiente de protocolos de red que permitan garantizar los plazos de tiempo que una aplicación debe cumplir en su procesamiento de datos multimedia
Las investigaciones y desarrollos en el área de la multimedia se puede dividir en dos grandes grupos:
- El primero centrado en el área de estaciones de trabajo independiente con el software y las herramientas relacionadas, tal como composición musical, enseñanza asistida por computadora, video interactivo, etc.
- El segundo grupo centrado en el intercambio de información multimedia entre esas estaciones de trabajo a través de redes, combinando así los sistemas distribuidos con la multimedia.
Todo esto ofrece un gran panorama y un enorme potencial para nuevas aplicaciones basadas en los sistemas multimedia distribuidos, los cuales incluyen sistemas de información multimedia, los sistemas de colaboración y conferencia, los servicios multimedia sobre demanda, televisión de alta resolución y la enseñanza a distancia.
Los computadores modernos pueden manejar caudales de datos continuo (caudales), dependientes del tiempo como audio y vídeo digital. Esta capacidad ha conducido al desarrollo de aplicaciones multimedia distribuidas como biblioteca de vídeos en red, telefonía sobre Internet y vídeoconferencia. Dicha aplicaciones son viables con las actuales redes y sistemas de propósito general, a pesar de que a menudo la calidad del audio y del vídeo resultante esta lejos de ser satisfactoria. Las aplicaciones más exigentes como la vídeoconferencia a gran escala,
Las aplicaciones multimedia generan y consumen caudales de datos continuos en tiempo real. Éstos contienen grandes cantidades de audio, vídeo y otros elementos de datos dependientes del tiempo, y resulta esencial el procesamiento y la entrega a tiempo de los elementos individuales de datos.
Una especificación de un caudal multimedia se expresa en términos de valores aceptables para la tasa a la que los datos pasan desde la fuente al destino (ancho de banda), el retardo en la entrega de cada elemento (latencia) y la tasa a la que se pierden o se desechan los elementos. La latencia es particularmente importante en aplicaciones interactivas. En las aplicaciones multimedia a menudo resultan aceptables un grado pequeño de perdida de datos de los caudales multimedia ya que las aplicaciones pueden volver a sincronizarse con los elementos que siguen a aquellos perdidos.
La reserva y la planificación (scheduling) de los recursos pensadas para satisfacer las necesidades tanto de las aplicaciones multimedia como las otras se denomina gestión de la calidad de servicio. Parámetros importantes son la reserva de la capacidad de procesamiento, el ancho de banda de la red y la memoria (para el almacenamiento de los elementos de datos que son entregados temprano).
Las aplicaciones multimedia demandan la entrega a tiempo a los usuarios de caudales de datos multimedia. Los caudales de audio y vídeo se generan y se consumen en tiempo real, la entrega a tiempo de los elementos individuales es esencial para la integridad de la aplicación. En resumen, los sistemas multimedia son sistemas de tiempo real: deben ejecutar tareas y entregar sus resultados de acuerdo de una planificación que es determinada externamente.
____________________________________________________________________________________
CONCLUSIONES
Después de investigar y analizar los temas correspondientes de esta unidad se pede concluir lo siguiente de los temas aquí presentados:
Las tendencias de los sistemas distribuidos buscan o pretenden cada día el aumentar el uso de recursos de forma distribuida ya que esto supone una reducción considerable de costos como esfuerzo para realizar las tareas que hoy en día requieren de gran capacidad de procesamiento principalmente.
Las tendencias van evolucionando de acuerdo a las necesidades de hardware, comunicación, procesamiento y otros aspectos importantes del trabajo distribuido.
Cabe destacar que para contribuir al trabajo de los sistemas distribuidos son de gran ayuda ya que el procesamiento proporcionado por las arquitecturas de procesamiento multiprocesador.
La implantación de los sistemas distribuidos multiprocesador supone muchas ventajas y bondades pero aun hay muchos detalles que hay que solucionar.
En la actualidad hay muchas empresas que ofrecen diversos productos con las características de multiprocesamiento como lo es IBM, HP, SUN y muchos otros.
En la actualidad lo que va tomando gran auge es la utilización de los sistemas distribuidos para aplicaciones multimedia ya que este trabajo involucra gran capacidad de procesamiento y mas prestaciones en general y es por eso que es una de las tendencias donde el trabajo distribuido combinado con el procesamiento en paralelo toma gran importancia.
BIBLIOGRAFÍA
1.- UNIVERSIDAD DE VALENCIA
http://www.uv.es/siuv/cas/zcalculo/sgi/arquitectura
2.- Doctorados datsi
http://www.datsi.fi.upm.es/docencia/arq-MP/
3.- ARQUITECTURA SGI Altix 3000
www.upv.es/ARQUITECTURA+SGI+Altix+3000
4.-Tutorial de SD unne
http://exa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/MonogSO/SISMUL02
5.-Tutorial de sistemas distribuidos
http://lisisu02.fis.usal.es/~bcurto/docencia/arquitectura/pdf_arq/tema5.pdf
6.- Arquitctura de computadoras
www.iberchip.org/VII/cdnav/pdf/39.pdf
www.ii.uam.es/~jgarrido/Arq/arq.html