Introducción a los Sistemas Industriales

Anuncio
PAC- Performance-centered Adaptive Curriculum for Employment Needs
Programa ERASMUS: Acción Multilateral -517742-LLP-1-2011-1-BG-ERASMUS-ECUE
MASTER DEGREE:
Industrial Systems Engineering
ASIGNATURA ISE1:
Introducción a los Sistemas Industriales
MÓDULO 4:
Redes informáticas y Sistemas Distribuidos
TAREA 4-3:
SISTEMAS DE PROCESO DISTRIBUIDOS Y PARALELOS
Introducción a los Sistemas Industriales
Contenido
TAREA 4-3: SISTEMAS DE PROCESO DISTRIBUIDOS Y PARALELOS ................ 4
1. INTRODUCCIÓN Y OBJETIVOS ..................................................................................... 4
2. CONTENIDO......................................................................................................................... 5
2.1 Definición de sistemas Distribuidos ................................................................................ 5
2.2 Características claves de un sistema Distribuido ............................................................ 6
2.3 Ejemplos de Distribución ............................................................................................... 10
2.4 Middleware ................................................................................................................... 11
2.5 Tipos de sistemas distribuidos ...................................................................................... 12
2.6 Transparencia en los sistemas distribuidos................................................................... 12
2.7 Escalabilidad .................................................................................................................. 13
2.8 Diferencia entre sistemas distribuidos y paralelos ....................................................... 15
2.9 Sistemas paralelos –taxonomías del ordenador ........................................................... 15
2.10 Arquitectura MIMD ..................................................................................................... 16
2.11 Cluster del ordenador ................................................................................................. 17
2.12 Computación de grid ................................................................................................... 18
2.13 Modelos de sistema de DS .......................................................................................... 18
2.14 Clasificación de arquitecturas MIMD .......................................................................... 20
2.15 Conceptos de Hardware – Conexiones MP basadas en bus y en Switch ................... 21
2.16 Conceptos de Software – Sistemas operativos ........................................................... 22
2.17 Sistemas operativos de uniprocesador ....................................................................... 23
2.18 Sistemas operativos de multiordenadores ................................................................. 24
2.19 Sistemas distribuidos con memoria compartida......................................................... 25
2.20 Sistema operativo de red ............................................................................................ 25
2.21 Sistemas Distribuidos –Lenguajes ............................................................................... 26
2.21 CORBA, DCOM y Java/RMI .......................................................................................... 27
2.23 MPI Interfaz de paso de mensajes .............................................................................. 27
3. CONCLUSIONES ................................................................................................................... 28
4. BIBLIOGRAFÍA Y/O REFERENCIAS ........................................................................................ 30
5. ENLACES DE INTERÉS ........................................................................................................... 30
SISTEMAS DE PROCESO DISTRIBUIDOS Y PARALELOS
2
Introducción a los Sistemas Industriales
Índice de figuras
Figura 1: Esquema de distribución: Internet por cable ............................................................... 10
Figura 2: Esquema de distribución: Internet por nómada .......................................................... 11
Figura 3: Esquema de distribución: Internet por nómada .......................................................... 11
Figura 4: Arquitectura SIMD ........................................................................................................ 16
Figura 5: Arquitectura MISD ........................................................................................................ 16
Figura 6: Arquitectura MIMD (multiprocesador) ........................................................................ 16
Figura 7: Arquitectura MIMD Acoplo débil ................................................................................. 17
Figura 8: Arquitectura MIMD Acoplo moderado ........................................................................ 17
Figura 9: Computación cluster frente a otros ............................................................................. 18
Figura 10: Modelo de miniordenador ......................................................................................... 18
Figura 11: Modelo de Workstation ............................................................................................. 18
Figura 12: Modelo de Workstation-servidor ............................................................................... 19
Figura 13: Modelo Procesador -Equipo....................................................................................... 19
Figura 14: Modelo cluster ........................................................................................................... 19
Figura 15: Computación de grid .................................................................................................. 19
Figura 16: Clasificación de la arquitectura MIMD ....................................................................... 20
Figura 17: Multiprocesador basado en bus................................................................................. 21
Figura 18: Multiprocesador basado en conmutador (switch)..................................................... 22
Figura 19: Sistema operativo de uniprocesador ......................................................................... 24
Figura 20: Estructura general de un multiordenador DOS.......................................................... 24
Figura 21: Estructura general de un sistema operativo de red (NOS) ........................................ 26
SISTEMAS DE PROCESO DISTRIBUIDOS Y PARALELOS
3
Introducción a los Sistemas Industriales
TAREA 4-3: SISTEMAS DE PROCESO DISTRIBUIDOS Y
PARALELOS
1. INTRODUCCIÓN Y OBJETIVOS
El mundo de la informática ha evolucionado muy rápidamente. Hace tan solo
unos 40 años se creaba el primer ordenador, con tareas muy limitadas y gran
tamaño. En la actualidad, constantemente están saliendo al mercado nuevos
modelos, con mayor capacidad y menor tamaño. Pero no sólo están
cambiando los ordenadores en sí, sino que están influyendo en los hábitos de
las personas, principalmente por su precio accesible.
Estos cambios han sido posibles debido a dos razones principalmente:
•
•
El desarrollo de los microprocesadores (que ya se vio en un tema
anterior) que permitieron reducir en tamaño y coste los ordenadores y
aumentar en gran medida las capacidades de los mismos y su acceso
a más personas.
El desarrollo de las redes de área local y de las comunicaciones que
permitieron conectar ordenadores con posibilidad de transferencia de
datos a alta velocidad.
Es ahí cuando aparecen los Sistemas Distribuidos, que tienen como ámbito de
estudio las redes como por ejemplo: Internet, redes de teléfonos móviles,
redes corporativas, redes de empresas, etc.
En este tema dará una definición de los sistemas distribuidos. Se hablará de
sus principales características y ventajas y desventajas frente a los sistemas
centralizados. Se hará una introducción a los sistemas paralelos.
Se explicarán los conceptos de hardware, con conexión en MP en bus y en
switch, así como de software, enfocado en los sistemas operativos (uniproceso,
multiordenador, de red y lenguajes).
SISTEMAS DE PROCESO DISTRIBUIDOS Y PARALELOS
4
Introducción a los Sistemas Industriales
2. CONTENIDO
2.1 Definición de sistemas Distribuidos
Un sistema distribuido es “aquél en el que no puedes trabajar con tu máquina
por el fallo de otra máquina que ni siquiera sabías que existía” Leslie Lamport.
Se puede decir que un sistema distribuido es una colección de computadores
autónomos conectados por una red, y con el software distribuido adecuado
para que el sistema sea visto por los usuarios como una única entidad capaz
de proporcionar facilidades de computación.
El desarrollo de los sistemas distribuidos vino de la mano de las redes locales
de alta velocidad a principios de 1970. Más recientemente, la disponibilidad de
computadoras personales de altas prestaciones, estaciones de trabajo y
ordenadores servidores ha resultado en un mayor desplazamiento hacia los
sistemas distribuidos en detrimento de los ordenadores centralizados
multiusuario. Esta tendencia se ha acelerado por el desarrollo de software
para sistemas distribuidos, diseñado para soportar el desarrollo de
aplicaciones distribuidas. Este software permite a los ordenadores coordinar
sus actividades y compartir los recursos del sistema – hardware, software y
datos.
Los sistemas distribuidos se implementan en diversas plataformas hardware,
desde unas pocas estaciones de trabajo conectadas por una red de área
local, hasta Internet, una colección de redes de área local y de área extensa
interconectados, que en lazan millones de ordenadores.
Las aplicaciones de los sistemas distribuidos varían desde la provisión de
capacidad de cómputo a grupos de usuarios, hasta sistemas bancarios,
comunicaciones multimedia y abarcan prácticamente todas las aplicaciones
comerciales y técnicas de los ordenadores. Los requisitos de dichas
aplicaciones incluyen un alto nivel de fiabilidad, seguridad contra interferencias
externas y privacidad de la información que el sistema mantiene. Se deben
proveer accesos concurrentes a bases de datos por parte de muchos usuarios,
garantizar tiempos de respuesta, proveer puntos de acceso al servicio que
están distribuidos geográficamente, potencial para el crecimiento del sistema
para acomodar la expansión del negocio y un marco para la integración de
sistema usados por diferentes compañías y organizaciones de usuarios.
Ejemplos de sistemas distribuidos:
•
•
•
The world wide web (www) – información, compartir recursos
Clusters, Red de Estaciones de trabajo (workstations)
Sistema de manufactura distribuida (e.g., línea de montaje automático)
SISTEMAS DE PROCESO DISTRIBUIDOS Y PARALELOS
5
Introducción a los Sistemas Industriales
•
•
•
Red de ordenadores de oficina
Sistema de información para manejar el procesado automático de
órdenes
Red de sistemas integrados
2.2 Características claves de un sistema Distribuido
Compartición de Recursos
El término ‘recurso’ es bastante abstracto, pero es el que mejor caracteriza el
abanico de entidades que pueden compartirse en un sistema distribuido. El
abanico se extiende desde componentes hardware como discos e impresoras
hasta elementos software como ficheros, ventanas, bases de datos y otros
objetos de datos.
Los recursos en un sistema distribuido están físicamente encapsulados en una
de las computadoras y sólo pueden ser accedidos por otras computadoras
mediante las comunicaciones (la red). Para que la compartición de recursos
sea efectiva, ésta debe ser manejada por un programa que ofrezca un interfaz
de comunicación permitiendo que el recurso sea accedido, manipulado y
actualizado de una manera fiable y consistente. Surge el término genérico de
gestor de recursos.
Un sistema distribuido puede verse de manera abstracta como un conjunto de
gestores de recursos y un conjunto de programas que usan los recursos. Los
usuarios de los recursos se comunican con los gestores de los recursos para
acceder a los recursos compartidos del sistema. Esta perspectiva nos lleva a
dos modelos de sistemas distribuidos: el modelo cliente-servidor y el modelo
basado en objetos.
Apertura (opennesss)
Un sistema informático es abierto si el sistema puede ser extendido de
diversas maneras. Un sistema puede ser abierto o cerrado con respecto a
extensiones hardware (añadir periféricos, memoria o interfaces de
comunicación, etc) o con respecto a las extensiones software (añadir
características al sistema operativo, protocolos de comunicación y servicios de
compartición de recursos, etc). La apertura de los sistemas distribuidos se
determina primariamente por el grado hacia el que nuevos servicios de
compartición de recursos se pueden añadir sin perjudicar ni duplicar a los ya
existentes.
Básicamente los sistemas distribuidos cumplen una serie de características:
SISTEMAS DE PROCESO DISTRIBUIDOS Y PARALELOS
6
Introducción a los Sistemas Industriales
1. Los interfaces software clave del sistema están claramente especificados
y se ponen a disposición de los desarrolladores. En una palabra, los
interfaces se hacen públicos.
2. Los sistemas distribuidos abiertos se basan en la provisión de un
mecanismo uniforme de comunicación entre procesos e interfaces
publicados para acceder a recursos compartidos.
3. Los sistemas distribuidos abiertos pueden construirse a partir de
hardware y software heterogéneo, posiblemente proveniente de
vendedores diferentes. Pero la conformidad de cada componente con el
estándar publicado debe ser cuidadosamente comprobada y certificada
si se quiere evitar tener problemas de integración.
Concurrencia
Cuando existen varios procesos en una única máquina decimos que se están
ejecutando concurrentemente. Si el ordenador está equipado con un único
procesador central, la concurrencia tiene lugar entrelazando la ejecución de
los distintos procesos. Si la computadora tiene N procesadores, entonces se
pueden estar ejecutando estrictamente a la vez hasta N procesos.
En los sistemas distribuidos hay muchas máquinas, cada una con uno o más
procesadores centrales. Es decir, si hay M ordenadores en un sistema
distribuido con un procesador central cada una entonces hasta M procesos
estar ejecutándose en paralelo.
En un sistema distribuido que está basado en el modelo de compartición de
recursos, la posibilidad de ejecución paralela ocurre por dos razones:
1. Muchos usuarios interactúan simultáneamente con programas de
aplicación.
2. Muchos procesos servidores se ejecutan concurrentemente, cada uno
respondiendo a diferentes peticiones de los procesos clientes.
Tolerancia a Fallos
Cuando se producen fallos en el software o en el hardware, los programas
podrían producir resultados incorrectos o podrían pararse antes de terminar la
computación que estaban realizando. El diseño de sistemas tolerantes a fallos
se basa en dos cuestiones, complementarias entre sí: Redundancia hardware
(uso de componentes redundantes) y recuperación del software (diseño de
programas que sean capaces de recuperarse de los fallos).
En los sistemas distribuidos la redundancia puede plantearse en un grano más
fino que el hardware, pueden replicarse los servidores individuales que son
esenciales para la operación continuada de aplicaciones críticas.
SISTEMAS DE PROCESO DISTRIBUIDOS Y PARALELOS
7
Introducción a los Sistemas Industriales
La recuperación del software tiene relación con el diseño de software que sea
capaz de recuperar (roll-back) el estado de los datos permanentes antes de
que se produjera el fallo.
Los sistemas distribuidos también proveen un alto grado de disponibilidad en
la vertiente de fallos hardware. La disponibilidad de un sistema es una medida
de la proporción de tiempo que está disponible para su uso. Cuando uno de
los componentes de un sistema distribuidos falla, solo se ve afectado el
trabajo que estaba realizando el componente averiado. Un usuario podría
desplazarse a otra estación de trabajo; un proceso servidor podría ejecutarse
en otra máquina.
Ventajas de Sistemas Distribuidos frente a Sistemas Centralizados
Económicas: una colección de microprocesadores que ofrece mejor
precio/desempeño
que
los
ordenadores
centrales.
Bajo
ratio
de
precio/desempeño: método efectivo para aumentar la potencia del ordenador.
Una razón para la tendencia hacia la descentralización es la economía.
Herb Grosch formuló la que se llamaría “Ley de Grosch” [6]:
•
•
•
El poder de cómputo de una cpu es proporcional al cuadrado de su
precio: si se paga el doble se obtiene el cuádruple del desempeño.
Fue aplicable en los años setentas y ochentas a la tecnología
mainframe.
No es aplicable a la tecnología del microprocesador: la solución más
eficaz en cuanto a costo es limitarse a un gran número de cpu baratos
reunidos en un mismo sistema.
Los sistemas distribuidos generalmente tienen en potencia una proporción
precio / desempeño mucho mejor que la de un único sistema centralizado.
Velocidad: un sistema distribuido debe tener más potencia que el ordenador
central. Por ejemplo, 10,000 chips de CPU, cada uno trabajando a MIPS. No es
posible construir 500,000 MIPS procesadores individuales ya que requeriríia
0.002 nsec por ciclo de instrucción. Se mejora el desempeño al distribuir la
carga.
Distribución inherente: Algunas aplicaciones están distribuidas inherentemente.
Por ejemplo, una cadena de supermercados.
Fiabilidad: Si se rompe una máquina, el sistema como conjunto puede
sobrevivir. Mayor disponibilidad y mejora de la fiabilidad. Al distribuir la carga
de trabajo en muchas máquinas, la falla de una de ellas no afectara a las
SISTEMAS DE PROCESO DISTRIBUIDOS Y PARALELOS
8
Introducción a los Sistemas Industriales
demás. La carga de trabajo podría distribuirse.
descompone, sobrevive el sistema como un todo.
Si
una
máquina
se
Desarrollo incremental: Se puede añadir potencia con incrementos pequeños.
Expansión modular. Otra ventaja importante es la posibilidad del crecimiento
incremental o por incrementos:
•
•
Podrían añadirse procesadores al sistema, permitiendo un desarrollo
gradual según las necesidades.
No son necesarios grandes incrementos de potencia en breves lapsos
de tiempo.
Se puede añadir poder de cómputo en pequeños incrementos
Ventajas de Sistemas Distribuidos frente a PCs independientes
Compartir datos: permite el acceso a una base de datos común a muchos
usuarios. Satisfacen la necesidad de muchos usuarios de compartir ciertos
datos [6] Ej: sistema de reservas de líneas aéreas.
Compartir recursos: periféricos de gran valor como impresoras de color.
También con los sistemas distribuidos se pueden compartir otros recursos
como programas y periféricos costosos: Ej.: impresoras láser color, equipos de
fotocomposición, dispositivos de almacenamiento masivo (ej.: cajas ópticas),
etc.
Comunicación: mejora la comunicación humano-humano, por ejemplo email,
chat. Otra importante razón es lograr una mejor comunicación entre las
personas: Ej.: correo electrónico - Posee importantes ventajas sobre el correo
por cartas, el teléfono y el fax: Velocidad, disponibilidad, generación de
documentos editables por procesadores de texto, etc.
Flexibilidad: extiende la carga de trabajo sobre las máquinas disponibles. La
carga de trabajo se puede difundir (distribuir) entre las máquinas disponibles
en la forma más eficaz según el criterio adoptado (por ej. costos). Los equipos
distribuidos pueden no ser siempre PC. Se pueden estructurar sistemas con
grupos de PC y de computadoras compartidas, de distinta capacidad.
Desventajas de Sistemas Distribuidos
Respecto a un sistema centralizado
El principal problema es el software, ya que el diseño, implantación y uso del
software distribuido presenta numerosos inconvenientes, entre ellos el alto
coste de mantener la consistencia y la red de interconexión como una fuente
SISTEMAS DE PROCESO DISTRIBUIDOS Y PARALELOS
9
Introducción a los Sistemas Industriales
de problemas [1]. Un sistema centralizado del mismo coste es más eficiente
que cada uno de los componentes del sistema distribuido.
Otro problema potencial tiene que ver con las redes de comunicaciones, ya
que se deben considerar problemas debidos a pérdidas de mensajes,
saturación en el tráfico, expansión, etc. De hecho, si la distribución de
recursos es inadecuada algunos recursos pueden estar desbordados mientras
otros están libres.
El hecho de que sea fácil compartir los datos es una ventaja pero se puede
convertir en un gran problema, por lo que la seguridad debe organizarse
adecuadamente, lo que implica una gestión de la seguridad más compleja.
En general se considera que las ventajas superan a las desventajas, si estas
últimas se administran seriamente.
2.3 Ejemplos de Distribución
- Internet por cable
Puede alcanzar cualquier host desde cualquier otro host, en cualquier
momento, puesto que los hosts siempre están encendidos y disponibles (%
fallo, inactivo).
Muchos de los WWW dependen de esta noción
Figura 1: Esquema de distribución: Internet por cable
-
Internet nómada
Algunos hosts son móviles, se conectan al punto de acceso más cercano. De
hecho, los hosts pueden no estar disponibles, aunque al final se reconecten.
Esto puede provocar que la topología de la ruta Host-to-host cambie.
Los teléfonos móviles, ordenadores portátiles sin cable tienen este
comportamiento
SISTEMAS DE PROCESO DISTRIBUIDOS Y PARALELOS
10
Introducción a los Sistemas Industriales
Figura 2: Esquema de distribución: Internet por nómada
Redes móviles ad hoc (manets)
Los hosts móviles se conectan a cada uno de los otros (con o sin punto de
acceso). Los hosts pueden detectar conexión dinámica o desconexión.
Los Hosts deben explotar las ventanas de oportunidades de comunicación.
Permite el ruteado ad-hoc, mensaje de comportamiento “mula”
Figura 3: Esquema de distribución: Internet por nómada
2.4 Middleware
El software distribuido requerido para facilitar las interacciones cliente-servidor
se denomina middleware. El acceso transparente a servicios y recursos no
locales distribuidos a través de una red se provee a través del middleware,
que sirve como marco para las comunicaciones entre las porciones cliente y
servidor de un sistema.
El middleware define el API que usan los clientes para pedir un servicio a un
servidor, la transmisión física de la petición vía red, y la devolución de
resultados desde el servidor al cliente. Ejemplos de middleware estándar para
dominios específicos incluyen: ODBC, para bases de datos, Lotus para
groupware, HTTP y SSL para Internet y CORBA, DCOM y JAVA RMI para
objetos distribuidos.
El middleware fundamental o genérico es la base de los sistemas clienteservidor. Los servicios de autentificación en red, llamadas a procedimiento
remoto, sistemas de ficheros distribuidos y servicios de tiempo en red se
SISTEMAS DE PROCESO DISTRIBUIDOS Y PARALELOS
11
Introducción a los Sistemas Industriales
consideran parte del middleware genérico. Este tipo de middleware empieza a
ser parte estándar de los sistemas operativos modernos como Windows NT. En
sistemas donde no se disponga deberá recurrirse a middleware del tipo OSD
DCE (Distributed Computing Environment) [OSF 1994]. El middleware específico
para un dominio complementa al middleware genérico de cara a aplicaciones
mucho más específicas.
El protocolo de comunicaciones más usado por el middleware, tanto genérico
como específico, es TCP/IP. Esto se debe a su amplia difusión en todos los
sistemas operativos del mercado y en especial en los ordenadores personales.
2.5 Tipos de sistemas distribuidos
Computación Distribuida – DC es un método de proceso informático en el
que partes diferentes de un programa se procesan simultáneamente mediante
dos o más ordenadores conectados con una red. DS es un tipo de procesado
paralelo (ver Sistemas Paralelos)
Base de Datos Distribuida – DDB es una colección de múltiples bases de datos
lógicamente interrelacionadas distribuidas en medio de la red donde aparece
el usuario como una única base de datos. World Wide Web (WWW) es el
mayor ejemplo de DDB
Sistema de gestión de bases de datos distribuidas – DDBMS es un software de
sistema que proporciona la gestión de DDB y hace que la distribución
aparezca transparente a los usuarios.
DAQ distribuido y sistema de control – tipo de sistema automatizado que
puede suministrar medidas e instrucciones de control a las diferentes partes
de la máquina. En lugar de una unidad de control centralizad, cada sección
de la máquina tiene su propio ordenador o microcontrolador que gestiona sus
operaciones (eg. los coches modernos y otros vehículos, líneas de producción,
etc.).
Sistemas distribuidos obicuos – Computación obicua – ordenadores
omnipresentes. Permite la disponibilidad de muchos ordenadores en el entorno
físico, a la vez que los hace eficazmente invisibles al usuario. La computación
obicua es conocida por algunos como lo que será la Tercera Ola de
computación. La Primera Ola fue muchas personas por ordenador, la Segunda
Ola fue una persona por ordenador. La Tercera Ola será muchos ordenadores
por persona. Hay tres temas técnicos clave: consumo de energía, interfaz de
usuario y conectividad sin cable.
2.6 Transparencia en los sistemas distribuidos
La transparencia se define como la ocultación al usuario y al programador de
aplicaciones de la separación de los componentes de un sistema distribuido,
de manera que el sistema se percibe como un todo, en vez de una colección
SISTEMAS DE PROCESO DISTRIBUIDOS Y PARALELOS
12
Introducción a los Sistemas Industriales
de componentes independientes. La transparencia ejerce una gran influencia en
el diseño del software de sistema.
El manual de referencia RM-ODP identifica ocho formas de transparencia. Estas
proveen un resumen útil de la motivación y metas de los sistemas distribuidos.
Las transparencias definidas son:
•
•
•
•
•
•
•
•
Transparencia de Acceso: Permite el acceso a los objetos de
información remotos de la misma forma que a los objetos de
información locales.
Transparencia de Localización: Permite el acceso a los objetos de
información sin conocimiento de su localización
Transparencia de Concurrencia: Permite que varios procesos operen
concurrentemente utilizando objetos de información compartidos y de
forma que no exista interferencia entre ellos.
Transparencia de Replicación: Permite utilizar múltiples instancias de los
objetos de información para incrementar la fiabilidad y las prestaciones
sin que los usuarios o los programas de aplicación tengan por que
conoces la existencia de las replicas.
Transparencia de Fallos: Permite a los usuarios y programas de
aplicación completar sus tareas a pesar de la ocurrencia de fallos en el
hardware o en el software.
Transparencia de Migración: Permite el movimiento de objetos de
información dentro de un sistema sin afectar a los usuarios o a los
programas de aplicación.
Transparencia de Prestaciones: Permite que el sistema sea reconfigurado
para mejorar las prestaciones mientras la carga varia.
Transparencia de Escalado: Permite la expansión del sistema y de las
aplicaciones sin cambiar la estructura del sistema o los algoritmos de
la aplicación.
Las dos más importantes son las transparencias de acceso y de localización;
su presencia o ausencia afecta fuertemente a la utilización de los recursos
distribuidos. A menudo se las denomina a ambas transparencias de red. La
transparencia de red provee un grado similar de anonimato en los recursos al
que se encuentra en los sistemas centralizados.
2.7 Escalabilidad
Los sistemas distribuidos operan de manera efectiva y eficiente a muchas
escalas diferentes. La escala más pequeña consiste en dos estaciones de
trabajo y un servidor de ficheros, mientras que un sistema distribuido
construido alrededor de una red de área local simple podría contener varios
cientos de estaciones de trabajo, varios servidores de ficheros, servidores de
impresión y otros servidores de propósito específico. A menudo se conectan
varias redes de área local para formar internetworks, y éstas podrían contener
SISTEMAS DE PROCESO DISTRIBUIDOS Y PARALELOS
13
Introducción a los Sistemas Industriales
muchos miles de ordenadores que forman un único sistema distribuido,
permitiendo que los recursos sean compartidos entre todos ellos.
Tanto el software de sistema como el de aplicación no deberían cambiar
cuando la escala del sistema se incrementa. La necesidad de escalabilidad no
es solo un problema de prestaciones de red o de hardware, sino que está
íntimamente ligada con todos los aspectos del diseño de los sistemas
distribuidos (Número de usuarios y/o procesos -tamaño de escalabilidad-,
máxima distancia entre nodos -escalabilidad geográfica- y número de dominios
administrativos -escalabilidad administrativa). El diseño del sistema debe
reconocer explícitamente la necesidad de escalabilidad o de lo contrario
aparecerán serias limitaciones.
La demanda de escalabilidad en los sistemas distribuidos ha conducido a una
filosofía de diseño en que cualquier recurso simple -hardware o softwarepuede extenderse para proporcionar servicio a tantos usuarios como se quiera.
Esto es, si la demanda de un recurso crece, debería ser posible extender el
sistema para darla servicio. Por ejemplo, la frecuencia con la que se accede a
los ficheros crece cuando se incrementa el número de usuarios y estaciones
de trabajo en un sistema distribuido. Entonces, debe ser posible añadir
ordenadores servidores para evitar el cuello de botella que se produciría si un
solo servidor de ficheros tuviera que manejar todas las peticiones de acceso a
los ficheros.
•
•
•
Componentes centralizados: por ejemplo, un solo servidor de correo
para todos los usuarios.
Tablas centralizadas: por ejemplo, un único directorio telefónico en
línea.
Algoritmos centralizados: por ejemplo, la realización de un ruteo con
base en la información completa.
Se deben utilizar algoritmos descentralizados con las siguientes características:
•
•
•
•
Ninguna máquina tiene la información completa acerca del estado del
sistema.
Las máquinas toman decisiones solo en base a la información
disponible de manera local.
El fallo de una máquina no arruina el algoritmo.
No existe una hipótesis implícita de la existencia de un reloj global.
En este caso el sistema deberá estar diseñado de manera que permita
trabajar con ficheros replicados en distintos servidores, con las
consideraciones de consistencias que ello conlleva
Cuando el tamaño y complejidad de las redes de ordenadores crece, es un
objetivo primordial diseñar software de sistema distribuido que seguirá siendo
SISTEMAS DE PROCESO DISTRIBUIDOS Y PARALELOS
14
Introducción a los Sistemas Industriales
eficiente y útil con esas nuevas configuraciones de la red. Resumiendo, el
trabajo necesario para procesar una petición simple para acceder a un recurso
compartido debería ser prácticamente independiente del tamaño de la red.
2.8 Diferencia entre sistemas distribuidos y paralelos
Los sistemas distribuidos tienen múltiples procesadores débilmente acoplados.
Físicamente están separados y no comparten la memoria, siendo su
comunicación mediante mensajes. Los sistemas operativos se comportan como
uno único. Cada nodo tiene su sistema operativo independiente y colabora
para que el usuario no sepa dónde está trabajando ni dónde se encuentran
sus ficheros.
Los sistemas paralelos se basan en multiprocesadores, con varias CPU
fuertemente acopladas con un reloj común y una memoria compartida
(comunicación y sincronización vía memoria). Tienen un único sistema
operativo. El planificador es más complejo que en los sistemas distribuidos. La
gestión de memoria y de cachés es muy importante para el rendimiento.
Todos los recursos son compartidos.
2.9 Sistemas paralelos –taxonomías del ordenador
Desde un punto de vista clásico, se puede utilizar la clasificación de
computadores paralelos propuesta por M.J. Flynn, basada en el número de
flujos de instrucciones y de datos que tiene el computador. El flujo de
instrucciones lo forman el conjunto de instrucciones que se van leyendo en la
ejecución de un programa, mientras que el flujo de datos está formado por
los datos que leen y almacenan estas instrucciones [5].
SISD (Single Instruction Single Data): Arquitectura serie con un flujo de datos y
otro de instrucciones. Poseen un único procesador
SIMD (Single Instruction Multiple Data): un solo flujo de instrucciones y varios
de datos. Se refiere a ordenar procesadores con una unidad de instrucción
que o bien busca una instrucción o instruye a varias unidades de datos para
que la lleven a cabo en paralelo, cada una con sus propios datos.
Son útiles para los cómputos que repiten los mismos cálculos en varios
conjuntos de datos
SISTEMAS DE PROCESO DISTRIBUIDOS Y PARALELOS
15
Introducción a los Sistemas Industriales
Figura 4: Arquitectura SIMD
MISD (Multiple Instruction Single Data): varios flujos de instrucciones y uno solo
de datos. No se presenta en la práctica
Figura 5: Arquitectura MISD
MIMD (Multiple Instruction Multiple Data): un grupo de computadoras
independientes, cada una con su propio contador del programa, programa y
datos Todos los sistemas distribuidos son de este tipo.
Figura 6: Arquitectura MIMD (multiprocesador)
El enfoque actual está en el modelo MIMD, que utiliza los procesadores de
proposiciones generales.
2.10 Arquitectura MIMD
El caso MIMD lo constituyen los multiprocesadores propiamente dichos. Su
estructura se basa en varios procesadores convencionales serie, cada uno con
una unidad de tratamiento, que soporta su flujo de datos, y una unidad de
control, que soporta su flujo de instrucciones. Tanto la estructura general
como el nivel de interacción entre los distintos procesadores permiten
múltiples soluciones. Una de las características fundamentales de los
multiprocesadores es el tipo de acoplo entre los procesadores que lo
componen, diferenciándose las tres alternativas siguientes:
Acoplamiento débil: se trata, en realidad, de varios computadores serie
convencionales que se pueden comunicar entre sí a velocidades relativamente
SISTEMAS DE PROCESO DISTRIBUIDOS Y PARALELOS
16
Introducción a los Sistemas Industriales
altas (por ejemplo, mediante una red local de 10 Bb/S). Idealmente, se
dispone de un solo sistema operativo que realice el reparto de carga. Su
funcionamiento es eficiente, siempre que las interacciones entre procesos de
distintos procesadores sean pequeñas o nulas.
Figura 7: Arquitectura MIMD Acoplo débil
Acoplamiento fuerte. Todos los procesadores del sistema pueden utilizar todos
sus recursos. Generalmente, existe una memoria principal común, que se
emplea también para comunicación entre procesadores [5]
Figura 8: Arquitectura MIMD Acoplo moderado
2.11 Cluster del ordenador
Un cluster consiste en múltiples máquinas stand-alone (independientes del
software) que actúan en paralelo en una red local de alta velocidad.
La computación distribuida difiere de la computación de cluster en que el
entorno de los ordenadores en una computación distribuida típicamente no
están exclusivamente operando tareas de “grupo”, mientras que los
ordenadores en cluster normalmente están acoplados más firmemente.
La computación distribuida a menudo también consiste en máquinas que están
bastante separadas geográficamente.
Clustering es una popular estrategia para implementar aplicaciones de
procesado paralelo porque permite aventajar a las empresas que ya han
SISTEMAS DE PROCESO DISTRIBUIDOS Y PARALELOS
17
Introducción a los Sistemas Industriales
invertido en PCs, workstations o servidores. Además, es relativamente fácil
añadir nuevas CPUs, simplemente añadiendo un nuevo PC a la red.
Figura 9: Computación cluster frente a otros
2.12 Computación de grid
Una grid usa los recursos de muchos ordenadores separados conectados por
una red (normalmente Internet) para resolver problemas de computación de
gran escala.
El mayor tiempo inactivo de uso de muchos miles de ordenadores del mundo.
Estos arreglos permiten manejar datos que de otra forma requerirían la
potencia de superordenadores muy costosos o sería imposible de analizar.
Una tecnología similar es la Computación Cloud (nube), que también permite
usar recursos comunes
2.13 Modelos de sistema de DS
Modelo
de
miniordenador:
muchos
miniordenadores conectados una red, cada
uno con diferentes terminales.
Figura 10: Modelo de miniordenador
Modelo de Workstation: muchas workstations
conectadas a una red. Particularmente útil si
los usuarios pueden usar workstations en
remoto (migración de proceso)
Figura 11: Modelo de Workstation
SISTEMAS DE PROCESO DISTRIBUIDOS Y PARALELOS
18
Introducción a los Sistemas Industriales
Modelo de Workstation-servidor: algunas máquinas
funcionan como servidores (servidor de la impresora,
servidor de documentos…). Es una buena opción para
recursos compartidos (como impresoras, por ejemplo).
No es necesario que las workstations tengan grandes
discos, por lo que puede ser una opción bastante
económica.
Figura 12: Modelo de Workstation-servidor
Modelo
de
procesador-equipo:
los
terminales se conectan a la red así como
los procesadores. Todos los servicios se
envían a los servidores. El número necesario
de procesadores en los servidores se
reparte a cada usuario desde el equipo
(pool). Implica menor interactividad.
Figura 13: Modelo Procesador -Equipo
Modelo Cluster: toma el modelo cliente servidor.
En cuanto a éste último, consiste en muchos
PC/workstations conectados a una red de alta
velocidad. Focaliza más el rendimiento y se
ocupa de las solicitudes en paralelo.
Figura 14: Modelo cluster
Computación de Grid: recopila la potencia de los
superordenadores y cluster y los hace disponibles como
si fuera una malla eléctrica.
Figura 15: Computación de grid
SISTEMAS DE PROCESO DISTRIBUIDOS Y PARALELOS
19
Introducción a los Sistemas Industriales
2.14 Clasificación de arquitecturas MIMD
La organización MIMD se refiere a un sistema de computadoras capaz de
procesar múltiples programas al mismo tiempo. La mayoría de los sistemas de
multicomputadoras y multiprocesador pueden clasificarse en esta categoría.
La clasificación de Flynn depende en la diferencia entre el desempeño de la
unidad de control y el de la unidad de procesamiento de datos. Enfatiza las
características de desempeño del sistema de computadora más que sus
interconexiones estructurales y operacionales. Un tipo de procesamiento
paralelo que no entra en la clasificación de Flynn es la arquitectura paralela
(pipe-line).
El procesamiento por arquitectura paralela es una técnica de implantación en
donde las suboperaciones aritméticas o las fases de un ciclo de instrucción
de computadora se traslapan en su ejecución. El procesamiento de vector se
relaciona con los cálculos que implican vectores y matrices grandes. Los
procesadores de arquitectura paralela ejecutan cálculos sobre arreglos de
datos grandes.
La arquitectura paralela o de líneas paralelas (pipe-line) es una técnica en la
que se descompone un proceso secuencial en suboperaciones, y cada
subproceso se ejecuta en un segmento dedicado especial que opera en forma
concurrente con los otros segmentos. Una línea puede considerarse como un
conjunto de segmentos de procesamiento por el que fluye información binaria.
Cada segmento ejecuta un procesamiento parcial, dictado por la manera en
que se divide la tarea. El resultado obtenido de cálculo en cada segmento se
transfiere al siguiente segmento en la línea. El resultado final se obtiene
después de que los datos hayan recorrido todos los segmentos [3].
Figura 16: Clasificación de la arquitectura MIMD
SISTEMAS DE PROCESO DISTRIBUIDOS Y PARALELOS
20
Introducción a los Sistemas Industriales
2.15 Conceptos de Hardware – Conexiones MP basadas en bus y en
Switch
Todos los sistemas distribuidos constan de varias CPU, organizadas de
diversas formas, especialmente respecto de la forma de interconectarlas entre
sí y de los esquemas de comunicación utilizados [6].
Existen diversos esquemas de clasificación para los sistemas de cómputos con
varias CPU. Uno de los más conocidos es la “Taxonomía de Flynn”, que se ha
visto anteriormente.
Un avance sobre la clasificación
computadoras MIMD en dos grupos:
•
•
de
Flynn
incluye
la
división
de
las
Multiprocesadores:
poseen
memoria
compartida.
Los
distintos
procesadores comparten el mismo espacio de direcciones virtuales.
Multicomputadoras: no poseen memoria compartida Por ejemplo: grupo
de PC conectadas mediante una red.
Cada una de las categorías indicadas se puede clasificar según la arquitectura
de la red de interconexión en:
•
Esquema de bus: existe una sola red, bus, cable u otro medio que
conecta todas las máquinas. Por ejemplo: la televisión por cable.
Figura 17: Multiprocesador basado en bus
•
Esquema con conmutador: No existe una sola columna vertebral de
conexión sino que hay múltiples conexiones y varios patrones de
conexionado. Los mensajes de mueven a través de los medios de
conexión. Se decide explícitamente la conmutación en cada etapa para
dirigir el mensaje a lo largo de uno de los cables de salida. Por
ejemplo, el sistema mundial telefónico público.
SISTEMAS DE PROCESO DISTRIBUIDOS Y PARALELOS
21
Introducción a los Sistemas Industriales
Figura 18: Multiprocesador basado en conmutador (switch)
(a-Un conmutador de barra fija. b- una red de conmutadores omega)
Otro aspecto de la clasificación considera el acoplamiento entre los equipos:
•
•
Sistemas fuertemente acoplados: el retraso al enviar un mensaje de una
computadora a otra es corto y la tasa de transmisión es alta.
Generalmente se los utiliza como sistemas paralelos.
Sistemas débilmente acoplados: el retraso de los mensajes entre las
máquinas es grande y la tasa de transmisión es baja. Generalmente se
los utiliza como sistemas distribuidos.
Generalmente los multiprocesadores están más fuertemente acoplados que las
multicomputadoras.
2.16 Conceptos de Software – Sistemas operativos
La importancia del software supera frecuentemente a la del hardware [6]. La
imagen que un sistema presenta queda determinada en gran medida por el
software del sistema operativo y no por el hardware.
Los sistemas operativos no se pueden encasillar fácilmente, como el hardware,
pero se los puede clasificar en dos tipos:
•
•
Débilmente acoplados.
Fuertemente acoplados.
El software débilmente acoplado de un sistema distribuido:
•
•
•
Permite que las máquinas y usuarios sean independientes entre sí en lo
fundamental.
Facilita que interactúen en cierto grado cuando sea necesario.
Los equipos individuales se distinguen fácilmente.
SISTEMAS DE PROCESO DISTRIBUIDOS Y PARALELOS
22
Introducción a los Sistemas Industriales
Combinando los distintos tipos de hardware distribuido con software distribuido
se logran distintas soluciones, aunque no todas interesan desde el punto de
vista funcional del usuario. Por ejemplo, un multiprocesador es un
multiprocesador, no importa si utiliza un bus con cachés monitores o una red
omega.
Sistemas operativos:
• DOS: sistema operativo acoplado firmemente para multiprocesadores y
multiordenadores homogéneos. Su objetivo principal es gestionar los
recursos del hardware.
• NOS: sistema operativo acoplado libremente para multiordenadores
heterogéneos (LAN y WAN). Ofrece servicios locales a clientes remotos.
• Middleware: capa adicional encima de Nos que implementa los servicios
generales. Provee transparencia en la distribución.
2.17 Sistemas operativos de uniprocesador
Un sistema operativo uniproceso es aquél que es capaz de manejar solamente
un procesador del ordenador, de manera que si el ordenador tuviese más de
uno le sería inútil. El ejemplo más típico de este tipo de sistemas es el DOS y
el MacOS.
El Kernel consiste en la parte principal del código del sistema operativo, el
cual se encargan de controlar y administrar los servicios y peticiones de
recursos y de hardware con respecto a uno o varios procesos. Se divide en 5
capas:
- Nivel 1. Gestión de Memoria: que proporciona las facilidades de
bajo nivel para la gestión de memoria secundaria necesaria para
la ejecución de procesos.
- Nivel 2. Procesador: Se encarga de activar los espacios de
tiempo para cada uno de los procesos, creando interrupciones
de hardware cuando no son respetadas.
- Nivel 3. Entrada/Salida: Proporciona las facilidades para poder
utilizar los dispositivos de E/S requeridos por procesos.
- Nivel 4. Información o Aplicación o Interprete de Lenguajes:
Facilita la comunicación con los lenguajes y el sistema operativo
para aceptar las órdenes en cada una de las aplicaciones.
Cuando se solicitan ejecutando un programa, el software de este
nivel crea el ambiente de trabajo e invoca a los procesos
correspondientes.
- Nivel 5. Control de Archivos: Proporciona la facilidad para el
almacenamiento a largo plazo y manipulación de archivos con
nombre, va asignando espacio y acceso de datos en memoria.
SISTEMAS DE PROCESO DISTRIBUIDOS Y PARALELOS
23
Introducción a los Sistemas Industriales
El núcleo (Kernel) de un sistema operativo es un conjunto de rutinas cuya
misión es la de gestionar el procesador, la memoria, la entrada/salida y el
resto de procesos disponibles en la instalación [2].
Figura 19: Sistema operativo de uniprocesador
2.18 Sistemas operativos de multiordenadores
Un sistema operativo multiproceso se refiere al número de procesadores del
sistema, que es más de uno y éste es capaz de usarlos todos para distribuir
su carga de trabajo. Generalmente estos sistemas trabajan de dos formas:
simétrica o asimétricamente.
Asimétrica: cuando se trabaja de manera asimétrica, el sistema operativo
selecciona a uno de los procesadores el cual jugará el papel de procesador
maestro y servirá como pivote para distribuir la carga a los demás
procesadores, que reciben el nombre de esclavos.
Simétrica: cuando se trabaja de manera simétrica, los procesos o partes de
ellos (threads) son enviados indistintamente a cual quiera de los procesadores
disponibles, teniendo, teóricamente, una mejor distribución y equilibrio en la
carga de trabajo bajo este esquema.
Un aspecto importante a considerar en estos sistemas es la forma de crear
aplicaciones para aprovechar los varios procesadores. Existen aplicaciones que
fueron hechas para correr en sistemas monoproceso que no toman ninguna
ventaja a menos que el sistema operativo o el compilador detecte secciones
de código paralelizable, los cuales son ejecutados al mismo tiempo en
procesadores diferentes. Por otro lado, el programador puede modificar sus
algoritmos y aprovechar por sí mismo esta facilidad, pero esta última opción
las más de las veces es costosa en horas y muy tediosa, obligando al
programador a ocupar tanto o más tiempo a la paralelización que a elaborar
el algoritmo inicial.
Figura 20: Estructura general de un multiordenador DOS
SISTEMAS DE PROCESO DISTRIBUIDOS Y PARALELOS
24
Introducción a los Sistemas Industriales
2.19 Sistemas distribuidos con memoria compartida
Los sistemas de memoria compartida distribuida (DSM) representan la creación
híbrida de dos tipos de computación paralelos: la memoria distribuida en
sistemas multiprocesador y los sistemas distribuidos. Ellos proveen la
abstracción de memoria compartida en sistemas con memorias distribuidas
físicamente y consecuentemente combinan las mejores características de
ambos enfoques. Debido a esto, el concepto de memoria compartida
distribuida es reconocido como uno de los enfoques más atractivos para la
creación de sistemas escalables, de alto rendimiento de sistemas
multiprocesador [1].
La principal característica de DSM es que ahorra al programador todo lo
concerniente al paso de mensajes al escribir sus aplicaciones, cuestión que en
otro sistema debería tenerse muy presente. DSM es fundamentalmente una
herramienta para aplicaciones paralelas o para aplicaciones o grupos de
aplicaciones distribuidas en las que se puede acceder directamente a datos
individuales que ellas comparten. En general, DSM es menos apropiado para
sistemas cliente-servidor, ya que los clientes ven al servidor como un gestor
de recursos en forma de datos abstractos que se acceden a través de
peticiones (por razones de modularidad y protección). Sin embargo, los
servidores pueden proporcionar DSM compartido entre los clientes. Por
ejemplo, los archivos plasmados en memoria (memory mapped) que son
compartidos y sobre los que se gestiona un cierto grado de consistencia son
una forma de DSM
2.20 Sistema operativo de red
Los sistemas operativos de red, además de incorporar herramientas propias de
un sistema operativo como son por ejemplo las herramientas para manejo de
ficheros y directorios, incluyen otras para el uso, gestión y mantenimiento de
la red, así como herramientas destinadas a correo electrónico, envío de
emnsajes, copia de ficheros entre nodos, ejecución de aplicaciones contenidas
en otras máquinas, compartición de recursos hardware etc. Existen muchos
sistemas operativos capaces de gestionar una red dependiente de las
arquitecturas de las máquinas que se utilicen. Los más comunes son : Novell,
Lantastic, Windows 3.11 para trabajo en grupo, Unix, Linux, Windows 95,
Windows NT, OS/2... Cada sistema operativo ofrece una forma diferente de
manejar la red y utiliza diferentes protocolos para la comunicación.
Sin el software una computadora es en esencia una masa metálica sin utilidad.
Con el software, una computadora puede almacenar, procesar y recuperar
información, encontrar errores de ortografía e intervenir en muchas otras
valiosas actividades para ganar el sustento. El software para computadoras
puede clasificarse en general, en 2 clases: los programas de sistema, que
controlan la operación de la computadora en sí y los programas de
SISTEMAS DE PROCESO DISTRIBUIDOS Y PARALELOS
25
Introducción a los Sistemas Industriales
aplicación, los cuales resuelven problemas para sus usuarios. El programa
fundamental de todos los programas de sistema, es el Sistema Operativo, que
controla todos los recursos de la computadora y proporciona la base sobre la
cual pueden escribirse los programas de aplicación.
Figura 21: Estructura general de un sistema operativo de red (NOS)
2.21 Sistemas Distribuidos –Lenguajes
Prácticamente cualquier lenguaje de programación que tenga acceso al
hardware completo del sistema podría manejar programación distribuida si se
le da suficiente tiempo y código. El proceso remoto llama a los comandos del
sistema operativo distribuido en una conexión de red.
Los sistemas como CORBA, Microsoft D/COM, Java RMI y otros, intentan
mapear los diseños orientado a objetos a la red. Los sistemas con
acoplamientos libres que comunican a través de documentos intermedios que
son típicamente lisibles por los humanos son XML, HTML, SGML, X.500, y EDI.
Los lenguajes específicamente hechos a la medida para los programas
distribuidos son:
• Lenguaje de programación Ada: se usa principalmente en entornos en
los que se necesita una gran seguridad y fiabilidad como la defensa, la
aeronáutica (Boeing o Airbus), la gestión del tráfico aéreo y la industria
aeroespacial entre otros.
• Lenguaje de programación Alef
• Lenguaje de programación E
• Lenguaje de programación Erlang: lenguaje de programación concurrente
y un sistema de ejecución que incluye una máquina virtual y biblioteca
• Lenguaje de programación Limbo: lenguaje modular, no orientado a
objetos
• Lenguaje de programación Oz
SISTEMAS DE PROCESO DISTRIBUIDOS Y PARALELOS
26
Introducción a los Sistemas Industriales
2.21 CORBA, DCOM y Java/RMI
CORBA: es la abreviatura de Common Object Request Broker Architecture. Esta
arquitectura permite a los objetos comunicarse entre ellos sin importar el
lenguaje en el que se encuentran escritos o el sistema operativo en el que
funcionan. Fue desarrollado por la OMG.
DCOM: Acrónimo de Distributed Component Object Model (modelo de
componentes distribuidos), es una implementación del estándar CORBA. Surge
como extensión de COM (Component Object Model) para soportar objetos
distribuidos a través de la red. Al contrario que CORBA, DCOM sólo funciona
sobre Windows.
Java/RMI: Remote Method Invocation o invocación de métodos remotos. Se
basa en CORBA, aunque es mucho más sencillo. Sólo puede ser usado entre
objetos Java
2.23 MPI Interfaz de paso de mensajes
El paso de mensajes es una tarea ampliamente usada en ciertas clases de
máquinas paralelas, especialmente aquellas que cuentan con memoria
distribuida. Aunque existen muchas variaciones, el concepto básico en el
proceso de comunicación mediante mensajes es bien entendido.
MPI es una interfaz de aplicación descriptiva de comunicaciones con un
lenguaje independiente (API) con semánticas definidas e interpretaciones
flexibles. Es por tanto un set de interfaces de tipo de capa 5, aunque las
implementaciones pueden cubrir más capas del modelo de referencia, con
enchufes +TCP/IP
La meta de MPI o Message Passing Interface (Interfaz de paso de mensajes),
es el desarrollar un estándar (que sea ampliamente usado) para escribir
programas que implementen el paso de mensajes. Por lo cual el interfaz
intenta establecer para esto un estándar práctico, portable, eficiente y flexible.
MPI es un estándar para la comunicación entre los procesos modelando un
programa paralelo en un sistema de memoria distribuida.
La mayoría de las implementaciones MPI consisten en un set específico de
rutinas (API) llamado desde Fortran, C, o C++ y desde cualquier lenguaje
capaz de interactuar con dichas librerías de rutina.
SISTEMAS DE PROCESO DISTRIBUIDOS Y PARALELOS
27
Introducción a los Sistemas Industriales
Metas del MPI
•
•
•
•
•
•
•
•
•
Diseñar una interfaz de programación aplicable (no necesariamente para
compiladores o sistemas que implementan una librería).
Permitir una comunicación eficiente. Evitando el copiar de memoria a
memoria y permitiendo (donde sea posible) la sobreposición de
computación y comunicación, además de aligerar la comunicación con
el procesador.
Permitir implementaciones que puedan ser utilizadas en un ambiente
heterogéneo.
Permitir enlaces convenientes en C y Fortran 77 para el interfaz.
Asumir un interfaz de comunicación seguro. El usuario no debe lidiar
con fallas de comunicación. Tales fallas son controladas por el
subsistema de comunicación interior.
Definir un interfaz que no sea muy diferente a los actuales, tales como
PVM, NX, Express, p4, etc., y proveer de extensiones para permitir mayor
flexibilidad.
Definir un interfaz que pueda ser implementado en diferentes
plataformas, sin cambios significativos en el software y las funciones
internas de comunicación.
La semántica del interfaz debe ser independiente del lenguaje.
La interfaz debe ser diseñada para producir tareas seguras.
3. CONCLUSIONES
Un sistema distribuido es una colección de computadores autónomos
conectados por una red, y con el software distribuido adecuado para que el
sistema sea visto por los usuarios como una única entidad capaz de
proporcionar facilidades de computación. Las aplicaciones de los sistemas
distribuidos varían desde la provisión de capacidad de cómputo a grupos de
usuarios, hasta sistemas bancarios, comunicaciones multimedia y abarcan
prácticamente todas las aplicaciones comerciales y técnicas de los
ordenadores. Se caracterizan por: compartición de recursos, apertura,
concurrencia (varios procesos en un única máquina) y tolerancia a fallos.
Frente a sistemas centralizados, son más económicos, rápidos, fiables y
permiten el desarrollo incremental. Sin embargo, es necesaria una correcta
distribución de recursos para evitar el colapso de unos mientras otros están
libres, lo que requiere un alto coste.
Frente a PCs independientes, permite compartir datos y recursos, favorecer la
comunicación humano-humano y flexibilidad.
Es de suma importancia resaltar la transparencia (ocultación al usuario y al
programador de aplicaciones de la separación de los componentes de un
sistema distribuido, de manera que el sistema se percibe como un todo) y la
SISTEMAS DE PROCESO DISTRIBUIDOS Y PARALELOS
28
Introducción a los Sistemas Industriales
escalabilidad (que permita que cualquier recurso simple -hardware o softwarepuede extenderse para proporcionar servicio a tantos usuarios como se quiera
en los sistemas distribuidos).
A diferencia de los sistemas distribuidos, los sistemas paralelos se basan en
multiprocesadores, con varias CPU fuertemente acopladas con un reloj común
y una memoria compartida (comunicación y sincronización vía memoria).
Tienen un único sistema operativo y todos los recursos son compartidos. Se
pueden clasificar, según Flynn, en SISD, SIMD, MISD y MIMD.
La arquitectura MIMD se basa en varios procesadores convencionales serie,
cada uno con una unidad de tratamiento, que soporta su flujo de datos, y
una unidad de control, que soporta su flujo de instrucciones. Con
acoplamiento débil o fuerte.
En cuanto al software, se pueden encontrar sistemas operativos:
Uniprocesador es aquél que es capaz de manejar solamente un procesador
del ordenador, de manera que si el ordenador tuviese más de uno le sería
inútil.
Multiordenadores Un sistema operativo multiproceso se refiere al número de
procesadores del sistema, que es más de uno y éste es capaz de usarlos
todos para distribuir su carga de trabajo.
Los sistemas de memoria compartida distribuida (DSM) representan la creación
híbrida de dos tipos de computación paralelos: la memoria distribuida en
sistemas multiprocesador y los sistemas distribuidos
Los sistemas operativos de red, además de incorporar herramientas propias de
un sistema operativo como son por ejemplo las herramientas para manejo de
ficheros y directorios, incluyen otras para el uso, gestión y mantenimiento de
la red, así como herramientas destinadas a correo electrónico,
Prácticamente cualquier lenguaje de programación que tenga acceso al
hardware completo del sistema podría manejar programación distribuida si se
le da suficiente tiempo y código. El proceso remoto llama a los comandos del
sistema operativo distribuido en una conexión de red. Los sistemas como
CORBA, Microsoft D/COM, Java RMI y otros, intentan mapear los diseños
orientado a objetos a la red.
SISTEMAS DE PROCESO DISTRIBUIDOS Y PARALELOS
29
Introducción a los Sistemas Industriales
4. BIBLIOGRAFÍA Y/O REFERENCIAS
[1] Facultad de Ciencias Exactas y Naturales –Argentina. Disponible en
[http://exa.unne.edu.ar/]
[2] ITE Instituto Nacional de Tecnologías Educativas y de Formación del
Profesorado http://www.ite.educacion.es/
[3] Morris, M. Arquitectura de computadoras. Tercera edición. Editorial Prentice
Hall. 1994
[4] J. L. Peterson; A. Silberschatz. Operating Systems Concepts. Addison-Wesley,
MA-USA, 1991
[5] Quiles, F y Garrido, A. Computadores
prestaciones. Colección Ciencia y Técnica. 1996
paralelos
y
evaluación
[6] A. S. Tanenbaum. Organización de Computadoras - Un Enfoque
Estructurado - Tercera Edición. Prentice Hall Hispanoamericana S. A., México,
1996
5. ENLACES DE INTERÉS
Facultad de Ciencias Exactas y Naturales –Argentina. http://exa.unne.edu.ar/
Asociación de usuarios de GNU/Linux de Castilla y León http://augcyl.org/
SISTEMAS DE PROCESO DISTRIBUIDOS Y PARALELOS
30
de
Descargar