Sei sulla pagina 1di 11

1.

INTRODUCCION

- Definir y describir que es un sistema distribuido


Un sistema distribuido es en conjunto de computadores interconectados que
comparten un estado, ofreciendo una visión de sistema único
La topología y los atributos físicos de la red están ocultos por los protocolos de red,
mientras que la arquitectura de cada máquina está oculta por el sistema operativo.
Como los componentes de un sistema distribuido pueden ser heterogéneos, se
requiere una capa de software (a menudo llamado middleware) para proporcionar
la visión de sistema único

- Características de los sistemas distribuidos

Concurrencia:
Cuando existen varios procesos en una única maquina decimos que se están
ejecutando concurrentemente. Si el ordenador está 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.
En los sistemas distribuidos hay muchas maquinas, cada una con uno o más
procesadores centrales. Es decir, si hay M ordenadores en un sistema distribuido
con un procesador central cada una entonces hasta M procesos estar ejecutándose
en paralelo.
En un sistema distribuido que está basado en el modelo de compartición de
recursos, la posibilidad de ejecución paralela ocurre por dos razones:
Muchos usuarios interactúan simultáneamente con programas de aplicación.
Muchos procesos servidores se ejecutan concurrentemente, cada uno
respondiendo a diferentes peticiones de los procesos clientes.

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 específico. 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.
Tanto el software de sistema como el de aplicación no deberían cambiar cuando la
escala del sistema se incrementa. La necesidad de escalabilidad no es solo un
problema de prestaciones de red o de hardware, sino que está íntimamente ligada
con todos los aspectos del diseño de los sistemas distribuidos. El diseño del sistema
debe reconocer explícitamente la necesidad de escalabilidad o de lo contrario
aparecerán serias limitaciones.

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).

En los sistemas distribuidos la redundancia puede plantearse en un grano más fino


que el hardware, pueden replicarse los servidores individuales que son esenciales
para la operación continuada de aplicaciones críticas.

La recuperación del software tiene relación con el diseño de software que sea capaz
de recuperar (roll-back) el estado de los datos permanentes antes de que se
produjera el fallo.

Los sistemas distribuidos también proveen un alto grado de disponibilidad en la


vertiente de fallos hardware. La disponibilidad de un sistema es una medida de la
proporción de tiempo que está disponible para su uso. Un fallo simple en una
maquina multiusuario resulta en la no disponibilidad del sistema para todos los
usuarios. Cuando uno de los componentes de un sistema distribuidos falla, solo se
ve afectado el trabajo que estaba realizando el componente averiado. Un usuario
podría desplazarse a otra estación de trabajo; un proceso servidor podría ejecutarse
en otra máquina.

Transparencia de Acceso:
Permite el acceso a los objetos de información remotos de la misma forma que a
los objetos de información locales.
Transparencia de Localización: Permite el acceso a los objetos de información sin
conocimiento de su localización

Transparencia de Concurrencia:
Permite que varios procesos operen concurrentemente utilizando objetos de
información compartidos y de forma que no exista interferencia entre ellos.
Transparencia de Replicación: Permite utilizar múltiples instancias de los objetos de
información para incrementar la fiabilidad y las prestaciones sin que los usuarios o
los programas de aplicación tengan por que conoces la existencia de las réplicas.

Transparencia de Fallos:
Permite a los usuarios y programas de aplicación completar sus tareas a pesar de
la ocurrencia de fallos en el hardware o en el software.

Transparencia de Migración:
Permite el movimiento de objetos de información dentro de un sistema sin afectar a
los usuarios o a los programas de aplicación.
Transparencia de Prestaciones. Permite que el sistema sea reconfigurado para
mejorar las prestaciones mientras la carga varia.

Transparencia de Escalado:
Permite la expansión del sistema y de las aplicaciones sin cambiar la estructura del
sistema o los algoritmos de la aplicación.

- Ventajas e inconvenientes de los Sistemas Distribuidos

Ventajas
• Una de las ventajas de los sistemas distribuidos es la economía, pues es
mucho más barato, añadir servidores y clientes cuando se requiere
aumentar la potencia de procesamiento.

• El trabajo en conjunto. Por ejemplo: en una fábrica de ensamblado, los


robots tienen sus CPUs diferentes y realizan acciones en conjunto,
dirigidos por un sistema distribuido.

• Tienen una mayor confiabilidad. Al estar distribuida la carga de trabajo en


muchas máquinas la falla de una de ellas no afecta a las demás, el
sistema sobrevive como un todo.

• Capacidad de crecimiento incrementa. Se puede añadir procesadores al


sistema, incrementando su potencia en forma gradual según sus
necesidades con respecto a PCs Independientes.
• Se pueden compartir recursos, como programas y periféricos, muy
costosos. Ejemplo: Impresora Láser, dispositivos de almacenamiento
masivo, etc. Al compartir recursos, satisfacen las necesidades de muchos
usuarios a la vez. Ejemplo: Sistemas de reservas de aerolíneas.

• Se logra una mejor comunicación entre las personas. Ejemplo: el correo


electrónico.
Tienen mayor flexibilidad, la carga de trabajo se puede distribuir entre
diferentes ordenadores.

Desventajas
• El principal problema es el software, es el diseño, implantación y uso del
software distribuido, pues presenta numerosos inconvenientes. Los
principales interrogantes son los siguientes:

1. Las computadoras en un sistema pueden ser de diferentes tipos y ejecutar


versiones diferentes de sistemas operativos. Esto significa que se
requiere más esfuerzo para gestionar y mantener en funcionamiento el
sistema.

2. Puede accederse al sistema desde varias computadoras diferentes, y el


tráfico en la red, puede estar sujeto a escuchas indeseadas (esto hace
más difícil mantener la integridad de los datos en el sistema y que los
servicios no se degraden por ataques).

3. Los sistemas distribuidos son más complejos, esto provoca que sea más
difícil comprender sus propiedades.

4. los sistemas distribuidos tienen un sistema impredecible. Como todos


ellos pueden cambiar rápidamente, el tiempo requerido para responder a
una petición de usuario puede variar dramáticamente, de una petición a
otra.

En general se considera que las ventajas superan a las desventajas, si estas últimas
se administran seriamente.

- Aplicaciones de los Sistemas Distribuidos

Aplicaciones Comerciales
Son aplicaciones típicas históricamente construidas con hadware dedicado y
alrededor de sistemas centralizados. Parece que por si inherente distribución y
alrededor de sistemas centralizados, estas aplicaciones se prestan a implementarse
dentro de sistemas distribuidos. Si nos damos cuenta, estas aplicaciones requieren
ciertas características de seguridad y protección.

• Reservas de Líneas Aéreas.


• Aplicaciones Bancarias.
• Cajeros de grandes Almacenes.
• Cajeros y Almacén de Cadenas de Supermercados.

Aplicaciones para Redes de Área Extensa


Dado el espectacular crecimiento de las redes de área extensa (WAN), en concreto
Internet, dedicada al intercambio de información a través de la red. Así, nos
encontramos con que empezó a aparecer el correo electrónico y después un
servicio de transferencia de ficheros (FTP). Un precursor del actual World Wide
Web, fue Gopher que ofrecía el mismo servicio que WWW, pero en modo textual,
sin gráficos ni multimedia.

• Correo Electrónico.
• Servicio de noticias (News).
• Servicio de Tranferencia de Ficheros (FTP).
• Búsqueda de Ficheros(Archie).
• Servicio de Consulta Textual (Gopher).
• World Wide Web (WWW).

Aplicaciones Multimedia
Las aplicaciones multimedia y videoconferencia son las últimas en incorporarse a
los sistemas distribuidos, pues por ser isócronas imponen ciertas necesidades del
hadware, especialmente en lo referente a la velocidad y regularidad de transmisión
de una gran cantidad de datos. Estas aplicaciones incluyen también los conocidos
juegos multiusuario, los cuales son muy exigentes en sus requisitos para una
adecuada ejecución.

• Videoconferencia.
• Televigilancia.
• Juegos multiusuario.
• Enseñanza asistida por ordenador.

Área de los Sistemas Distribuidos


Teniendo en cuenta toda esta variedad de aplicaciones de los sistemas distribuidos,
el diseño se ha involucrado en diversas áreas de la información entre ellas:

• Comunicaciones (HW, SW).


• Sistemas Operativos Distribuidos.
• Bases de Datos Distribuidas.
• Servidores Distribuidos de Ficheros.
• Lenguajes de Programación Distribuida.
• Sistemas Tolerantes a Fallos.

2.Cuales son los desafíos de un sistema distribuido.

Heterogeneidad
La heterogeneidad se aplica en los siguientes elementos:
 Redes
 Hardware de computadores
 Sistemas operativos
 Lenguajes de programación
 Implementaciones de diferentes
 Desarrolladores
Middleware: es el estrato de software que provee una abstracción de programación,
así como un enmascaramiento de la heterogeneidad subyacente de las redes,
hardware, sistemas operativos y lenguajes de programación. Ejem: Corba, Java
RMI
Heterogeneidad y código móvil. Código que puede enviarse desde un computador
a otro y ejecutarse en este último. El concepto de máquina virtual ofrece un modo
de crear código ejecutable sobre cualquier hardware.

Extensibilidad
Es la característica que determina si el sistema puede extenderse de varias
maneras. Un sistema puede ser abierto o cerrado con respecto a extensiones de
hardware o de software. Para lograr la extensibilidad es imprescindible que las
interfaces clave sean publicadas.
Los Sistemas Distribuidos Abiertos pueden extenderse a nivel de hardware
mediante la inclusión de computadoras a la red y a nivel de software por la
introducción de nuevos servicios y el re implementación de los antiguos. Otro
beneficio de los sistemas abiertos es su independencia de proveedores concretos.
Seguridad
La seguridad tiene tres componentes: Confidencialidad: protección contra individuos
no autorizados,
Integridad: protección contra la alteración o corrupción, Disponibilidad: protección
contra la interferencia que impide el acceso a los recursos

Escalabilidad
Se dice que un sistema es escalable si conserva su efectividad cuando ocurre un
incremento significativo en el número de recursos y en el número de usuarios.

Tratamiento de Fallos
Detección de fallos: Ejem. Se pueden utilizar sumas de comprobación (checksums)
para detectar datos corruptos en un mensaje.
Enmarascamiento de fallos: Ejem: Los mensajes pueden retransmitirse, Replicar los
datos.
Tolerancia de fallos: los programas clientes de los servicios pueden diseñarse para
tolerar ciertos fallos. Esto implica que los usuarios tendrán también que tolerarlos.
Recuperación de fallos: implica el diseño de software en el que, tras una caída del
servidor, el estado de los datos puede reponerse o retractarse (rollback) a una
situación anterior.
Redundancia: emplear componentes redundantes.

Concurrencia
Existe la posibilidad de acceso concurrente a un mismo recurso. La concurrencia en
los servidores se puede lograr a través de threads. Cada objeto que represente un
recurso compartido debe responsabilizarse de garantizar que opera correctamente
en un entorno concurrente. Para que un objeto sea seguro en un entorno
concurrente, sus operaciones deben sincronizarse de forma que sus datos
permanezcan consistentes.

Transparencia
Transparencia de acceso: permite acceder a los recursos locales y remotos
empleando operaciones idénticas.
Transparencia de ubicación: permite acceder a los recursos sin conocer su
localización.
Transparencia de concurrencia: permite que varios procesos operen
concurrentemente sobre recursos compartidos sin interferencia mutua.
Transparencia de replicación: permite replicar los recursos sin que los usuarios y
los programadores necesiten su conocimiento.
Transparencia frente a fallos: permite ocultar fallos.
Transparencia de movilidad: permite la reubicación de recursos y clientes en un
sistema sin afectar la operación de los usuarios y los programas.
Transparencia de rendimiento: permite reconfigurar el sistema para mejorar el
desempeño según varíe su carga.
Transparencia al escalado: permite al sistema y a las aplicaciones expandirse en
tamaño sin cambiar la estructura del sistema o los algoritmos de aplicación.

3.Ejemplos de un sistema distribuido.


4.Categorias de servidores

Servidor Conjunto de Hardware y Software que responde a los requerimientos de


un cliente.

Tipos Comunes de Servidores:

 Servidor de Archivos (FTP, Novell).


 Servidor de Bases de Datos (SQL, CBASE, ORACLE, INFORMIX).
 Servidor de Comunicaciones
 Servidor de Impresión.
 Servidor de Terminal.
 Servidor de Aplicaciones (Windows NT, Novell).

Funciones Comunes del Servidor:

 Acceso, almacenamiento y organización de datos.


 Actualización de datos almacenados.
 Administración de recursos compartidos.
 Ejecución de toda la lógica para procesar una transacción.
 Procesamiento común de elementos del servidor.

5.La comunicación y los Sistemas Distribuido

La diferencia principal entre un sistema distribuido y un sistema con un procesador


es la comunicación entre procesos. En un sistema con un procesador la mayor parte
de la comunicación entre procesos supone la existencia de memoria compartida.
Un proceso escribe en un buffer compartido y otro proceso lee de él. En un sistema
distribuido no existe tal memoria compartida, por lo que toda la comunicación se
basa en la transferencia de mensajes. Para los sistemas distribuidos de área amplia
relativamente lentos, se utilizan los protocolos de capas orientadas hacia la
conexión como OSI y TCP/IP, dado que el problema principal a resolver es el
transporte confiable de los bits a través de líneas físicas pobres. Para los sistemas
basados en LAN, los protocolos con capas se utilizan muy poco. En vez de ellos, se
adopta por lo general un modelo mucho más sencillo en donde el cliente envía un
mensaje al servidor y éste envía de regreso una respuesta al cliente. También se
utiliza mucho la llamada a procedimientos remotos (RPC). Con ella un proceso
cliente que se ejecuta en una máquina llama a un procedimiento que se ejecuta en
otra máquina.
Bibliografía

http://www.sc.ehu.es/acwlaroa/SDI/Apuntes/Cap1.pdf
http://sistemas-distribuidos-unerg.blogspot.com/2008/10/caractersticas-principales-
de-los.html
https://sistemasdistribuidosetitc.weebly.com/ventajas-y-desventajas.html
http://sistemasdistribuidos.foroactivo.com/t103-usos-y-tendencias-de-los-sistemas-
distribuidos
http://puraslineas.com/2011/01/31/%C2%BFcuales-son-los-desafios-de-los-
sistemas-distribuidos/
https://sdistribuidos.blogspot.com/
http://exa.unne.edu.ar/informatica/SO/Blasco-
Comunicacion_en_los_Sist_Distrib.pdf
https://ederluisdsd.files.wordpress.com/2013/04/sistema-distribuido.png

Potrebbero piacerti anche