Documentos de Académico
Documentos de Profesional
Documentos de Cultura
INGENIERÍA EN COMPUTACIÓN
Sistemas Distribuidos
Verónica Salas Jiménez
UNIDAD 2
Alumno:
Arroyo Rodríguez Moisés Isaí
Introducción a los sistemas de multiprocesamiento
UMA
En este tipo de arquitectura, como bien dice su nombre, todos los accesos a
memoria tardan el mismo tiempo. Seguramente podemos pensar que es difícil
que tengamos el mismo tiempo de acceso si la memoria, aunque compartida, está
dividida en módulos a los que se accede a través de una red de interconexión
basada en switches. Eso es cierto y, para conseguir esta uniformidad de acceso, se
tiene que aumentar el tiempo de los accesos más rápidos. Los sistemas NUMA
facilitan la programación, ya que el tiempo de acceso siempre es el mismo. Este tipo
de máquinas son fáciles de construir. Sin embargo, el hecho de que todos los
procesadores accedan al mismo bus para acceder a memoria puede significar un
cuello de botella. Una alternativa a tener un único bus sería tener varios buses, de
tal forma que se distribuirían los accesos a los módulos de memoria. También se
podría usar una red de interconexión más compleja, como una red crossbar, que
permita evitar conflictos entre los accesos a las memorias que no van al mismo
módulo.
NUMA
En los multiprocesadores NUMA, a diferencia de los UMA, los accesos a memoria
pueden tener tiempos distintos. En estas máquinas la memoria también está
compartida, pero los módulos de memoria están distribuidos entre los diferentes
procesadores con el objetivo de reducir la contención de acceso a memoria.
Mapeo de datos
El programador deberá ser consciente del mapeo de los datos para reducir el
número de accesos a la memoria local de otros procesadores.
Por otra parte, al igual que pasaba con las arquitecturas UMA, también se
incorporaron las cachés para reducir la contención de memoria. Pero además, con
estas cachés también se intenta ocultar la diferencia de tiempo de acceso a
memoria entre memoria local y remota. Según tengan o no caché, los
multiprocesadores NUMA se clasifican en cache coherence NUMA (ccNUMA) o
Non-Coherence NUMA respectivamente. El término de coherencia o no coherencia
proviene de mantenerla o no en los datos duplicados en las cachés.
COMA
Aunque las arquitecturas ccNUMA ayudan a ocultar la diferencia de tiempo entre
accesos locales y remotos, esto dependerá de la localidad de datos que se explote
y la capacidad de las cachés. Así, en el caso de que el volumen de los datos a los
que se accede sea mayor que la capacidad de la caché, o el patrón de acceso no
ayude, volveremos a tener fallos de caché y el rendimiento de las aplicaciones no
será bueno. Arquitecturas COMA Las arquitecturas caches only memory access
tratan la memoria principal como una memoria caché grande. Las arquitecturas
COMA (cache only memory access) intentan solucionar este problema haciendo
que la memoria local a cada procesador se convierta en parte de una memoria
caché grande. En este tipo de arquitecturas, las páginas de memoria desaparecen
y todos los datos se tratan como líneas de caché.
Fuertemente acoplados
Débilmente acoplados
1) Computadores autónomos.
a. Los computadores son independientes y pueden estar
geográficamente dispersos.
2) Protocolo de comunicación.
a. La comunicación sigue un rígido protocolo.
3) Comunicación serie.
a. Utilizando líneas de alta velocidad.
4) Accesibilidad.
a. Desde cualquier computador se puede acceder a todos los demás.
5) Eficacia.
a. El funcionamiento resulta eficiente cuando las interacciones de los
procesos de los diferentes computadores son mínimas.
Sistemas de cluster
• Alto rendimiento.
• Alta disponibilidad.
• Escalabilidad.
• Balanceo de carga.
• Homogéneo.
• Semi-homogéneo.
• Heterogéneo.
Un clúster es homogéneo cuando todas las computadoras tienen la misma
configuración en hardware y sistema operativo. Es semi-homogéneo cuando las
computadoras tienen diferente rendimiento, pero guardan una similitud con respecto
a su arquitectura y sistema operativo. Finalmente, un clúster es heterogéneo cuando
las computadoras tienen diferente hardware y sistema operativo.
Multiprocesamiento dedicado
Multiprocesamiento compartido
Los procesos tienen acceso a la misma memoria física. Los procesos pueden correr
en un solo procesador (tiempo compartido). Los procesos pueden correr en
procesadores distintos dentro del mismo computador. Se debe tener cuidado en
esta categoría con la consistencia de los datos.
Se debe utilizar mecanismos como: semáforos, barreras, etc. para tal fin.
Protocolos de comunicación
Protocolo en capas
Debido a la ausencia de memoria compartida en los sistemas distribuidos, toda la
comunicación se basa en el envío y la recepción (de bajo nivel) de mensajes.
Cuando el proceso A debe comunicarse con el proceso B, primero elabora un
mensaje en su propio espacio de dirección. Después ejecuta una llamada de
sistema y ocasiona que el sistema operativo envíe el mensaje sobre la red hacia B.
Aunque esta idea básica parece bastante sencilla, para evitar el caos, A y B deben
acordar el significado de los bits por enviar.
Para que un mensaje llegue del remitente al destinatario, es probable que deba
realizar una serie de saltos, y elegir en cada salto una línea de salida. La cuestión
de cómo elegir la mejor ruta se conoce como enrutamiento, y es básicamente la
tarea principal de la capa de red. El problema es complicado, debido a que la ruta
más corta no siempre resulta ser la mejor.
Protocolo de transporte
La capa de transporte forma la última parte de lo que podríamos llamar una pila
básica de protocolos de red en el sentido de que implementa todos aquellos
servicios no proporcionados en la interfaz de la capa de red, pero que son
razonablemente necesarios para construir aplicaciones de red. En otras palabras,
la capa de transporte transforma la red subyacente en algo que un desarrollador de
aplicaciones puede utilizar. Los paquetes pueden perderse en el camino del
remitente hacia el destinatario. Aunque algunas aplicaciones pueden manejar su
propia recuperación de errores, otras prefieren tener una conexión confiable. El
trabajo de la capa de transporte es proporcionar este servicio. La idea es que la
capa de aplicación debe poder entregar un mensaje a la capa de transporte con la
expectativa de que será entregado sin pérdidas. El protocolo de transporte de
internet es conocido como TCP (Protocolo para el Control de Transmisiones), y se
describe con detalle en Comer (2006). La combinación TCP-IP se utiliza ahora como
un estándar predeterminado para comunicación en red.
Protocolos middleware
El middleware es una aplicación que lógicamente reside (la mayor parte del tiempo)
en la capa de aplicación, pero que contiene muchos protocolos de propósito general
que garantizan sus propias capas, independientemente de otras aplicaciones más
específicas. Podemos establecer cierta diferencia entre los protocolos de
comunicación de alto nivel y los protocolos implementados para establecer diversos
servicios middleware.
Paso de mensajes
El paso de mensajes es una técnica que se usa para, desde un proceso, invocar de
forma abstracta un comportamiento concreto por parte de otro actor (Por ejemplo,
ejecutar una función o un programa). Esto supone un gran cambio con respecto al
modelo tradicional en el cual se llamaba a los programas y funciones solo por su
nombre, el paso de mensajes constituye un mecanismo esencial para distinguir una
función de su implementación interna— El emisor envía un mensaje solicitando una
acción abstracta al destinatario, y es el destinatario el que, al recibir el mensaje,
decidirá la acción que debe ejecutar para cumplir la petición.
Objetos remotos
RMI es una tecnología desarrollada por Sun para permitir la colaboración de objetos
que están localizados remotamente. Esta tecnología se enmarca en la idea de
permitir colaboración entre Objetos Remotos. La idea no es que los objetos se
comuniquen a través de la programación del usuario de protocolos estándares de
red como TCP/IP. La idea es tener un objeto cliente, donde podamos efectuar un
requerimiento de datos. Ante una solicitud, el cliente prepara el requerimiento y lo
envía a un objeto ubicado en un servidor. El objeto remoto prepara la información
requerida (accediendo a bases de datos u otros objetos). Finalmente, el objeto
remoto envía la respuesta al cliente. En lo posible esta interacción debería ser lo
más semejante posible a requerimientos hechos localmente.
Procedimientos remotos
Una diferencia fundamental entre una llamada a procedimiento remoto una llamada
local es que la llamada a procedimiento remoto puede fallar debido a la red,
introduce un factor más que es, en principio, impredecible, luego deben implementar
mecanismos para tratar este tipo de complicaciones.
CORBA
Corba son las siglas de Common Object Request Broker Architecture y es un
estándar que permite que software escrito en distintos lenguajes y ejecutándose en
distintas máquinas trabajen conjuntamente. Está muy orientado a objetos y se suele
emplear en entornos multicapa, también es usado por el proyecto Gnome para la
comunicación entre aplicaciones.
DCOM
DCOM son las siglas de Distributed Component Object Model, esta es una
tecnología propietaria de Microsoft que extiende los componentes de su tecnología
COM de manera que permite la ejecución de software distribuido en varios equipos
que se comunican entre sí. En el momento de su aparición DCOM supuso la
respuesta de Microsoft al estándar CORBA y se libró una batalla entre ambos para
ver cuál se establecía como el modelo de código y servicios sobre internet.
Finalmente, las dificultades que tenía el hacer que estas tecnologías funcionasen a
través de cortafuegos y/o en máquinas desconocidas propició que el conjunto de
peticiones http normales y navegadores web modernos le ganasen la partida de
popularidad, a pesar de esto tanto DCOM como CORBA siguen conservando un
nicho de mercado muy reseñable.
SOAP
SOAP, acrónimo de Simple Object Access Protocol es un protocolo estandarizado
por el World Wide Web Consortium (W3C) que define el intercambio de información
entre dos objetos por medio del uso de XML. Es un protocolo que surge como una
evolución de xml-rpc, al quedarse este protocolo corto para las necesidades de
grandes corporaciones. En un principio simplemente consistió en la adición de
algunos tipos de datos y espacios de nombres, una vez que el W3C aceptó el
estándar como propio el grupo de trabajo que se ocupa de él le ha ido añadiendo
características que no siempre han guardado una filosofía común (soporte de XML
schemas, tipos personalizados, permitir que algunos aspectos del estándar
dependan de la implementación de este, …). Una de las desventajas de los
protocolos basados en XML para el intercambio de información es la gran
sobrecarga de información que introduce este protocolo para el intercambio de
datos, es decir para enviar una unidad de información realmente útil el protocolo le
añade varias más para su propio uso. Esta última característica hace a este
protocolo bastante lento y requiere de un uso intensivo de las capacidades de red.
Referencias
Referencias
Tanenbaum, A. S. (2008). Sistemas distribuidos: Principios y paradigmas. Ciudad
de México: Pearson Education. Recuperado el 07 de Febrero de 2023