SlideShare ist ein Scribd-Unternehmen logo
1 von 11
Downloaden Sie, um offline zu lesen
HERRAMIENTAS SOFTWARE PARA SISTEMAS DISTRIBUIDOS
José Luis Pastrana Brincones (pastrana@lcc.uma.es)
Departamento de Lenguajes y Ciencias de la Computación de la Universidad de Málaga
Introducción.
El hombre, cuando se plantea la resolución de un problema, por naturaleza obtiene
una solución secuencial del mismo, es decir, nuestro cerebro trata de encontrar un método o
algoritmo que siguiendo una serie de pasos nos conduzca a la solución del problema. Cuando
nos planteamos el resolver un problema de manera distribuida, carecemos de esa estructura
innata, por lo que debemos disponer de un modelo de programación, es decir, de un
mecanismo para poder expresar la estructura lógica de un programa que resuelva un
determinado problema.
Un modelo de programación para sistemas distribuidos debe de tener los siguientes
componentes: un modelo de los datos, un modelo de los procesos, un modelo de
comunicación, un modelo de sincronización y un modelo de entrada/salida.
Dicho modelo se verá influenciado por la complejidad del programa (costes de
desarrollo y legibilidad del mismo tanto para su análisis como su mantenimiento) y por el
rendimiento del mismo (influenciado tanto por el modelo como por su implementación).
Los sistemas paralelos han originado gran cantidad de modelos de programación, lo
que conlleva a dificultades o riesgos a la hora de elegir el más adecuado a nuestro problema,
ya que frecuentemente, dichos modelos toman solo estructuras simplificadas con la finalidad
de ser generales a costa de la claridad y/o de la eficiencia.
El Modelo de Datos.
A la hora de definir el modelo de datos para un modelo de programación paralela,
debemos tener en cuenta los siguientes aspectos:
• Espacio de Nombres.
◊ Nombres simbólicos o numéricos.
◊ Datos lineales o estructurados.
• Tipos del Modelo.
◊ Definir o no nuevos tipos para la programación paralela.
• Tiempo de vida de las variables.
◊ Estáticas
◊ Dinámicas.
• Acceso
◊ Local (privado).
◊ Compartido (implica gestionar su coherencia).
Modelo de Procesos.
El modelo de procesos debe especificar el flujo de ejecución, es decir, la secuencia de
operaciones que pueden ser ejecutadas por cada uno de los procesadores. Debiendo definir
qué entendemos por proceso, el tiempo de vida del mismo y la forma de nombrarlo.
• Procesos
◊ Programa en ejecución.
◊ Entidad activa capaz de realizar cómputo.
◊ Flujo de Control + Contexto Asociado
∗ Lightweight (Hebras).
∗ Heavyweight (Tareas o Procesos).
• Tiempo de Vida.
◊ Estático / Dinámico.
• Identificación de Procesos (nombre).
◊ Usado para el control de los procesos.
◊ Usado para el particionamiento del cómputo.
◊ Usado para la comunicación entre procesos.
Combinado los dos modelos anteriores podemos obtener las siguientes estructuras
básicas de programación paralela.
• Memoria compartida. Varios procesos comparten un espacio de memoria
común.
• Memoria Distribuida (SPMD). Un proceso utiliza varios espacios de memoria
distribuidos.
• Memoria Distribuida (MPMD). Varios procesos utilizan un espacio de memoria
distribuido.
• Memoria Distribuida con múltiples hebras. Varias hebras (threads) de un
mismo proceso utilizan un espacio de memoria distribuido.
• Memoria compartida con datos privados. Varios procesos utilizan un espacio
de memoria compartido junto con un espacio de memoria local o privado.
Modelo de Comunicación
A la hora de comunicar los procesos tenemos varias aproximaciones y una serie de
patrones atener en cuenta en las mismas:
• Aproximaciones Básicas
◊ Memoria Compartida.
◊ Memoria Distribuida.
• Patrones.
◊ Exclusión mutua.
◊ Comunicación punto a punto.
◊ Reducciones.
◊ Difusión (Broadcast y Multicast).
• Características de los Modelos de Comunicación Basados en Memoria
Compartida.
◊ Problemas:
∗ Coherencia (memoria virtual, cache, etc. )
∗ Consistencia de los datos.
∗ Acceso asociativo o directo.
◊ Necesitamos un mecanismo que combine el espacio de direcciones locales
y globales.
◊ Existen interfaces soportados directamente por la arquitectura.
• Características de los Modelos de Comunicación Basados en Paso de
Mensajes. (Memoria Distribuida.)
◊ Se requiere cooperación entre los flujos de control.
◊ Frecuente buffering de la información antes de la comunicación.
∗ Para mejorar la eficiencia de la transmisión.
∗ Para soportar el empaquetado/desempaquetado de los datos.
◊ Pobre soporte hardware.
◊ Diferentes aspectos semánticos
◊ Códigos portables.
◊ Patrones de comunicación
∗ Punto a punto ( 1 a 1 ).
∗ Difusión (Broadcast , 1 a n ).
∗ Receptor único (n a 1).
∗ Cualquier proceso con privilegio puede recibir (n a n ).
◊ Interfaces de Comunicación.
∗ Asíncrono. Los procesos no deben establecer una cita o un
método de notificación y aceptación del mensaje. El proceso que
desee enviar un mensaje lo hace sin que necesite saber si hay
alguien dispuesto a recibir dicho mensaje. Implica buffering.
∗ Síncrono. El proceso que envía un mensaje debe esperar a que el
receptor acepte el mensaje para proseguir su tarea.
◊ Flexibilidad
∗ Selección de mensajes por su tipo ( No FIFO).
∗ El tipo del mensaje constituye una información adicional.
∗ Búsqueda del receptor requerido.
Modelos de sincronización
En los sistemas de memoria compartida debemos establecer primitivas de
sincronización entre los procesos de forma explícita, mientras que en los sistemas basados en
paso de mensajes, dicha sincronización viene implícita en la comunicación.
• Implícita en la comunicación. (Paso de Mensajes).
◊ Recepción del mensaje
◊ Envío bloqueante: cita (rendez-vous)
• Explícita. (Memoria Compartida).
◊ Exclusión mutua (semáforos).
◊ Notificación 1 a 1.
◊ Notificación 1 a varios.
◊ Barreras
El Modelo de Entrada/Salida.
Mientras en los modelos de memoria compartida la entrada/salida esta bastante bien
definida, ya que la entrada/salida estándar o los ficheros que se deseen utilizar corresponden a
una misma máquina, en los modelos de memoria distribuida, que por lo general consisten en
una serie de máquinas conectadas en una red, se plantea una serie de problemas tales como
definir la entrada/salida estándar o la localización de ficheros. Para la localización de ficheros
de entrada el problema no tiene excesiva complicación, ya que se soluciona fácilmente
replicando dichos ficheros en las diferentes máquinas, pero a la hora de la entrada por consola
o a la hora de salida de datos por pantalla/fichero la solución no es tan trivial. Se suelen utilizar
varios sistemas.
Una posible solución para todos los problemas es tener un nodo distinguido en la red
que sea el que realiza todas las tareas de entrada/salida y se encarga de distribuir y recibir los
datos de/a todos los demás nodos, esta seria la solución más simple, pero conllevaría una
sobrecarga en el número de comunicaciones entre los diferentes nodos, así como la
introducción de un gran número de puntos de sincronización. La segunda opción, y
normalmente más usada, consiste en realizar todas las posibles entradas mediante un fichero
que este replicado en los diferentes nodos y que cada nodo realice su salida a un fichero local
(en su propio nodo), con posterioridad a la ejecución (offline) se tiene un programa de mezcla
(merge) que combina todos los ficheros de salida parciales en uno solo que refleja la salida
real del sistema. La realización de este programa de mezcla no es siempre posible ni sencillo,
así que será tarea del diseñador del sistema distribuido el decidir la técnica a utilizar en función
de sus requerimientos temporales de ejecución del sistema.
Algunas herramientas software para sistemas distribuidos (como PVM, por ejemplo)
implementan esta última opción para resolver el problema de la salida estándar en los
procesos “hijos” (todos los procesos que son expandidos por uno inicial) , creando un fichero
de log en el que escribe dichas salidas.
Memoria Compartida VS Memoria Distribuida.
El establecer cuál de los dos mecanismos básicos de comunicación para un programa
paralelo o un sistema distribuido se torna en un problema de difícil decisión en el que los
diferentes autores que escriben sobre el tema no llegan a ponerse de acuerdo, por lo que
realizaremos una valoración de ambos en función de dos parámetros que pueden ser decisivos
a la hora de elegir el mecanismo a utilizar en nuestro sistema: la granularidad (tamaño de los
procesos) y la cantidad de comunicación.
A nivel general, podemos decir que los sistemas basados en memoria compartida
tienen la ventaja de que las primitivas de sincronización están soportadas por el hardware, sin
embargo, los sistemas basados en paso de mensajes expresan de una manera más legible las
diferentes tareas realizadas por el sistema , así como la interrelación entre las mismas.
En el desarrollo de sistemas en que la granularidad de los procesos sea fina (unas
pocas líneas de código) y con una gran cantidad de datos, los sistemas basados en memoria
compartida tienden a ser más eficientes y permiten un desarrollo incremental, ya que podemos
desarrollar el programa de forma secuencial y luego describir los diferentes procesos. Un
ejemplo claro de esto podría ser el empleo de bucles paralelos (DO ACROSS) en algoritmos
de cálculo matricial. Primero podemos realizar el algoritmo secuencial (DO) y luego ejecutarlo
con una sentencia de paralelización del bucle (DO ACROSS).
Sin embargo, en el desarrollo de sistemas que usen procesos de granularidad gruesa
(procesos que son procedimientos, funciones o incluso programas completos), se incrementa
la legibilidad, ya que cada proceso constituye una tarea concreta, y si las tareas no están
fuertemente acopladas (no dependen excesivamente unas de otras) el intercambio de
información entre ellas no será ningún impedimento para obtener una buena eficiencia.
Debemos añadir a nivel general, que los sistemas distribuidos son de coste más bajo y
más fácilmente escalables, ya que un sistemas distribuido puede estar formado por una serie
de estaciones de trabajo conectadas en red ,por ejemplo, cuyo precio es muy inferior al de un
multiprocesador de memoria compartida y incrementar el número de nodos consiste sólo en
enganchar una nueva estación a la red, mientras que en un multiprocesador el número de
procesadores estará limitado por el espacio físico en la placa y el incremento de los mismo
suele ser de mayor coste. A ésto debemos añadir que las redes de comunicación han
experimentado un gran incremento en su velocidad y fiabilidad, así como el software de
comunicación a través de las mismas.
PVM.
Características Generales.
• Está basada en la idea de una máquina virtual paralela.
• Disponible gratuitamente por Oak Ridge Nat. Lab.
• Pensada para una red de estaciones de trabajo (aunque exiten versiones para
multiprocesadores y para PC’s, tanto para Linux, OpenServer, etc , como para
Windows).
• Permite combinar máquinas gran variedad de máquinas heterogéneas.
Modelo de Programación.
• Tareas con hebra simple ( una sóla hebra por tarea).
• Nombrado de tareas:
◊ Identificador de tarea numérico, único y global que se usa para la
comunicación y control de procesos.
◊ Posibilidad de definición de grupos con un nombre simbólico local y
dinámico. Un proceso puede pertenecer a más de un grupo.
• Creación dinámica de tareas.
• Admite excepciones de sistema basadas en señales UNIX.
Modelo de Comunicación.
• Semántica de mensajes.
• No tipado.
• uso de buffer.
◊ buffers implícitos de envío y recepción.
◊ funciones de manejo de buffers.
◊ funciones de empaquetado/desempaquetado.
◊ codificación XDR (para máquinas heterogéneas) o directa (para máquinas
homogéneas).
• Mensajes etiquetados.
• Recepción bloqueante y no bloqueante.
• Envíos no bloqueantes (asíncrono).
• Interface síncrono.
• Multicast a un grupo de tareas o Broadcast.
• Soporta enrutado directo.
Modelo de Sincronización.
• Semántica de sincronización basada en mensajes.
• Posibilidad del uso de barreras.
Modelo de Entrada/Salida.
• Salida estándar de consola y de errores redireccionada al archivo /tmp/pvml.<uid>
de la máquina inicial.
Implementación.
• Estructura General.
◊ Librerías + Demonios.
◊ pvm: Consola de comandos de control de procesos y sistema.
◊ Comunicación basada en sockets o sistema nativo de la máquina (por
ejemplo memeoria compartida en multiprocesadores).
◊ Archivo de configuración para la máquina virtual (hosts que la componen).
• Configuración.
◊ Utiliza los comandos rsh, rexec para lanzar los demonios y las tareas.
◊ Permite añadir hosts en tiempo de ejecución.
• Identificador de Tareas. El identificador de tareas genérico se compone de dos
campos, el más significativo contiene un indicador del hosts y el menos significativo
el identificador del proceso. En el caso de trabajar con máquinas de memoria
compartida, este segundo campo se divide en dos, uno para identificar el
procesador y otro el proceso).
• Creación de procesos. El demonio local es el encargado de lanzar el proceso en la
máquina.
MPI.
Características Generales.
• Se ha realizado un gran esfuerzo de estandarización de paso de mensajes.
◊ Auna esfuerzos y criterios de otros desarrollos de modelos de
programación con el fin de desarrollar un estandard.
◊ Semática variada: Extenso interfaz.
◊ Modelo tipado.
• Fuerte apoyo industrial.
Modelo de Procesos.
• MIMD.
• Procesos estáticos (no se permite la creación dinámica de procesos).
• Interfaz seguro para hebras.
• Grupos. Permite la definición de grupos de procesos.
• Topología.
• No maneja señales y Entrada/Salida.
Modelo de Comunicación.
• Semántica de mensajes.
• Mensajes tipados.
• Comunicación soportada por librerías.
• Interfaz síncrono y asíncrono.
• Bufferización en los mensajes.
• Recceción ordenada de mensajes.
• Manejo de buffers: el usuario provee los buffers internos para MPI.
• Comunicación colectiva: Broadcast, Gather, Scather, Gather to All.
• Operaciones de reducción: Predefinidas y definidas por el usuario.
Modelo de Sincronización.
• Semántica de sincronización por paso de mensajes.
• Barreras.
PARMACS.
Características Generales.
• Es comercial.
◊ La versión 5.0 está basada en macros.
◊ La versión 6.0 está basada en llamadas a funciones.
• Está diseñado para paso de mensajes en arquitecturas paralelas.
Modelo de Procesos.
• Programas parar Host y nodos.
• Funcionalidad de control global de procesos para nodos incocados desde un hosts.
• Primitivas de inicialización.
• Descripcción de la topología
◊ Mapeo de la topología física del sistema.
◊ Definir un espacio de nodos.
◊ Optimización de comunicaciones.
◊ Influencia semántica de las funciones(sliced-barrier).
• Procesos de hebra simple.
• Espacio de nombre numérico y lineal.
Modelo de Comunicación.
• Comunicación directa.
• Mensajes etiquetados.
• Semántica de mensajes.
• Comunicación síncrona y ansíncrona (permite ambas).
• Selección flexible de mensajes recibidos.
• No incorpora Broadcast.
• Soporta manejo de buffers automático.
• Formato implícito para soporte de sistemas heterogéneos.
Modelo de sincronización.
• Semántica de sincronización de mensajes.
• Barreras

Weitere ähnliche Inhalte

Was ist angesagt?

Registros de la cpu
Registros de la cpuRegistros de la cpu
Registros de la cpujomapuga
 
Principios orientacion-objetos
Principios orientacion-objetosPrincipios orientacion-objetos
Principios orientacion-objetoskarlalopezbello
 
Mapa conceptual
Mapa conceptual Mapa conceptual
Mapa conceptual naye torres
 
Equivalencia de autómatas finitos y expresiones regulares.
Equivalencia de autómatas finitos y expresiones regulares.Equivalencia de autómatas finitos y expresiones regulares.
Equivalencia de autómatas finitos y expresiones regulares.Yamilee Valerio
 
Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.Giancarlo Aguilar
 
Cuadro comparativo tecnologias WAN
Cuadro comparativo tecnologias WANCuadro comparativo tecnologias WAN
Cuadro comparativo tecnologias WANFlavioRobledo
 
Modelado de requisitos
Modelado de requisitosModelado de requisitos
Modelado de requisitosKleo Jorgee
 
Procesos Ligeros: Hilos o Hebras
Procesos Ligeros: Hilos o HebrasProcesos Ligeros: Hilos o Hebras
Procesos Ligeros: Hilos o HebrasJ M
 
Unidad 4: INTEROPERABILIDAD ENTRE SISTEMAS OPERATIVOS
Unidad 4:  INTEROPERABILIDAD ENTRE SISTEMAS OPERATIVOSUnidad 4:  INTEROPERABILIDAD ENTRE SISTEMAS OPERATIVOS
Unidad 4: INTEROPERABILIDAD ENTRE SISTEMAS OPERATIVOSYessica Hyuga Soto
 
ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS
ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS
ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS Infomania pro
 
Introduccion a la computación paralela
Introduccion a la computación paralelaIntroduccion a la computación paralela
Introduccion a la computación paralelaRene Guaman-Quinche
 
Estados y transiciones de los procesos
Estados y transiciones de los procesosEstados y transiciones de los procesos
Estados y transiciones de los procesosAlberto Ch
 

Was ist angesagt? (20)

Servicios basicos de red
Servicios basicos de redServicios basicos de red
Servicios basicos de red
 
Ieee 830
Ieee 830Ieee 830
Ieee 830
 
Curso de UML 2.0
Curso de UML 2.0 Curso de UML 2.0
Curso de UML 2.0
 
Registros de la cpu
Registros de la cpuRegistros de la cpu
Registros de la cpu
 
Principios orientacion-objetos
Principios orientacion-objetosPrincipios orientacion-objetos
Principios orientacion-objetos
 
Librerias java
Librerias javaLibrerias java
Librerias java
 
Mapa conceptual
Mapa conceptual Mapa conceptual
Mapa conceptual
 
Equivalencia de autómatas finitos y expresiones regulares.
Equivalencia de autómatas finitos y expresiones regulares.Equivalencia de autómatas finitos y expresiones regulares.
Equivalencia de autómatas finitos y expresiones regulares.
 
Comparticion de recursos- Sistemas Distribuidos
Comparticion de recursos- Sistemas Distribuidos Comparticion de recursos- Sistemas Distribuidos
Comparticion de recursos- Sistemas Distribuidos
 
Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.
 
Cuadro comparativo tecnologias WAN
Cuadro comparativo tecnologias WANCuadro comparativo tecnologias WAN
Cuadro comparativo tecnologias WAN
 
Modelado de requisitos
Modelado de requisitosModelado de requisitos
Modelado de requisitos
 
Procesos Ligeros: Hilos o Hebras
Procesos Ligeros: Hilos o HebrasProcesos Ligeros: Hilos o Hebras
Procesos Ligeros: Hilos o Hebras
 
Unidad 4: INTEROPERABILIDAD ENTRE SISTEMAS OPERATIVOS
Unidad 4:  INTEROPERABILIDAD ENTRE SISTEMAS OPERATIVOSUnidad 4:  INTEROPERABILIDAD ENTRE SISTEMAS OPERATIVOS
Unidad 4: INTEROPERABILIDAD ENTRE SISTEMAS OPERATIVOS
 
ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS
ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS
ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS
 
Introduccion a la computación paralela
Introduccion a la computación paralelaIntroduccion a la computación paralela
Introduccion a la computación paralela
 
ADMINISTRACIÓN DE MEMORIA.pptx
ADMINISTRACIÓN DE MEMORIA.pptxADMINISTRACIÓN DE MEMORIA.pptx
ADMINISTRACIÓN DE MEMORIA.pptx
 
Arquitectura depaquetes
Arquitectura depaquetesArquitectura depaquetes
Arquitectura depaquetes
 
Estados y transiciones de los procesos
Estados y transiciones de los procesosEstados y transiciones de los procesos
Estados y transiciones de los procesos
 
Herencia Y Polimorfismo
Herencia Y PolimorfismoHerencia Y Polimorfismo
Herencia Y Polimorfismo
 

Ähnlich wie Herramientas de Sistemas Distribuidos

Sistemas operativos distribuidos
Sistemas operativos distribuidosSistemas operativos distribuidos
Sistemas operativos distribuidosJesus Marcano Perez
 
Sistemas Operativos Distribuidos.
Sistemas Operativos Distribuidos.Sistemas Operativos Distribuidos.
Sistemas Operativos Distribuidos.argentm
 
Sistema operativo
Sistema operativoSistema operativo
Sistema operativomanuel
 
Presentación Slideshare Medidas de Tendencia Central, Posición y Dispersión
Presentación Slideshare Medidas de Tendencia Central, Posición y DispersiónPresentación Slideshare Medidas de Tendencia Central, Posición y Dispersión
Presentación Slideshare Medidas de Tendencia Central, Posición y DispersiónJose Martinez
 
Sistemas operativos distribuidos
Sistemas operativos distribuidosSistemas operativos distribuidos
Sistemas operativos distribuidosChristian19121
 
Documental de Arquitecturas Avanzadas (Computación)
Documental de Arquitecturas Avanzadas (Computación)Documental de Arquitecturas Avanzadas (Computación)
Documental de Arquitecturas Avanzadas (Computación)Kelwin Gamez
 
Sistemas distribuidos
Sistemas distribuidosSistemas distribuidos
Sistemas distribuidosAsis Matos
 
Resumen del primer corte
Resumen del primer corteResumen del primer corte
Resumen del primer corteADOLFO BORJA
 
CaracteríSticas De Software
CaracteríSticas De SoftwareCaracteríSticas De Software
CaracteríSticas De SoftwareIsabel
 
Sistema operativo distribuidos daniel
Sistema operativo distribuidos danielSistema operativo distribuidos daniel
Sistema operativo distribuidos danielchinogallegos
 
Sistema operativo distribuidos
Sistema operativo distribuidosSistema operativo distribuidos
Sistema operativo distribuidoschinogallegos
 
Sistema operativo distribuidos
Sistema operativo distribuidosSistema operativo distribuidos
Sistema operativo distribuidoschinogallegos
 
Sistema operativo distribuidos
Sistema operativo distribuidosSistema operativo distribuidos
Sistema operativo distribuidoschinogallegos
 

Ähnlich wie Herramientas de Sistemas Distribuidos (20)

Unidad iv
Unidad ivUnidad iv
Unidad iv
 
Sistemas operativos distribuidos
Sistemas operativos distribuidosSistemas operativos distribuidos
Sistemas operativos distribuidos
 
Paralelismo Concurrencia.ppt
Paralelismo Concurrencia.pptParalelismo Concurrencia.ppt
Paralelismo Concurrencia.ppt
 
Tema 4: Procesamiento paralelo.
Tema 4: Procesamiento paralelo.Tema 4: Procesamiento paralelo.
Tema 4: Procesamiento paralelo.
 
Sistemas Operativos Distribuidos.
Sistemas Operativos Distribuidos.Sistemas Operativos Distribuidos.
Sistemas Operativos Distribuidos.
 
Sistema operativo
Sistema operativoSistema operativo
Sistema operativo
 
Presentación Slideshare Medidas de Tendencia Central, Posición y Dispersión
Presentación Slideshare Medidas de Tendencia Central, Posición y DispersiónPresentación Slideshare Medidas de Tendencia Central, Posición y Dispersión
Presentación Slideshare Medidas de Tendencia Central, Posición y Dispersión
 
INTRODUCCION A SISTEMAS OPERATIVOS
INTRODUCCION A SISTEMAS OPERATIVOSINTRODUCCION A SISTEMAS OPERATIVOS
INTRODUCCION A SISTEMAS OPERATIVOS
 
Sistemas operativos distribuidos
Sistemas operativos distribuidosSistemas operativos distribuidos
Sistemas operativos distribuidos
 
sistemas distribuidos 4
sistemas distribuidos 4sistemas distribuidos 4
sistemas distribuidos 4
 
Documental de Arquitecturas Avanzadas (Computación)
Documental de Arquitecturas Avanzadas (Computación)Documental de Arquitecturas Avanzadas (Computación)
Documental de Arquitecturas Avanzadas (Computación)
 
Sistemas distribuidos
Sistemas distribuidosSistemas distribuidos
Sistemas distribuidos
 
Resumen del primer corte
Resumen del primer corteResumen del primer corte
Resumen del primer corte
 
Distribuidas1
Distribuidas1Distribuidas1
Distribuidas1
 
CaracteríSticas De Software
CaracteríSticas De SoftwareCaracteríSticas De Software
CaracteríSticas De Software
 
Sistema operativo distribuidos daniel
Sistema operativo distribuidos danielSistema operativo distribuidos daniel
Sistema operativo distribuidos daniel
 
Modelo osi[1]
Modelo osi[1]Modelo osi[1]
Modelo osi[1]
 
Sistema operativo distribuidos
Sistema operativo distribuidosSistema operativo distribuidos
Sistema operativo distribuidos
 
Sistema operativo distribuidos
Sistema operativo distribuidosSistema operativo distribuidos
Sistema operativo distribuidos
 
Sistema operativo distribuidos
Sistema operativo distribuidosSistema operativo distribuidos
Sistema operativo distribuidos
 

Mehr von Tensor

Libertad
LibertadLibertad
LibertadTensor
 
Método de la regla falsa (o metodo de la falsa posición)
Método de la regla falsa (o metodo de la falsa posición)Método de la regla falsa (o metodo de la falsa posición)
Método de la regla falsa (o metodo de la falsa posición)Tensor
 
Metodo de la bisección
Metodo de la bisecciónMetodo de la bisección
Metodo de la bisecciónTensor
 
Transito vehicular
Transito vehicularTransito vehicular
Transito vehicularTensor
 
Teoria de colas
Teoria de colasTeoria de colas
Teoria de colasTensor
 
Practica 7 2016
Practica 7 2016Practica 7 2016
Practica 7 2016Tensor
 
Practica 6 2016
Practica 6 2016Practica 6 2016
Practica 6 2016Tensor
 
Game maker
Game makerGame maker
Game makerTensor
 
Practica 5 2016
Practica 5 2016Practica 5 2016
Practica 5 2016Tensor
 
Procesamiento de archivos
Procesamiento de archivosProcesamiento de archivos
Procesamiento de archivosTensor
 
Cadenas y funciones de cadena
Cadenas y funciones de cadenaCadenas y funciones de cadena
Cadenas y funciones de cadenaTensor
 
Simulación en promodel clase 04
Simulación en promodel clase 04Simulación en promodel clase 04
Simulación en promodel clase 04Tensor
 
Reduccion de orden
Reduccion de ordenReduccion de orden
Reduccion de ordenTensor
 
Variación+de+parametros
Variación+de+parametrosVariación+de+parametros
Variación+de+parametrosTensor
 
Coeficientes indeterminados enfoque de superposición
Coeficientes indeterminados   enfoque de superposiciónCoeficientes indeterminados   enfoque de superposición
Coeficientes indeterminados enfoque de superposiciónTensor
 
Bernoulli y ricatti
Bernoulli y ricattiBernoulli y ricatti
Bernoulli y ricattiTensor
 
Practica no. 3 tiempo de servicio
Practica no. 3 tiempo de servicioPractica no. 3 tiempo de servicio
Practica no. 3 tiempo de servicioTensor
 
Clase 14 ondas reflejadas
Clase 14 ondas reflejadasClase 14 ondas reflejadas
Clase 14 ondas reflejadasTensor
 
Ondas em
Ondas emOndas em
Ondas emTensor
 
Clase 7 ondas electromagneticas
Clase 7 ondas electromagneticasClase 7 ondas electromagneticas
Clase 7 ondas electromagneticasTensor
 

Mehr von Tensor (20)

Libertad
LibertadLibertad
Libertad
 
Método de la regla falsa (o metodo de la falsa posición)
Método de la regla falsa (o metodo de la falsa posición)Método de la regla falsa (o metodo de la falsa posición)
Método de la regla falsa (o metodo de la falsa posición)
 
Metodo de la bisección
Metodo de la bisecciónMetodo de la bisección
Metodo de la bisección
 
Transito vehicular
Transito vehicularTransito vehicular
Transito vehicular
 
Teoria de colas
Teoria de colasTeoria de colas
Teoria de colas
 
Practica 7 2016
Practica 7 2016Practica 7 2016
Practica 7 2016
 
Practica 6 2016
Practica 6 2016Practica 6 2016
Practica 6 2016
 
Game maker
Game makerGame maker
Game maker
 
Practica 5 2016
Practica 5 2016Practica 5 2016
Practica 5 2016
 
Procesamiento de archivos
Procesamiento de archivosProcesamiento de archivos
Procesamiento de archivos
 
Cadenas y funciones de cadena
Cadenas y funciones de cadenaCadenas y funciones de cadena
Cadenas y funciones de cadena
 
Simulación en promodel clase 04
Simulación en promodel clase 04Simulación en promodel clase 04
Simulación en promodel clase 04
 
Reduccion de orden
Reduccion de ordenReduccion de orden
Reduccion de orden
 
Variación+de+parametros
Variación+de+parametrosVariación+de+parametros
Variación+de+parametros
 
Coeficientes indeterminados enfoque de superposición
Coeficientes indeterminados   enfoque de superposiciónCoeficientes indeterminados   enfoque de superposición
Coeficientes indeterminados enfoque de superposición
 
Bernoulli y ricatti
Bernoulli y ricattiBernoulli y ricatti
Bernoulli y ricatti
 
Practica no. 3 tiempo de servicio
Practica no. 3 tiempo de servicioPractica no. 3 tiempo de servicio
Practica no. 3 tiempo de servicio
 
Clase 14 ondas reflejadas
Clase 14 ondas reflejadasClase 14 ondas reflejadas
Clase 14 ondas reflejadas
 
Ondas em
Ondas emOndas em
Ondas em
 
Clase 7 ondas electromagneticas
Clase 7 ondas electromagneticasClase 7 ondas electromagneticas
Clase 7 ondas electromagneticas
 

Kürzlich hochgeladen

Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdfPlan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdfcarolinamartinezsev
 
INSTRUCCION PREPARATORIA DE TIRO .pptx
INSTRUCCION PREPARATORIA DE TIRO   .pptxINSTRUCCION PREPARATORIA DE TIRO   .pptx
INSTRUCCION PREPARATORIA DE TIRO .pptxdeimerhdz21
 
semana 4 9NO Estudios sociales.pptxnnnn
semana 4  9NO Estudios sociales.pptxnnnnsemana 4  9NO Estudios sociales.pptxnnnn
semana 4 9NO Estudios sociales.pptxnnnnlitzyleovaldivieso
 
Los avatares para el juego dramático en entornos virtuales
Los avatares para el juego dramático en entornos virtualesLos avatares para el juego dramático en entornos virtuales
Los avatares para el juego dramático en entornos virtualesMarisolMartinez707897
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESOluismii249
 
origen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioorigen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioELIASAURELIOCHAVEZCA1
 
Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024IES Vicent Andres Estelles
 
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdfNUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdfUPTAIDELTACHIRA
 
TRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPC
TRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPCTRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPC
TRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPCCarlosEduardoSosa2
 
Factores que intervienen en la Administración por Valores.pdf
Factores que intervienen en la Administración por Valores.pdfFactores que intervienen en la Administración por Valores.pdf
Factores que intervienen en la Administración por Valores.pdfJonathanCovena1
 
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptxCONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptxroberthirigoinvasque
 
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...Katherine Concepcion Gonzalez
 
Infografía EE con pie del 2023 (3)-1.pdf
Infografía EE con pie del 2023 (3)-1.pdfInfografía EE con pie del 2023 (3)-1.pdf
Infografía EE con pie del 2023 (3)-1.pdfAlfaresbilingual
 
FUERZA Y MOVIMIENTO ciencias cuarto basico.ppt
FUERZA Y MOVIMIENTO ciencias cuarto basico.pptFUERZA Y MOVIMIENTO ciencias cuarto basico.ppt
FUERZA Y MOVIMIENTO ciencias cuarto basico.pptNancyMoreiraMora1
 
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdfFeliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdfMercedes Gonzalez
 
Biografía de Charles Coulomb física .pdf
Biografía de Charles Coulomb física .pdfBiografía de Charles Coulomb física .pdf
Biografía de Charles Coulomb física .pdfGruberACaraballo
 

Kürzlich hochgeladen (20)

Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdfPlan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
 
INSTRUCCION PREPARATORIA DE TIRO .pptx
INSTRUCCION PREPARATORIA DE TIRO   .pptxINSTRUCCION PREPARATORIA DE TIRO   .pptx
INSTRUCCION PREPARATORIA DE TIRO .pptx
 
semana 4 9NO Estudios sociales.pptxnnnn
semana 4  9NO Estudios sociales.pptxnnnnsemana 4  9NO Estudios sociales.pptxnnnn
semana 4 9NO Estudios sociales.pptxnnnn
 
Los avatares para el juego dramático en entornos virtuales
Los avatares para el juego dramático en entornos virtualesLos avatares para el juego dramático en entornos virtuales
Los avatares para el juego dramático en entornos virtuales
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
 
origen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioorigen y desarrollo del ensayo literario
origen y desarrollo del ensayo literario
 
Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024
 
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdfNUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
 
Power Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptxPower Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptx
 
TRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPC
TRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPCTRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPC
TRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPC
 
Factores que intervienen en la Administración por Valores.pdf
Factores que intervienen en la Administración por Valores.pdfFactores que intervienen en la Administración por Valores.pdf
Factores que intervienen en la Administración por Valores.pdf
 
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptxCONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
 
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
 
Infografía EE con pie del 2023 (3)-1.pdf
Infografía EE con pie del 2023 (3)-1.pdfInfografía EE con pie del 2023 (3)-1.pdf
Infografía EE con pie del 2023 (3)-1.pdf
 
FUERZA Y MOVIMIENTO ciencias cuarto basico.ppt
FUERZA Y MOVIMIENTO ciencias cuarto basico.pptFUERZA Y MOVIMIENTO ciencias cuarto basico.ppt
FUERZA Y MOVIMIENTO ciencias cuarto basico.ppt
 
Tema 11. Dinámica de la hidrosfera 2024
Tema 11.  Dinámica de la hidrosfera 2024Tema 11.  Dinámica de la hidrosfera 2024
Tema 11. Dinámica de la hidrosfera 2024
 
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdfFeliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
 
Sesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronósticoSesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronóstico
 
Lecciones 06 Esc. Sabática. Los dos testigos
Lecciones 06 Esc. Sabática. Los dos testigosLecciones 06 Esc. Sabática. Los dos testigos
Lecciones 06 Esc. Sabática. Los dos testigos
 
Biografía de Charles Coulomb física .pdf
Biografía de Charles Coulomb física .pdfBiografía de Charles Coulomb física .pdf
Biografía de Charles Coulomb física .pdf
 

Herramientas de Sistemas Distribuidos

  • 1. HERRAMIENTAS SOFTWARE PARA SISTEMAS DISTRIBUIDOS José Luis Pastrana Brincones (pastrana@lcc.uma.es) Departamento de Lenguajes y Ciencias de la Computación de la Universidad de Málaga Introducción. El hombre, cuando se plantea la resolución de un problema, por naturaleza obtiene una solución secuencial del mismo, es decir, nuestro cerebro trata de encontrar un método o algoritmo que siguiendo una serie de pasos nos conduzca a la solución del problema. Cuando nos planteamos el resolver un problema de manera distribuida, carecemos de esa estructura innata, por lo que debemos disponer de un modelo de programación, es decir, de un mecanismo para poder expresar la estructura lógica de un programa que resuelva un determinado problema. Un modelo de programación para sistemas distribuidos debe de tener los siguientes componentes: un modelo de los datos, un modelo de los procesos, un modelo de comunicación, un modelo de sincronización y un modelo de entrada/salida. Dicho modelo se verá influenciado por la complejidad del programa (costes de desarrollo y legibilidad del mismo tanto para su análisis como su mantenimiento) y por el rendimiento del mismo (influenciado tanto por el modelo como por su implementación). Los sistemas paralelos han originado gran cantidad de modelos de programación, lo que conlleva a dificultades o riesgos a la hora de elegir el más adecuado a nuestro problema, ya que frecuentemente, dichos modelos toman solo estructuras simplificadas con la finalidad de ser generales a costa de la claridad y/o de la eficiencia. El Modelo de Datos. A la hora de definir el modelo de datos para un modelo de programación paralela, debemos tener en cuenta los siguientes aspectos: • Espacio de Nombres. ◊ Nombres simbólicos o numéricos. ◊ Datos lineales o estructurados. • Tipos del Modelo. ◊ Definir o no nuevos tipos para la programación paralela.
  • 2. • Tiempo de vida de las variables. ◊ Estáticas ◊ Dinámicas. • Acceso ◊ Local (privado). ◊ Compartido (implica gestionar su coherencia). Modelo de Procesos. El modelo de procesos debe especificar el flujo de ejecución, es decir, la secuencia de operaciones que pueden ser ejecutadas por cada uno de los procesadores. Debiendo definir qué entendemos por proceso, el tiempo de vida del mismo y la forma de nombrarlo. • Procesos ◊ Programa en ejecución. ◊ Entidad activa capaz de realizar cómputo. ◊ Flujo de Control + Contexto Asociado ∗ Lightweight (Hebras). ∗ Heavyweight (Tareas o Procesos). • Tiempo de Vida. ◊ Estático / Dinámico. • Identificación de Procesos (nombre). ◊ Usado para el control de los procesos. ◊ Usado para el particionamiento del cómputo. ◊ Usado para la comunicación entre procesos. Combinado los dos modelos anteriores podemos obtener las siguientes estructuras básicas de programación paralela. • Memoria compartida. Varios procesos comparten un espacio de memoria común.
  • 3. • Memoria Distribuida (SPMD). Un proceso utiliza varios espacios de memoria distribuidos. • Memoria Distribuida (MPMD). Varios procesos utilizan un espacio de memoria distribuido. • Memoria Distribuida con múltiples hebras. Varias hebras (threads) de un mismo proceso utilizan un espacio de memoria distribuido. • Memoria compartida con datos privados. Varios procesos utilizan un espacio de memoria compartido junto con un espacio de memoria local o privado. Modelo de Comunicación A la hora de comunicar los procesos tenemos varias aproximaciones y una serie de patrones atener en cuenta en las mismas: • Aproximaciones Básicas ◊ Memoria Compartida. ◊ Memoria Distribuida. • Patrones. ◊ Exclusión mutua. ◊ Comunicación punto a punto. ◊ Reducciones. ◊ Difusión (Broadcast y Multicast). • Características de los Modelos de Comunicación Basados en Memoria Compartida. ◊ Problemas: ∗ Coherencia (memoria virtual, cache, etc. ) ∗ Consistencia de los datos. ∗ Acceso asociativo o directo. ◊ Necesitamos un mecanismo que combine el espacio de direcciones locales y globales.
  • 4. ◊ Existen interfaces soportados directamente por la arquitectura. • Características de los Modelos de Comunicación Basados en Paso de Mensajes. (Memoria Distribuida.) ◊ Se requiere cooperación entre los flujos de control. ◊ Frecuente buffering de la información antes de la comunicación. ∗ Para mejorar la eficiencia de la transmisión. ∗ Para soportar el empaquetado/desempaquetado de los datos. ◊ Pobre soporte hardware. ◊ Diferentes aspectos semánticos ◊ Códigos portables. ◊ Patrones de comunicación ∗ Punto a punto ( 1 a 1 ). ∗ Difusión (Broadcast , 1 a n ). ∗ Receptor único (n a 1). ∗ Cualquier proceso con privilegio puede recibir (n a n ). ◊ Interfaces de Comunicación. ∗ Asíncrono. Los procesos no deben establecer una cita o un método de notificación y aceptación del mensaje. El proceso que desee enviar un mensaje lo hace sin que necesite saber si hay alguien dispuesto a recibir dicho mensaje. Implica buffering. ∗ Síncrono. El proceso que envía un mensaje debe esperar a que el receptor acepte el mensaje para proseguir su tarea. ◊ Flexibilidad ∗ Selección de mensajes por su tipo ( No FIFO). ∗ El tipo del mensaje constituye una información adicional. ∗ Búsqueda del receptor requerido.
  • 5. Modelos de sincronización En los sistemas de memoria compartida debemos establecer primitivas de sincronización entre los procesos de forma explícita, mientras que en los sistemas basados en paso de mensajes, dicha sincronización viene implícita en la comunicación. • Implícita en la comunicación. (Paso de Mensajes). ◊ Recepción del mensaje ◊ Envío bloqueante: cita (rendez-vous) • Explícita. (Memoria Compartida). ◊ Exclusión mutua (semáforos). ◊ Notificación 1 a 1. ◊ Notificación 1 a varios. ◊ Barreras El Modelo de Entrada/Salida. Mientras en los modelos de memoria compartida la entrada/salida esta bastante bien definida, ya que la entrada/salida estándar o los ficheros que se deseen utilizar corresponden a una misma máquina, en los modelos de memoria distribuida, que por lo general consisten en una serie de máquinas conectadas en una red, se plantea una serie de problemas tales como definir la entrada/salida estándar o la localización de ficheros. Para la localización de ficheros de entrada el problema no tiene excesiva complicación, ya que se soluciona fácilmente replicando dichos ficheros en las diferentes máquinas, pero a la hora de la entrada por consola o a la hora de salida de datos por pantalla/fichero la solución no es tan trivial. Se suelen utilizar varios sistemas. Una posible solución para todos los problemas es tener un nodo distinguido en la red que sea el que realiza todas las tareas de entrada/salida y se encarga de distribuir y recibir los datos de/a todos los demás nodos, esta seria la solución más simple, pero conllevaría una sobrecarga en el número de comunicaciones entre los diferentes nodos, así como la introducción de un gran número de puntos de sincronización. La segunda opción, y
  • 6. normalmente más usada, consiste en realizar todas las posibles entradas mediante un fichero que este replicado en los diferentes nodos y que cada nodo realice su salida a un fichero local (en su propio nodo), con posterioridad a la ejecución (offline) se tiene un programa de mezcla (merge) que combina todos los ficheros de salida parciales en uno solo que refleja la salida real del sistema. La realización de este programa de mezcla no es siempre posible ni sencillo, así que será tarea del diseñador del sistema distribuido el decidir la técnica a utilizar en función de sus requerimientos temporales de ejecución del sistema. Algunas herramientas software para sistemas distribuidos (como PVM, por ejemplo) implementan esta última opción para resolver el problema de la salida estándar en los procesos “hijos” (todos los procesos que son expandidos por uno inicial) , creando un fichero de log en el que escribe dichas salidas. Memoria Compartida VS Memoria Distribuida. El establecer cuál de los dos mecanismos básicos de comunicación para un programa paralelo o un sistema distribuido se torna en un problema de difícil decisión en el que los diferentes autores que escriben sobre el tema no llegan a ponerse de acuerdo, por lo que realizaremos una valoración de ambos en función de dos parámetros que pueden ser decisivos a la hora de elegir el mecanismo a utilizar en nuestro sistema: la granularidad (tamaño de los procesos) y la cantidad de comunicación. A nivel general, podemos decir que los sistemas basados en memoria compartida tienen la ventaja de que las primitivas de sincronización están soportadas por el hardware, sin embargo, los sistemas basados en paso de mensajes expresan de una manera más legible las diferentes tareas realizadas por el sistema , así como la interrelación entre las mismas. En el desarrollo de sistemas en que la granularidad de los procesos sea fina (unas pocas líneas de código) y con una gran cantidad de datos, los sistemas basados en memoria compartida tienden a ser más eficientes y permiten un desarrollo incremental, ya que podemos desarrollar el programa de forma secuencial y luego describir los diferentes procesos. Un ejemplo claro de esto podría ser el empleo de bucles paralelos (DO ACROSS) en algoritmos de cálculo matricial. Primero podemos realizar el algoritmo secuencial (DO) y luego ejecutarlo con una sentencia de paralelización del bucle (DO ACROSS).
  • 7. Sin embargo, en el desarrollo de sistemas que usen procesos de granularidad gruesa (procesos que son procedimientos, funciones o incluso programas completos), se incrementa la legibilidad, ya que cada proceso constituye una tarea concreta, y si las tareas no están fuertemente acopladas (no dependen excesivamente unas de otras) el intercambio de información entre ellas no será ningún impedimento para obtener una buena eficiencia. Debemos añadir a nivel general, que los sistemas distribuidos son de coste más bajo y más fácilmente escalables, ya que un sistemas distribuido puede estar formado por una serie de estaciones de trabajo conectadas en red ,por ejemplo, cuyo precio es muy inferior al de un multiprocesador de memoria compartida y incrementar el número de nodos consiste sólo en enganchar una nueva estación a la red, mientras que en un multiprocesador el número de procesadores estará limitado por el espacio físico en la placa y el incremento de los mismo suele ser de mayor coste. A ésto debemos añadir que las redes de comunicación han experimentado un gran incremento en su velocidad y fiabilidad, así como el software de comunicación a través de las mismas. PVM. Características Generales. • Está basada en la idea de una máquina virtual paralela. • Disponible gratuitamente por Oak Ridge Nat. Lab. • Pensada para una red de estaciones de trabajo (aunque exiten versiones para multiprocesadores y para PC’s, tanto para Linux, OpenServer, etc , como para Windows). • Permite combinar máquinas gran variedad de máquinas heterogéneas. Modelo de Programación. • Tareas con hebra simple ( una sóla hebra por tarea). • Nombrado de tareas: ◊ Identificador de tarea numérico, único y global que se usa para la comunicación y control de procesos.
  • 8. ◊ Posibilidad de definición de grupos con un nombre simbólico local y dinámico. Un proceso puede pertenecer a más de un grupo. • Creación dinámica de tareas. • Admite excepciones de sistema basadas en señales UNIX. Modelo de Comunicación. • Semántica de mensajes. • No tipado. • uso de buffer. ◊ buffers implícitos de envío y recepción. ◊ funciones de manejo de buffers. ◊ funciones de empaquetado/desempaquetado. ◊ codificación XDR (para máquinas heterogéneas) o directa (para máquinas homogéneas). • Mensajes etiquetados. • Recepción bloqueante y no bloqueante. • Envíos no bloqueantes (asíncrono). • Interface síncrono. • Multicast a un grupo de tareas o Broadcast. • Soporta enrutado directo. Modelo de Sincronización. • Semántica de sincronización basada en mensajes. • Posibilidad del uso de barreras. Modelo de Entrada/Salida. • Salida estándar de consola y de errores redireccionada al archivo /tmp/pvml.<uid> de la máquina inicial. Implementación. • Estructura General.
  • 9. ◊ Librerías + Demonios. ◊ pvm: Consola de comandos de control de procesos y sistema. ◊ Comunicación basada en sockets o sistema nativo de la máquina (por ejemplo memeoria compartida en multiprocesadores). ◊ Archivo de configuración para la máquina virtual (hosts que la componen). • Configuración. ◊ Utiliza los comandos rsh, rexec para lanzar los demonios y las tareas. ◊ Permite añadir hosts en tiempo de ejecución. • Identificador de Tareas. El identificador de tareas genérico se compone de dos campos, el más significativo contiene un indicador del hosts y el menos significativo el identificador del proceso. En el caso de trabajar con máquinas de memoria compartida, este segundo campo se divide en dos, uno para identificar el procesador y otro el proceso). • Creación de procesos. El demonio local es el encargado de lanzar el proceso en la máquina. MPI. Características Generales. • Se ha realizado un gran esfuerzo de estandarización de paso de mensajes. ◊ Auna esfuerzos y criterios de otros desarrollos de modelos de programación con el fin de desarrollar un estandard. ◊ Semática variada: Extenso interfaz. ◊ Modelo tipado. • Fuerte apoyo industrial. Modelo de Procesos. • MIMD. • Procesos estáticos (no se permite la creación dinámica de procesos). • Interfaz seguro para hebras. • Grupos. Permite la definición de grupos de procesos.
  • 10. • Topología. • No maneja señales y Entrada/Salida. Modelo de Comunicación. • Semántica de mensajes. • Mensajes tipados. • Comunicación soportada por librerías. • Interfaz síncrono y asíncrono. • Bufferización en los mensajes. • Recceción ordenada de mensajes. • Manejo de buffers: el usuario provee los buffers internos para MPI. • Comunicación colectiva: Broadcast, Gather, Scather, Gather to All. • Operaciones de reducción: Predefinidas y definidas por el usuario. Modelo de Sincronización. • Semántica de sincronización por paso de mensajes. • Barreras. PARMACS. Características Generales. • Es comercial. ◊ La versión 5.0 está basada en macros. ◊ La versión 6.0 está basada en llamadas a funciones. • Está diseñado para paso de mensajes en arquitecturas paralelas. Modelo de Procesos. • Programas parar Host y nodos. • Funcionalidad de control global de procesos para nodos incocados desde un hosts. • Primitivas de inicialización. • Descripcción de la topología
  • 11. ◊ Mapeo de la topología física del sistema. ◊ Definir un espacio de nodos. ◊ Optimización de comunicaciones. ◊ Influencia semántica de las funciones(sliced-barrier). • Procesos de hebra simple. • Espacio de nombre numérico y lineal. Modelo de Comunicación. • Comunicación directa. • Mensajes etiquetados. • Semántica de mensajes. • Comunicación síncrona y ansíncrona (permite ambas). • Selección flexible de mensajes recibidos. • No incorpora Broadcast. • Soporta manejo de buffers automático. • Formato implícito para soporte de sistemas heterogéneos. Modelo de sincronización. • Semántica de sincronización de mensajes. • Barreras