SlideShare una empresa de Scribd logo
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

Más contenido relacionado

La actualidad más candente

Machine Learning: Generative and Discriminative Models
Machine Learning: Generative and Discriminative ModelsMachine Learning: Generative and Discriminative Models
Machine Learning: Generative and Discriminative Modelsbutest
 
2.4 rule based classification
2.4 rule based classification2.4 rule based classification
2.4 rule based classification
Krish_ver2
 
Elementos basados en clases
Elementos basados en clasesElementos basados en clases
Elementos basados en clases
Alumic S.A
 
Administración de memoria en java
Administración de memoria en javaAdministración de memoria en java
Administración de memoria en java
Luis Miguel De Bello
 
Modelo basado en clases
Modelo basado en clasesModelo basado en clases
Modelo basado en clases
Jesús Cedeño
 
Regularization in deep learning
Regularization in deep learningRegularization in deep learning
Regularization in deep learning
VARUN KUMAR
 
Procesos Hilos y Planificación
Procesos Hilos y PlanificaciónProcesos Hilos y Planificación
Procesos Hilos y Planificación
UNIVERSIDAD UNIAJC-UNIMINUTO
 
MODELO DE RESONANCIA ADAPTATIVA (ART)
MODELO DE RESONANCIA ADAPTATIVA (ART)MODELO DE RESONANCIA ADAPTATIVA (ART)
MODELO DE RESONANCIA ADAPTATIVA (ART)
ESCOM
 
Teoría De La Complejidad Algoritmica
Teoría De La Complejidad AlgoritmicaTeoría De La Complejidad Algoritmica
Teoría De La Complejidad Algoritmica
Rolf Pinto
 
advanced computer architesture-conditions of parallelism
advanced computer architesture-conditions of parallelismadvanced computer architesture-conditions of parallelism
advanced computer architesture-conditions of parallelism
Pankaj Kumar Jain
 
Lecture 3 parallel programming platforms
Lecture 3   parallel programming platformsLecture 3   parallel programming platforms
Lecture 3 parallel programming platforms
Vajira Thambawita
 
Red NEURONAL MADALINE
Red NEURONAL MADALINERed NEURONAL MADALINE
Red NEURONAL MADALINEESCOM
 
Challenges in Large Scale Machine Learning
Challenges in Large Scale  Machine LearningChallenges in Large Scale  Machine Learning
Challenges in Large Scale Machine Learning
Sudarsun Santhiappan
 
Particiones EstáTicas
Particiones EstáTicasParticiones EstáTicas
Particiones EstáTicas
danielchecar
 
Divide y Venceras
Divide y VencerasDivide y Venceras
Divide y Venceras
Silvana Cecilia Vire
 
Guía de Estándar IEEE 830
Guía de Estándar IEEE 830Guía de Estándar IEEE 830
Guía de Estándar IEEE 830
Jose Luis Ortiz Acosta
 

La actualidad más candente (20)

Planificacion cpu
Planificacion cpuPlanificacion cpu
Planificacion cpu
 
Machine Learning: Generative and Discriminative Models
Machine Learning: Generative and Discriminative ModelsMachine Learning: Generative and Discriminative Models
Machine Learning: Generative and Discriminative Models
 
2.4 rule based classification
2.4 rule based classification2.4 rule based classification
2.4 rule based classification
 
Elementos basados en clases
Elementos basados en clasesElementos basados en clases
Elementos basados en clases
 
Administración de memoria en java
Administración de memoria en javaAdministración de memoria en java
Administración de memoria en java
 
Modelo basado en clases
Modelo basado en clasesModelo basado en clases
Modelo basado en clases
 
Regularization in deep learning
Regularization in deep learningRegularization in deep learning
Regularization in deep learning
 
Procesos Hilos y Planificación
Procesos Hilos y PlanificaciónProcesos Hilos y Planificación
Procesos Hilos y Planificación
 
Arquitectura pizarra
Arquitectura pizarraArquitectura pizarra
Arquitectura pizarra
 
MODELO DE RESONANCIA ADAPTATIVA (ART)
MODELO DE RESONANCIA ADAPTATIVA (ART)MODELO DE RESONANCIA ADAPTATIVA (ART)
MODELO DE RESONANCIA ADAPTATIVA (ART)
 
Teoría De La Complejidad Algoritmica
Teoría De La Complejidad AlgoritmicaTeoría De La Complejidad Algoritmica
Teoría De La Complejidad Algoritmica
 
advanced computer architesture-conditions of parallelism
advanced computer architesture-conditions of parallelismadvanced computer architesture-conditions of parallelism
advanced computer architesture-conditions of parallelism
 
Lecture 3 parallel programming platforms
Lecture 3   parallel programming platformsLecture 3   parallel programming platforms
Lecture 3 parallel programming platforms
 
Uml
UmlUml
Uml
 
Red NEURONAL MADALINE
Red NEURONAL MADALINERed NEURONAL MADALINE
Red NEURONAL MADALINE
 
Modelo basado en clases
Modelo basado en clasesModelo basado en clases
Modelo basado en clases
 
Challenges in Large Scale Machine Learning
Challenges in Large Scale  Machine LearningChallenges in Large Scale  Machine Learning
Challenges in Large Scale Machine Learning
 
Particiones EstáTicas
Particiones EstáTicasParticiones EstáTicas
Particiones EstáTicas
 
Divide y Venceras
Divide y VencerasDivide y Venceras
Divide y Venceras
 
Guía de Estándar IEEE 830
Guía de Estándar IEEE 830Guía de Estándar IEEE 830
Guía de Estándar IEEE 830
 

Similar a Herramientas de Sistemas Distribuidos

Sistemas operativos distribuidos
Sistemas operativos distribuidosSistemas operativos distribuidos
Sistemas operativos distribuidos
Jesus Marcano Perez
 
Paralelismo Concurrencia.ppt
Paralelismo Concurrencia.pptParalelismo Concurrencia.ppt
Paralelismo Concurrencia.ppt
PETERALEXANDERSAMUEL
 
Tema 4: Procesamiento paralelo.
Tema 4: Procesamiento paralelo.Tema 4: Procesamiento paralelo.
Tema 4: Procesamiento paralelo.
Manuel Fernandez Barcell
 
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ón
Jose Martinez
 
INTRODUCCION A SISTEMAS OPERATIVOS
INTRODUCCION A SISTEMAS OPERATIVOSINTRODUCCION A SISTEMAS OPERATIVOS
INTRODUCCION A SISTEMAS OPERATIVOS
Richard Eliseo Mendoza Gafaro
 
Sistemas operativos distribuidos
Sistemas operativos distribuidosSistemas operativos distribuidos
Sistemas operativos distribuidos
Christian19121
 
sistemas distribuidos 4
sistemas distribuidos 4sistemas distribuidos 4
sistemas distribuidos 4
Wilson Cardenas
 
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 distribuidos
Asis Matos
 
Resumen del primer corte
Resumen del primer corteResumen del primer corte
Resumen del primer corteADOLFO BORJA
 
Distribuidas1
Distribuidas1Distribuidas1
Distribuidas1
Victor Zapata
 
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
 

Similar a 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
 

Más de Tensor

Libertad
LibertadLibertad
Libertad
Tensor
 
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ón
Tensor
 
Transito vehicular
Transito vehicularTransito vehicular
Transito vehicular
Tensor
 
Teoria de colas
Teoria de colasTeoria de colas
Teoria de colas
Tensor
 
Practica 7 2016
Practica 7 2016Practica 7 2016
Practica 7 2016
Tensor
 
Practica 6 2016
Practica 6 2016Practica 6 2016
Practica 6 2016
Tensor
 
Game maker
Game makerGame maker
Game maker
Tensor
 
Practica 5 2016
Practica 5 2016Practica 5 2016
Practica 5 2016
Tensor
 
Procesamiento de archivos
Procesamiento de archivosProcesamiento de archivos
Procesamiento de archivos
Tensor
 
Cadenas y funciones de cadena
Cadenas y funciones de cadenaCadenas y funciones de cadena
Cadenas y funciones de cadena
Tensor
 
Simulación en promodel clase 04
Simulación en promodel clase 04Simulación en promodel clase 04
Simulación en promodel clase 04
Tensor
 
Reduccion de orden
Reduccion de ordenReduccion de orden
Reduccion de orden
Tensor
 
Variación+de+parametros
Variación+de+parametrosVariación+de+parametros
Variación+de+parametros
Tensor
 
Coeficientes indeterminados enfoque de superposición
Coeficientes indeterminados   enfoque de superposiciónCoeficientes indeterminados   enfoque de superposición
Coeficientes indeterminados enfoque de superposición
Tensor
 
Bernoulli y ricatti
Bernoulli y ricattiBernoulli y ricatti
Bernoulli y ricatti
Tensor
 
Practica no. 3 tiempo de servicio
Practica no. 3 tiempo de servicioPractica no. 3 tiempo de servicio
Practica no. 3 tiempo de servicio
Tensor
 
Clase 14 ondas reflejadas
Clase 14 ondas reflejadasClase 14 ondas reflejadas
Clase 14 ondas reflejadas
Tensor
 
Ondas em
Ondas emOndas em
Ondas em
Tensor
 
Clase 7 ondas electromagneticas
Clase 7 ondas electromagneticasClase 7 ondas electromagneticas
Clase 7 ondas electromagneticas
Tensor
 

Más de 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
 

Último

3° UNIDAD 3 CUIDAMOS EL AMBIENTE RECICLANDO EN FAMILIA 933623393 PROF YESSENI...
3° UNIDAD 3 CUIDAMOS EL AMBIENTE RECICLANDO EN FAMILIA 933623393 PROF YESSENI...3° UNIDAD 3 CUIDAMOS EL AMBIENTE RECICLANDO EN FAMILIA 933623393 PROF YESSENI...
3° UNIDAD 3 CUIDAMOS EL AMBIENTE RECICLANDO EN FAMILIA 933623393 PROF YESSENI...
rosannatasaycoyactay
 
Sesión: El fundamento del gobierno de Dios.pdf
Sesión: El fundamento del gobierno de Dios.pdfSesión: El fundamento del gobierno de Dios.pdf
Sesión: El fundamento del gobierno de Dios.pdf
https://gramadal.wordpress.com/
 
Proceso de admisiones en escuelas infantiles de Pamplona
Proceso de admisiones en escuelas infantiles de PamplonaProceso de admisiones en escuelas infantiles de Pamplona
Proceso de admisiones en escuelas infantiles de Pamplona
Edurne Navarro Bueno
 
INFORME MINEDU DEL PRIMER SIMULACRO 2024.pdf
INFORME MINEDU DEL PRIMER SIMULACRO 2024.pdfINFORME MINEDU DEL PRIMER SIMULACRO 2024.pdf
INFORME MINEDU DEL PRIMER SIMULACRO 2024.pdf
Alejandrogarciapanta
 
PPT: El fundamento del gobierno de Dios.
PPT: El fundamento del gobierno de Dios.PPT: El fundamento del gobierno de Dios.
PPT: El fundamento del gobierno de Dios.
https://gramadal.wordpress.com/
 
Mauricio-Presentación-Vacacional- 2024-1
Mauricio-Presentación-Vacacional- 2024-1Mauricio-Presentación-Vacacional- 2024-1
Mauricio-Presentación-Vacacional- 2024-1
MauricioSnchez83
 
Testimonio Paco Z PATRONATO_Valencia_24.pdf
Testimonio Paco Z PATRONATO_Valencia_24.pdfTestimonio Paco Z PATRONATO_Valencia_24.pdf
Testimonio Paco Z PATRONATO_Valencia_24.pdf
Txema Gs
 
El fundamento del gobierno de Dios. Lec. 09. docx
El fundamento del gobierno de Dios. Lec. 09. docxEl fundamento del gobierno de Dios. Lec. 09. docx
El fundamento del gobierno de Dios. Lec. 09. docx
Alejandrino Halire Ccahuana
 
FORTI-JUNIO 2024. CIENCIA, EDUCACION, CULTURA,pdf
FORTI-JUNIO 2024. CIENCIA, EDUCACION, CULTURA,pdfFORTI-JUNIO 2024. CIENCIA, EDUCACION, CULTURA,pdf
FORTI-JUNIO 2024. CIENCIA, EDUCACION, CULTURA,pdf
El Fortí
 
Educar por Competencias GS2 Ccesa007.pdf
Educar por Competencias GS2 Ccesa007.pdfEducar por Competencias GS2 Ccesa007.pdf
Educar por Competencias GS2 Ccesa007.pdf
Demetrio Ccesa Rayme
 
CALENDARIZACION DEL MES DE JUNIO - JULIO 24
CALENDARIZACION DEL MES DE JUNIO - JULIO 24CALENDARIZACION DEL MES DE JUNIO - JULIO 24
CALENDARIZACION DEL MES DE JUNIO - JULIO 24
auxsoporte
 
Varón de 30 años acude a consulta por presentar hipertensión arterial de reci...
Varón de 30 años acude a consulta por presentar hipertensión arterial de reci...Varón de 30 años acude a consulta por presentar hipertensión arterial de reci...
Varón de 30 años acude a consulta por presentar hipertensión arterial de reci...
HuallpaSamaniegoSeba
 
Fase 2, Pensamiento variacional y trigonometrico
Fase 2, Pensamiento variacional y trigonometricoFase 2, Pensamiento variacional y trigonometrico
Fase 2, Pensamiento variacional y trigonometrico
YasneidyGonzalez
 
PRESENTACION DE LA SEMANA NUMERO 8 EN APLICACIONES DE INTERNET
PRESENTACION DE LA SEMANA NUMERO 8 EN APLICACIONES DE INTERNETPRESENTACION DE LA SEMANA NUMERO 8 EN APLICACIONES DE INTERNET
PRESENTACION DE LA SEMANA NUMERO 8 EN APLICACIONES DE INTERNET
CESAR MIJAEL ESPINOZA SALAZAR
 
Fase 1, Lenguaje algebraico y pensamiento funcional
Fase 1, Lenguaje algebraico y pensamiento funcionalFase 1, Lenguaje algebraico y pensamiento funcional
Fase 1, Lenguaje algebraico y pensamiento funcional
YasneidyGonzalez
 
Texto_de_Aprendizaje-1ro_secundaria-2024.pdf
Texto_de_Aprendizaje-1ro_secundaria-2024.pdfTexto_de_Aprendizaje-1ro_secundaria-2024.pdf
Texto_de_Aprendizaje-1ro_secundaria-2024.pdf
ClaudiaAlcondeViadez
 
CONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIA
CONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIACONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIA
CONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIA
BetzabePecheSalcedo1
 
HABILIDADES MOTRICES BASICAS Y ESPECIFICAS.pdf
HABILIDADES MOTRICES BASICAS Y ESPECIFICAS.pdfHABILIDADES MOTRICES BASICAS Y ESPECIFICAS.pdf
HABILIDADES MOTRICES BASICAS Y ESPECIFICAS.pdf
DIANADIAZSILVA1
 
Portafolio de servicios Centro de Educación Continua EPN
Portafolio de servicios Centro de Educación Continua EPNPortafolio de servicios Centro de Educación Continua EPN
Portafolio de servicios Centro de Educación Continua EPN
jmorales40
 
corpus-christi-sesion-de-aprendizaje.pdf
corpus-christi-sesion-de-aprendizaje.pdfcorpus-christi-sesion-de-aprendizaje.pdf
corpus-christi-sesion-de-aprendizaje.pdf
YolandaRodriguezChin
 

Último (20)

3° UNIDAD 3 CUIDAMOS EL AMBIENTE RECICLANDO EN FAMILIA 933623393 PROF YESSENI...
3° UNIDAD 3 CUIDAMOS EL AMBIENTE RECICLANDO EN FAMILIA 933623393 PROF YESSENI...3° UNIDAD 3 CUIDAMOS EL AMBIENTE RECICLANDO EN FAMILIA 933623393 PROF YESSENI...
3° UNIDAD 3 CUIDAMOS EL AMBIENTE RECICLANDO EN FAMILIA 933623393 PROF YESSENI...
 
Sesión: El fundamento del gobierno de Dios.pdf
Sesión: El fundamento del gobierno de Dios.pdfSesión: El fundamento del gobierno de Dios.pdf
Sesión: El fundamento del gobierno de Dios.pdf
 
Proceso de admisiones en escuelas infantiles de Pamplona
Proceso de admisiones en escuelas infantiles de PamplonaProceso de admisiones en escuelas infantiles de Pamplona
Proceso de admisiones en escuelas infantiles de Pamplona
 
INFORME MINEDU DEL PRIMER SIMULACRO 2024.pdf
INFORME MINEDU DEL PRIMER SIMULACRO 2024.pdfINFORME MINEDU DEL PRIMER SIMULACRO 2024.pdf
INFORME MINEDU DEL PRIMER SIMULACRO 2024.pdf
 
PPT: El fundamento del gobierno de Dios.
PPT: El fundamento del gobierno de Dios.PPT: El fundamento del gobierno de Dios.
PPT: El fundamento del gobierno de Dios.
 
Mauricio-Presentación-Vacacional- 2024-1
Mauricio-Presentación-Vacacional- 2024-1Mauricio-Presentación-Vacacional- 2024-1
Mauricio-Presentación-Vacacional- 2024-1
 
Testimonio Paco Z PATRONATO_Valencia_24.pdf
Testimonio Paco Z PATRONATO_Valencia_24.pdfTestimonio Paco Z PATRONATO_Valencia_24.pdf
Testimonio Paco Z PATRONATO_Valencia_24.pdf
 
El fundamento del gobierno de Dios. Lec. 09. docx
El fundamento del gobierno de Dios. Lec. 09. docxEl fundamento del gobierno de Dios. Lec. 09. docx
El fundamento del gobierno de Dios. Lec. 09. docx
 
FORTI-JUNIO 2024. CIENCIA, EDUCACION, CULTURA,pdf
FORTI-JUNIO 2024. CIENCIA, EDUCACION, CULTURA,pdfFORTI-JUNIO 2024. CIENCIA, EDUCACION, CULTURA,pdf
FORTI-JUNIO 2024. CIENCIA, EDUCACION, CULTURA,pdf
 
Educar por Competencias GS2 Ccesa007.pdf
Educar por Competencias GS2 Ccesa007.pdfEducar por Competencias GS2 Ccesa007.pdf
Educar por Competencias GS2 Ccesa007.pdf
 
CALENDARIZACION DEL MES DE JUNIO - JULIO 24
CALENDARIZACION DEL MES DE JUNIO - JULIO 24CALENDARIZACION DEL MES DE JUNIO - JULIO 24
CALENDARIZACION DEL MES DE JUNIO - JULIO 24
 
Varón de 30 años acude a consulta por presentar hipertensión arterial de reci...
Varón de 30 años acude a consulta por presentar hipertensión arterial de reci...Varón de 30 años acude a consulta por presentar hipertensión arterial de reci...
Varón de 30 años acude a consulta por presentar hipertensión arterial de reci...
 
Fase 2, Pensamiento variacional y trigonometrico
Fase 2, Pensamiento variacional y trigonometricoFase 2, Pensamiento variacional y trigonometrico
Fase 2, Pensamiento variacional y trigonometrico
 
PRESENTACION DE LA SEMANA NUMERO 8 EN APLICACIONES DE INTERNET
PRESENTACION DE LA SEMANA NUMERO 8 EN APLICACIONES DE INTERNETPRESENTACION DE LA SEMANA NUMERO 8 EN APLICACIONES DE INTERNET
PRESENTACION DE LA SEMANA NUMERO 8 EN APLICACIONES DE INTERNET
 
Fase 1, Lenguaje algebraico y pensamiento funcional
Fase 1, Lenguaje algebraico y pensamiento funcionalFase 1, Lenguaje algebraico y pensamiento funcional
Fase 1, Lenguaje algebraico y pensamiento funcional
 
Texto_de_Aprendizaje-1ro_secundaria-2024.pdf
Texto_de_Aprendizaje-1ro_secundaria-2024.pdfTexto_de_Aprendizaje-1ro_secundaria-2024.pdf
Texto_de_Aprendizaje-1ro_secundaria-2024.pdf
 
CONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIA
CONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIACONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIA
CONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIA
 
HABILIDADES MOTRICES BASICAS Y ESPECIFICAS.pdf
HABILIDADES MOTRICES BASICAS Y ESPECIFICAS.pdfHABILIDADES MOTRICES BASICAS Y ESPECIFICAS.pdf
HABILIDADES MOTRICES BASICAS Y ESPECIFICAS.pdf
 
Portafolio de servicios Centro de Educación Continua EPN
Portafolio de servicios Centro de Educación Continua EPNPortafolio de servicios Centro de Educación Continua EPN
Portafolio de servicios Centro de Educación Continua EPN
 
corpus-christi-sesion-de-aprendizaje.pdf
corpus-christi-sesion-de-aprendizaje.pdfcorpus-christi-sesion-de-aprendizaje.pdf
corpus-christi-sesion-de-aprendizaje.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