Superservidores

Multitarea. Threads. Semáforos. Multiusuario. Multiproceso. Procesamiento en paralelo

  • Enviado por: Sergio Meléndez
  • Idioma: castellano
  • País: México México
  • 10 páginas
publicidad
publicidad

SUPERSERVIDORES.

INTRODUCCIÓN.

Anatomía de un Programa Servidor

Papel del programa servidor

Servir a varios clientes interesados en los recursos compartidos del servidor.

Funciones típicas

a) Esperar por solicitudes del cliente

1. Actividad que más tiempo dedica el servidor.

2. Las solicitudes de los clientes llegan en forma de mensajes.

3. Algunos servidores asignan una sesión dedicada a cada cliente.

4. Debe de estar siempre listo a responder, y estar preparado para las horas pico.

b) Ejecutar varias solicitudes al mismo tiempo

1. Multitasking (multithreading)

2. El servidor debe ser capaz de dar servicio concurrentemente a varios servidores mientras protege la integridad de sus recursos.

c) Dar prioridad a clientes importantes

Diversos niveles (prioridades) de servicio

d) Iniciar y correr tareas de soporte

Debe ejecutar tareas no relacionadas a las solicitudes durante las horas no-pico.

e) Mantenerse corriendo

El programa servidor y su ambiente deben ser robustos.

Necesidades del Servidor Respecto al Sistema Operativo

Servicios Base

Multitasking

1. Simplificación de aplicaciones complejas al dividirlas en tareas concurrentes.

2. Implica mecanismos de coordinación e intercambio de información entre tareas.

3. Hay prioridad entre tareas, de acuerdo a la prioridad del cliente.

Semáforos

Mecanismos de sincronización entre tareas para el acceso a recursos compartidos.

Comunicación interprocesos

Mecanismos que permitan que procesos independientes intercambien y compartan datos.

Threads

1. Unidades concurrentes dentro de un programa.

2. Un evento se asigna a un thread el cual se iniciará cuando el evento ocurra.

Protección intertareas

El sistema operativo debe proteger a las tareas de interferir con recursos de otras tareas.

Sistema de archivos multiusuario de alto desempeño

1. El sistema de archivos debe soportar varias tareas y proveer cerraduras para la integridad de datos.

2. Debe permitir muchos archivos abiertos a la vez.

Manejo eficiente de memoria

El sistema de memoria debe soportar grandes programas y grandes datos.

Servicios de Extensión

Comunicación amplia

Las extensiones del sistema operativo deben proveer un amplio conjunto de protocolos de comunicación que permitan al servidor comunicarse con clientes y servidores de diversas plataformas.

Extensiones del sistema operativo de red

Extensión de los servicios de archivos e impresión a través de la red, de manera transparente, cual si fuesen recursos locales.

Objetos binarios grandes (Binary Large Objects, BLO)

Para imágenes, videos, sonidos y documentos inteligentes se requiere de formatos de representación de objetos, para almacenarlos y transmitirlos.

Directorios

Proveer a los clientes con información para localizar servidores y sus servicios correspondientes.

Servicios de autorización

Determinan si un cliente tiene los permisos para obtener el servicio.

Administración del sistema

Administración del sistema como un servidor o varios servidores asignados a diversos dominios.

Sincronización

Mecanismos de sincronización de los relojes de clientes y servidores.

Servicios de bases de datos y transacciones

Las extensiones del sistema operativo deben proveer un DBMS robusto y multiusuario, soportando SQL.

También pueden incluir un Transaction processing Monitor (TP Monitor) para el manejo de rutinas o transacciones almacenadas como unidades atómicas de trabajo que se ejecutan en uno o más servidores.

Servicios Internet

Incluyendo HTTP daemons, Firewalls, sistemas de archivos basados en HTML y mecanismos de apoyo a comercio electrónico.

Servicios orientados a objetos

1. Area de actual importancia, pues los servicios se están convirtiendo cada vez más orientados a objetos.

2. El sistema operativo debe permitir que cualquier objeto interactúe con otro objeto en la red, así como también intercambio de objetos.

3. A corto plazo las aplicaciones cliente/servidor serán entre objetos que se comuniquen.

Tipos de Servidores Respecto a su Capacidad

Servidores PC (procesador de alta velocidad y poder entrada/salida)

Superservidor multiproceso (multiprocesadores)

Multiservidores (clusters) en una red de área local

Superservidores multiproceso

1. Nueva generación.

2. Incluyen multiprocesadores, arreglos de disco de alta velocidad para entrada/salida intensa y características de tolerancia a fallas.

Multiprocesamiento asimétrico

a) Jerarquía de procesadores.

b) División de tareas entre procesadores.

c) El procesador maestro ejecuta el sistema operativo.

d) Los procesadores esclavos se dedican a funciones de entrada/salida en disco y red.

Multiprocesamiento simétrico

a) Todos los procesadores son del mismo nivel.

b) Cualquier procesador puede hacer el trabajo de otro procesador.

c) Mejor el desempeño que el multiprocesamiento asimétrico.

d) Aplicaciones multithreading.

Servidores dentro de las redes locales de datos (LAN).

Introducción.

En este documento se pretende describir a los servidores dentro de las redes locales de datos desde dos perspectivas. En la primera se describen de acuerdo a una visión física, en términos del hardware que utilizan. La segunda descripción de los servidores se realiza visualizándolos como una caja negra que provee algún tipo de servicio en particular, como los servidores de archivos, de bases de datos o de impresión.

Tipos de servidores de acuerdo a sus características de hardware.

La siguiente es una lista de las diferentes opciones de hardware que pueden ser tomadas en cuenta en la selección de un servidor para una red local de datos.

Ningún servidor.

El usar comunicación punto a punto dentro de la LAN. Esta opción puede implementarse utilizando productos como LANtastic, LAN-in-a-Can o Personal NetWare.

Computadoras 286.

Se utilizan para aplicaciones pequeñas y que no son críticas.

Computadoras personales 386, 486 o Pentium.

Estas computadoras tienen un desempeño razonable, no están optimizadas para ser servidores, no implementan respaldo y tienen un nivel de expansión limitado.

Computadoras 386, 486 o Pentium, diseñadas para actuar como servidores.

Estas computadoras son expandibles, pueden implementar respaldo y generalmente se encuentran preconfiguradas y diseñadas para un sistema operativo de red (NOS) en particular.

Superservidores.

Estos servidores tienen un alto poder de cómputo, están diseñados para trabajo pesado, tienen una gran capacidad de almacenamiento en disco y proveen funciones de respaldo y expandibilidad.

Minicomputadoras.

Tienen un nivel de desempeño muy bueno, alta capacidad de cómputo y almacenamiento, sin embargo no provee las opciones de respaldo que proveen los superservidores.

Computadoras de medio alcance.

Pueden actuar como servidores de una red de área local, como las AS/400.

Mainframes.

Este tipo de computadora puede ser utilizada como parte de un sistema de cómputo empresarial.

Los servidores dentro de una LAN pueden ser dedicados, aquellos que solo actúan como servidores, o no dedicados, aquellos servidores que pueden ser compartidos, como en el caso de las estaciones de trabajo. No es recomendable el utilizar servidores no dedicados dentro de una LAN, ya que las actividades de éstos tienden a reducir el desempeño de la red. Esta no es la única diferencia que puede ser notada dentro de los diferentes tipos de servidores, también se debe decidir si se puede justificar la instalación de un servidor de propósito específico para las actividades que se desean realizar, ya que, por ejemplo, un servidor de archivos, puede, en un momento dado, ser utilizado la mayor parte del tiempo como un servidor de bases de datos. En este caso se debe escoger entonces, en vez de un servidor de archivos, un servidor diseñado para el manejo de bases de datos.

Los precios típicos de los servidores actuales varían entre los $3000 y $6000, dependiendo de factores como capacidad de almacenamiento. Estos servidores regularmente son capaces de tener entre 2 y 20 usuarios de manera simultánea trabajando sobre bases de datos y procesadores de texto. Los servidores que cuentan con una capacidad de almacenamiento medida en gigabytes, así como con capacidades de respaldo de información cuestan entre los $8000 y $17000.

Muchos distribuidores de equipo de cómputo ofrecen servidores preconfigurados, entre las marcas mas conocidas se encuentran Dell, Compaq, Tricord y NetFrame. Algunos productos de Dell y Compaq contienen software NetWare preinstalado, además estan configurados especialmente para la utilización de este sistema. Aunque no hay nada malo en utilizar a una minicomputadora como servidor de una LAN, regularmente, esta es una solución bastante cara y sólo se recomienda hacerlo cuando la computadora ya se encuentra dentro de la organización o cuando se requiere de un poder de cómputo grande. Aunque cualquier plataforma de cómputo puede ser utilizada como servidor, en este documento nos limitaremos a hablar acerca de plataformas basadas en la familia de procesadores Intel (286, 386, 486 y Pentium).

Desempeño del servidor.

Una de las primeras cosas que se debe tomar en cuenta al elegir un servidor para una LAN, es el tiempo de respuesta que requieren las aplicaciones que el servidor utilizará. Esto puede medirse tomando en cuenta factores como el número de peticiones para realizar una operación, el tipo de dichas peticiones y el número de usuarios que las realizan. Además debemos tomar en cuenta el tipo de servicio que el servidor dará, ya que, por ejemplo, un servidor de archivos utiliza muy poco el CPU, mientras que un servidor de bases de datos o un servidor que se encargue de en rutar los paquetes dentro de una red, consumen mucho tiempo de procesamiento.

La siguiente es una lista de las características que deben ser medidas al obtener un servidor, éstas no estan listadas en orden de prioridad.

Características obligatorias a checar.

  • Capacidad absoluta de disco duro.

  • Arquitectura del bus.

  • Versión del BIOS.

  • Número de procesadores soportados.

  • Capacidad de memoria RAM.

  • Capacidad de cache RAM.

  • Unidades de disco removibles.

  • Tamaños de disco duro soportados.

  • Garantía.

  • Capacidad para manejar arreglos de unidades de almacenamiento.

  • Capacidad para hacer respaldos con unidades de cinta.

  • Ranuras de expansión.

  • Número de puertos seriales y paralelos.

  • Capacidad de corriente necesaria, en watts.

  • Sistemas operativos soportados.

  • Preinstalación y optimización de software.

  • Sistemas operativos de red soportados.

  • Política de mantenimiento.

  • Certificación B de la FCC.

Características opcionales.

  • Memoria Flash PROM.

  • Tipo de case (torre o de escritorio).

  • Controlador de cache.

  • Certificación de Novell.

  • Tipo de mointor.

  • Software preinstalado, utilerías y de diagnóstico.

Los servidores de bases de datos o que realizan funciones de comunicaciones funcionan mejor con procesadores que tienen alta velocidad de reloj. Muchas veces se recomienda utilizar servidores con procesadores múltiples para estas funciones. Otros servidores comunes son los servidores de impresión, servidores de fax y servidores de hubs.

Factores que afectan el desempeño.

A continuación se muestra una lista de los factores que afectan de manera mas significativa, el desempeño de un servidor de archivos. Dichos factores se encuentran listados en orden descendente.

  • Desempeño del disco.

Este es un factor determinante para el desempeño del servidor, el tiempo de búsqueda de la suguiente cabeza del disco debe estar dentro del rango de 12-14 msecs., y puede ser tan bajo como 9 msecs. Esto es, la cabeza del disco tarda 9 msecs. para encontrar la información deseada dentro del disco.

  • Tamaño del bus.

Los datos son transportados en unidades de 16 bits, al usar servidores 286 o 386SX. Al usar computadoras 386, 486 o Pentium, los datos son trasladados en unidades de 32 bits.

  • Poder de procesamiento.

Actualmente aún los servidores mas pequeños son computadoras 386 o 386SX, cuando menos. Las velocidades de procesamiento van de los 20Mhz. en adelante.

  • Disk caching.

Este término se refiere a la operación de mantener en una región de memoria RAM especial (cache) registros de información del disco. Esto, debido a que la mayoría de las veces, las peticiones de información son hechas a localidades de disco dentro de la misma área. Algunos de los factores que afectan el desempeño del cache son el tamaño del cache, y la velocidad de acceso a la región de memoria del cache.

  • Factor de separación entre sectores de disco.

Este factor toma como base la habilidad del controlador del disco de leer sectores simultáneos del disco. Si el controlador puede leer cada 2o. sector, entonces se dice que tiene un factor de separación de 2:1. Cuando el controlador puede leer los sectores uno tras otro, se dice que tiene un factor de separación de 1:1. Factores de separación mayores al de 2:1 son inaceptables.

  • Sistema operativo de red (NOS).

El sistema operativo de red tiene un gran efecto sobre el desempeño del servidor y de la red de área local. Es importante que el sistema operativo de red y el sistema operativo de el o los servidores puedan mezclarse de manera eficiente. También se debe tomar en cuenta la interacción de las apliaciones del servidor con el sistema operativo de red. Los resultados de una mala elección son, generalmente, un pobre desempeño y la imposibilidad de utilizar las aplicaciones de los servidores en un 100%.

  • La tarjeta de red (NIC).

Se debe evitar que la instalación de la tarjeta de red en el servidor provoque un cuello de botella dentro de la red. Es por eso que el método de acceso al medio (Ethernet o Token Ring, por ejemplo) debe ser elegido con mucho cuidado. Se puede instalar una tarjeta de red con coprocesador integrado para aumentar el desempeño del servidor. Otros aspectos a considerar son el software para manejar la tarjeta y el tamaño de los muelles para guardar la información que se recibe de la red.

Capacidad del servidor.

Como se mencionó anteriormente, la capacidad de memoria RAM y la capacidad de almacenamiento del disco duro son muy importantes. Estos parámetros deben ser calculados tomando en cuenta tanto al sistema operativo de los servidores y el sistema operativo de red como a las aplicaciones que serán utilizadas. Para calcular la capacidad de memoria requerida para operar bajo NetWare 3.1X, es necesario multiplicar el número de megabytes de capacidad del disco duro por 0.023 y dividir el resultado entre el tamaño de los bloques, el cual es usualmente 4. A el resultado obtenido es necesario agregarle 4 megabytes por el overhead que resulta de la utilización de NetWare. Esto quiere decir que para operar un servidor NetWare con un disco duro de 600 megabytes, son necesarios 8 mgeabytes RAM. Los servidores UNIX y Macintosh se basan en factores diferentes, pero también deben ser calculados dichos valores. Servidores de bases de datos muy sobrecargados llegan a ocupar 32 megabytes RAM o más.

Tamaños y tipos del bus.

  • ISA.

Este tipo de bus está limitado al transporte de datos de 16 bits y es usualmente lento. Su soporte de control de bus externo es pobre y solamente maneja direcciones de 24 bits. (sólo puede direccionar 16 megabytes).

  • EISA.

Este es un bus de 32 bits, una buena opción para servidores con poca o mediana carga. Sin embargo no es recomendable en redes de alta velocidad basadas en fibra óptica y ATM. Actualmente el consorcio EISA se encuentra trabajando en una nueva versión.

  • MCA.

Este es un bus que maneja datos y direcciones de 32 bits con control múltiple.

  • Buses propietarios.

Este tipo de buses son utilizados en superservidores orientados a tareas específicas, como estaciones de trabajo para el desarrollo de aplicaciones de graficación.

Los servidores que se utilizan en aplicaciones reales requieren una estructura de 32 bits. Este aspecto es tan importante que muchos de los consultores ven la arquitectura del bus como el mayor cuello de botella, incluso sobre el subsistema de los discos de almacenamiento.

Poder de procesamiento.

Los sistemas operativos de red, particularmente NetWare, provocan poco uso del CPU. Son las aplicaciones que se ejecutan dentro de los servidores las que aumentan el nivel de uso del procesador, bases de datos, módulos de monitoreo, utilerías de manejo de red, el e-mail, aplicaciones de enrutamiento, etc. Algunos distribuidores ofrecen arquitecturas escalables, las cuales pueden ser actualizadas, sin hacer muchos cambios.

Procesadores.

La familia de procesadores Intel operan en muchos de los servidores actuales. Dentro de esta familia se encuentran los procesadores 386, 486 y Pentium.

El 80 por ciento de las aplicaciones solamente realizan operaciones básicas sobre archivos o son servidores de impresión, para lo cual no es necesario un gran poder de procesamiento. Una computadora personal (PC) que opere con un procesador Pentium puede ejecutar apliaciones dedicadas tales como bases de datos, comunicaciones del tipo cliente-servidor y multimedia sin ningún problema. Este tipo de servidores utilizan sistemas operativos de alto desempeño como Windows NT o OS/2. Además estos servidores pueden estar conectados a una red de área local de 100Mbytes/seg.

Otros distribuidores, tales como HP, DEC, y Sun ofrecen servidores que utilizan procesadores RISC. La mayoría de estos servidores se utilizan principalmente bajo esquemas cliente-servidor, para aplicaciones científicas y para diseño asistido por computadora (CAD). Estos servidores utilizan el sistema operativo UNIX y todos soportan el multiprocesamiento, además, de manera general, los procesadores RISC son 2 o 3 veces mejores en desempeño, que los procesadores 386 y 486.

Multiprocesamiento.

El multiprocesamiento permite a dos o mas procesadores compartir la carga del servidor. La manera en que se dividen la carga de trabajo es importante y se da de dos maneras distintas:

  • De forma simétrica.

En este caso el procesamiento de la información se reparte de una forma pareja, sin importar la función que se quiere realizar. Estos sistemas son mas difíciles de diseñar y por lo tanto más caros. Son facilmente escalables, mientras mas poder de procesamiento se requiere, se pueden agregar nuevos procesadores. Son generalmetnte mejores para manejar bases de datos que servidores de archivos. Ejemplos de este tipo de servidores son sistemas operativos de red que utilizan SCO Unix o AT&T UNIX System V. Este tipo de esquema no es soportado por DOS ni por NetWare.

  • De forma asimétrica.

Al repartir el procesamiento de esta forma, a los procesos les son asignadas las tareas de acuerdo a su función, por ejemplo, al ejecutar en un procesador solo servicios de archivos y ejecutar en el otro solo procesos de impresión. Es decir, se dedica un procesador a una aplicación. Sin embargo este tipo de multiprocesamiento no es bueno al realizar operaciones de mucha Entrada/Salida. Si uno de los procesadores falla, no se afectan los otros procesos.

Servidores de propósito específico.

Aunque es posible adaptar un servidor a casi cualquier actividad específica, existen algunas categorías de servidores que se utilizan de manera general.

Servidores de terminales.

Este tipo de servidores son utilizados para conectar terminales baratas a una LAN, a través de una conexión. A través de estas terminales los usuarios pueden accesar las aplicaciones del servidor como si estuvieran utilizando el servidor de manera directa, con lo cual se aprovechan mas los recursos del servidor. Además se puede tener acceso a otros servidores al mismo tiempo y se evita tener que entrenar de nuevo a los usuarios.

Servidores de bases de datos.

Los servidores de bases de datos distribuyen el procesamiento de la información entre una aplicación, que es ejecutada en la estación de trabajo cliente, y el manejador de bases de datos que se ejecuta en el servidor. Con esto se reduce, además de la carga de procesamiento del servidor, el tráfico de la red. Estos servidores pueden manejar las bases de datos de dos maneras, bases de datos centralizadas y bases de datos distribuídas.

Bases de datos ditribuídas.

  • Evitan un cuello de botella potencial en el manejador de las bases de datos.

  • Eliminan al servidor como punto único de falla.

  • Permiten el real acceso a bases de datos distribuídas a a través de puentes y

pasarelas.

  • Permiten una administración centralizada de las bases de datos.

  • Teoricamente, permiten la corrupción de los datos, por cualquiera de las estaciones de la red.

  • No elimina las tareas de actualización y sincronización de las bases de datos.

  • Bases de datos centralizadas.

  • Reducen la probabilidad de corrupción de la información.

  • Son más fáciles de mantener.

  • Permiten el acceso a muchas bases de datos a través de LANs y WANs.

  • Permiten el uso de enlaces a WANs de menor velocidad.

Servidores de impresión.

La función de este tipo de servidores es la de administrar los recursos de impresión, dentro de la red, de manera eficiente. Generalmente se tiene al servidor conectado directamente a el dispositivo de impresión, dicho servidor se encarga de recibir las peticiones de impresión de las demás estaciones de la red y de mandarlas a la impresora.

Servidores de comunicaciones.

Un servidor de comunicaciones se encarga de liberar al servidor de archivos de la carga de las operaciones relacionadas con las comunicaciones. Con esto se logra incrementar la eficiencia tanto del servidor de archivos como de los servicios de comunicaciones. En una aplicación típica el servidor de comunicaciones puede proveer el acceso a los usuarios de la red, a un conjunto de modems. Asi que mientras uno de los usuarios se encuentra conectado a un BBS, otro usuario puede estar leyendo su e-mail de manera remota. El servidor se encarga de manejar las peticiones del uso de modems, de tal manera que, si los modems se encuentran ocupados, el siguiente usuario es informado de tal situación, y tal vez es agregado a una cola de espera.

CONCLUSIÓN.

Las máquinas que han sido diseñadas desde sus bases para ser servidores son llamadas superservidores. Se utilizan con mayor frecuencia en casos en los cuales el servidor realiza algo más que procesamiento básico de archivos. Generalmente a estos últimos servidores se les llama servidores de peticiones. Los superservidores se caracterizan por su capacidad de multiprocesamiento y por buses de buen desempeño (la mayoría de las veces propietarios) que evitan los cuellos de botella. Estos servidores son los mas fuertes de todos las microcomputadoras que funcionan como servidores, ideales para aplicaciones cliente-servidor. Sin embargo se debe tener cuidado al escoger un superservidor ya que muchas de las arquitecturas de los superservidores son propietarias y se puede terminar "encadenado" a un distribuidor de equipo de cómputo.

.

1