INSTITUTO TECNOLOGICO DEL ISTMO
MATERIA:
SISTEMAS OPERATIVOS 2
TITULAR:
TOLEDO TORRES JACINTO
TRABAJO:
UNIDAD 1
SISTEMAS OPERATIVOS EN AMBIENTES DISTRIBUIDOS
PRESENTA:
ALEJANDRO JIMENEZ ANTONIO
GRUPO: “5 S” ESPECIALIDAD:
ING. EN INFORMATICA
1.1.- CONCEPTO Y CARACTERISTICAS DE LOS S.O. DE REDES Y
SISTEMAS OPERATIVOS CENTRALIZADOS
DEFINICION DE SISTEMA OPERATIVO DE RED
Un sistema operativo de red (Network Operating System) es un
componente software de una computadora que tiene como
objetivo coordinar y manejar las actividades de los recursos del
ordenador en una red de equipos. Consiste en un software que
posibilita la comunicación de un sistema informático con otros
equipos en el ámbito de una red. Dependiendo del fabricante del
sistema operativo de red, tenemos que el software de red para un
equipo personal se puede añadir al propio sistema operativo del
equipo o integrarse con él. Netware de Novell es el ejemplo más
familiar y famoso de sistema operativo de red donde el software
de red del equipo cliente se incorpora en el sistema operativo del
equipo. El equipo personal necesita ambos sistema operativos
para gestionar conjuntamente las funciones de red y las funciones
individuales.
Características de los Sistemas Operativos de Red
™ Gestión centralizada de recursos y equipos de la red se realiza,
por un servidor con S.O. en red. ™ Aparece la figura del
administrador de red, que gestiona la infraestructura de la red (no
presente en grupos de trabajo). ™ Conecta todos los equipos y
recursos de la red. ™ Coordina las funciones de los periféricos y
recursos. ™ Proporciona seguridad controlando el acceso a los
datos y recursos. ™ Optimiza la utilización de los recursos.
DEFINICIÓN DE SISTEMA OPERATIVO CENTALIZADO
se trata de de aquel que utiliza los recursos de una sola
computadora, es decir, su memoria, CPU,disco y
periféricos.Respecto al hardware podemos decir que se suele
tratar de un computador caro y de gran potencia,con terminales
alfanuméricos directamente conectados. Suele tratarse de una
computadora de tipo desktop, en las cuales es común encontrar
un monitor grande con un teclado y un mouse, además de un case
para albergar la unidad de procesamiento y los demás
componentes
Características de los Sistemas Operativos de Centralizado
Gestión de procesos
Respecto al manejo de procesos podemos cubrir 3 cosas: la
comunicación entre procesos, la sincronización y la
planificación.Para ejecutar un proceso, se le asigna memoria y se
ejecuta sobre el (normalmente) único procesador del sistema. Es
más simple que en un sistema distribuido pues siempre se va a
elegir el procesador local, así que el tema pasa más por buscar el
funcionamiento óptimo del procesador que se posea y en buscar
en qué procesador ejecutar un proceso para aprovechar las
posibilidades de cómputo.
Gestión de memoria
El manejo de memoria tiene que ver con la asignación de memoria,
el mapeo lógico y físico, la memoria virtual y los mecanismos de
protección. En el sistema centralizado se maneja sólo la memoria
con la que cuenta la computadora en la que está instalado el
sistema
Gestión de dispositivos
Sobre el manejo de dispositivos podemos tratar los driver de los
dispositivos, el buffering y el spooling. Para que sea un sistema
centralizado la gestión de dispositivos debe encargarse sólo de los
dispositivos que le pertenecen a una sola computadora.
Gestión de archivos
Para el manejo de archivos hay que tener en cuenta el acceso a
archivos, la compartición de archivos, el control de concurrencia y
la replicación de datos. Es la parte del sistema operativo
centralizado que se encarga de proporcionar a los usuarios y
aplicaciones servicios de para el uso,acceso y control de accesos,
tanto de archivos como a directorios
1.2.- CONCEPTOS Y CARACTERISTICAS DE LOS SISTEMAS
OPERATIVOS DISTRIBUIDO
SISTEMA OPERATIVO DISTRIBUIDO
Es un conjunto de computadores independientes que se presenta a
los usuarios como un sistema único. Un sistema distribuido
fuertemente acoplado es a es aquel que comparte la memoria y un
reloj global, cuyos tiempos de acceso son similares para todos los
procesadores. En un sistema débilmente acoplado los
procesadores no comparten ni memoria ni reloj, ya que cada uno
cuenta con su memoria local.
Características de Sistemas Distribuidos
Trasparencia
Se dice que un sistema distribuido es trasparente cuando es visto
tanto por el usuario como por el programador como un sistema
convencional de tiempo compartido. La trasparencia total es difícil
de lograr. Parcialmente, el concepto de transparencia puede ser
aplicado a varios aspectos de un sistema distribuido.
Flexibilidad
Este aspecto se refiere a la forma en que debe ser construido el
sistema operativo. Conviven dos escuelas de pensamiento que son
las del kernel monolítico y las del sistema operativo basado en
microkernel. La primera sostiene que los servicios del sistema
deben residir en el sistema operativo y la segunda que es preciso
extraer todos los servicios posibles fuera del núcleo del sistema
operativo y disponerlos en procesos de usuario, logrando un mayor
estructura e independencia en los servicios, que pueden residir en
máquinas diferentes. Hoy en día el kernel monolítico domina el
mundo de los sistemas operativos, pero parece que el futuro se
impondrá la filosofía microkernel, debido a su mayor flexibilidad.
Para obtener un servicio, un proceso de usuario envía un mensaje
al servidor adecuado.
Fiabilidad
Una de las motivaciones originales para tratar de construir
sistemas distribuidos fue el aumento de la fiabilidad del sistema.
En un sistema con cien UCP's el fallo de uno de ellas no tendrá
consecuencias graves, por que su trabajo será realizado por las
otras. En un sistema en el que el sistema de ficheros se reparte en
cuatro servidores, cada uno de ellos con una probabilidad de que
en un instante dado sea inoperativo de 0.05, la probabilidad de que
el sistema de ficheros completo no sea operativo es de 0.054 =
0.000006.
Prestaciones
Por muy brillantemente que hayan sido resueltos los objetivos de
transparencia y fiabilidad de un sistema operativo distribuido, este
no tendrá éxito si es lento. La velocidad de los sistemas
distribuidos viene comprometida por el tráfico de mensajes en las
líneas de comunicación. En una red local, el envío de un mensaje
puede llevar alrededor de un milisegundo.
Escalabilidad
A pesar de los progresos de los últimos años, con sistemas
concretos y desarrollados, el diseño de sistemas operativos
distribuidos es un campo aún poco conocido e investigado. Los
actuales sistemas abarcan como máximo unos cientos de
máquinas.
1.3 SISTEMAS OPERATIVOS DISTRIBUIDOS: VENTAJAS Y
DESVENTAJAS CONTRA S.O CENTRALIZADOS, S.O PARA RED,
MODELO CLIENTE-SERVIDOR, MODELO DE N CAPAS,
CARACTERÍSTICAS DEL HARDWARE Y CARACTERÍSTICAS DEL
SOFTWARE (HOMOGÉNEOS Y HETEROGÉNEOS),
DIRECCIONAMIENTO LÓGICO Y FÍSICO
Ventajas de los Sistemas Distribuidos con Respecto a los
Centralizados
Una razón para la tendencia hacia la descentralización es la
economía.
Herb Grosch formuló la que se llamaría “Ley de Grosch”
El poder de cómputo de una cpu es proporcional al cuadrado de su
precio:
Si se paga el doble se obtiene el cuádruple del desempeño.
Fue aplicable en los años setentas y ochentas a la tecnología
mainframe.
No es aplicable a la tecnología del microprocesador:
La solución más eficaz en cuanto a costo es limitarse a un gran
número de cpu baratos reunidos en un mismo sistema.
Los sistemas distribuidos generalmente tienen en potencia una
proporción precio / desempeño mucho mejor que la de un único
sistema centralizado.
1.3.2.- Ventajas de los Sistemas Distribuidos con Respecto a los
de Red
La diferencia entre estos dos tipos de sistemas operativos es que
el de red opera sus computadoras independientemente, cada
maquina usa sus propios recursos,
disco duro, memoria ram, procesador, los archivos tienen su
propio directorio en cada una. En cambio los SISTEMAS
OPERATIVOS DISTRIBUIDOS usan todos los recursos de todas las
computadoras como si fueran una sola, tienen un solo disco duro
formado con el de todas, no importa donde este un archivo es la
misma dirección para todas.
1.3.3.- modelo cliente - servidor
La existencia de los encabezados genera un “costo” adicional de
transmisión.
Cada envío de un mensaje genera:
Proceso en media docena de capas.
Preparación y agregado de encabezados en el camino hacia
“abajo”.
Eliminación y examen de encabezados en el camino hacia “arriba”.
Con enlaces del orden de decenas (o centenas) de miles de bits /
segundo y cpu poderosas:
La carga de procesamiento de los protocolos no es significativa.
El factor limitante es la capacidad de las líneas.
Ej.: redes de área extendida (WAN).
Con enlaces del orden de millones de bits / segundo y
computadoras personales:
La carga de procesamiento de los protocolos sí es frecuentemente
significativa.
El factor limitante no es la capacidad de las líneas.
Ej.: redes de área local (LAN).
La mayoría de los sistemas distribuidos basados en LAN no
utilizan los protocolos de capas completos, sí utilizan un
subconjunto de toda una pila de protocolos.
El “modelo OSI” no dice nada acerca de la forma de estructurar al
sistema distribuido.
El “modelo cliente - servidor” tiene como idea fundamental la
estructuración del S. O. como:
Un grupo de procesos en cooperación, llamados servidores, que
ofrecen servicios a los usuarios.
Un grupo de procesos usuarios llamados clientes.
El “modelo cliente - servidor” se basa en un “protocolo solicitud /
respuesta”:
Es sencillo y sin conexión.
No es complejo y orientado a la conexión como OSI o TCP / IP.
El cliente envía un mensaje de solicitud al servidor pidiendo cierto
servicio.
El servidor:
Ejecuta el requerimiento.
Regresa los datos solicitados o un código de error si no pudo
ejecutarlo correctamente.
No se tiene que establecer una conexión sino hasta que ésta se
utilice.
La pila del protocolo es más corta y por lo tanto más eficiente.
1.3.4.- Modelo n-capas
Modelo de desarrollo N-Capas.
Las capas dentro de una arquitectura son un conjunto de servicios
especializados que pueden ser accesibles por múltiples clientes y
que deben ser fácilmente reutilizables.
Lo que se conoce como arquitectura en capas es en realidad un
estilo de programación donde el objetivo principal es separar los
diferentes aspectos del
desarrollo, tales como las cuestiones de presentación, lógica de
negocio, mecanismos de almacenamiento, etc.
Una razón importante por la que surge este concepto, es debido a
que en la evolución del desarrollo de software, se ha identificado
la necesidad de crear nuevas capas, especializadas en funciones
específicas, diferentes a las 3 identificadas previamente. Tal es el
caso de la seguridad, el control de excepciones, el transporte de
datos entre capas, la generación de trazas de errores, entre otros.
Ventajas
Desarrollos paralelos (en cada capa)
Aplicaciones más robustas debido al encapsulamiento
Mantenimiento y soporte más sencillo (es más sencillo cambiar un
componente que modificar una aplicación monolítica)
Mayor flexibilidad (se pueden añadir nuevos módulos para dotar al
sistema de nueva funcionalidad)
Alta escalabilidad. La principal ventaja de una aplicación
distribuida bien diseñada es su buen escalado, es decir, que puede
manejar muchas peticiones con el mismo rendimiento
simplemente añadiendo más hardware. El crecimiento es casi
lineal y no es necesario añadir más código para conseguir esta
escalabilidad.
Desventajas
Pone más carga en la red, debido a una mayor cantidad de tráfico
de la red.
Es mucho más difícil programar y probar el software que en
arquitectura de dos niveles porque tienen que comunicarse más
dispositivos para terminar la transacción de un usuario.
1.3.5.- Características Hardware Sistemas Distribuidos
Conceptos de Hardware
Todos los sistemas distribuidos constan de varias cpu,
organizadas de diversas formas, especialmente respecto de:
o La forma de interconectarlas entre sí.
o Los esquemas de comunicación utilizados.
Existen diversos esquemas de clasificación para los sistemas de
cómputos con varias cpu:
o Uno de los mas conocidos es la “Taxonomía de Flynn”:
o Considera como características esenciales el número de flujo de
instrucciones y el número de flujos de datos.
o La clasificación incluye equipos SISD, SIMD, MISD y MIMD.
SISD (Single Instruction Single Data: un flujo de instrucciones y un
flujo de datos):
o Poseen un único procesador.
SIMD (Single Instruction Multiple Data: un flujo de instrucciones y
varios flujos de datos):
o Se refiere a ordenar procesadores con una unidad de instrucción
que:
o Busca una instrucción.
o Instruye a varias unidades de datos para que la lleven a cabo en
paralelo, cada una con sus propios datos.
• Son útiles para los cómputos que repiten los mismos cálculos en
varios conjuntos de datos.
MISD (Multiple Instruction Single Data: un flujo de varias
instrucciones y un solo flujo de datos):
• No se presenta en la práctica.
MIMD (Multiple Instruction Multiple Data: un grupo de
computadoras independientes, cada una con su propio contador
del programa, programa y datos):
• Todos los sistemas distribuidos son de este tipo.
Un avance sobre la clasificación de Flynn incluye la división de las
computadoras MIMD en dos grupos:
• Multiprocesadores: poseen memoria compartida:
o Los distintos procesadores comparten el mismo espacio de
direcciones virtuales.
• Multicomputadoras: no poseen memoria compartida:
o Ej.: grupo de PC conectadas mediante una red.
Cada una de las categorías indicadas se puede clasificar según la
arquitectura de la red de interconexión en:
• Esquema de bus:
o Existe una sola red, bus, cable u otro medio que conecta todas
las máquinas:
• Esquema con conmutador:
o No existe una sola columna vertebral de conexión:
mensajes de mueven a través de los medios de conexión.
dirigir el mensaje a lo largo de uno de los cables de salida.
• Otro aspecto de la clasificación considera el acoplamiento entre
los equipos:
• Sistemas fuertemente acoplados:
o El retraso al enviar un mensaje de una computadora a otra es
corto y la tasa de transmisión es alta.
o Generalmente se los utiliza como sistemas paralelos.
• Sistemas débilmente acoplados:
o El retraso de los mensajes entre las máquinas es grande y la
tasa de transmisión es baja.
o Generalmente se los utiliza como sistemas distribuidos.
Generalmente los multiprocesadores están más fuertemente
acoplados que las multi-computadoras.
1.3.6.- Características Software Sistemas Distribuidos
Aunque el hardware es importante, el software lo es más. La
imagen que presenta y la forma de pensar de los usuarios de un
sistema, queda determinada en gran medida por el software del
sistema operativo, no por el hardware.
Se puede distinguir dos tipos de sistemas operativos para los de
varios CPU:
Los débilmente acoplados: El software débilmente acoplado
permite que las máquinas y los usuarios de un sistema distribuido
sean independientes entre sí en lo fundamental, pero que
interactúen en cierto grado cuando sea necesario.
Los fuertemente acoplados: En el software fuertemente acoplado
el programa de aplicación y el sistema operativo necesario para
soportarlo, están muy acoplados.
Direccionamiento Lógico- Físico Sistemas Distribuidos
Una dirección generada por la CPU se denomina dirección lógica
en cambio a la que es percibida por unidad de memoria se
denomina dirección física.
Los esquemas de vinculación de direcciones durante la
compilación y durante la carga dan pie a un entorno en el que las
direcciones lógicas y físicas son las mismas. En cambio, la
ejecución del esquema de vinculación de direcciones durante la
ejecución produce un entorno en el que las direcciones lógicas y
físicas difieren. En este caso la dirección lógica suele llamarse
dirección virtual.
Direccionamiento lógico y físico El proceso desde que los datos
son incorporados al ordenados hasta que se transmiten al medio
se llama encapsulación. Estos datos son formateados,
segmentados, identificados con el direccionamiento lógico y físico
para finalmente ser enviados al medio. A cada capa del modelo
OSI le corresponde una PDU (Unidad de Datos) siguiendo por lo
tanto el siguiente orden de encapsulamiento:
o DATOS
o SEGMENTOS
o PAQUETES
o TRAMAS-BITS
o CAPA TRANSMITE
o APLICACIÓN DATOS
o PRESENTACIÓN
o SESIÓN
o TRANSPORTE SEGMENTOS
o RED PAQUETES
o ENLACE DE DATOS TRAMAS
o FÍSICA BITS
Debido a que posiblemente la cantidad de los datos sean
demasiados, la capa de transporte desde de origen, se encarga de
segmentarlos para así ser empaquetados debidamente, esta
misma capa en el destino se encargara de re ensamblar los datos
y colocarlos en forma secuencial, ya que no siempre llegan a su
destino en el orden en que han sido segmentados, así mismo
acorde al protocolo que se este utilizando habrá corrección de
errores. Estos segmentos son empaquetados (paquetes o
datagramas) e identificados en la capa de red con la dirección
lógica o IP correspondiente al origen y destino. Ocurre lo mismo
con la dirección MAC en la capa de enlace de datos formándose
las tramas o frames para ser transmitidos a través de alguna
interfaz.
1.4 SISTEMAS DISTRIBUIDOS DE ALTO RENDIMIENTO
El cómputo con Clusters surge como resultado de la convergencia
de varias tendencias actuales que incluyen la disponibilidad de
microprocesadores económicos de alto rendimiento y redes de
alta velocidad, el desarrollo de herramientas de software para
cómputo distribuido de alto rendimiento, así como la creciente
necesidad de potencia computacional para aplicaciones que la
requieran.
El Cluster es un grupo de computadoras unidas mediante una red
de alta velocidad, de tal forma que trabajan como una única
computadora, más potente.
En la actualidad, es factible disponer de alta capacidad
computacional, incluso equivalente a la encontrada en las
poderosas y costosas supercomputadoras clásicas, mediante
clusters de computadoras PC independientes, de bajo costo,
interconectadas con tecnologías de red de alta velocidad, y
empleando software de libre distribución. El cluster puede trabajar
de forma coordinada para dar la ilusión de un único sistema. Más
adelante revisaremos las ideas básicas sobre diseño, construcción
y operación de clusters, presentando aspectos relacionados al
software y al hardware.
MOSIX Es un paquete de software que mejora el kernel de
Linux con capacidades de computación de clusters. El kernel
mejorado permite a cualquier cluster de estaciones de trabajo y
servidores X86/Pentium/AMD trabajar coordinadamente como
parte de un sólo sistema.
MOSIX es una extensión del kernel de Linux que permite ejecutar
aplicaciones “normales” (no paralelizadas) en un Cluster. Una de
las posibilidades de MOSIX es la “migración de procesos”, que
permite migrar procesos de nodo en nodo. Si por ejemplo, cierto
proceso está dominando la carga de un nodo, este será movido a
otro que tiene más recursos. Una de las características de MOSIX
es que, a diferencia de otros clusters, no es necesario modificar
las aplicaciones ni tampoco utilizar librerías especiales. De hecho,
tampoco es necesario asignar “a mano” los procesos a los
diferentes nodos que componen el cluster. La idea es que después
de la creación de un nuevo proceso (fork), MOSIX intenta asignarlo
al mejor nodo disponible en ese entonces. MOSIX monitorea
constantemente los procesos, y si fuera necesario, migrará un
proceso entre los nodos para maximizar el rendimiento promedio.
MOSIX realiza todo esto automáticamente, bajo el
concepto de “fork and forget” al igual que en un sistema SMP
(Multiprocesamiento Simétrico). Esto significa que sólo algunas
aplicaciones se beneficiarán de un cluster MOSIX, básicamente:
• Procesos que requieren de mucho CPU, aplicaciones científicas,
de ingeniería, etc.
• Procesos paralelos, especialmente los que tienen tiempos de
ejecución impredecibles.
• Clusters con nodos de diferentes velocidades y/o distintas
cantidades de memoria.
• Entornos multiusuario y de tiempo compartido.
• Servidores WEB escalables.
MOSIX funciona silenciosamente. Sus operaciones son
transparentes para las aplicaciones. Los usuarios no necesitan
saber dónde se están ejecutando los procesos, tampoco necesitan
preocuparse de lo que están haciendo otros usuarios. Como
MOSIX está implementado en el kernel de Linux, sus operaciones
son totalmente transparentes para las aplicaciones. Esto permite
definir distintos tipos de clusters, incluso un cluster con diferentes
CPU‟s o velocidades LAN.
KNOPPIX Es una distribución de GNU/Linux . Está desarrollada por
el consultor de GNU/Linux Klaus Knopper. Existen varias
distribuciones derivadas de Knoppix, el producto básico es un Live
CD comprimido que se infla en un kernel de 1.6 GB, y un Live DVD
de 4.7 GB; tambien se puede cargar via USB o flash card. Basado
en DEBIAN, KNOPPIX puede ser usado como tutorial de LInux,
pero tambien puede correr software propietario con ciertas
condiciones.
Entre otras características, puede usarse como plataforma de
rescate de datos de discos y particiones inaccesobles o dañadas.
Otros paquetes que incluye son: LXDE, un entorno de escritorio
ligero tipo X11, o bien el KDE 3, una versión mejorada del
escritorio. reproductor MP, software de acceso a Internet con
KPPP y el ISDN, navegadorIceweasel Firefox, cliente email
Icedove Firefox Thunderbird, procesador de imagenes GIMP,
LibreOffice, y herramientas para recuperación de datos y
reparación de sistema, monitorea y
análisis de la red y una suite extensa de terminal de servidor.
Cluster Knoppix es una distribución basada en Knoppix y que
utiliza Linux Terminal Server Project y OpenMosix. Es una vía
conveniente para probar configuraciones en cluster.
Knoppix se puede usar para demostrar de manera sencilla el
sistema GNU/Linux, especialmente como sistema operativo; para
verificar la compatibilidad de hardware con Linux (especialmente
para tarjeta de vídeo), o para restaurar un sistema corrupto o
datos perdidos.
Gracias a su rapidez, portabilidad, las herramientas que incluye y
el amplio soporte para la mayoría de dispositivos que ofrece;
puede usarse en muchos ámbitos. Knoppix funciona a la
perfección como sistema de rescate y reparación de errores, como
CD educacional, sistema comercial o sistema de uso personal, y
debido a sus capacidades de descompresión „sobre la marcha‟
puede albergar hasta 2 GB de software instalado en el CD, u 8 GB
en el DVD.
Tradicionalmente la computación por clusters sólo se podia
implementar estableciendo llaves RSH (Remote Shell), creando
NFS compartidos, (Sistemas de Archivos en Red), editando
archivos de configuración de hosts,estableciendo direcciones IP
estáticas, y aplicando manualmente los parches al Kernel.
ClusterKnoppix nos salva de hacer todo este trabajo. La
distribución contiene un sistema de autoconfiguración donde las
nuevas máquinas que ingresan al cluster acceden
automáticamente por medio de la red.
HPCC (High-Performance Computing Cluster), también se le
conoce como DAS (Data Analytics Supercomputer), es una
plataforma de procesamiento de datos a gran escala, de libre
distribución desarrollada por LexisNexis Risk Solutions. La
plataforma HPCC incorpora una arquitectura de software
implementada en commodity computingque es una forma de
hacer clusters con máquinas baratas, para obtener procesamiento
paralelo de alto rendimiento para aplicaciones que usan grandes
volúmenes de datos. La pataforma HPCC incluye configuraciones
del sistema para soportar procesamiento por lotes y
procesamiento paralelo, y aplicaciones de consulta de alto
desempeño que usan archivos de datos indexados. La plataforma
HPCC también incluye un lenguaje de programación declarativo
orientado a los datos para procesamiento paralelo llamado ECL.
BEOWULF El nombre se refiere a una computadora específica
llamada así y construida en 1994 por Thomas Sterling y Donald
Becker en la NASA. El nombre Beowulf provienen de el poema
épico clásico de la literatura Inglesa Beowulf. Es un cluster de
computadoras de bajo costo, normalmente idénticas que están
conectadas en una pequeña LAN, con librerías y programas
instalados que permiten que el procesamiento se reparta entre
ellos. El resultado es una computadora de procesamiento paralelo
con hardware barato.
El autor compara el trabajo del cluster con la frase del poema
"thirty men's heft of grasp in the gripe of his hand".
Beowulf es cluster normalmente basado en UNIX, como BSD,
Linux o Solaris; se construye con software gratuito y de libre
distribución. Comúnmente utilizan librerias de Procesamiento
Paralelo como MPI (Message Passing Interface) y PVMI (Parallel
Virtual Machine). Ambas permiten al prgramador dividir una tarea
entre un grupo de computadoras en red, y colectar los resultados
del prosesamiento. Ejemplos de software MPI son OpenMPI y
MPICH, así como versiones adicionales del MPI.
Los sistemas Beowulf se usan en todo el mundo en todo el mundo
sobre todo en el área de la Computación Científica.
APACHE HADOOP
Es un producto de libre distribución de Apache Software
Foundation, para procesado y almacenamiento de conjuntos de
datos a gran escala en Clusters de hardware de bajo costo. Se
supon que es uno delos proyectos líderes de Apache y es usado
por una comunidad importante de desarrolladores y usuarios.
Con licencia de Apache 2.0 Hadoop consta de los siguientes
módulos:
1. Hadoop Common: Contiene librerías y utilerías para los módulos
eternos.
2. Hadoop Distributed File System (HDFS):- Un sistema de archivos
distribuido que almacena datos en las máquinas PC,
porporcionando un muy alto ancho de banda para almacenamiento
en el clúster.
3. Hadoop YARN: Una plataforma de administración de recursos
informáticos en clusters, que támbien hace las funciones de
planificador de aplicaciones de usuario.
4. Hadoop MapReduce: Un modelo de programación para
procesamiento de datos a gran escala.
Todos los modulos de Hadoop están diseñados bajo la filosofía de
de que las fallas enel hardware (de maquinas individuales o racks
de ellas) son comunes y por ende deben ser tratados de forma
automática en el software por el entorno operativo. El MapReduce
de Hadoops y sus componentes del (HDFS) Hadoops File System,
derivan originalmente de Google's MapReduce y se basan en
artículos sobre Google File System (GFS). Mas allá de HDFS,
YARN y MapReduce, la plataforma Hadoop en total es considerada
como un conjunto de pryectos relacionados, como Apache Pig,
Apache Hive, Apache HBase y otros.
Para el usuario final, el código Java es una elección natural a
través de MapReduce, pero cualquier lenguaje de programación
puede ser usado con Hadoop Streaming para implementar el
"mapa" y "reducir" piezas del programa del usuario. El entorno
Hadoop es por sí mismo código Java con un poco de Lenguaje C
nativo, utilerías dela línea de comandos y scripts del shell.
La especificaciones y la potencia de los Sistemas Oerativos
distribuidos vistos difieren en su implementación, pero son en
esencia soluciones a gran escala para resolver los problemas
comunes que atiende el Sistema Operativo; el clúster es en este
sentido una especificación muy clara y podríamos estudiar más
productos para encontrar piezas grandes complejas pero con fines
similares, ya que una cualidad especial de estas plataformas es la
búsqueda de la sencillez, la ejecución ligera y el ahorro de
recursos informáticos para los usuarios, no para el gestor del
cluster. Las tareas de administración son esencialmente las
mismas, memoria, procesos, tiempo de procesador, entrada-salida,
seguridad y Sistema de Archivos; ahora con la responsabilidad en
un ambiente compartido.
Más allá del conocimiento tradicional sobre clusters,la carrera
tecnológica sigue avanzando. Descifrar el genoma humano y en
general otros genomas es el ejemplo clasico de tareas
computacionales titánicas para las cuales se tienen potentes
sistemas trabajando 24 horas al día. Podemos por ejemplo
conectarnos a alguno de los clusters para usarlos. Esto nos da una
idea de la nueva forma de trabajar en entornos de alta
disponibilidad de recursos informáticos y su aplicación en la vida
diaria, no sólo en el super-cómputo de las grandes matemáticas, la
astronomía y la genética.

S.O. 2 UNIDAD 1

  • 1.
    INSTITUTO TECNOLOGICO DELISTMO MATERIA: SISTEMAS OPERATIVOS 2 TITULAR: TOLEDO TORRES JACINTO TRABAJO: UNIDAD 1 SISTEMAS OPERATIVOS EN AMBIENTES DISTRIBUIDOS PRESENTA: ALEJANDRO JIMENEZ ANTONIO GRUPO: “5 S” ESPECIALIDAD: ING. EN INFORMATICA
  • 2.
    1.1.- CONCEPTO YCARACTERISTICAS DE LOS S.O. DE REDES Y SISTEMAS OPERATIVOS CENTRALIZADOS DEFINICION DE SISTEMA OPERATIVO DE RED Un sistema operativo de red (Network Operating System) es un componente software de una computadora que tiene como objetivo coordinar y manejar las actividades de los recursos del ordenador en una red de equipos. Consiste en un software que posibilita la comunicación de un sistema informático con otros equipos en el ámbito de una red. Dependiendo del fabricante del sistema operativo de red, tenemos que el software de red para un equipo personal se puede añadir al propio sistema operativo del equipo o integrarse con él. Netware de Novell es el ejemplo más familiar y famoso de sistema operativo de red donde el software de red del equipo cliente se incorpora en el sistema operativo del equipo. El equipo personal necesita ambos sistema operativos para gestionar conjuntamente las funciones de red y las funciones individuales. Características de los Sistemas Operativos de Red ™ Gestión centralizada de recursos y equipos de la red se realiza, por un servidor con S.O. en red. ™ Aparece la figura del administrador de red, que gestiona la infraestructura de la red (no presente en grupos de trabajo). ™ Conecta todos los equipos y recursos de la red. ™ Coordina las funciones de los periféricos y recursos. ™ Proporciona seguridad controlando el acceso a los datos y recursos. ™ Optimiza la utilización de los recursos. DEFINICIÓN DE SISTEMA OPERATIVO CENTALIZADO se trata de de aquel que utiliza los recursos de una sola computadora, es decir, su memoria, CPU,disco y periféricos.Respecto al hardware podemos decir que se suele
  • 3.
    tratar de uncomputador caro y de gran potencia,con terminales alfanuméricos directamente conectados. Suele tratarse de una computadora de tipo desktop, en las cuales es común encontrar un monitor grande con un teclado y un mouse, además de un case para albergar la unidad de procesamiento y los demás componentes Características de los Sistemas Operativos de Centralizado Gestión de procesos Respecto al manejo de procesos podemos cubrir 3 cosas: la comunicación entre procesos, la sincronización y la planificación.Para ejecutar un proceso, se le asigna memoria y se ejecuta sobre el (normalmente) único procesador del sistema. Es más simple que en un sistema distribuido pues siempre se va a elegir el procesador local, así que el tema pasa más por buscar el funcionamiento óptimo del procesador que se posea y en buscar en qué procesador ejecutar un proceso para aprovechar las posibilidades de cómputo. Gestión de memoria El manejo de memoria tiene que ver con la asignación de memoria, el mapeo lógico y físico, la memoria virtual y los mecanismos de protección. En el sistema centralizado se maneja sólo la memoria con la que cuenta la computadora en la que está instalado el sistema Gestión de dispositivos Sobre el manejo de dispositivos podemos tratar los driver de los dispositivos, el buffering y el spooling. Para que sea un sistema centralizado la gestión de dispositivos debe encargarse sólo de los dispositivos que le pertenecen a una sola computadora. Gestión de archivos
  • 4.
    Para el manejode archivos hay que tener en cuenta el acceso a archivos, la compartición de archivos, el control de concurrencia y la replicación de datos. Es la parte del sistema operativo centralizado que se encarga de proporcionar a los usuarios y aplicaciones servicios de para el uso,acceso y control de accesos, tanto de archivos como a directorios 1.2.- CONCEPTOS Y CARACTERISTICAS DE LOS SISTEMAS OPERATIVOS DISTRIBUIDO SISTEMA OPERATIVO DISTRIBUIDO Es un conjunto de computadores independientes que se presenta a los usuarios como un sistema único. Un sistema distribuido fuertemente acoplado es a es aquel que comparte la memoria y un reloj global, cuyos tiempos de acceso son similares para todos los procesadores. En un sistema débilmente acoplado los procesadores no comparten ni memoria ni reloj, ya que cada uno cuenta con su memoria local. Características de Sistemas Distribuidos Trasparencia Se dice que un sistema distribuido es trasparente cuando es visto tanto por el usuario como por el programador como un sistema convencional de tiempo compartido. La trasparencia total es difícil de lograr. Parcialmente, el concepto de transparencia puede ser aplicado a varios aspectos de un sistema distribuido. Flexibilidad Este aspecto se refiere a la forma en que debe ser construido el sistema operativo. Conviven dos escuelas de pensamiento que son las del kernel monolítico y las del sistema operativo basado en
  • 5.
    microkernel. La primerasostiene que los servicios del sistema deben residir en el sistema operativo y la segunda que es preciso extraer todos los servicios posibles fuera del núcleo del sistema operativo y disponerlos en procesos de usuario, logrando un mayor estructura e independencia en los servicios, que pueden residir en máquinas diferentes. Hoy en día el kernel monolítico domina el mundo de los sistemas operativos, pero parece que el futuro se impondrá la filosofía microkernel, debido a su mayor flexibilidad. Para obtener un servicio, un proceso de usuario envía un mensaje al servidor adecuado. Fiabilidad Una de las motivaciones originales para tratar de construir sistemas distribuidos fue el aumento de la fiabilidad del sistema. En un sistema con cien UCP's el fallo de uno de ellas no tendrá consecuencias graves, por que su trabajo será realizado por las otras. En un sistema en el que el sistema de ficheros se reparte en cuatro servidores, cada uno de ellos con una probabilidad de que en un instante dado sea inoperativo de 0.05, la probabilidad de que el sistema de ficheros completo no sea operativo es de 0.054 = 0.000006. Prestaciones Por muy brillantemente que hayan sido resueltos los objetivos de transparencia y fiabilidad de un sistema operativo distribuido, este no tendrá éxito si es lento. La velocidad de los sistemas distribuidos viene comprometida por el tráfico de mensajes en las líneas de comunicación. En una red local, el envío de un mensaje puede llevar alrededor de un milisegundo. Escalabilidad A pesar de los progresos de los últimos años, con sistemas concretos y desarrollados, el diseño de sistemas operativos
  • 6.
    distribuidos es uncampo aún poco conocido e investigado. Los actuales sistemas abarcan como máximo unos cientos de máquinas. 1.3 SISTEMAS OPERATIVOS DISTRIBUIDOS: VENTAJAS Y DESVENTAJAS CONTRA S.O CENTRALIZADOS, S.O PARA RED, MODELO CLIENTE-SERVIDOR, MODELO DE N CAPAS, CARACTERÍSTICAS DEL HARDWARE Y CARACTERÍSTICAS DEL SOFTWARE (HOMOGÉNEOS Y HETEROGÉNEOS), DIRECCIONAMIENTO LÓGICO Y FÍSICO Ventajas de los Sistemas Distribuidos con Respecto a los Centralizados Una razón para la tendencia hacia la descentralización es la economía. Herb Grosch formuló la que se llamaría “Ley de Grosch” El poder de cómputo de una cpu es proporcional al cuadrado de su precio: Si se paga el doble se obtiene el cuádruple del desempeño. Fue aplicable en los años setentas y ochentas a la tecnología mainframe. No es aplicable a la tecnología del microprocesador: La solución más eficaz en cuanto a costo es limitarse a un gran número de cpu baratos reunidos en un mismo sistema. Los sistemas distribuidos generalmente tienen en potencia una proporción precio / desempeño mucho mejor que la de un único sistema centralizado. 1.3.2.- Ventajas de los Sistemas Distribuidos con Respecto a los de Red
  • 7.
    La diferencia entreestos dos tipos de sistemas operativos es que el de red opera sus computadoras independientemente, cada maquina usa sus propios recursos, disco duro, memoria ram, procesador, los archivos tienen su propio directorio en cada una. En cambio los SISTEMAS OPERATIVOS DISTRIBUIDOS usan todos los recursos de todas las computadoras como si fueran una sola, tienen un solo disco duro formado con el de todas, no importa donde este un archivo es la misma dirección para todas. 1.3.3.- modelo cliente - servidor La existencia de los encabezados genera un “costo” adicional de transmisión. Cada envío de un mensaje genera: Proceso en media docena de capas. Preparación y agregado de encabezados en el camino hacia “abajo”. Eliminación y examen de encabezados en el camino hacia “arriba”. Con enlaces del orden de decenas (o centenas) de miles de bits / segundo y cpu poderosas: La carga de procesamiento de los protocolos no es significativa. El factor limitante es la capacidad de las líneas. Ej.: redes de área extendida (WAN). Con enlaces del orden de millones de bits / segundo y computadoras personales: La carga de procesamiento de los protocolos sí es frecuentemente significativa.
  • 8.
    El factor limitanteno es la capacidad de las líneas. Ej.: redes de área local (LAN). La mayoría de los sistemas distribuidos basados en LAN no utilizan los protocolos de capas completos, sí utilizan un subconjunto de toda una pila de protocolos. El “modelo OSI” no dice nada acerca de la forma de estructurar al sistema distribuido. El “modelo cliente - servidor” tiene como idea fundamental la estructuración del S. O. como: Un grupo de procesos en cooperación, llamados servidores, que ofrecen servicios a los usuarios. Un grupo de procesos usuarios llamados clientes. El “modelo cliente - servidor” se basa en un “protocolo solicitud / respuesta”: Es sencillo y sin conexión. No es complejo y orientado a la conexión como OSI o TCP / IP. El cliente envía un mensaje de solicitud al servidor pidiendo cierto servicio. El servidor: Ejecuta el requerimiento. Regresa los datos solicitados o un código de error si no pudo ejecutarlo correctamente. No se tiene que establecer una conexión sino hasta que ésta se utilice. La pila del protocolo es más corta y por lo tanto más eficiente.
  • 9.
    1.3.4.- Modelo n-capas Modelode desarrollo N-Capas. Las capas dentro de una arquitectura son un conjunto de servicios especializados que pueden ser accesibles por múltiples clientes y que deben ser fácilmente reutilizables. Lo que se conoce como arquitectura en capas es en realidad un estilo de programación donde el objetivo principal es separar los diferentes aspectos del desarrollo, tales como las cuestiones de presentación, lógica de negocio, mecanismos de almacenamiento, etc. Una razón importante por la que surge este concepto, es debido a que en la evolución del desarrollo de software, se ha identificado la necesidad de crear nuevas capas, especializadas en funciones específicas, diferentes a las 3 identificadas previamente. Tal es el caso de la seguridad, el control de excepciones, el transporte de datos entre capas, la generación de trazas de errores, entre otros. Ventajas Desarrollos paralelos (en cada capa) Aplicaciones más robustas debido al encapsulamiento Mantenimiento y soporte más sencillo (es más sencillo cambiar un componente que modificar una aplicación monolítica) Mayor flexibilidad (se pueden añadir nuevos módulos para dotar al sistema de nueva funcionalidad) Alta escalabilidad. La principal ventaja de una aplicación distribuida bien diseñada es su buen escalado, es decir, que puede manejar muchas peticiones con el mismo rendimiento
  • 10.
    simplemente añadiendo máshardware. El crecimiento es casi lineal y no es necesario añadir más código para conseguir esta escalabilidad. Desventajas Pone más carga en la red, debido a una mayor cantidad de tráfico de la red. Es mucho más difícil programar y probar el software que en arquitectura de dos niveles porque tienen que comunicarse más dispositivos para terminar la transacción de un usuario. 1.3.5.- Características Hardware Sistemas Distribuidos Conceptos de Hardware Todos los sistemas distribuidos constan de varias cpu, organizadas de diversas formas, especialmente respecto de: o La forma de interconectarlas entre sí. o Los esquemas de comunicación utilizados. Existen diversos esquemas de clasificación para los sistemas de cómputos con varias cpu: o Uno de los mas conocidos es la “Taxonomía de Flynn”: o Considera como características esenciales el número de flujo de instrucciones y el número de flujos de datos. o La clasificación incluye equipos SISD, SIMD, MISD y MIMD. SISD (Single Instruction Single Data: un flujo de instrucciones y un flujo de datos): o Poseen un único procesador.
  • 11.
    SIMD (Single InstructionMultiple Data: un flujo de instrucciones y varios flujos de datos): o Se refiere a ordenar procesadores con una unidad de instrucción que: o Busca una instrucción. o Instruye a varias unidades de datos para que la lleven a cabo en paralelo, cada una con sus propios datos. • Son útiles para los cómputos que repiten los mismos cálculos en varios conjuntos de datos. MISD (Multiple Instruction Single Data: un flujo de varias instrucciones y un solo flujo de datos): • No se presenta en la práctica. MIMD (Multiple Instruction Multiple Data: un grupo de computadoras independientes, cada una con su propio contador del programa, programa y datos): • Todos los sistemas distribuidos son de este tipo. Un avance sobre la clasificación de Flynn incluye la división de las computadoras MIMD en dos grupos: • Multiprocesadores: poseen memoria compartida: o Los distintos procesadores comparten el mismo espacio de direcciones virtuales. • Multicomputadoras: no poseen memoria compartida: o Ej.: grupo de PC conectadas mediante una red. Cada una de las categorías indicadas se puede clasificar según la arquitectura de la red de interconexión en:
  • 12.
    • Esquema debus: o Existe una sola red, bus, cable u otro medio que conecta todas las máquinas: • Esquema con conmutador: o No existe una sola columna vertebral de conexión: mensajes de mueven a través de los medios de conexión. dirigir el mensaje a lo largo de uno de los cables de salida. • Otro aspecto de la clasificación considera el acoplamiento entre los equipos: • Sistemas fuertemente acoplados: o El retraso al enviar un mensaje de una computadora a otra es corto y la tasa de transmisión es alta. o Generalmente se los utiliza como sistemas paralelos. • Sistemas débilmente acoplados: o El retraso de los mensajes entre las máquinas es grande y la tasa de transmisión es baja. o Generalmente se los utiliza como sistemas distribuidos. Generalmente los multiprocesadores están más fuertemente acoplados que las multi-computadoras. 1.3.6.- Características Software Sistemas Distribuidos
  • 13.
    Aunque el hardwarees importante, el software lo es más. La imagen que presenta y la forma de pensar de los usuarios de un sistema, queda determinada en gran medida por el software del sistema operativo, no por el hardware. Se puede distinguir dos tipos de sistemas operativos para los de varios CPU: Los débilmente acoplados: El software débilmente acoplado permite que las máquinas y los usuarios de un sistema distribuido sean independientes entre sí en lo fundamental, pero que interactúen en cierto grado cuando sea necesario. Los fuertemente acoplados: En el software fuertemente acoplado el programa de aplicación y el sistema operativo necesario para soportarlo, están muy acoplados. Direccionamiento Lógico- Físico Sistemas Distribuidos Una dirección generada por la CPU se denomina dirección lógica en cambio a la que es percibida por unidad de memoria se denomina dirección física. Los esquemas de vinculación de direcciones durante la compilación y durante la carga dan pie a un entorno en el que las direcciones lógicas y físicas son las mismas. En cambio, la ejecución del esquema de vinculación de direcciones durante la ejecución produce un entorno en el que las direcciones lógicas y físicas difieren. En este caso la dirección lógica suele llamarse dirección virtual. Direccionamiento lógico y físico El proceso desde que los datos son incorporados al ordenados hasta que se transmiten al medio se llama encapsulación. Estos datos son formateados, segmentados, identificados con el direccionamiento lógico y físico para finalmente ser enviados al medio. A cada capa del modelo
  • 14.
    OSI le correspondeuna PDU (Unidad de Datos) siguiendo por lo tanto el siguiente orden de encapsulamiento: o DATOS o SEGMENTOS o PAQUETES o TRAMAS-BITS o CAPA TRANSMITE o APLICACIÓN DATOS o PRESENTACIÓN o SESIÓN o TRANSPORTE SEGMENTOS o RED PAQUETES o ENLACE DE DATOS TRAMAS o FÍSICA BITS Debido a que posiblemente la cantidad de los datos sean demasiados, la capa de transporte desde de origen, se encarga de segmentarlos para así ser empaquetados debidamente, esta misma capa en el destino se encargara de re ensamblar los datos y colocarlos en forma secuencial, ya que no siempre llegan a su destino en el orden en que han sido segmentados, así mismo acorde al protocolo que se este utilizando habrá corrección de errores. Estos segmentos son empaquetados (paquetes o datagramas) e identificados en la capa de red con la dirección lógica o IP correspondiente al origen y destino. Ocurre lo mismo con la dirección MAC en la capa de enlace de datos formándose
  • 15.
    las tramas oframes para ser transmitidos a través de alguna interfaz. 1.4 SISTEMAS DISTRIBUIDOS DE ALTO RENDIMIENTO El cómputo con Clusters surge como resultado de la convergencia de varias tendencias actuales que incluyen la disponibilidad de microprocesadores económicos de alto rendimiento y redes de alta velocidad, el desarrollo de herramientas de software para cómputo distribuido de alto rendimiento, así como la creciente necesidad de potencia computacional para aplicaciones que la requieran. El Cluster es un grupo de computadoras unidas mediante una red de alta velocidad, de tal forma que trabajan como una única computadora, más potente. En la actualidad, es factible disponer de alta capacidad computacional, incluso equivalente a la encontrada en las poderosas y costosas supercomputadoras clásicas, mediante clusters de computadoras PC independientes, de bajo costo, interconectadas con tecnologías de red de alta velocidad, y empleando software de libre distribución. El cluster puede trabajar de forma coordinada para dar la ilusión de un único sistema. Más adelante revisaremos las ideas básicas sobre diseño, construcción y operación de clusters, presentando aspectos relacionados al software y al hardware. MOSIX Es un paquete de software que mejora el kernel de Linux con capacidades de computación de clusters. El kernel mejorado permite a cualquier cluster de estaciones de trabajo y servidores X86/Pentium/AMD trabajar coordinadamente como parte de un sólo sistema. MOSIX es una extensión del kernel de Linux que permite ejecutar aplicaciones “normales” (no paralelizadas) en un Cluster. Una de
  • 16.
    las posibilidades deMOSIX es la “migración de procesos”, que permite migrar procesos de nodo en nodo. Si por ejemplo, cierto proceso está dominando la carga de un nodo, este será movido a otro que tiene más recursos. Una de las características de MOSIX es que, a diferencia de otros clusters, no es necesario modificar las aplicaciones ni tampoco utilizar librerías especiales. De hecho, tampoco es necesario asignar “a mano” los procesos a los diferentes nodos que componen el cluster. La idea es que después de la creación de un nuevo proceso (fork), MOSIX intenta asignarlo al mejor nodo disponible en ese entonces. MOSIX monitorea constantemente los procesos, y si fuera necesario, migrará un proceso entre los nodos para maximizar el rendimiento promedio. MOSIX realiza todo esto automáticamente, bajo el concepto de “fork and forget” al igual que en un sistema SMP (Multiprocesamiento Simétrico). Esto significa que sólo algunas aplicaciones se beneficiarán de un cluster MOSIX, básicamente: • Procesos que requieren de mucho CPU, aplicaciones científicas, de ingeniería, etc. • Procesos paralelos, especialmente los que tienen tiempos de ejecución impredecibles. • Clusters con nodos de diferentes velocidades y/o distintas cantidades de memoria. • Entornos multiusuario y de tiempo compartido. • Servidores WEB escalables. MOSIX funciona silenciosamente. Sus operaciones son transparentes para las aplicaciones. Los usuarios no necesitan saber dónde se están ejecutando los procesos, tampoco necesitan preocuparse de lo que están haciendo otros usuarios. Como MOSIX está implementado en el kernel de Linux, sus operaciones
  • 17.
    son totalmente transparentespara las aplicaciones. Esto permite definir distintos tipos de clusters, incluso un cluster con diferentes CPU‟s o velocidades LAN. KNOPPIX Es una distribución de GNU/Linux . Está desarrollada por el consultor de GNU/Linux Klaus Knopper. Existen varias distribuciones derivadas de Knoppix, el producto básico es un Live CD comprimido que se infla en un kernel de 1.6 GB, y un Live DVD de 4.7 GB; tambien se puede cargar via USB o flash card. Basado en DEBIAN, KNOPPIX puede ser usado como tutorial de LInux, pero tambien puede correr software propietario con ciertas condiciones. Entre otras características, puede usarse como plataforma de rescate de datos de discos y particiones inaccesobles o dañadas. Otros paquetes que incluye son: LXDE, un entorno de escritorio ligero tipo X11, o bien el KDE 3, una versión mejorada del escritorio. reproductor MP, software de acceso a Internet con KPPP y el ISDN, navegadorIceweasel Firefox, cliente email Icedove Firefox Thunderbird, procesador de imagenes GIMP, LibreOffice, y herramientas para recuperación de datos y reparación de sistema, monitorea y análisis de la red y una suite extensa de terminal de servidor. Cluster Knoppix es una distribución basada en Knoppix y que utiliza Linux Terminal Server Project y OpenMosix. Es una vía conveniente para probar configuraciones en cluster. Knoppix se puede usar para demostrar de manera sencilla el sistema GNU/Linux, especialmente como sistema operativo; para verificar la compatibilidad de hardware con Linux (especialmente para tarjeta de vídeo), o para restaurar un sistema corrupto o datos perdidos.
  • 18.
    Gracias a surapidez, portabilidad, las herramientas que incluye y el amplio soporte para la mayoría de dispositivos que ofrece; puede usarse en muchos ámbitos. Knoppix funciona a la perfección como sistema de rescate y reparación de errores, como CD educacional, sistema comercial o sistema de uso personal, y debido a sus capacidades de descompresión „sobre la marcha‟ puede albergar hasta 2 GB de software instalado en el CD, u 8 GB en el DVD. Tradicionalmente la computación por clusters sólo se podia implementar estableciendo llaves RSH (Remote Shell), creando NFS compartidos, (Sistemas de Archivos en Red), editando archivos de configuración de hosts,estableciendo direcciones IP estáticas, y aplicando manualmente los parches al Kernel. ClusterKnoppix nos salva de hacer todo este trabajo. La distribución contiene un sistema de autoconfiguración donde las nuevas máquinas que ingresan al cluster acceden automáticamente por medio de la red. HPCC (High-Performance Computing Cluster), también se le conoce como DAS (Data Analytics Supercomputer), es una plataforma de procesamiento de datos a gran escala, de libre distribución desarrollada por LexisNexis Risk Solutions. La plataforma HPCC incorpora una arquitectura de software implementada en commodity computingque es una forma de hacer clusters con máquinas baratas, para obtener procesamiento paralelo de alto rendimiento para aplicaciones que usan grandes volúmenes de datos. La pataforma HPCC incluye configuraciones del sistema para soportar procesamiento por lotes y procesamiento paralelo, y aplicaciones de consulta de alto desempeño que usan archivos de datos indexados. La plataforma HPCC también incluye un lenguaje de programación declarativo orientado a los datos para procesamiento paralelo llamado ECL.
  • 19.
    BEOWULF El nombrese refiere a una computadora específica llamada así y construida en 1994 por Thomas Sterling y Donald Becker en la NASA. El nombre Beowulf provienen de el poema épico clásico de la literatura Inglesa Beowulf. Es un cluster de computadoras de bajo costo, normalmente idénticas que están conectadas en una pequeña LAN, con librerías y programas instalados que permiten que el procesamiento se reparta entre ellos. El resultado es una computadora de procesamiento paralelo con hardware barato. El autor compara el trabajo del cluster con la frase del poema "thirty men's heft of grasp in the gripe of his hand". Beowulf es cluster normalmente basado en UNIX, como BSD, Linux o Solaris; se construye con software gratuito y de libre distribución. Comúnmente utilizan librerias de Procesamiento Paralelo como MPI (Message Passing Interface) y PVMI (Parallel Virtual Machine). Ambas permiten al prgramador dividir una tarea entre un grupo de computadoras en red, y colectar los resultados del prosesamiento. Ejemplos de software MPI son OpenMPI y MPICH, así como versiones adicionales del MPI. Los sistemas Beowulf se usan en todo el mundo en todo el mundo sobre todo en el área de la Computación Científica. APACHE HADOOP Es un producto de libre distribución de Apache Software Foundation, para procesado y almacenamiento de conjuntos de datos a gran escala en Clusters de hardware de bajo costo. Se supon que es uno delos proyectos líderes de Apache y es usado por una comunidad importante de desarrolladores y usuarios. Con licencia de Apache 2.0 Hadoop consta de los siguientes módulos:
  • 20.
    1. Hadoop Common:Contiene librerías y utilerías para los módulos eternos. 2. Hadoop Distributed File System (HDFS):- Un sistema de archivos distribuido que almacena datos en las máquinas PC, porporcionando un muy alto ancho de banda para almacenamiento en el clúster. 3. Hadoop YARN: Una plataforma de administración de recursos informáticos en clusters, que támbien hace las funciones de planificador de aplicaciones de usuario. 4. Hadoop MapReduce: Un modelo de programación para procesamiento de datos a gran escala. Todos los modulos de Hadoop están diseñados bajo la filosofía de de que las fallas enel hardware (de maquinas individuales o racks de ellas) son comunes y por ende deben ser tratados de forma automática en el software por el entorno operativo. El MapReduce de Hadoops y sus componentes del (HDFS) Hadoops File System, derivan originalmente de Google's MapReduce y se basan en artículos sobre Google File System (GFS). Mas allá de HDFS, YARN y MapReduce, la plataforma Hadoop en total es considerada como un conjunto de pryectos relacionados, como Apache Pig, Apache Hive, Apache HBase y otros. Para el usuario final, el código Java es una elección natural a través de MapReduce, pero cualquier lenguaje de programación puede ser usado con Hadoop Streaming para implementar el "mapa" y "reducir" piezas del programa del usuario. El entorno Hadoop es por sí mismo código Java con un poco de Lenguaje C nativo, utilerías dela línea de comandos y scripts del shell. La especificaciones y la potencia de los Sistemas Oerativos distribuidos vistos difieren en su implementación, pero son en esencia soluciones a gran escala para resolver los problemas
  • 21.
    comunes que atiendeel Sistema Operativo; el clúster es en este sentido una especificación muy clara y podríamos estudiar más productos para encontrar piezas grandes complejas pero con fines similares, ya que una cualidad especial de estas plataformas es la búsqueda de la sencillez, la ejecución ligera y el ahorro de recursos informáticos para los usuarios, no para el gestor del cluster. Las tareas de administración son esencialmente las mismas, memoria, procesos, tiempo de procesador, entrada-salida, seguridad y Sistema de Archivos; ahora con la responsabilidad en un ambiente compartido. Más allá del conocimiento tradicional sobre clusters,la carrera tecnológica sigue avanzando. Descifrar el genoma humano y en general otros genomas es el ejemplo clasico de tareas computacionales titánicas para las cuales se tienen potentes sistemas trabajando 24 horas al día. Podemos por ejemplo conectarnos a alguno de los clusters para usarlos. Esto nos da una idea de la nueva forma de trabajar en entornos de alta disponibilidad de recursos informáticos y su aplicación en la vida diaria, no sólo en el super-cómputo de las grandes matemáticas, la astronomía y la genética.