Está en la página 1de 27

UNIVERSIDAD TECNOLGICA DE LOS ANDES

FACULTAD DE INGENIERA
ESCUELA PROFESIONAL DE INGENIERA DE
SISTEMAS E INFORMTICA

SISTEMAS DISTRIBUIDOS
ALUMNO:
YONATHAN CACERES GOMEZ
DOCENTE:
Ing. YULIANA TOMAYLLA GUTIERREZ

ABANCAY PER
2015

ndice
1.

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

2.

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

3.

EVOLUCIN 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

Pgina 2

1. INTRODUCCION A LOS SISTEMAS DISTRIBUIDOS


Los sistemas de cmputo estn sufriendo una revolucin 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 dlares cada una Como resultado
la mayor parte de las organizaciones tena tan slo un puado 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 dcada de 1980 dos avances tecnolgicos comenzaron a
cambiar esta situacin El primero fue el desarrollo de poderosos microprocesadores En principio
se dispona de mquinas de 8 bits pero pronto se volvieron comunes las CPU de 16, 32 e incluso 64
bits Muchos de ellos tenan el poder de cmputo de una computadora mainframe de tamao
respetable (es decir grande) pero por una fraccin de su precio.
La cantidad de mejoras ocurridas en la tecnologa de cmputo en el ltimo medio siglo es de
verdad impresionante y sin precedentes en otras industrias Desde la mquina que costaba 10
millones de dlares y ejecutaba una instruccin por segundo hemos llegado a mquinas que
cuestan 1 000 dlares y ejecutan 10 millones de instrucciones por segundo una ganancia
precio/rendimiento de 10" Si los automviles hubieran mejorado con esta razn en el mismo
periodo un Rolls Royce costara 10 dlares y dara mil millones de millas por galn (Por desgracia
es probable que tuviera un manual de 200 pginas indicando cmo abrir la puerta ).
El segundo desarrollo fue la invencin de redes de rea local de alta velocidad (LAN) permiten
conectar docenas e incluso cientos de mquinas dentro de un edificio de tal forma que se pueden
transferir pequeas cantidades de informacin entre ellas en un milisegundo o un tiempo
parecido.
Las cantidades mayores de datos se pueden desplazar entre las mquinas a razn de 10 a 100
Millones de bits/segundo o ms Las redes de rea amplia (WANs) permiten que millones de
mquinas en toda la Tierra se conecten con velocidades que varan de 64 Kbps a gigabits por
segundo para ciertas redes experimentales avanzadas.

Pgina 3

El resultado neto de estas tecnologas es que hoy en da no slo es posible sino fcil reunir
sistemas de cmputo compuestos por un gran nmero de CPU conectados mediante una red de
alta velocidad Estos reciben el nombre genrico de sistemas distribuidos en contraste con los
sistemas centralizados anteriores (o sistemas con slo un procesador) que constan de un CPU su
memoria sus perifricos y algunas terminales.
Slo 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 estn apenas en una etapa de surgimiento se han dado
algunos primeros pasos pero todava existe un largo camino por recorrer Sin embargo ya se sabe
bastante de estos sistemas por lo que podemos presentar las ideas bsicas.

Pgina 4

2. QUE ES UN SISTEMA DISTRIBUIDO?


Los sistemas distribuidos son aquellos en el que dos o ms mquinas colaboran para la obtencin
de un resultado y estn basados en las caractersticas de transparencia, eficiencia, flexibilidad,
escalabilidad y fiabilidad. El objetivo principal de los Sistemas Distribuidos es el mejor desempeo,
mayor fiabilidad y disponibilidad, comparticin de recursos e informacin, adems del
mejoramiento de la comunicacin, mayor adaptabilidad (ms natural, distribucin de carga, etc.)
La importancia del desarrollo de los Sistemas Distribuidos es debido a las necesidades de los
usuarios que requieren de aplicaciones ms sofisticadas as como tambin de las funciones
administrativas y econmicas.
A continuacin tenemos algunas definiciones de Sistemas Distribuidos:
Un Sistemas Distribuido consiste en una coleccin de computadoras
autnomas 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 mltiples procesadores autnomos, posiblemente de
diferente tipo, estn interconectados por una subred de comunicacin 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 slo por paso
de mensajes. [Coulouris, 2002].
Conjunto de computadores independientes que se muestran al usuario como

un sistema nico coherente. [Tanenbaum, 2001].

Pgina 5

3. EVOLUCIN HISTORICA
Aos 70
Una de las principales caractersticas de los sistemas distribuidos son los mainframes, (Sper
computadoras de sper capacidad y sper eficiencia). Pero en esta poca, se usaban redes
WANDS, de transmisin muy lenta, por tanto, el proceso muchas veces se vea limitado por su
capacidad de transmisin. Las mini computadoras eran emuladas como terminales tal que los
datos en la mainframe pudieran ser accedidos a travs de la emulacin de terminal.
Velocidad de transmisin: De 2400 a 9600 bits por segundo.

Aos 80
Al sistema de mainframes y mini computadoras se aaden los pc de escritorio y se cambian las
redes por LANS Y WANS.
Velocidades de transmisin: LAN: de 4 a 16 millones de bits por segundo. (Casi 2 megas), WANS:
de 56 kilobyte a 1.54 megabyte

Aos 90
Los sistemas de proceso de informacin son mucho menos cerrados, lo que permite hacer
sistemas distribuidos con diferentes mquinas de diferentes fabricantes conectados por red desde
diferentes reas geogrficas. Adems se implementa un gran avance llamado Procesamiento
Cooperativo Distribuido que permite el intercambio de la informacin interactivamente entre los
procesadores de diferentes computadores. Por ejemplo, la computacin cliente-servidor. Las
redes de trasferencia de datos son iguales o mayores 100 megas para redes LAN, WAN, MAN.
Actualidad
Los sistemas de computacin 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 sper computadoras conectadas a travs de redes con
capacidad de transmisin de gigabytes por segundo, y supervisadas por software de
administracin, estos sistemas reciben el nombre de sper computacin en red.

Pgina 6

4. ESTRUCTURA DE LOS SISTEMAS DISTRIBUIDOS


Como ya se defini anteriormente un sistema operativo distribuido consiste en una coleccin de
computadores conectados por una red de comunicaciones, que el usuario percibe como un solo
sistema (no necesita saber qu cosas estn en qu mquinas). El usuario accesa los recursos
Remotos de la misma manera en que accesa a recursos locales, o un grupo de computadores que
usan un software para conseguir un objetivo en comn.
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
comunicacin. Desde el punto de vista del usuario y de las aplicaciones, un sistema distribuido
proporciona una visin de mquina nica y no difiere de uno centralizado. En cambio, el punto de
vista del diseador (el sistema como gestor de los recursos) la estructura interna est
condicionada por la distribucin fsica 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 comunicacin, como es el caso de TCP y UDP. Sobre estos se disponen los soportes
adicionales para la comunicacin distribuida, como es el caso de RPC, RMI o DSM, y los servicios
especficos que proporcionan las propiedades del sistema distribuido (servicios middleware), como
es el caso de la gestin de tiempos, eventos y estado global, sobre los que se asientan las
aplicaciones.

Pgina 7

Estructura de un sistema distribuido.


El tamao 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

Pgina 8

Menos autonoma entre computadores


Da la impresin 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 propsito 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 comunicacin que proporciona alto grado de transparencia,
administracin de recursos por nodos, no tienen el mismo sistema operativo en todos los nodos y
ofrece n nmero 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 heterogneas.
Funciona como una capa de abstraccin de software distribuida que se sita 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 programacin, proporcionando
una API para la fcil programacin y manejo de aplicaciones distribuidas.

Pgina 9

5. EJEMPLOS DE SISTEMAS DISTRIBUIDOS


5.1. INTERNET
Internet es una

vasta

coleccin

interconectados. La figura

de redes de computadoras de diferentes tipos

muestra una

porcin

tpica de

Internet. Programas

ejecutndose en los computadores conectados a ella interactan mediante paso de


mensajes empleando un medio comn de comunicacin. El diseo y la construccin de
los mecanismos de comunicacin Internet es una realizacin tcnica fundamental, que
permite que un programa que se est ejecutando en cualquier parte dirija mensajes a
programas en cualquier otra parte.

Internet es tambin 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

comunicacin de los datos multimedia es actualmente bastante limitada porque no


proporciona la infraestructura necesaria para
flujos individuales de datos.

Pgina
10

reservar capacidad de la red para

5.2. INTRANETS
Una intranet es una porcin de internet que es administrada separadamente y que tiene
un lmite que puede ser configurado para hacer cumplir polticas de seguridad local.

La figura muestra una intranet tpica, est compuesta de varias redes de rea local
enlazadas por conexiones backbone. La configuracin de red de una intranet particular es
responsabilidad de la organizacin 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 organizacin en diferentes pas.

Pgina
11

5.3. COMPUTACION MOVIL Y UBICUA


Los avances tecnolgicos en la miniaturizacin de dispositivos y en redes inalmbricas han
llevado cada vez ms a la integracin de dispositivos de computacin pequeos y
porttiles en sistemas distribuidos, estos dispositivos incluyen:
Computadoras porttiles.
Dispositivos de mano (handheld), entre los que se incluyen asistentes digitales
personales (PDA), telfonos mviles, buscapersonas y video cmaras o cmaras
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 frigorficos.
La facilidad de transporte de muchos de estos dispositivos: junto con su capacidad para
conectarse adecuadamente a redes en diferentes lugares, hace posible la computacin
mvil. Se llama computacin mvil a la realizacin de tareas de cmputo mientras el
usuario est en movimiento o visitando otros lugares distintos de su entorno habitual.

Computacin ubicua es la utilizacin concertada de muchos dispositivos de computacin


pequeos y

baratos que

estn presentes en los entornos fsicos

de los usuarios,

incluyendo la casa, la oficina y otros. El trmino ubicuo est pensado para sugerir que los
pequeos dispositivos llegarn a estar tan extendidos en los objetos de cada da que
apenas nos daremos cuenta de ellos.

Pgina
12

Dispositivos porttiles y de mano en un sistema distribuido.

6. CONCEPTOS DE HARDWARE
Con el paso de los aos se han propuesto diversos esquemas de clasificacin para los
sistemas de cmputo con varios CPU pero ninguno de ellos ha tenido un xito completo ni
se ha adoptado de manera amplia Es probable que la taxonoma ms citada sea la de Flynn
(1972) aunque es algo rudimentaria Flynn eligi dos caractersticas consideradas por l
como esenciales el nmero de flujos de instrucciones y el nmero 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 categora desde las computadoras personales hasta
las grandes mainframes.
La siguiente categora es SIMD (Single Instruction Mltiple Data) con un flujo de
instrucciones y varios flujos de datos Este tipo se refiere a ordenar procesadores con
unidad de instruccin que busca una instruccin y despus instruye a varias unidades de
datos para que la lleven a cabo en paralelo cada una con sus propios datos Estas mquinas
son tiles para los cmputos que repiten los mismos clculos en varios conjuntos de datos

Pgina
13

por ejemplo sumando todos los elementos de 64 vectores independientes Ciertas


supercomputadoras son SIMD.
La siguiente categora es MISD (Mltiple Instruction Single Data) con un flujo de varas
instrucciones y un flujo de datos Ninguna de las computadoras conocidas se ajusta a este
modelo Por ltimo est MIMD (Mltiple Instruction Mltiple 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 clasificacin 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 comn junto con un mdulo de memoria Una configuracin 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 tpico tiene 32 o 64 lneas de direcciones 32 o 64
lneas de datos y 32 o ms lneas de control todo lo cual opera en paralelo Para leer una
palabra de memoria un CPU coloca la direccin de la palabra deseada en las lneas de
direcciones del bus y coloca una seal en las lneas de control adecuadas par a indicar que
desea leer La memoria responde y coloca el valor de la palabra en las lneas de datos para
permitir la lectura de sta por parte del CPU solicitante.

6.2. MULTIPROCESADORES CON CONMUTADOR


Para construir un multiprocesador con ms de 64 procesadores, es necesario un mtodo
distinto para conectar cada CPU con la memoria. Una posibilidad es dividir la memoria en
mdulos y conectarlos a las CPU con un conmutador de cruceta, como se muestra en la
figura. Cada CPU y cada memoria tienen una conexin que sale de l, como se muestra en
la figura. En cada interseccin est un delgado conmutador de punto de cruce electrnico
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
momentnea, 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

Pgina
14

intentan tener acceso a la misma memoria en forma simultnea, uno de ellos deber
esperar.

En resumen, los multiprocesadores basados en buses, incluso con cachs monitores,


quedan limitados a lo ms a 64 CPUs por la capacidad del bus. Para rebasar estos lmites,
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 mquinas NUMA necesitan complejos algoritmos para la buena colocacin del
software.
La conclusin es clara: la construccin de un multiprocesador grande, fuertemente
acoplado y con memoria compartida es difcil y cara.

Pgina
15

6.3. MULTI COMPUTADORAS CON BASE EN BUSES


Por otro lado, la construccin de una multicomputadora (es decir, sin memoria
compartida) es fcil. Cada CPU tiene conexin directa con su propia memoria local. El
nico problema restante es la forma en que los CPU se comunicarn entre s. Es claro que
aqu tambin se necesita cierto esquema de interconexin, pero como slo es para la
comunicacin entre un CPU y otro, el volumen del trfico ser de varios rdenes menor en
relacin con el uso de una red de interconexin para el trfico CPU-memoria.
En la figura vemos una multicomputadora con base en un bus. Es similar, desde el punto
de vista topo lgico, al multiprocesador basado en un bus, pero como tendr menor
trfico, 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 comparacin con
300 Mb/seg o ms para un bus con un plano de base). A s, la figura es ms a menudo una
coleccin de estaciones de trabajo en una LAN que una coleccin de tarjetas de CPU que
se insertan en un bus rpido (aunque esto ltimo definitivamente es un diseo posible).

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

6.4. MULTICOMPUTADORAS CON CONMUTADOR


Nuestra ltima categora es la de las multicomputadoras con conmutador. Se han
propuesto y construido varias redes de interconexin, pero todas tienen la propiedad de
que cada CPU tiene acceso directo y exclusivo a su propia memoria particular. La figura
muestra dos topologas populares, una retcula y un hipercubo. Las retculas son fciles de
comprender y se basan en las tarjetas de circuitos impresos. Se adecan mejor a
problemas con naturaleza bidimensional inherente, como la teora de grficas o la visin
(por ejemplo, los ojos de un robot o el anlisis de fotografas).
Pgina
16

(a) Retcula

(b) Hipercubo

7. CONCEPTOS DE SOFTWARE
Los sistemas operativos no se pueden clasificar tan fcil como el hardware. Por su propia
naturaleza, el software es vago y amorfo. Aun as, es ms o menos posible distinguir dos
tipos de sistemas operativos para los de varios CPU: tos dbilmente acoplados y los
fuertemente acoplados. Como veremos, el software dbil o fuertemente acoplado es un
tanto anlogo al hardware dbil o fuertemente acoplado.
El software dbilmente acoplado permite que las mquinas y los usuarios de un sistema
distribuido sean independientes entre s en lo fundamental, pero que interacten en
cierto grado cuando sea necesario. Consideremos un grupo de computadoras
personales, cada una de las cuales tiene su propio CPU, su propia memoria, su propio
disco duro y su propio sistema operativo, pero que comparten ciertos recursos, como las
impresoras lser y las bases de datos en una LAN. Este sistema est dbilmente
acoplado, puesto que las mquinas individuales se distinguen con claridad, cada una de
las cuales tiene su propio trabajo por realizar. Si la red falla por alguna razn, las
mquinas individuales continan su ejecucin en cierto grado considerable, aunque se
puede perder cierta funcionalidad (por ejemplo, la capacidad de imprimir archivos).

Pgina
17

7.1. SISTEMA OPERATIVO DE REDES


Esta forma de comunicacin es primitiva en extremo y ha provocado que los diseadores
de sistemas busquen formas ms convenientes de comunicacin y distribucin de la
informacin. Un mtodo consiste en proporcionar un sistema de archivos global,
compartido, accesible desde todas las estaciones de trabajo. Una o varias mquinas,
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 mquinas (no servidoras), llamadas clientes.
Cada una de las solicitudes que llegue se examina, se ejecuta y la respuesta se enva 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 jerrquico de archivos, cada
uno de los cuales tiene un directorio raz, 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.

Pgina
18

7.2. SISTEMAS REALMENTE DISTRIBUIDOS

El objetivo de un sistema de este tipo es crear la ilusin en las mentes de los usuarios que
toda la red de computadoras es un sistema de tiempo compartido, en vez de una coleccin
de mquinas 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 coleccin de mquinas enlazadas mediante una red pero
que actan 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 combinacin que queremos analizar es el software y hardware fuertemente
acoplados. Aunque existen varias mquinas de propsito especial en esta categora (como
las mquinas dedicadas a las bases de datos), los ejemplos ms comunes de propsito
general son los multiprocesadores que operan como un sistema de tiempo compartido de
UNIX, slo que con varios CPU en vez de uno. Para el mundo exterior, un multiprocesador
con 32 CPU de 30 MIPS acta 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
implantacin de sta en un multiprocesador hace ms sencilla la vida, puesto que todo el
diseo se puede centralizar.
La caracterstica clave de este tipo de sistema es la existencia de una cola de ejecucin:
una lista de todos los procesos en el sistema que no estn bloqueados en forma lgica y
listos para su ejecucin. La cola de ejecucin es una estructura de datos contenida en la
memoria compartida.

Pgina
19

Un multiprocesador con una cola de ejecucin.

8. CARACTERISTICAS DE LOS SISTEMAS DISTRIBUIDOS


TRANSPARENCIA
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
posicin 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 usuario
como un archivo. Y la tarea del sistema operativo es la de controlar las copias, actualizarlas
en caso de modificacin 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 ncleo 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 aadida de que sta tarea hay que realizarla a
travs de varios ordenadores.

Pgina
20

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 dnde estn.
Transparencia

de

concurrencia:

varios

procesos

pueden

operar

concurrentemente usando objetos de informacin compartidos sin estorbarse.


Transparencia de replicacin: diferentes rplicas de un mismo objeto de
informacin sin enterarse a cul se accede, ni diferencias entre ellos.
Transparencia de fallo: aislamiento de fallos, de forma que las aplicaciones
puedan completar sus tareas.
Transparencia de migracin: permite mover los objetos de informacin sin
afectar a las aplicaciones.
Transparencia de rendimiento: redistribucin de cargas en el sistema sin
modificacin en las aplicaciones.
Transparencia de escalabilidad: permite asumir cambios de tamao 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 ms rpidos 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
ms rpidos en cada momento. La idea de que un procesador vaya a realizar una tarea de
forma rpida 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 diseo de un sistema operativo distribuido debe estar
abierto a cambios y actualizaciones que mejoren el funcionamiento del sistema. Esta
necesidad ha provocado una diferenciacin entre las dos diferentes arquitecturas del
ncleo del sistema operativo: el ncleo monoltico y el microncleo. Las diferencias entre

Pgina
21

ambos son los servicios que ofrece el ncleo del sistema operativo. El ncleo monoltico
ofrece todas las funciones bsicas del sistema integradas en el ncleo, como ejemplo de
este ncleo esta UNX. Estos sistemas tienen un ncleo grande y complejo, que engloba
todos los servicios del sistema. Mientras tanto, el microncleo incorpora solamente las
funciones fundamentales, que incluyen nicamente el control de los procesos y la
comunicacin entre ellos y la memoria. El resto de los servicios se cargan dinmicamente a
partir de servidores en el nivel de usuario. En la actualidad la mayora de sistemas
operativos distribuidos en desarrollo tienden a un diseo de microncleo. Los ncleos
tienden a contener menores errores y a ser ms fciles de implementar y de corregir.

ESCALABILIDAD
Un sistema operativo distribuido debera funcionar tanto para una docena de ordenadores
como para varios millares. Al igual que no debera 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 tambin debe poder hacerlo conectado a muchas otras
mquinas.

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 mquinas de la red, sino
que cualquier equipo pueda suplir a otro en caso de que uno se estropee o falle. La forma
ms evidente de lograr la fiabilidad de todo el sistema se encuentra en la redundancia. La
informacin no debe estar almacenada en un solo servidor de archivos, sino por lo menos
en dos mquinas. 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 idntica
de los archivos en otro equipo.
Otro tipo de redundancia ms compleja se refiere a los procesos. Las tareas crticas
podran enviarse a varios procesadores independientes, de forma que el primer
procesador realizara la tarea normalmente, pero sta pasara a ejecutarse en otro
procesador si el primero hubiera fallado.

Pgina
22

9. MODELO CLIENTE - SERVIDOR


En un esquema Cliente-Servidor se denomina Cliente a la mquina que solicita un
determinado servicio y Servidor a la mquina que lo proporciona. El servicio puede ser la
ejecucin de un determinado algoritmo, el acceso a determinado banco de informacin o
el acceso a un dispositivo hardware. [Monge, Ral, 2004].

Arquitectura cliente servidor de software distribuido.


Por extensin, se puede aplicar el esquema Cliente-Servidor dentro de una mquina,
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 fsico de
comunicacin entre ambas mquinas. A continuacin se muestra en forma grfica esta
explicacin para entender mejor.

Arquitectura cliente servidor con base de datos

Pgina
23

Una arquitectura es un conjunto de reglas, definiciones, trminos y modelos que se


emplean para producir un producto. La arquitectura Cliente-Servidor agrupa conjuntos de
elementos que efectan 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 trfico en la red (viajan requerimientos), opera
bajo sistemas abiertos y permite el uso de interfaces grficas variadas y verstiles.
El cliente es un conjunto de software y hardware que invoca los servicios de uno o varios
servidores y algunas de sus caractersticas son:
El cliente oculta al Servidor y la Red.
Detecta e intercepta peticiones de otras aplicaciones y puede re
direccionarlas.
Dedicado a la cesin del usuario (Inicia - Termina).
El mtodo ms comn por el que se solicitan los servicios es a travs de RPC
(Remote Procedure Calls).
Y las funciones ms comunes del cliente son la de mantener y procesar todo el dilogo con
el usuario, el manejo de pantallas, mens e interpretacin de comandos, entrada de datos
y validacin, procesamiento de ayudas y la recuperacin 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 ms comunes de Servidores se
encuentran: Servidor de Archivos (FTP, Novell), Servidor de Bases de Datos (SQL, CBASE,
ORACLE, INFORMIX), Servidor de Comunicaciones, Servidor de Impresin, Servidor de
Terminal, Servidor de Aplicaciones (Windows NT, Novell).

Pgina
24

Algunas de las funciones del servidor son:


Acceso, almacenamiento y organizacin de datos.
Actualizacin de datos almacenados.
Administracin de recursos compartidos.
Ejecucin de toda la lgica para procesar una transaccin.
Procesamiento comn de elementos del servidor (Datos, capacidad de CPU,

almacenamiento en disco, capacidad de impresin, manejo de memoria y


comunicacin).

10. ARQUITECTURA DE CAPAS


Plataforma:
El nivel de hardware y las capas ms bajas de software se denominan, a menudo,
plataforma para sistemas distribuidos y aplicaciones. Estas capas ms bajas proporcionan
servicios a las que

estn por

independientemente en

cada

encima de ellas,
computador,

que

son

proporcionando una

implementadas
interfaz

de

programacin del sistema a un nivel que facilita la comunicacin y coordinacin entre


procesos.
Middleware:
Es una capa de software cuyo propsito es enmascarar la heterogeneidad y proporcionar
un modelo de programacin conveniente para los programadores de aplicaciones. Se
representa mediante procesos u objetos en un conjunto de computadoras que
interactan entre s para implementar mecanismos de comunicacin y de recursos
compartidos para aplicaciones distribuidas.
El middleware se ocupa de proporcionar bloques tiles para la construccin de
componentes software que puedan trabajar con otros en un sistema distribuido.
En particular, mejora el nivel de las actividades de comunicacin de los programas de
aplicacin soportando abstracciones como:

procedimiento de

comunicacin entre un grupo de procesos, notificacin

de eventos, replicacin de

datos compartidos y transmisin de datos multimedia en tiempo real.

Pgina
25

invocacin remota,

Capas de software y hardware

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


En esta arquitectura todos los procesos desempean tareas semejantes, interactuando
cooperativamente como iguales para realizar una actividad distribuida o cmputo sin
distincin entre dientes y servidores.

Aplicacin basada en procesos Peer


La figura muestra un ejemplo con tres instancias de esta
procesos parejos podrn

interactuar entre ellos,

situacin; en general, n

dependiendo del patrn de

comunicacin de los requisitos de la aplicacin.


La eliminacin del proceso servidor reduce

los retardos de comunicacin entre

procesos al acceder a objetos locales. Considrese una aplicacin de pizarra distribuida

Pgina
26

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


dibujo que se comparte entre ellos.

Pgina
27