Introducción a los Sistemas Distribuidos – Parte I

Los sistemas distribuidos pueden concebirse como aquellos cuya funcionalidad se encuentra fraccionada en componentes que al trabajar sincronizada y coordinadamente otorgan la visión de un sistema único, siendo la distribución, transparente para quien hace uso del sistema.

En términos computacionales, se dice que un sistema distribuido es aquel cuyos componen­tes, de hardware o de software, se alojan en nodos de una red comunicando y coordinando sus acciones a través del envío de mensajes.

El concepto de componente como pieza funcional autónoma y con interfaces bien definidas alcanza al área del desarrollo de software pero también puede concebirse dentro de otras dis­ciplinas como la idea de una pieza que, cuando se combina con los demás componentes, for­ma parte de un todo.

En términos estrictamente informáticos, un componente es cada parte modular de un siste­ma de software.

Entre las motivaciones para construir sistemas distribuidos, sin lugar a dudas esta el hecho de compartir recursos, pero también favorece el diseño de software modular donde cada componente se ejecuta en la plataforma mas adecuada y brinda un servicio mas eficiente debido a la especificidad de su construcción. Por ejemplo, concebir un sistema de software donde uno de los componen­tes es la gestión y manipulación de los objetos de información (datos), le da un papel importante a los Sistemas de Gestión de Bases de Datos – en ingles DataBase Management Systems o DBMS – que logran dar un servicio de acceso a los datos eficiente, correcto y consistente.

Como hemos mencionado, la principal motivación para construir y utilizar sistemas distribuidos se sustenta en la idea de compartir recursos. La idea de recursos abarca desde un elemento de hardware – impresoras, unidades de disco, memoria -, hasta entidades de software – archivos, bases de datos, servicios, objetos, elementos multimedia -.

En este sentido una definición de sistema distribuido aportada por Colouris en [Colouris, 2000] es:

Un sistema en el cual las componentes de hardware y software se ubican en una red de computadoras y comunican y coordinan sus acciones solo por envío mensajes.

Otra definición que se puede formular es:

Un sistema que consiste de una colección de dos o mas computadoras independientes que coordinan su procesamiento a traves del intercambio sincrónico o asincrónico de mensajes.

Por su parte, Tanenbaum en (Tanenbaum, 2007) afirma:

Un sistema distribuido es una colección de computadoras independientes que se muestran al usuario del sistema como un sistema único.

Fig 1

En la Figura 1 muestra que no necesariamente debe existir una correspondencia unívoca entre computadoras y aplicaciones. También se observa que la visión del sistema único es lograda por la capa middleware que oculta los detalles del entorno de ejecución local de cada computadora.

Finalmente, también se puede asegurar que:

Un sistema distribuido es una colección de computadoras autónomas enlazadas a través de una red con software diseñado para producir facilidades de computo integradas.

A la luz de estas definiciones se advierte la coexistencia de dos conceptos complementarios: sistema distribuido y red de computadoras. Se puede decir que mientras una red de computadoras son un conjunto de computadoras físicamente visibles y que debe ser explícitamente direccionada, un sistema distribuido es aquel donde las múltiples computadoras autónomas son transparentes pero se basa en ellas.

Sin embargo existen problemáticas comunes a ambos conceptos: las redes son a su vez sistemas distribuidos si pensamos en su servicio de nombres y ademas todo sistema distribuido se basa sobre los servicios provistos por las redes de computadoras.

Otro elemento conceptual es la noción de middleware software que asiste a una aplicación para interactuar o comunicarse con otras aplicaciones, o paquetes de programas, redes, hard­ware y/o sistemas operativos.


Distribución Funcional

Este tipo de distribución radica en que cada computadora posee capacidades funcionales diferentes pero coordinan sus acciones con un objetivo común. Por ejemplo, cliente/servidor, existe un componente que brinda servicios y otro que necesita consumirlos. Otro caso es la relación host/terminal, un equipo posee toda la funcionalidad (host) y existe otro que se limita a exponer dicha funcionalidad (terminal). Asimismo la concurrencia de datos/procesamiento de datos, es otro caso de sistema distribuido donde el recurso a compartir es el dato y las funcionalidades están vinculadas a su manipulación y procesamiento como es el caso de los siste­mas de gestion de bases de datos.


Distribución Inherente al Dominio de Aplicación

Este tipo de distribución se refiere a la que se realiza dentro de un mismo dominio de apli­cación y cuyas componentes se identifican y modelan dentro de este dominio. Ejemplos de tal tipo de distribución lo constituyen un sistema de cajas de un supermercado y el sistema de inventario respectivo o el trabajo colaborativo soportado por computadoras.


Balanceo de Carga y Distribución

Este tipo de distribución se realiza para poder asignar tareas a distintos procesadores a fin de mejorar el rendimiento general del sistema.

Replicación del poder de computo. Varios computadores sumados pueden alcanzar una velocidad de computo que nunca se lograría con un super computador.

Por razones económicas obvias, un conjunto de microprocesadores ofrecen una mejor relación precio/rendimiento que un gran mainframe que es 10 veces mas rápido pero 1000 veces mas caro.


Los sistemas distribuidos son concurrentes. Esto implica que cada componente es autónomo (lo que implica diferenciar proceso de programa) y ejecuta tareas concurrentes. De este modo debe haber una sincronización y coordinación de dichas tareas y a su vez, aparecen los problemas de la concurrencia como deadlocks y comunicación no confiable.

Como hay una ausencia de reloj local, la comunicación por medio de mensajes, dificulta la precisión con la que cada componente debe sincronizar su reloj, apareciendo el concepto de latencia .

Debido a la concurrencia y al mecanismo de comunicación por mensajes, no existe un proceso único que conozca o albergue el estado global del sistema. Por este motivo se dice que los sistemas distribuidos son sistemas “sin estado”. Los procesos son autónomos en su ejecución, de modo que las fallas individuales pueden no ser detectadas y a su vez desconocen el impacto en el sistema completo.

11 pensamientos en “Introducción a los Sistemas Distribuidos – Parte I”

  1. Pingback: Introducción a los Sistemas Distribuidos – Parte II

  2. Pingback: Introducción a los Sistemas Distribuidos – Parte III

  3. Pingback: Introducción a los Sistemas Distribuidos – Parte IV

  4. Pingback: Evolución de los Sistemas Operativos – Parte I

  5. Pingback: Los Sistemas Operativos y su Distribución – Parte I

  6. Pingback: Los Sistemas Operativos y su Distribución – Parte II

  7. Pingback: Los Sistemas Operativos y su Distribución – Parte III

  8. Pingback: Los Sistemas Operativos y su Distribución – Parte IV

  9. Pingback: Los Sistemas Operativos y su Distribución – Parte V

  10. Pingback: Los Sistemas Operativos Distribuidos – Cliente/Servidor – Parte I

  11. Pingback: Cliente/Servidor – Parte I

Dejá un comentario