Un sistema distribuido se define como una colección de computadores autónomos conectados por una red, y con el software distribuido adecuado para que el sistema sea visto por los usuarios como una única entidad capaz de proporcionar facilidades de computación. [ Colouris 1994 ]
Características
Compartición de Recursos
El término 'recurso' es bastante abstracto, pero es el que mejor caracteriza el abanico de entidades que pueden compartirse en un sistema distribuido. El abanico se extiende desde componentes hardware como discos e impresoras hasta elementos software como ficheros, ventanas, bases de datos y otros objetos de datos.
Apertura (opennesss)
Un sistema informático es abierto si el sistema puede ser extendido de diversas maneras. Un sistema puede ser abierto o cerrado con respecto a extensiones hardware (añadir periféricos, memoria o interfaces de comunicación, etc... ) o con respecto a las extensiones software ( añadir características al sistema operativo, protocolos de comunicación y servicios de compartición de recursos, etc... ). La apertura de los sistemas distribuidos se determina primariamente por el grado hacia el que nuevos servicios de compartición de recursos se pueden añadir sin perjudicar ni duplicar a los ya existentes.
Concurrencia
Cuando existen varios procesos en una única maquina decimos que se están ejecutando concurrentemente. Si el ordenador esta equipado con un único procesador central, la concurrencia tiene lugar entrelazando la ejecución de los distintos procesos. Si la computadora tiene N procesadores, entonces se pueden estar ejecutando estrictamente a la vez hasta N procesos.
Escalabilidad
Los sistemas distribuidos operan de manera efectiva y eficiente a muchas escalas diferentes. La escala más pequeña consiste en dos estaciones de trabajo y un servidor de ficheros, mientras que un sistema distribuido construido alrededor de una red de área local simple podría contener varios cientos de estaciones de trabajo, varios servidores de ficheros, servidores de impresión y otros servidores de propósito especifico. A menudo se conectan varias redes de área local para formar internetworks, y éstas podrían contener muchos miles de ordenadores que forman un único sistema distribuido, permitiendo que los recursos sean compartidos entre todos ellos.
Tolerancia a Fallos
Los sistemas informáticos a veces fallan. Cuando se producen fallos en el software o en el hardware, los programas podrían producir resultados incorrectos o podrían pararse antes de terminar la computación que estaban realizando. El diseño de sistemas tolerantes a fallos se basa en dos cuestiones, complementarias entre sí: Redundancia hardware (uso de componentes redundantes) y recuperación del software (diseño de programas que sean capaces de recuperarse de los fallos).
Transparencia
La transparencia se define como la ocultación al usuario y al programador de aplicaciones de la separación de los componentes de un sistema distribuido, de manera que el sistema se percibe como un todo, en vez de una colección de componentes independientes. La transparencia ejerce una gran influencia en el diseño del software de sistema.
Conceptos base para trabajar con sistemas distribuidos:
· Cooperación a pesar de separación geográfica o administrativa.
· Incrementar el poder de cómputo.
· Incrementar la capacidad de almacenamiento.
· Permitir el crecimiento horizontal en lugar de vertical.
Arquitecturas de Hardware
· SMP (Symmetric Multi Processing):
Varios procesadores, compartiendo memoria. El término simétrico a veces hace referencia a la capacidad de auto planificar cada procesador independientemente, a veces a que todos los procesadores tienen la misma función.
· Multicore: Mas de un procesador por board, compartiendo cache L2, etc. Los sistemas multicore son en general considerados SMP.
· Redes: Mas allá de la infraestructura de comunicaciones en s__, es el nombre que se le suele dar a un conjunto de computadoras. Hace un tiempo se usaba el término NOW: Network of Workstations.
· Clusters:
En sentido científico: un conjunto de computadoras conectadas por una red de alta velocidad, con un scheduler de trabajos común. En el resto: un conjunto de computadoras que trabajan cooperativamente desde alguna perspectiva. A veces para proveer servicios relacionados, a veces para proveer el mismo de manera redundante.
· Grids: conjunto de clusters, cada uno bajo dominio administrativo distinto.
· Clouds: clusters donde uno puede alquilar una capacidad bajo demanda.
Estimado ingeniero, como te comente en tareas, me ha parecido tu Investigacion muy completa, y contempla aspectos muy interesantes a tener en cuenta en el momento de desarrollar un sistema distribuido. Esperamos los comentarios de los demas colegas.
ResponderEliminar