27
7/23/2019 Trabajo Distribuidos http://slidepdf.com/reader/full/trabajo-distribuidos 1/27 UNIVERSIDAD TECNOLÓGICA DE LOS ANDES FACULTAD DE INGENIERÍA ESCUELA PROFESIONAL DE INGENIERÍA DE SISTEMAS E INFORMÁTICA SISTEMAS DISTRIBUIDOS  ALUMNO:  YONATHAN CACERES GOMEZ DOCENTE: Ing. YULIANA TOMAYLLA GUTIERREZ  ABANCAY – PERÚ 2015

Trabajo Distribuidos

Embed Size (px)

Citation preview

Page 1: Trabajo Distribuidos

7/23/2019 Trabajo Distribuidos

http://slidepdf.com/reader/full/trabajo-distribuidos 1/27

UNIVERSIDAD TECNOLÓGICA DE LOS ANDES

FACULTAD DE INGENIERÍA

ESCUELA PROFESIONAL DE INGENIERÍA DESISTEMAS E INFORMÁTICA

SISTEMAS DISTRIBUIDOS

 ALUMNO:

 YONATHAN CACERES GOMEZ

DOCENTE:

Ing. YULIANA TOMAYLLA GUTIERREZ

 ABANCAY – PERÚ

2015

Page 2: Trabajo Distribuidos

7/23/2019 Trabajo Distribuidos

http://slidepdf.com/reader/full/trabajo-distribuidos 2/27

 Página 2 

Índice

1. INTRODUCCION A LOS SISTEMAS DISTRIBUIDOS ........................................................................ 3

2. ¿QUE ES UN SISTEMA DISTRIBUIDO? .......................................................................................... 5

3. EVOLUCIÓN HISTORICA ............................................................................................................... 6

4. ESTRUCTURA DE LOS SISTEMAS DISTRIBUIDOS .......................................................................... 7

4.1. ESTRUCTURA GENERAL DE LOS SISTEMAS OPERATIVOS DISTRIBUIDOS ............................ 8

4.2. ESTRUCTURA GENERAL DE UN SISTEMA DISTRIBUIDO BASADO EN MIDLEWARE ............. 9

5. EJEMPLOS DE SISTEMAS DISTRIBUIDOS .................................................................................... 10

5.1. INTERNET ........................................................................................................................... 10

5.2. INTRANETS ........................................................................................................................ 11

5.3. COMPUTACION MOVIL Y UBICUA ..................................................................................... 12

6. CONCEPTOS DE HARDWARE ..................................................................................................... 13

6.1. MULTIPROCESADORES CON BASE EN BUSES .................................................................... 14

6.2. MULTIPROCESADORES CON CONMUTADOR .................................................................... 14

6.3. MULTI COMPUTADORAS CON BASE EN BUSES ................................................................. 16

6.4. MULTICOMPUTADORAS CON CONMUTADOR .................................................................. 16

7. CONCEPTOS DE SOFTWARE ...................................................................................................... 17

7.1. SISTEMA OPERATIVO DE REDES ........................................................................................ 18

7.2. SISTEMAS REALMENTE DISTRIBUIDOS .............................................................................. 19

7.3. SISTEMAS DE MULTIPROCESADOR CON TIEMPO COMPARTIDO ...................................... 19

8. CARACTERISTICAS DE LOS SISTEMAS DISTRIBUIDOS ................................................................ 20

9. MODELO CLIENTE - SERVIDOR .................................................................................................. 23

10. ARQUITECTURA DE CAPAS .................................................................................................... 25

11. EL MODELO PEER TO PEER (De Igual a Igual) ........................................................................ 26

Page 3: Trabajo Distribuidos

7/23/2019 Trabajo Distribuidos

http://slidepdf.com/reader/full/trabajo-distribuidos 3/27

 Página 3 

1. INTRODUCCION A LOS SISTEMAS DISTRIBUIDOS

Los sistemas de cómputo están sufriendo una revolución Desde 1945 cuando comenzó la era de la

computadora moderna hasta cerca de 1985 las computadoras eran grandes y caras Incluso las

minicomputadoras costaban por lo general cientos de miles de dólares cada una Como resultadola mayor parte de las organizaciones tenía tan sólo un puñado de computadoras y por carecer de

una forma para conectarlas éstas operaban por lo general en forma independiente entre sí.

Sin embargo a partir de la mitad de la década de 1980 dos avances tecnológicos comenzaron a

cambiar esta situación El primero fue el desarrollo de poderosos microprocesadores En principio

se disponía de máquinas de 8 bits pero pronto se volvieron comunes las CPU de 16, 32 e incluso 64

bits Muchos de ellos tenían el poder de cómputo de una computadora mainframe de tamaño

respetable (es decir grande) pero por una fracción de su precio.

La cantidad de mejoras ocurridas en la tecnología de cómputo en el último medio siglo es de

verdad impresionante y sin precedentes en otras industrias Desde la máquina que costaba 10

millones de dólares y ejecutaba una instrucción por segundo hemos llegado a máquinas que

cuestan 1 000 dólares y ejecutan 10 millones de instrucciones por segundo una ganancia

precio/rendimiento de 10" Si los automóviles hubieran mejorado con esta razón en el mismo

periodo un Rolls Royce costaría 10 dólares y daría mil millones de millas por galón (Por desgraciaes probable que tuviera un manual de 200 páginas indicando cómo abrir la puerta ).

El segundo desarrollo fue la invención de redes de área local de alta velocidad (LAN) permiten

conectar docenas e incluso cientos de máquinas dentro de un edificio de tal forma que se pueden

transferir pequeñas cantidades de información entre ellas en un milisegundo o un tiempo

parecido.

Las cantidades mayores de datos se pueden desplazar entre las máquinas a razón de 10 a 100

Millones de bits/segundo o más Las redes de área amplia (WANs) permiten que millones de

máquinas en toda la Tierra se conecten con velocidades que varían de 64 Kbps a gigabits por

segundo para ciertas redes experimentales avanzadas.

Page 4: Trabajo Distribuidos

7/23/2019 Trabajo Distribuidos

http://slidepdf.com/reader/full/trabajo-distribuidos 4/27

 Página 4 

El resultado neto de estas tecnologías es que hoy en día no sólo es posible sino fácil reunir

sistemas de cómputo compuestos por un gran número de CPU conectados mediante una red de

alta velocidad Estos reciben el nombre genérico de sistemas distribuidos en contraste con los

sistemas centralizados anteriores (o sistemas con sólo un procesador) que constan de un CPU su

memoria sus periféricos y algunas terminales.

Sólo existe una mosca en la sopa el software Los sistemas distribuidos necesitan un software

radicalmente distinto al de los sistemas centralizados En particular los sistemas operativos

necesarios para estos sistemas distribuidos están apenas en una etapa de surgimiento se han dado

algunos primeros pasos pero todavía existe un largo camino por recorrer Sin embargo ya se sabe

bastante de estos sistemas por lo que podemos presentar las ideas básicas.

Page 5: Trabajo Distribuidos

7/23/2019 Trabajo Distribuidos

http://slidepdf.com/reader/full/trabajo-distribuidos 5/27

 Página 5 

2. ¿QUE ES UN SISTEMA DISTRIBUIDO?

Los sistemas distribuidos son aquellos en el que dos o más máquinas colaboran para la obtención

de un resultado y están basados en las características de transparencia, eficiencia, flexibilidad,

escalabilidad y fiabilidad. El objetivo principal de los Sistemas Distribuidos es el mejor desempeño,mayor fiabilidad y disponibilidad, compartición de recursos e información, además del

mejoramiento de la comunicación, mayor adaptabilidad (más natural, distribución de carga, etc.)

La importancia del desarrollo de los Sistemas Distribuidos es debido a las necesidades de los

usuarios que requieren de aplicaciones más sofisticadas así como también de las funciones

administrativas y económicas.

A continuación tenemos algunas definiciones de Sistemas Distribuidos:

  “Un Sistemas Distribuido consiste en una colección de computadoras

autónomas enlazadas por una red y equipadas con un sistema de Software

distribuido”. [Tanenbaum 1995]. 

  “Definimos un sistema distribuido como aquel en el que los componentes

hardware o software, localizados en computadoras unidos mediante red,

comunican y coordinan sus acciones solo mediante paso de mensajes”.

[Coulouris 2001]. 

  “Sistema en el cual múltiples procesadores autónomos, posiblemente de

diferente tipo, están interconectados por una subred de comunicación para

interactuar de una manera cooperativa en el logro de un objetivo global.”

[Lelann, 1981]. 

  “Sistema en el cual componentes de hardware y software, localizadas en

computadores en red, se comunican y coordinan sus acciones sólo por paso

de mensajes.” [Coulouris, 2002]. 

  “Conjunto de computadores independientes que se muestran al usuario como

un sistema único coherente.” [Tanenbaum, 2001]. 

Page 6: Trabajo Distribuidos

7/23/2019 Trabajo Distribuidos

http://slidepdf.com/reader/full/trabajo-distribuidos 6/27

 Página 6 

3. EVOLUCIÓN HISTORICA

Años 70

Una de las principales características de los sistemas distribuidos son los mainframes, (Súper

computadoras de súper capacidad y súper eficiencia). Pero en esta época, se usaban redes

WANDS, de transmisión muy lenta, por tanto, el proceso muchas veces se veía limitado por su

capacidad de transmisión. Las mini computadoras eran emuladas como terminales tal que los

datos en la mainframe pudieran ser accedidos a través de la emulación de terminal.

Velocidad de transmisión: De 2400 a 9600 bits por segundo.

Años 80

Al sistema de mainframes y mini computadoras se añaden los pc de escritorio y se cambian las

redes por LANS Y WANS.

Velocidades de transmisión: LAN: de 4 a 16 millones de bits por segundo. (Casi 2 megas), WANS:de 56 kilobyte a 1.54 megabyte

Años 90

Los sistemas de proceso de información son mucho menos cerrados, lo que permite hacer

sistemas distribuidos con diferentes máquinas de diferentes fabricantes conectados por red desde

diferentes áreas geográficas. Además se implementa un gran avance llamado Procesamiento

Cooperativo Distribuido que permite el intercambio de la información interactivamente entre los

procesadores de diferentes computadores. Por ejemplo, la computación cliente-servidor. Las

redes de trasferencia de datos son iguales o mayores 100 megas para redes LAN, WAN, MAN.

Actualidad

Los sistemas de computación distribuida hacen que toda una red computacional aparezca como

una sola gran computadora donde diferentes actividades se llevaran a cabo en diferentes

computadoras. Estos sistemas incluyen súper computadoras conectadas a través de redes con

capacidad de transmisión de gigabytes por segundo, y supervisadas por software de

administración, estos sistemas reciben el nombre de súper computación en red.

Page 7: Trabajo Distribuidos

7/23/2019 Trabajo Distribuidos

http://slidepdf.com/reader/full/trabajo-distribuidos 7/27

 Página 7 

4. ESTRUCTURA DE LOS SISTEMAS DISTRIBUIDOS

Como ya se definió anteriormente un sistema operativo distribuido consiste en una colección de

computadores conectados por una red de comunicaciones, que el usuario percibe como un solo

sistema (no necesita saber qué cosas están en qué máquinas). El usuario accesa los recursosRemotos de la misma manera en que accesa a recursos locales, o un grupo de computadores que

usan un software para conseguir un objetivo en común.

Los sistemas distribuidos deben de ser muy confiables, ya que si un componente del sistema se

Descompone otro componente debe de ser capaz de reemplazarlo.

El objetivo de un sistema distribuido es integrar los recursos y servicios conectados por una red de

comunicación. Desde el punto de vista del usuario y de las aplicaciones, un sistema distribuido

proporciona una visión de máquina única y no difiere de uno centralizado. En cambio, el punto de

vista del diseñador (el sistema como gestor de los recursos) la estructura interna está

condicionada por la distribución física de los recursos.

Un sistema distribuido desde el punto de vista del usuario.

Lo habitual es que el sistema operativo integre los servicios de red, que ofrecen protocolos

abiertos de comunicación, como es el caso de TCP y UDP. Sobre estos se disponen los soportes

adicionales para la comunicación distribuida, como es el caso de RPC, RMI o DSM, y los serviciosespecíficos que proporcionan las propiedades del sistema distribuido (servicios middleware), como

es el caso de la gestión de tiempos, eventos y estado global, sobre los que se asientan las

aplicaciones. 

Page 8: Trabajo Distribuidos

7/23/2019 Trabajo Distribuidos

http://slidepdf.com/reader/full/trabajo-distribuidos 8/27

 Página 8 

Estructura de un sistema distribuido.

El tamaño de un sistema distribuido puede ser muy variado, ya sean decenas de hosts (Local Area

Network), centenas de hosts (Metropolitan Area Network), y miles o millones de hosts (Internet).

4.1. 

ESTRUCTURA GENERAL DE LOS SISTEMAS OPERATIVOS DISTRIBUIDOS

Page 9: Trabajo Distribuidos

7/23/2019 Trabajo Distribuidos

http://slidepdf.com/reader/full/trabajo-distribuidos 9/27

 Página 9 

  Menos autonomía entre computadores

  Da la impresión de que solo hay un sistema operativo controlando la red

4.2. 

ESTRUCTURA GENERAL DE UN SISTEMA DISTRIBUIDO BASADO EN MIDLEWARE

Middelware es una capa adicional por encima de un sistema operativo de red, que implementa

servicios de propósito general. Middlware es una capa de software intermedia. En los Sistemas

distribuidos basados en Middlware, los protocolos usados por cada capa middlware deben ser los

mismos así como las interfaces que ofrecen a las aplicaciones.

Middleware es un software que enmascara el hardware y los sistemas operativos, se aplican en los

sistemas distribuidos como sistema de comunicación que proporciona alto grado de transparencia,

administración de recursos por nodos, no tienen el mismo sistema operativo en todos los nodos y

ofrece ‘n’ número de copias del sistema operativo.

En sistemas distribuidos:

El Middleware es un software de conectividad que permite ofrecer un conjunto de servicios que

hacen posible el funcionamiento de aplicaciones distribuidas sobre plataformas heterogéneas.

Funciona como una capa de abstracción de software distribuida que se sitúa entre las capas de

aplicaciones y las capas inferiores (sistema operativo y red).

El Middleware nos abstrae de la complejidad y heterogeneidad de las redes de comunicaciones

subyacentes, así como de los sistemas operativos y lenguajes de programación, proporcionando

una API para la fácil programación y manejo de aplicaciones distribuidas.

Page 10: Trabajo Distribuidos

7/23/2019 Trabajo Distribuidos

http://slidepdf.com/reader/full/trabajo-distribuidos 10/27

  Página

10 

5. EJEMPLOS DE SISTEMAS DISTRIBUIDOS

5.1. 

INTERNET

Internet es una vasta colección de redes de computadoras de diferentes tipos

interconectados. La figura muestra una porción típica de Internet. Programas

ejecutándose en los computadores conectados a ella interactúan mediante paso de

mensajes empleando un medio común de comunicación. El diseño y la construcción de

los mecanismos de comunicación Internet es una realización técnica fundamental, que

permite que un programa que se está ejecutando en cualquier parte dirija mensajes a

programas en cualquier otra parte.

Internet es también un sistema distribuido muy grande. En Internet hay disponibles

servicios multimedia, que permiten a los usuarios el acceso a datos de audio y

video. La capacidad de Internet para mantener los requisitos especiales de

comunicación de los datos multimedia es actualmente bastante limitada porque no

proporciona la infraestructura necesaria para reservar capacidad de la red para

flujos individuales de datos.

Page 11: Trabajo Distribuidos

7/23/2019 Trabajo Distribuidos

http://slidepdf.com/reader/full/trabajo-distribuidos 11/27

  Página

11 

5.2.  INTRANETS

Una intranet es una porción de internet que es administrada separadamente y que tiene

un límite que puede ser configurado para hacer cumplir políticas de seguridad local.

La figura muestra una intranet típica, está compuesta de varias redes de área local

enlazadas por conexiones backbone. La configuración de red de una intranet particular es

responsabilidad de la organización que la administra y puede variar ampliamente, desde

una LAN en un único sitio a un conjunto de LANs conectadas perteneciendo a ramas de la

empresa u otra organización en diferentes país.

Page 12: Trabajo Distribuidos

7/23/2019 Trabajo Distribuidos

http://slidepdf.com/reader/full/trabajo-distribuidos 12/27

  Página

12 

5.3.  COMPUTACION MOVIL Y UBICUA

Los avances tecnológicos en la miniaturización de dispositivos y en redes inalámbricas han

llevado cada vez más a la integración de dispositivos de computación pequeños y

portátiles en sistemas distribuidos, estos dispositivos incluyen:

  Computadoras portátiles.

  Dispositivos de mano (handheld), entre los que se incluyen asistentes digitales

personales (PDA), teléfonos móviles, buscapersonas y video cámaras o cámaras

digitales.

  Dispositivos que se pueden llevar puestos, como relojes inteligentes con

funcionalidad semejante a los PDAs.

 

Dispositivos insertados en aparatos, como lavadoras, sistemas de alta fidelidad,

coches y frigoríficos.

La facilidad de transporte de muchos de estos dispositivos: junto con su capacidad para

conectarse adecuadamente a redes en diferentes lugares, hace posible la computación

móvil. Se llama computación móvil a la realización de tareas de cómputo mientras el

usuario está en movimiento o visitando otros lugares distintos de su entorno habitual.

Computación ubicua es la utilización concertada de muchos dispositivos de computación

pequeños y baratos que están presentes en los entornos físicos de los usuarios,

incluyendo la casa, la oficina y otros. El término ubicuo está pensado para sugerir que los

pequeños dispositivos llegarán a estar tan extendidos en los objetos de cada día que

apenas nos daremos cuenta de ellos.

Page 13: Trabajo Distribuidos

7/23/2019 Trabajo Distribuidos

http://slidepdf.com/reader/full/trabajo-distribuidos 13/27

  Página

13 

Dispositivos portátiles y de mano en un sistema distribuido.

6.  CONCEPTOS DE HARDWARE

Con el paso de los años se han propuesto diversos esquemas de clasificación para los

sistemas de cómputo con varios CPU pero ninguno de ellos ha tenido un éxito completo ni

se ha adoptado de manera amplia Es probable que la taxonomía más citada sea la de Flynn

(1972) aunque es algo rudimentaria Flynn eligió dos características consideradas por él

como esenciales el número de flujos de instrucciones y el número de flujos de datos Una

computadora con un flujo de instrucciones y uno de datos se llama SISD (Single Instruction

Single Data) Todas las computadoras tradicionales de un procesador (es decir aquellas que

tienen un CPU) caen dentro de esta categoría desde las computadoras personales hasta

las grandes mainframes.

La siguiente categoría es SIMD (Single Instruction Múltiple Data) con un flujo de

instrucciones y varios flujos de datos Este tipo se refiere a ordenar procesadores con

unidad de instrucción que busca una instrucción y después instruye a varias unidades de

datos para que la lleven a cabo en paralelo cada una con sus propios datos Estas máquinas

son útiles para los cómputos que repiten los mismos cálculos en varios conjuntos de datos

Page 14: Trabajo Distribuidos

7/23/2019 Trabajo Distribuidos

http://slidepdf.com/reader/full/trabajo-distribuidos 14/27

  Página

14 

por ejemplo sumando todos los elementos de 64 vectores independientes Ciertas

supercomputadoras son SIMD.

La siguiente categoría es MISD (Múltiple Instruction Single Data) con un flujo de varías

instrucciones y un flujo de datos Ninguna de las computadoras conocidas se ajusta a este

modelo Por último está MIMD (Múltiple Instruction Múltiple Data) que significa un grupo

de computadoras independientes cada una con su propio contador del programa y datos

Todos los sistemas distribuidos son MIMD por lo que este sistema de clasificación no es

muy útil para nuestros fines.

6.1. 

MULTIPROCESADORES CON BASE EN BUSES

Los multiprocesadores con base en buses constan de cierta cantidad de CPU conectados a

un bus común junto con un módulo de memoria Una configuración sencilla consta de un

plano de base (backplane) de alta velocidad o tarjeta madre en el cual se pueden insertar

las tarjetas de memoria y el CPU Un bus típico tiene 32 o 64 líneas de direcciones 32 o 64

líneas de datos y 32 o más líneas de control todo lo cual opera en paralelo Para leer una

palabra de memoria un CPU coloca la dirección de la palabra deseada en las líneas de

direcciones del bus y coloca una señal en las líneas de control adecuadas par a indicar que

desea leer La memoria responde y coloca el valor de la palabra en las líneas de datos para

permitir la lectura de ésta por parte del CPU solicitante.

6.2. 

MULTIPROCESADORES CON CONMUTADOR

Para construir un multiprocesador con más de 64 procesadores, es necesario un método

distinto para conectar cada CPU con la memoria. Una posibilidad es dividir la memoria en

módulos y conectarlos a las CPU con un conmutador de cruceta, como se muestra en la

figura. Cada CPU y cada memoria tienen una conexión que sale de él, como se muestra en

la figura. En cada intersección está un delgado conmutador de punto de cruce electrónico

que el hardware puede abrir y cerrar. Cuando un CPU desea tener acceso a una memoria

particular, el conmutador del punto de cruce que los conecta se cierra de manera

momentánea, para permitir dicho acceso. La virtud del conmutador de cruceta es que

muchos CPU pueden tener acceso a la memoria al mismo tiempo, aunque si dos CPU

Page 15: Trabajo Distribuidos

7/23/2019 Trabajo Distribuidos

http://slidepdf.com/reader/full/trabajo-distribuidos 15/27

  Página

15 

intentan tener acceso a la misma memoria en forma simultánea, uno de ellos deberá

esperar.

En resumen, los multiprocesadores basados en buses, incluso con cachés monitores,

quedan limitados a lo más a 64 CPUs por la capacidad del bus. Para rebasar estos límites,

es necesaria una red con conmutador, como uno de cruceta, una red omega o algo similar.

Los grandes conmutadores de cruceta y las grandes redes omega son muy caros y lentos.

Las máquinas NUMA necesitan complejos algoritmos para la buena colocación del

software.

La conclusión es clara: la construcción de un multiprocesador grande, fuertemente

acoplado y con memoria compartida es difícil y cara. 

Page 16: Trabajo Distribuidos

7/23/2019 Trabajo Distribuidos

http://slidepdf.com/reader/full/trabajo-distribuidos 16/27

  Página

16 

6.3.  MULTI COMPUTADORAS CON BASE EN BUSES

Por otro lado, la construcción de una multicomputadora (es decir, sin memoria

compartida) es fácil. Cada CPU tiene conexión directa con su propia memoria local. El

único problema restante es la forma en que los CPU se comunicarán entre sí. Es claro que

aquí también se necesita cierto esquema de interconexión, pero como sólo es para la

comunicación entre un CPU y otro, el volumen del tráfico será de varios órdenes menor en

relación con el uso de una red de interconexión para el tráfico CPU-memoria.

En la figura vemos una multicomputadora con base en un bus. Es similar, desde el punto

de vista topo lógico, al multiprocesador basado en un bus, pero como tendrá menor

tráfico, no necesita ser un bus con un plano de base de alta velocidad. De hecho, puede

ser una LAN de menor velocidad (por lo general de 10-100 Mb/seg, en comparación con

300 Mb/seg o más para un bus con un plano de base). A sí, la figura es más a menudo una

colección de estaciones de trabajo en una LAN que una colección de tarjetas de CPU que

se insertan en un bus rápido (aunque esto último definitivamente es un diseño posible). 

Una multicomputadora que consta de estaciones de trabajo en una LAN.

6.4.  MULTICOMPUTADORAS CON CONMUTADOR

Nuestra última categoría es la de las multicomputadoras con conmutador. Se han

propuesto y construido varias redes de interconexión, pero todas tienen la propiedad de

que cada CPU tiene acceso directo y exclusivo a su propia memoria particular. La figura

muestra dos topologías populares, una retícula y un hipercubo. Las retículas son fáciles de

comprender y se basan en las tarjetas de circuitos impresos. Se adecúan mejor a

problemas con naturaleza bidimensional inherente, como la teoría de gráficas o la visión

(por ejemplo, los ojos de un robot o el análisis de fotografías). 

Page 17: Trabajo Distribuidos

7/23/2019 Trabajo Distribuidos

http://slidepdf.com/reader/full/trabajo-distribuidos 17/27

Page 18: Trabajo Distribuidos

7/23/2019 Trabajo Distribuidos

http://slidepdf.com/reader/full/trabajo-distribuidos 18/27

  Página

18 

7.1. SISTEMA OPERATIVO DE REDES

Esta forma de comunicación es primitiva en extremo y ha provocado que los diseñadores

de sistemas busquen formas más convenientes de comunicación y distribución de la

información. Un método consiste en proporcionar un sistema de archivos global,

compartido, accesible desde todas las estaciones de trabajo. Una o varias máquinas,

llamadas servidores de archivos, soportan al sistema de archivos. Los servidores de archivo

aceptan solicitudes para la lectura y escritura de archivos por parte de los programas

usuarios que se ejecutan en las otras máquinas (no servidoras), llamadas clientes.

Cada una de las solicitudes que llegue se examina, se ejecuta y la respuesta se envía de

regreso, como se ilustra en la figura. 

Dos clientes y un servidor en un sistema operativo de red. 

Los servidores de archivos tienen por lo general un sistema jerárquico de archivos, cada

uno de los cuales tiene un directorio raíz, con subdirectorios y archivos. Las estaciones de

trabajo pueden importar o montar estos sistemas de archivos, lo que aumenta sus

sistemas locales de archivos con aquellos localizados en los servidores. 

Page 19: Trabajo Distribuidos

7/23/2019 Trabajo Distribuidos

http://slidepdf.com/reader/full/trabajo-distribuidos 19/27

  Página

19 

7.2. SISTEMAS REALMENTE DISTRIBUIDOS

El objetivo de un sistema de este tipo es crear la ilusión en las mentes de los usuarios que

toda la red de computadoras es un sistema de tiempo compartido, en vez de una colección

de máquinas diversas. Algunos autores se refieren a esta propiedad como la imagen de

único sistema. Otros tienen un punto de vista diferente y dicen que un sistema distribuido

es aquel que se ejecuta en una colección de máquinas enlazadas mediante una red pero

que actúan como un uniprocesador virtual. No importa la forma en que se exprese, la idea

esencial es que los usuarios no deben ser conscientes de la existencia de varios CPU en el

sistema.

7.3. 

SISTEMAS DE MULTIPROCESADOR CON TIEMPO COMPARTIDO

La última combinación que queremos analizar es el software y hardware fuertemente

acoplados. Aunque existen varias máquinas de propósito especial en esta categoría (como

las máquinas dedicadas a las bases de datos), los ejemplos más comunes de propósito

general son los multiprocesadores que operan como un sistema de tiempo compartido de

UNIX, sólo que con varios CPU en vez de uno. Para el mundo exterior, un multiprocesador

con 32 CPU de 30 MIPS actúa de manera muy parecida a un solo CPU de 960 MIPS (ésta es

la imagen de único sistema analizada anteriormente), excepto por el hecho de que la

implantación de ésta en un multiprocesador hace más sencilla la vida, puesto que todo el

diseño se puede centralizar.

La característica clave de este tipo de sistema es la existencia de una cola de ejecución:

una lista de todos los procesos en el sistema que no están bloqueados en forma lógica y

listos para su ejecución. La cola de ejecución es una estructura de datos contenida en la

memoria compartida.

Page 20: Trabajo Distribuidos

7/23/2019 Trabajo Distribuidos

http://slidepdf.com/reader/full/trabajo-distribuidos 20/27

  Página

20 

Un multiprocesador con una cola de ejecución.

8. 

CARACTERISTICAS DE LOS SISTEMAS DISTRIBUIDOSTRANSPARENCIA

El concepto de transparencia de un sistema distribuido va ligado de que todo el sistema

funcione de forma similar en todos los puntos de la red, independientemente de la

posición del usuario. La labor que el sistema operativo tiene es la de establecer los

mecanismos que oculten la naturaleza distribuida del sistema y que permitan trabajar a los

usuarios como si se tratara de un único equipo.

En un sistema transparente, las diferentes copias de un archivo deben aparecer al usuariocomo un archivo. Y la tarea del sistema operativo es la de controlar las copias, actualizarlas

en caso de modificación y en general, la unicidad de los recursos y el control de la

concurrencia. El que el sistema disponga de varios procesadores debe lograr un mayor

rendimiento del sistema, pero el sistema operativo debe controlar que tanto los usuarios

como los programadores vean el núcleo del sistema distribuido como un único

procesador. Otro punto clave que debe controlar el sistema operativo es el paralelismo,

debe distribuir las tareas entre los distintos procesadores como en un sistema

multiprocesador, pero con la dificultad añadida de que ésta tarea hay que realizarla a

través de varios ordenadores.

Page 21: Trabajo Distribuidos

7/23/2019 Trabajo Distribuidos

http://slidepdf.com/reader/full/trabajo-distribuidos 21/27

  Página

21 

Existen diferentes tipos de transparencia como son:

  Transparencia de acceso: acceso a objetos locales o remotos de la misma

manera.

  Transparencia de lugar: acceso a objetos sin conocer dónde están.

 

Transparencia de concurrencia: varios procesos pueden operar

concurrentemente usando objetos de información compartidos sin estorbarse.

  Transparencia de replicación: diferentes réplicas de un mismo objeto de

información sin enterarse a cuál se accede, ni diferencias entre ellos.

  Transparencia de fallo: aislamiento de fallos, de forma que las aplicaciones

puedan completar sus tareas.

  Transparencia de migración: permite mover los objetos de información sin

afectar a las aplicaciones.

  Transparencia de rendimiento: redistribución de cargas en el sistema sin

modificación en las aplicaciones.

  Transparencia de escalabilidad: permite asumir cambios de tamaño del sistema

y aplicaciones sin modificar la estructura del sistema ni los algoritmos de los

programas.

EFICIENCIA

La idea base de los sistemas distribuidos es la de obtener sistemas mucho más rápidos que

los ordenadores actuales. Con esto de nuevo nos encontramos con el paralelismo. Para

lograr un sistema eficiente hay que descartar la idea de ejecutar un programa en un único

procesador de todo el sistema, y pensar en distribuir las tareas a los procesadores libres

más rápidos en cada momento. La idea de que un procesador vaya a realizar una tarea de

forma rápida es bastante compleja, y depende de muchos aspectos concretos, como la

propia velocidad del procesador, la localidad, los datos, los dispositivos, etc.

FLEXIBILIDAD

Un proyecto en desarrollo como el diseño de un sistema operativo distribuido debe estar

abierto a cambios y actualizaciones que mejoren el funcionamiento del sistema. Esta

necesidad ha provocado una diferenciación entre las dos diferentes arquitecturas del

núcleo del sistema operativo: el núcleo monolítico y el micronúcleo. Las diferencias entre

Page 22: Trabajo Distribuidos

7/23/2019 Trabajo Distribuidos

http://slidepdf.com/reader/full/trabajo-distribuidos 22/27

  Página

22 

ambos son los servicios que ofrece el núcleo del sistema operativo. El núcleo monolítico

ofrece todas las funciones básicas del sistema integradas en el núcleo, como ejemplo de

este núcleo esta UNÍX. Estos sistemas tienen un núcleo grande y complejo, que engloba

todos los servicios del sistema. Mientras tanto, el micronúcleo incorpora solamente las

funciones fundamentales, que incluyen únicamente el control de los procesos y la

comunicación entre ellos y la memoria. El resto de los servicios se cargan dinámicamente a

partir de servidores en el nivel de usuario. En la actualidad la mayoría de sistemas

operativos distribuidos en desarrollo tienden a un diseño de micronúcleo. Los núcleos

tienden a contener menores errores y a ser más fáciles de implementar y de corregir.

ESCALABILIDAD

Un sistema operativo distribuido debería funcionar tanto para una docena de ordenadorescomo para varios millares. Al igual que no debería de ser determinante el tipo de red

utilizada (LAN o WAN) ni las distancias entre los equipos, etc. La escalabilidad propone que

cualquier ordenador individual debe ser capaz de trabajar independientemente como un

sistema distribuido, pero también debe poder hacerlo conectado a muchas otras

máquinas.

FIABILIDAD

Una de las ventajas claras que nos ofrece la idea de sistema distribuido es que el

funcionamiento de todo el sistema no debe estar ligado a ciertas máquinas de la red, sino

que cualquier equipo pueda suplir a otro en caso de que uno se estropee o falle. La forma

más evidente de lograr la fiabilidad de todo el sistema se encuentra en la redundancia. La

información no debe estar almacenada en un solo servidor de archivos, sino por lo menos

en dos máquinas. Mediante la redundancia de los principales archivos o de todos evitamos

el caso de que el fallo de un servidor bloquee todo el sistema, al tener una copia idéntica

de los archivos en otro equipo.

Otro tipo de redundancia más compleja se refiere a los procesos. Las tareas críticas

podrían enviarse a varios procesadores independientes, de forma que el primer

procesador realizaría la tarea normalmente, pero ésta pasaría a ejecutarse en otro

procesador si el primero hubiera fallado.

Page 23: Trabajo Distribuidos

7/23/2019 Trabajo Distribuidos

http://slidepdf.com/reader/full/trabajo-distribuidos 23/27

  Página

23 

9. MODELO CLIENTE - SERVIDOR

En un esquema Cliente-Servidor se denomina Cliente a la máquina que solicita un

determinado servicio y Servidor a la máquina que lo proporciona. El servicio puede ser la

ejecución de un determinado algoritmo, el acceso a determinado banco de información oel acceso a un dispositivo hardware. [Monge, Raúl, 2004].

Arquitectura cliente – servidor de software distribuido.

Por extensión, se puede aplicar el esquema Cliente-Servidor dentro de una máquina,

donde el proceso servidor y el proceso cliente son dos procesos independientes que

corren dentro de la misma instancia del sistema operativo. Es por tanto un elemento

primordial para que haya un sistema distribuido, la presencia de un medio físico de

comunicación entre ambas máquinas. A continuación se muestra en forma gráfica estaexplicación para entender mejor.

Arquitectura cliente – servidor con base de datos

Page 24: Trabajo Distribuidos

7/23/2019 Trabajo Distribuidos

http://slidepdf.com/reader/full/trabajo-distribuidos 24/27

  Página

24 

Una arquitectura es un conjunto de reglas, definiciones, términos y modelos que se

emplean para producir un producto. La arquitectura Cliente-Servidor agrupa conjuntos de

elementos que efectúan procesos distribuidos y computo cooperativo.

Los beneficios que ofrece esta arquitectura es un mejor aprovechamiento de la potencia

de computo (reparte el trabajo), reduce el tráfico en la red (viajan requerimientos), opera

bajo sistemas abiertos y permite el uso de interfaces gráficas variadas y versátiles.

El cliente es un conjunto de software y hardware que invoca los servicios de uno o varios

servidores y algunas de sus características son:

  El cliente oculta al Servidor y la Red.

  Detecta e intercepta peticiones de otras aplicaciones y puede re

direccionarlas.

  Dedicado a la cesión del usuario (Inicia - Termina).

  El método más común por el que se solicitan los servicios es a través de RPC

(Remote Procedure Calls).

Y las funciones más comunes del cliente son la de mantener y procesar todo el diálogo con

el usuario, el manejo de pantallas, menús e interpretación de comandos, entrada de datos

y validación, procesamiento de ayudas y la recuperación de los errores.

En cuanto al Servidor, éste es un conjunto de hardware y software que responde a los

requerimientos de un cliente, dentro de los tipos más comunes de Servidores se

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

Page 25: Trabajo Distribuidos

7/23/2019 Trabajo Distribuidos

http://slidepdf.com/reader/full/trabajo-distribuidos 25/27

  Página

25 

Algunas de las funciones del servidor son:

  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 (Datos, capacidad de CPU,

almacenamiento en disco, capacidad de impresión, manejo de memoria y

comunicación). 

10.  ARQUITECTURA DE CAPAS

Plataforma: El nivel de hardware y las capas más bajas de software se denominan, a menudo,

plataforma para sistemas distribuidos y  aplicaciones. Estas capas más bajas proporcionan

servicios a las que están por encima de ellas, y que son implementadas

independientemente en cada computador, proporcionando una interfaz de

programación del sistema a un nivel que facilita la comunicación y coordinación entre

procesos.

Middleware: 

Es una capa de software cuyo propósito es enmascarar la heterogeneidad y proporcionar

un modelo de programación conveniente para los programadores de aplicaciones. Se

representa mediante procesos u objetos en un conjunto de computadoras que

interactúan entre sí para implementar mecanismos de comunicación y de recursos

compartidos para aplicaciones distribuidas.

El middleware se ocupa de proporcionar bloques útiles para la construcción decomponentes software que puedan trabajar con otros en un sistema distribuido.

En particular, mejora el nivel de las actividades de comunicación de los programas de

aplicación soportando abstracciones como: procedimiento de invocación remota,

comunicación entre un grupo de procesos, notificación de eventos, replicación de

datos compartidos y transmisión de datos multimedia en tiempo real.

Page 26: Trabajo Distribuidos

7/23/2019 Trabajo Distribuidos

http://slidepdf.com/reader/full/trabajo-distribuidos 26/27

  Página

26 

Capas de software y hardware

11. 

EL MODELO PEER TO PEER (De Igual a Igual)

En esta arquitectura todos los procesos desempeñan tareas semejantes, interactuando

cooperativamente como iguales para realizar una actividad distribuida o cómputo sin

distinción entre dientes y servidores.

Aplicación basada en procesos Peer

La figura muestra un ejemplo con tres instancias de esta situación; en general, n

procesos parejos podrán interactuar entre ellos, dependiendo del patrón de

comunicación de los requisitos de la aplicación. 

La eliminación del proceso servidor reduce los retardos de comunicación entre

procesos al acceder a objetos locales. Considérese una aplicación de  pizarra distribuida

Page 27: Trabajo Distribuidos

7/23/2019 Trabajo Distribuidos

http://slidepdf.com/reader/full/trabajo-distribuidos 27/27

que Permite que usuarios en varias computadoras vean y modifiquen interactivamente un

dibujo que se comparte entre ellos.