Ancho de banda de un bus

El ancho de banda de un bus es la cantidad de información que puede transferir por unidad de tiempo. Para calcular este valor, es necesario conocer tres aspectos:

  • La frecuencia de operación del bus.
  • El número y tipo de líneas de datos (cuidado, en los buses tradicionales además de estas líneas hay líneas de control para sincronización, arbitraje, etc, que no deben tenerse en cuenta).
  • El número de transferencias de información que pueden hacerse por ciclo de reloj.

Conocidos estos valores se puede calcular el ancho de banda como:






Por ejemplo, para calcular el ancho de banda del bus PCI, necesitamos saber que su frecuencia de funcionamiento es de 33 MHz, que tiene 32 líneas de datos y que realiza 1 transferencia de información por ciclo de reloj. Por lo tanto, su ancho de banda es de 132 MB/s.


Si tomamos como ejemplo el bus PCI Express x16, en este caso tenemos una frecuencia de 2.5 GHz, tiene 16 líneas de datos full-duplex (es decir, pueden transmitir inofrmación en ambos sentidos al mismo tiempo) y realiza 0.8 transferencias por ciclo (es decir, en un ciclo de reloj no le da tiempo a realizar una transferencia de información completa). Entonces, el ancho de banda en este caso es de 4 GB/s en cada sentido, gracias a la utilización de líneas full-duplex (8 GB/s en total).


El porqué de esta dieferencia abismal en los anchos de banda de ambos buses, en otra entrada que dejamos para el futuro. Una pista: las limitaciones en el ancho de banda de los buses suelen estar relacionadas con su longitud, el número de dispositivos conectados, el ruido y la disipación de calor.

Niveles de RAID (I)

Estos son los primeros niveles de RAID:

  • RAID 0: Se utiliza sólo stripping, es decir, se reparte la información entre los discos duros que componen el RAID. Una ventaja de este nivel es que para el sistema operativo todos los discos duros que componen el RAID aparecen como un único disco duro de capacidad la suma de todos ellos, y se facilita enormemente gestión. La desventaja es que no hay tolerancia a fallos.
  • RAID 1: Es la solución que proporciona tolerancia a fallos al RAID0, ya que la mitad de los discos se utilizan como discos espejo de la otra mitad. La desventaja es que resulta una solución muy cara debido a la gran redundancia (se consumen el doble de discos de los necesarios).
  • RAID 3: Para reducir el coste del RAID 1, se utiliza otra solución que proporcione tolerancia a fallos al RAID0 sin necesidad de duplicar el número de discos. Simplemente se utiliza un disco duro extra para almacenar información de paridad. La desventaja es que cada vez que se hace una escritura en un disco, hay que leer todos los demás para calcular la paridad y al disco de paridad para escribirla.
  • RAID 4: Para superar este inconveniente se aprovecha que no es necesario leer los discos que no se han modificado, para calcular la nueva paridad basta con su antiguo valor y con los valores que se han modificado.
El RAID 2 introdujo la información de paridad, funcionando de manera muy parecida al ECC de las memorias actuales. Pero se necesitaban demasiados discos para almacenar la información de paridad. Por eso se pasó rápidamente al RAID 3, que utiliza código de Hamming y sólo consume un disco para paridad (como el RAID 4).

La diferencia principal entre el RAID 3 y el 4 está en la granularidad de la información que se reparte en los discos: en el 3 es de bit (fina) y en el 4 es de bloque (gruesa). Por eso el proceso necesario para mantener la paridad con Hamming es diferente. En un RAID 3 un acceso a disco involucra a todos los demás, en un RAID 4 con un poco de suerte sólo a uno de los discos.



La ley de Amdhal y la mejora de rendimiento

Esta ley se utiliza en Informática para calcular las expectativas de mejora global que se pueden tener al mejorar sólo una parte del sistema. Si F es la fracción de tiempo que se puede utilizar la mejora y G es el factor de ganancia que se obtiene en la parte del sistema que se modifica, según la ley de Amdhal, la mejora global en el sistema o speedup (S) será como mucho:



Entonces, si por ejemplo en un servidor de base de datos se emplea el procesador el 20% del tiempo y el disco duro el 80% restante. ¿Qué nos reportará una mayor mejora: cambiar el procesador por uno 5 veces más rápido o el disco duro por uno el doble más rápido?. En el caso del procesador, F=0.2 y G=5, así que la mejora global en el sistema sería 1.19. En el caso del disco duro, tenemos F=0.8 y G=2, así que S=1.66. Por lo tanto la mejora del disco duro sería más interesante.

Además, si se quiere estudiar el problema desde un punto de vista coste/prestaciones, para realizar esta mejora en el disco duro como mucho deberíamos invertir un 66% del coste total del sistema, ya que como mucho mejoraremos el rendimiento en un 66%.

La aplicación de la ley de Amdhal en cualquier entorno se puede resumir en una recomendación muy sencilla: esfuérzate siempre por mejorar el caso más común.


Productividad Industrial y Estrategia

Podemos definir Productividad como la resultante equilibrada entre cantidad, calidad y coste de laproducción obtenida.

Cinco son los factores básicos que intervienen en la operación industrial y que deben tenerse en cuenta a la hora de abordar procesos de mejora de la Productividad Industrial:

---------------------------------------------------------------------------
Productos / Procesos / Instalaciones / Sistemas / Personas

---------------------------------------------------------------------------

¿Por qué la mejora de la productividad industrial está estrechamente ligada a la obtención de una ventaja competitiva?
  • Porque determina el coste industrial y la calidad de los productos.
  • Porque determina el máximo nivel de eficiencia de la industria frente a competidores.
  • Por la alta preocupación por los costes de producción y por la necesidad de conocer el estado de los mismos.
  • Porque la mayor parte del coste del producto en la industria alimentaria se localizan en el área industrial.
  • Por la reducción de márgenes operativos por contención de precios impuesta por Sector Distribución.
  • Por la necesidad de buscar yacimientos internos de mejora y reducción del gasto: “Mirar a la Planta”.
  • Porque la planta debe considerarse como una Unidad Empresarial de Gestión: es decir, debe considerarase estratégica.
  • Porque la mejora de la Productividad Industrial tiene una repercusión directa sobre la Cuenta de Resultados.
  • Porque la mejora de la Productividad repercute positivamente en costes, cantidades, plazos, calidades de productos.
Cada vez más, la Productividad es incluida como Factor Clave de Planificación Estratégica.

Arquitecturas cliente/servidor

La arquitectura cliente/servidor es un modelo para el desarrollo de redes de computadores en el que cualquier intercambio de información (que se suelen denominar transacciones) se divide en elementos independientes que cooperan entre sí para intercambiar información, servicios o recursos.

En esta arquitectura el computador de cada uno de los usuarios, llamado cliente, inicia un proceso de diálogo: produce una demanda de información o solicita recursos. El computador que responde a la demanda del cliente, se conoce como servidor. Bajo este modelo cada usuario tiene la libertad de dirigirse a cualquier servidor que le ofrezca sus servicios y los distintos servidores también pueden intercambiar información entre sí.

Los clientes y los servidores pueden estar conectados a una LAN o a una WAN. Este tipo de arquitectura no forma parte de los protocolos de Internet como IP, TCP o UDP, sin embargo todos los estándares propuestos en Internet funcionan según este modelo.

Entre las principales características de la arquitectura cliente/servidor, se pueden destacar las siguientes:

  • El servidor presenta a todos sus clientes una interfaz única y bien definida.
  • El cliente no necesita conocer la lógica del servidor, sólo su interfaz externa.
  • El cliente no depende de la ubicación física del servidor, ni del tipo de equipo físico en el que se encuentra, ni de su sistema operativo.
  • Los cambios en el servidor implican pocos o ningún cambio en el cliente.

Los componentes básicos en una arquitectura cliente/servidor son el cliente, el servidor y la infraestructura de comunicaciones (middleware).

El cliente permite al usuario solicitar servicios, realizar peticiones de información o demandar el uso de recursos. Se encarga básicamente de la presentación de la información al usuario. Por lo tanto es necesario que se encargue de establecer conexión con el servidor, enviar la petición, recibir la respuesta, detectar y corregir los posibles errores y realizar actividades de sincronización y seguridad. Y todo esto con uno o varios servidores.

Los clientes se suelen situar en PC's o en estaciones de trabajo y se encargan de realizar el ‘front end’, que es la parte de la aplicación que interactúa con el usuario.

Por otro lado tenemos al servidor, la entidad física que provee servicios, devuelve resultados, ejecuta el procesamiento de datos o aplicaciones o gestiona la información y los recursos compartidos.

En el servidor se realiza el ‘back end’, que es la parte destinada a recibir las solicitudes de los clientes. Entonces tiene que encargarse de recibir las solicitudes del cliente, verificar su identidad, realizar las tareas solicitadas, generar una respuesta y enviarla al cliente. Además, debe detectar y solucionar los interbloqueos, los fallos y otros aspectos relacionados con la seguridad. Por todas estas razones la plataforma hardware de los servidores suele ser mucho más potente que la de los clientes. Se utilizan PC’s o estaciones de trabajo muy modernos o sistemas más complejos.

Existen diversos servidores que se clasifican basándose en sus funciones. Son denominados servidores dedicados ya que administran el uso de algún recurso en particular, por ejemplo:

  • Servidor de archivos.
  • Servidor de bases de datos.
  • Servidor de transacciones.
  • Servidor de Web.
  • Servidor de correo electrónico.
  • Servidor de impresoras.

En todos los casos el trabajo del servidor es reactivo, es decir, realiza una acción siempre basándose en una petición previa.

Para que los clientes y servidores puedan comunicarse es imprescindible una infraestructura lógica que proporcione los mecanismos básicos de direccionamiento y transporte. Esta infraestructura es el middleware, y es un módulo intermedio que no pertenece ni al servidor, ni a la red, ni al cliente. El middleware es un interfaz lógico para los servicios de red. Sus funciones son:

  • Independizar las dos entidades: El cliente y el servidor no necesitan saber comunicarse entre ellos, sino cómo comunicarse con el middleware.
  • Traducir la información de una aplicación y pasarla a la otra: Acepta consultas y datos recuperándolos de la aplicación cliente, los transmite y envía la respuesta desde el servidor regreso. También se encarga de la detección de errores.
  • Controlar las comunicaciones: Proporciona fiabilidad, transparencia y administración.

En resumen, todos los sistemas desarrollados en arquitectura cliente/servidor poseen las siguientes características:

  • El servidor es un proveedor de servicios y el cliente, por el contrario, es un consumidor.
  • Un servidor puede atender a muchos clientes al mismo tiempo y regular su acceso a recursos compartidos.
  • La relación entre cliente y servidor es de muchos a uno. Además los clientes solicitan servicios, mientras que la actitud de los servidores suele ser pasiva: esperan las solicitudes de los clientes.
  • El software cliente/servidor siempre oculta a los clientes la ubicación el servidor.
  • El software es independiente del hardware y se pueden tener las mismas o diferentes plataformas en los clientes y los servidores.
  • Los servidores pueden ser sustituidos sin afectar a los clientes, siempre y cuando la interfaz para recibir peticiones y ofrecer servicios no cambie.
  • Los sistemas cliente/servidor pueden escalarse horizontal o verticalmente. Es decir, se pueden añadir o eliminar clientes (con apenas un ligero impacto en el rendimiento del sistema) o bien, se puede cambiar a un servidor más grande o a servidores múltiples.
  • El código y los datos del servidor se conservan centralmente, esto implica menor costo de mantenimiento y además facilita la protección de la integridad de los datos compartidos. Además, los clientes mantienen su individualidad e independencia.

Según todo esto la arquitectura cliente/servidor es versátil, modular, flexible, y escalable. Además fomenta la variedad de plataformas, hardware y software dentro de las redes, y esto es muy importante hoy en día. Este tipo de arquitecturas mejora el aprovechamiento de los sistemas gracias a la compartición de todo tipo de recursos y también mejora el rendimiento de la red porque se elimina la necesidad de mover grandes bloques de información por la red hacia los nodos: los servidores controlan los datos, procesan peticiones y después transfieren sólo los datos requeridos a la máquina cliente.

En cuanto a las desventajas, son sistemas de gran complejidad puesto que es necesario integrar una gran variedad de productos y tecnologías diferentes. Además el mantenimiento puede hacerse complicado y es más difícil asegurar un alto grado de seguridad en la red. Por último, los problemas de congestión en la red pueden resultar críticos, puesto que un servidor puede dejar de atender por estos problemas a un gran número de peticiones de diferentes clientes.