miércoles, 27 de enero de 2016

MULTICOMPUTADORAS DEFINICION

MULTICOMPUTADORAS

Los multicomputadores, tal y como ya se ha comentado en la introducción, surgieron de la necesidad de poder escalar en número de procesadores sin un elevadísimo coste económico. Estos consisten en un conjunto de procesadores y bancos de memoria que se conectan a través de una red de interconexión con una determinada topología de red.
La principal característica de los multicomputadores es que los procesadores, al más bajo nivel, ya no pueden compartir datos a través de loads/stores, sino que lo tienen que hacer por medio de mensajes. Es por eso por lo que en este tipo de sistemas no hay problemas de coherencia de caché ni de consistencia de memoria. Aquí, la sincronización se hace explícita con los mensajes, tal y como muestra la figura 40, con primitivas estilo send y receive. En el send se especifíca el buffer a enviar y a quién se envía. Por el otro lado, el receive debe especificar el buffer de recepción y de quién lo recibe. Los buffer del send y del receive están en espacios de direcciones diferentes, suponiendo que son procesos diferentes.

HARDWARE DE UNA MULTICOMPUTADORA

Los nodos más  básicos de una multicomputadora consiste en una CPU, la memoria, una interfaz de red y algunas veces un disco duro. El nodo puede estar empaquetado en un gabinete de PC estándar, pero el adaptador de gráficos, el monitor, el teclado y el ratón casi nunca están presentes. En algunos casos la PC contiene un tablero de multiprocesador de 2 o 4 vías, en donde cada nodo posiblemente tiene un chip de doble o cuádruple núcleo en vez de una sola CPU, pero por cuestión de simplicidad vamos a suponer que cada nodo tiene una CPU.

TECNOLOGÍA DE INTERCONEXIÓN

La topología de red es un patrón en el cual los switches están conectados a otros switches mediante links. Las interconexiones se muestran con grafos donde los nodos representan o bien procesadores o switches, y las aristas los links. La topología de red influye en la latencia de los mensajes, en el bandwidth conseguido, y en la congestión que pueda haber en las comunicaciones, tal y como se ha podido reflejar en las diferentes medidas de rendimiento que se han comentado en el subapartado anterior.
INTERFACES DE RED

Todos los nodos en una multicomputadora tienen una tarjeta insertable que contiene la conexión del nodo hacia la red de interconexión, la cual mantiene unida toda la multicomputadora. La forma en que están construidas estas tarjetas y la manera en que se conectan a la CPU principal y la RAM tienen consecuencias considerables para el sistema operativo. Ahora analizaremos brevemente algunas de las cuestiones relacionadas.

SOFTWARE DE COMUNICACIÓN DE BAJO NIVEL

El enemigo de la comunicación de alto rendimiento en los sistemas de multicomputadora es el copiado de paquetes en exceso. En el mejor caso, habrá una copia de la RAM a la tarjeta de interfaz en el nodo de origen, una copia de la tarjeta de interfaz de origen a la tarjeta de interfaz de destino (si no hay almacenamiento y retransmisión a lo largo de la ruta), y una copia de ahí a la RAM de destino: un total de tres copias. Sin embargo, en muchos sistemas es aún peor. En especial, si la tarjeta de interfaz está asignada al espacio de direcciones virtuales del kernel y no al espacio de direcciones virtuales de usuario, un proceso de usuario sólo puede enviar un paquete si emite una llamada al sistema que se atrape en el kernel. Tal vez los kernels tengan que copiar los paquetes a su propia memoria, tanto en la entrada como en la salida;    por ejemplo, para evitar los fallos de página mientras transmiten por la red. Además, el kernel receptor tal vez no sepa en dónde debe colocar los paquetes entrantes sino hasta que haya tenido la oportunidad de examinarlos.

INTERFAZ DE COMUNICACIÓN DE NODO A RED

Otra de las cuestiones es cómo llevar los paquetes a la interfaz de red. La manera más rápida es utilizar el chip de DMA en la tarjeta sólo para copiar los paquetes de la RAM. El problema con este método es que el DMA utiliza direcciones físicas en vez de virtuales, y se ejecuta de manera independiente a la CPU. Para empezar, aunque sin duda un proceso de usuario conoce la dirección virtual de cada paquete que desea enviar, por lo general no conoce la dirección física.
 No es conveniente hacer una llamada al sistema para realizar la asignación de dirección virtual a dirección física, ya que el objetivo de colocar la tarjeta de interfaz en espacio de usuario en primer lugar era para evitar tener que hacer una llamada al sistema para cada paquete que se va a enviar.

COMPARACIÓN ENTRE LLAMADAS CON BLOQUEO Y SIN BLOQUEO

Las llamadas antes descritas son llamadas con bloqueo (que algunas veces se les conoce como llamadas síncronas). Cuando un proceso llama a send, especifica un destino y un búfer para enviarlo a ese destino. Mientras se está enviando el mensaje, el proceso emisor se bloquea (es decir, se suspende). La instrucción que sigue a la llamada a send no se ejecuta sino hasta que el mensaje se haya enviado por completo. De manera similar, una llamada a receive no devuelve el control sino hasta que se haya recibido en realidad un mensaje y se haya colocado en el búfer al que apunta el parámetro. El proceso permanece suspendido en receive hasta que llega un mensaje, aunque tarde horas en llegar. En algunos sistemas, el receptor puede especificar de qué proceso desea recibir, en cuyo caso permanece bloqueado hasta que llega un mensaje de ese emisor.

LLAMADA A PROCEDIMIENTO REMOTO

Aunque el modelo de paso de mensajes ofrece una manera conveniente de estructurar un sistema operativo de multicomputadora, tiene una falla incorregible: el paradigma básico sobre el que se basa toda la comunicación es la entrada/salida. En esencia, los procedimientos send y receive se dedican a realizar operaciones de E/S, y muchas personas creen que la E/S es el modelo de programación incorrecto.
Este problema se conoce desde hace mucho tiempo, pero no se había hecho mucho al respecto sino hasta que Birrel y Nelson (1984) escribieron un artículo en el que introdujeron una forma completamente distinta de atacarlo. Aunque la idea es gratificante y simple (ya que alguien pensó en ella), a menudo las implicaciones son sutiles. En esta sección examinaremos el concepto, su implementación, sus puntos fuertes y sus puntos débiles.

ASPECTOS DE IMPLEMENTACIÓN

A pesar de la elegancia conceptual de la RPC, hay unos cuantos problemas a tratar. Uno de los más importantes es el uso de parámetros tipo apuntador. Por lo general no hay problema al pasar un apuntador a un procedimiento. El procedimiento al que se llama puede utilizar el apuntador de la misma forma que lo hace el procedimiento que hace la llamada, debido a que los dos procedimientos residen en el mismo espacio de direcciones virtuales. Con la RPC es imposible pasar apuntadores, ya que el cliente y el servidor se encuentran en distintos espacios de direcciones.

MEMORIA COMPARTIDA DISTRIBUIDA

Muchos programadores aún prefieren un modelo de memoria compartida y les gustaría utilizarlo también en una multicomputadora. Para nuestra sorpresa, es posible preservar muy bien la ilusión de la memoria compartida mediante el uso de una técnica llamada DSM (Memoria compartida distribuida), ccon la DSM, cada página se localiza en una de las memoriasy cada máquina tiene su propia memoria virtual y sus propias tablas de páginas.

DUPLICACIÓN

Una mejora al sistema básico que puede mejorar el rendimiento en forma considerable es la duplicación de páginas que sean de sólo lectura; por ejemplo: texto del programa, constantes de sólo lectura u otras estructuras de datos de sólo lectura. Por ejemplo, si es una sección de texto del programa, cuando la CPU 0 la utilice existe la probabilidad de que se envíe una copia a la CPU 0 sin perturbar el texto original en la memoria de la CPU 1. De esta forma, las CPUs 0 y 1 pueden hacer referencia a todas las veces que lo requieran, sin producir trampas para obtener la memoria faltante.

COMPARTICIÓN FALSA

Los sistemas de DSM son similares a los multiprocesadores en ciertos puntos clave. En ambos sistemas, cuando se hace referencia a una palabra de memoria que no sea local, se obtiene una parte de memoria que contiene la palabra de su ubicación actual y se coloca en la máquina que está haciendo la referencia (memoria principal o caché, respectivamente).

PLANIFICACIÓN DE MULTICOMPUTADORAS

      Cada nodo tiene su propia memoria y su propio conjunto de procesos.
      Es un proceso similar a la planificación de multiprocesadores
      Puede utilizar cualquier algoritmo de planificación local
      Es posible utilizar la planificación de pandilla de los multiprocesadores

BALANCEO DE CARGA

ALGORITMO DE TERMINÍSTICO BASADO EN TEORÍA DE GRAFOS

Clase de algoritmos que se estudia mucho para los sistemas que consisten en procesos con requerimientos de CPU y memoria conocidos, y una matriz conocida que proporciona la cantidadpromedio de tráfico entre cada par de procesos.ç

UN ALGORITMO HEURÍSTICO INICIADO POR EL EMISOR

Ahora veamos algunos algoritmos distribuidos. Un algoritmo dice que cuando se crea un proceso, se ejecuta en el nodo que lo creó a menos que ese nodo esté sobrecargado




miércoles, 20 de enero de 2016

SISTEMAS OPERATIVOS PARA SERVIDORES
Hoy la cosa va de servidores… WTF! es lo que ha salido de mi boca varias veces leyendo el post del blog de Chema Alonso, en el que había estado trasteando con la FOCA sobre Ubuntu.com. Nos cuenta que como conclusión a los resultados que ha obtenido en el análisis, es que en Ubuntu, usan de todo, menos Ubuntu. Los más usados son Debian (de la cual deriva Ubuntu), Redhat y hasta FreeBSD. Siempre he tenido en la cabeza cuando he tenido que instalar un servidor Unix que, si la función de dicha máquina va a ser esa únicamente, dar un servicio definido, prima la estabilidad, seguridad, soporte, agilidad en las actualizaciones,…. antes que la novedad. Desde hace unos años, el movimiento y evolución en el mundo Linux ha sido bastante sonado
Servidores Linux
Linux Sistema Operativo preinstalado:
       CentOS 6 con Parallels® Plesk Panel 10.4 (64 bit)
Sistemas Operativos alternativos
      openSUSE 11.4 con Parallels® Plesk Panel 10 (64 bit)
      CentOS 6 básico (64 bit)
      CentOS 6 básico (32 bits)
       openSUSE 11.4 (64 bit)
      CentOS 5 con Parallels® Plesk Panel 10 (64 bit)
       CentOS 5 básico(64 bit)
       CentOS 5 básico (32 bit)
      openSUSE 11.3 (64 bit)
      openSUSE 11.3 (32 bit)
      Sistema Debian 5 (Lenny) (64 bit)
      Sistema Debian 5 (Lenny) (32 bit)
       ubuntu 10.04 LTS (64 bit)
      ubuntu 10.04 LTS (32 bit)
Servidores  Windows
Windows Web Server 2008 R2 por solo 10 €/mes
Sistema Operativo preinstalado:
      Windows Web Server 2008 R2 con Parallels® SB Panel 10.4 (64 bit)
Sistemas Operativos alternativos:
      Windows Web Server 2008 R2 con Parallels® Plesk Panel 10.4 (64 bit) Windows Web Server 2008 R2 (64 bits)
       Windows Web Server 2008 R2 básico (64 bits)
 Opcional: Sistemas Operativos Linux
WINDOWS SERVER 
Es una marca que abarca una línea de productos servidor de Microsoft Corporation, consiste en un sistema operativo diseñado para servidores de Microsoft y una gama de productos dirigidos al mercado más amplio de negocios. Windows Server ofrece más control sobre la infraestructura de servidores y red, mejor hosting, protección del sistema operativo y el entorno de red, herramientas administrativas intuitivas, facilidad de consolidación, virtualización de servidores y aplicaciones.
CARACTERISTICAS Y BENEFICIOS
Mantenga sus datos, redes, servidores y cuentas de usuario protegidos de intrusiones.
• Elimina los costos de VPN.
• Reduce los costos energéticos.
• Facilita la tarea de administrar y proteger las múltiples funciones de servidor en una empresa.
• Permite instalar sólo las funciones y características que sean necesarias.
• Las herramientas mejoradas de administración del sistema ofrecen información de los sistemas y alertan al personal de TI sobre problemas potenciales antes de que sucedan.
OBTENGA MAYOR FLEXIBILIDAD Y PROTECCIÓN
• Aumenta la flexibilidad de la infraestructura de servidores para ahorrar tiempo y reducir costos.
• Ofrece protección de datos contra el fracaso y la intrusión, incluyendo servidores, redes de datos y cuentas de usuarios.
• Incluye PatchGuard, que reduce la exposición a ataques del núcleo, lo que produce un entorno de servidor más seguro y estable.
• Cuenta con Firewall de Windows bidireccional y compatibilidad con criptografía de última generación.
• Permite modificar su infraestructura para adaptarla a las necesidades cambiantes del negocio.
• Mejora la flexibilidad para trabajadores móviles mediante tecnologías que facilitan a los usuarios la ejecución de programas desde cualquier ubicación remota.
MEJORE EL HOSTING
• Mayor fiabilidad, estabilidad y rendimiento
• Más seguridad por defecto, con control más exhaustivo.
•Mayor facilidad de gestión, con reducción de tiempos de soporte.
• Errores identificables con rapidez en el diagnóstico de problemas, minimizando los tiempos de inactividad.
• Capacidades de hosting mejoradas gracias a la integración, sin conflictos, de las tecnologías ASP.Net y PHP.
FACILITE LA ADMINISTRACIÓN
• Herramientas de administración centralizadas.
• Interfaces intuitivas y características de automatización.
• Facilidad de administración de servidores de red, servicios e impresoras desde la red central en ubicaciones remotas.
OBTENGA UNA MEJOR VIRTUALIZACIÓN
• WSv es una plataforma sumamente flexible, de alto rendimiento, rentable y con buen soporte.
• Combina servidores consolidados, respuesta a cargas de trabajo dinámicas, alto rendimiento y escalabilidad para cargas de trabajo virtualizadas y administración simplificada.
• Cuenta con una arquitectura de 64 bits de Hypervisor que forma la base para WSv ofreciendo alto rendimiento para cargas de trabajo exigentes.
• Aumente el rendimiento
• Aumento del rendimiento a lo largo de la red WAN.
• Reduzca uso del ancho de banda.
SERVIDOR O PC, DIFERENCIAS Y CARACTERÍSTICAS
Un servidor es un equipo que está continuamente funcionando ofreciendo servicios a otras maquinas que denominamos clientes. Estas serán normalmente serán PCs.
Debe, por tanto, estar de manera interrumpida encendido y jamás perder datos. Suelen estar reservados al entorno empresarial.
Existen muchos tipos de servidores que son capaces de dar múltiples servicios como correo, web, DHCP o DNS aunque los normales son los que denominamos servidores de archivos.
¿EN QUE SE PARECEN?
Algunos servidores son igual a equipos normales pero en cajas más grandes. De aspecto exterior, en este caso, son parecidos.
Nada te impide usar un sistema operativo de servidor en un PC normal. No tienes más que instalar tu Windows o Linux server y empezar a añadir características.
¿EN QUÉ SE DIFERENCIAN?
Sus componentes se denominan igual pero aquí es donde acaba el parecido. Estamos hablando de equipos que sin dificultan cuestan diez o veinte veces más que un Pc de escritorio normal y corriente.
Fuentes redundantes. La fuente de alimentación o de poder suele estar replicada con al menos dos de ellas funcionando al mismo tiempo. En caso de fallo de alguna de ellas la otra sigue funcionando.
Es muy común añadir aparte al servidor un SAI o UPS con baterías para que el equipo no sufra un apagado inesperado por que exista un corte en la corriente eléctrica.
Discos raid. Seguimos con la replicación de elementos pero en este caso de una manera especial. Las configuraciones de discos duros en RAID permiten que se puedan usar discos adicionales para conseguir tanto mayor velocidad como más resistencia a fallos.
Existe incluso la posibilidad de usar configuraciones que permitan cambiar discos en caliente o que alguno de ellos este parado a la espera de que otro falle.
Procesador doble. O triple o cuádruple, por supuesto esto implica una placa base especial. En este caso los micros suelen tener memoria separada de tal manera que si alguna falla el servidor puede seguir funcionando.
Unidades de cinta. Las copias de seguridad se hacen en cinta debido a que es fácil almacenar varias lejos del servidor.
Memoria RAM ECC. La memoria RAM no es como la que tienes en tu PC. En este caso se usa memoria RAM ECC. Esto quiere decir que en lugar de usar ocho bits por cada byte, como sería lo natural, se utiliza otro más que actúa a modo de control de errores.
De esta forma es muy sencillo detectar si algún modulo tiene problemas e incluso solucionarlo en tiempo real.
Discos SAS. Aparte de que los discos se puedan configurar en RAID la realidad es que estos no son iguales que los que tienes en tu PC. Los discos de servidor suelen ser SAS y los de PC, SATA. Esto significa, entre otras cosas, mayor velocidad y mayor vida media.
Cambio de hardware en caliente. Al igual que ocurre con los discos duros también es posible cambiar otros componentes sin apagar el equipo como puede ser por ejemplo los ventiladores.

Existen servidores enracables. Lo cual hace que sea muy sencillo añadirlo a armarios.
Principales servicios que permiten administrar a un servidor
El Administrador de servidores es una consola MMC (Microsoft Management Console) expandida que permite ver y administrar prácticamente toda la información y herramientas que afectan a la productividad del servidor. Los comandos del Administrador de servidores permiten instalar o quitar características y funciones de servidor, además de aumentar las funciones ya instaladas en el servidor, al agregar servicios de función.
El Administrador de servidores aumenta la eficacia de la administración del servidor, puesto que con una única herramienta permite a los administradores:
·         Ver y modificar las funciones y características instaladas en el servidor.
·        Realizar tareas de administración asociadas al ciclo de vida operativo del servidor, como iniciar o detener servicios y administrar cuentas de usuario locales.
·     Realizar tareas de administración asociadas al ciclo de vida operativo de las funciones instaladas en el servidor.
·   Determinar el estado del servidor, identificar eventos críticos, y analizar y solucionar problemas o errores de configuración.
·     Instalar o quitar funciones, servicios de función y características desde la línea de comandos de Windows.