Sie sind auf Seite 1von 42

Sistemas Distribuidos

Qu es un sistema distribuido?
Un sistema de cmputo compuesto por un gran nmero de CPU conectados mediante una red de
alta velocidad. Un sistema distribuido es una coleccin de computadoras independientes que
aparecen ante los usuarios del sistema como una nica computadora.

Hardware Las maquinas son autnomas


Software Los usuarios piensan el sistema como una nica computadora

Ejemplos: Sistemas de Archivos nico, Sistema de Banco con sucursales


Sistemas Centralizados: constan de un CPU sus memorias sus perifricos y algunas terminales.

Objetivos de Un Sistema Distribuido


Ventajas Distribuidos vs Centralizados:

Los sistemas distribuidos tienen en potencia una proporcin precio/desempeo mucho


mejor que un sistema centralizado.
Ciertas aplicaciones son distribuidas en forma inherente trabajo cooperativo apoyado por
computadora
Mayor confiabilidad Al distribuir la carga de trabajo en muchas maquinas
Escalabilidad se puede incrementar el poder de computo de manera sencilla agregando mas
CPU

Ventajas Distribuidos con respecto a las Pc Independientes

Poder compartir datos, Perifricos caros y dispositivos de almacenamiento masivos


Una razn para la conexin de un grupo de computadoras aisladas en un sistema distribuido
es Lograr un mejor comunicacin entre las personas.
Un sistema distribuido tiene mayor flexibilidad potencial que el hecho de darle a cada
usuario una computadora personal aislada. De esta manera la carga de trabajos se puede
difundir entre las computadoras de forma ms eficaz.

Desventajas de los Sistemas Distribuidos

El software muy complicado la tarea de diseo implantacin y uso de un software


distribuido

Problema debido a las redes de comunicacin ,pueden perder mensajes saturarse estar mal
implementada
Seguridad al compartir datos accedidos por muchos usuarios

Conceptos de Software
Sistemas Operativos de Redes
Software dbilmente acoplado: permite que las mquinas y los usuarios de un sistema distribuido
sean independientes entere si en lo fundamental, pero que interacten en cierto grado cuando se
necesario.
Software Fuertemente Acoplado: El programa de aplicacin y el sistema operativo
necesario para soportarlo, estn muy acoplados.

Software dbilmente acoplado en Hardware dbilmente acoplado


Ejemplo Servidor de Archivos: El sistema operativo a utilizar en este tipo de ambiente debe
controlar las estaciones de trabajo individual, a los servidores de archivos y debe encargarse de la
comunicacin entre ellos. En esta situacin cada mquina tiene un alto grado de autonoma y
existen pocos requisitos a lo largo de todos los sistemas, las personas se refieren a ella como un
sistema operativo en red

Sistemas Realmente Distribuidos


Software fuertemente acoplado en hardware dbilmente acoplado
(Multicomputadoras):
Consiste en crear la ilusin a los usuarios que toda la red de computadoras es un sistema de tiempo
compartido, en vez de una coleccin de mquinas diversas, una imagen de un nico sistema.
Los usuarios no deben ser conscientes de la existencia de varios CPU en el sistema.
Caractersticas de los Sistemas Distribuidos:

Mecanismo de comunicacin global entre los procesos


Esquema global de proteccin.
Administracin de procesos deben ser las mismas en todas partes.
El sistema de archivos debe tener la misma apariencia en todas partes
Una misma interfaz para llamadas al sistema

Como consecuencia lgica del hecho de tener una misma interfaz de llamadas al sistema en
todas partes, es normal que se ejecuten ncleos idnticos en todos los CPU del sistema. Esto
facilita la coordinacin de actividades globales.

Sin embargo cada ncleo debe tener un control considerable sobre sus propios recursos locales.

Sistemas Multiprocesador con tiempo compartido


Los multiprocesadores con memoria compartida tambin ofrecen la imagen de nico sistema, pero
lo hacen mediante la va de centralizar todo, por lo que en realidad, este caso es un sistema. Los
multiprocesadores con memoria compartida no son sistemas distribuidos.

Software y Hardware fuertemente acoplado


En general son los multiprocesadores que operan como un sistema de tiempo compartidos de
UNIX, solo que con varios CPU en vez de uno.
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.

DIFERENCIAS ENTRE LOS TRES TIPOSD E SISTEMAS

ASPECTOS DEL DISEO


Trasparencia:

Disear el sistema de forma que todas las personas piensen que la coleccin de mquinas es tan solo
un sistema de tiempo compartido, de un procesador, a la manera antigua.
La trasparencia se puede lograr en dos niveles distintos. Lo ms fcil es ocultar la distribucin a los
usuarios, aunque tambin es posible hacer que el sistema sea trasparente para los programas.
Los distintos tipos de trasparencia en un sistema distribuido son:

Transparencia de localizacin: los usuarios no pueden indicar la localizacin de los


recursos.

Transparencia de migracin: los recursos se pueden mover a voluntad sin cambiar sus
nombres.

Transparencia de rplica: los usuarios no pueden indicar el nmero de copias existentes.

Transparencia de concurrencia: varios usuarios pueden compartir recursos de manera


automtica.

Transparencia de paralelismo: las actividades pueden ocurrir en paralelo sin el


conocimiento de los usuarios.

Flexibilidad
El diseo de un sistema distribuido debe hacerse con la idea de facilitar los cambios futuros. A este
respecto, los micro ncleos son superiores a los ncleos monolticos.
El micronucleo es mas flexible, ya que casi no hace nada , en trminos bsicos , proporciona solo
cuatro servicios minimos:
1.
2.
3.
4.

Un mecanismo de comunicacin entre procesos


Cierta administracin de la memoria.
Una cantidad limitada de planificacin y administracin de procesos de bajo nivel.
Entrada/salida de bajo nivel.

Todos los dems servicios del sistema operativo se implantan por lo general como servidores a nivel
usuario.
La ventaja de este mtodo es que es altamente modular: existe una interfaz bien definida con cada
servicio (Conjunto de mensajes que comprende el servidor) y cada servicio es igual de accesible
para todos los clientes , en forma independiente de la posicin. Adems es fcil de implatar,instlar y
depurar nuevos servicios, Puesto que la adicin o modificacin de un servicio no requiere el alto
total del sistema y el arranque del nuevo ncleo como en el caso de un ncleo monoltico. Es
precisamente esta capacidad de aadir eliminar y modificar servicios lo que le da al micro ncleo su
flexibilidad.

Confiabilidad

Uno de los objetivos originales de la construccin de sistemas distribuidos fue el hacerlos ms


confiables que los sistemas con un procesador. La idea es que si una mquina falla, alguna otra
mquina se encargue del trabajo. En otras palabras, en teora, la confiabilidad global del sistema
podra ser el OrBooleano de la confiabilidad de los componentes.
Un aspecto importante de la confiabilidad es la Disponibilidad, se refiere a la fraccin de tiempo
que se puede usar el sistema
Otro aspecto de la confiabilidad general es la seguridad. Los archivos y otros recursos deben ser
protegidos contra el uso no autorizado.
Tambin otro aspecto de la confiabilidad es la tolerancia de fallas. los sistemas distribuidos se
deben disear de forma que escondan las fallas; es decir, ocultarlo a los usuarios.

Desempeo
Cuando se ejecuta una aplicacin en un sistema distribuido, no debe parecer peor que su ejecucin
en un procesador. Se pueden utilizar diversas mtricas de desempeo. El tiempo de respuesta es
una, pero tambin lo son el rendimiento, uso del sistema y cantidad consumida de la capacidad de la
red. Adems es frecuente que el resultado de cualquier parmetro dependa de la naturaleza de ste.

Escalabilidad
Disear un sistema distribuido que pueda escalar hacia sistemas ms grandes en un futuro.

Comunicacin En Los Sistemas Distribuidos


EL MODELO CLIENTE SERVIDOR
Un sistema Operativo como un grupo de procesos en cooperacin, llamados
servidores, que ofrezcan servicios a los usuarios, llamados clientes, las
mquinas de los clientes y servidores ejecutaran por lo general el mismo micro
ncleo y ambos se ejecutan como procesos de los usuarios.
Lo usual es que el modelo cliente-servidor se base en un protocolo
solicitud/respuesta sencillo y sin conexin. El cliente enva un mensaje de
solicitud al servidor para pedir cierto servicio. El servidor hace el trabajo y

regresa los datos solicitados o un cdigo de error para indicar la razn por la
cual es trabajo no se pudo llevar a cabo.

Comunicacin
PRIMITIVAS CON BLOQUEO VS SIN BLOQUEO.
Primitivas con bloqueo: cuando un proceso llama a send, especifica el
destino y un buffer donde enviar ese destino. Mientras se enva un mensaje, el
proceso emisor se bloquea. La instruccin que sigue a la llamada send no se
ejecuta sino hasta que el mensaje se enva en su totalizada. De manera
anloga una llamada receive no regresa el control sino hasta que en realidad
se reciba un mensaje y este se coloque en el buffer mensajes adonde apunta el
parmetro.

Primitivas sin Bloque (Asncronas): Si send no tiene bloqueo, regresa de


inmediato el control a quien hizo la llamada antes de enviar el mensaje. La
ventaja de este esquema es que el proceso emisor puede continuar su
computo en forma paralela con la trasmisin del mensaje, en vez de tener
inactivo al CPU.
La eleccin entre primitivas con o sin bloque lo hacen por lo general los
diseadores del sistema.

Una desventaja es que el emisor no puede modificar el buffer de mensajes sino


hasta que el mensaje haya sido enviado. Existen dos formas para salir del
problema . laprimera solucin es que el ncleo copie el mensaje en un buffer
interno del nucleo y que entonces permita al proceso que contine.

La segunda solucin es interrumpir al emisor cuando se envi el mensaje, para


informarle que el buffer est de nuevo disponible.
Si solo se dispone un hilo de control las opciones son:
1. Send con bloqueo (CPU inactivo durante la trasmisin de los mensajes).
2. Send sin bloqueo, con copia (Se desperdicia el tiempo de cpu para la
copia adicional).
3. Send sin bloqueo , con interrupcin (Dificulta la programacin).

En condiciones normales, la primera opcin es la mejor. No maximiza el


paralelismo, pero es fcil comprender e implantar.
La diferencia principal entre la primitiva sncrona y una asncrona es si el
emisor puede volver a utilizar el buffer de mensajes en forma inmediata
despus de recuperar el control sin miedo de resolver el send. El momento que
el mensaje llega al receptor es irrelevante.

PRIMITIVAS ALMACENADAS EN BUFFER VS. NO


ALMACENADAS
Primitivas no almacenadas: esto se refiere que una direccin se refiere a un
proceso especifico.
una llamada receive(addr,&m) indica al nucleo de la maquina donde se
ejecuta :

Que el proceso que el proceso que llamo escucha a la direccin addr.


Que est preparada para recibir un mensaje enviado a esa direccin.

Que Se dispone de un nico buffer de mensajes al que apunta m, con el


fin de capturar el mensaje que llegara.
Que cuando el mensaje llegue ser copiado (por el ncleo receptor) al
buffer: se elimina entonces el bloqueo del proceso receptor.

Este esquema funciona bien mientras el servidor llame a receive antes que el
cliente llame a send.
El problema se presenta cuando el send se lleva a cabo antes que el receive:

El ncleo del servidor:


o
o

No sabe cul de sus procesos utiliza la direccin en el mensaje


recin llegado.
No sabe dnde copiar el mensaje recibido.

Una solucin consiste en:

Descartar el mensaje.

Dejar que el cliente espere.

Confiar en que el servidor llame a receive antes de que el cliente vuelva a


transmitir; por ello el cliente podra tener que intentar varias veces.

Primitivas almacenadas en buffer:


Otra solucin consiste en hacer que el ncleo receptor mantenga pendiente los mensajes por un
instante:

Para prevenir que un receive adecuado se realice en un tiempo corto.


Cuando llega un mensaje no deseado, se inicializa el cronometro:
o Si el tiempo expira antes de que ocurra un receive apropiado, el mensaje se
descarta.
Se reduce la probabilidad de que un mensaje se pierda.

Se debe almacenar y manejar los mensajes que llegan en forma prematura


Se necesitan los buffer y la administracin de los mismos
Se puede hacer mediante una nueva estructura de datos llamada buzon:
o Un Proceso interesado en recibir mensajes:
Le indica al ncleo que cree un buzn para el.
Especifica una direccin en la cual buscar los paquetes de la red
o Todos los mensajes que lleguen en esa direccin se coloca en el buzon.

La llamada receive elimina un mensaje del buzon o se bloquea (si se utilizan primitivas con
bloqueo) si no hay un mensaje presente.
Esta tcnica se denomina primitiva con almacenamiento en buffers.
Los buzones tienen el problema que son finitos y pueden ocuparse en su totalidad:

(b) Transferencia de mensajes con buffers

PRIMITIVAS CONFIABLES VS. NO CONFIABLES


Hasta ac se ha supuesto que los mensajes enviados siempre sern recibidos pero en la realidad, los
mensajes se pueden perder por diversas causas.
NO CONFIABLE
Un enfoque de este problema consiste en volver a definir la semntica send para hacerlo no
confiable:

El sistema no garantiza la entrega de los mensajes


La implantacin de una comunicacin confiable se deja en manos de los usuarios.

CONFIABLES
Otro mtodo exige que el ncleo de la maquina receptora envi un reconocimiento al ncleo de la
maquina emisora: (Solicitud-reconocimiento-respuesta-reconocimiento)

Solo cuando reciba el reconocimiento, el ncleo emisor liberara al proceso usuarios


(Cliente).
La solicitud de un cliente a un servidor es reconocida por el ncleo del servidor.
La respuesta del servidor de regreso al clientes es reconocida por el ncleo del cliente.
Una solicitud de respuesta consta de cuatro mensajes.

Otra solucin aprovecha el hecho de que la comunicacin cliente servidor se estructura:


(Solicitud-respuesta-reconocimiento).
En este esquema la respuesta funciona como un reconocimiento a la solicitud

LLAMADA A UN PROCEDIMIENTO REMOTO (RPC)


Permitir a los programas que llamasen a procedimientos localizados en otras
mquinas.

Cuando un procesos en la maquina A llama a un procedimiento en la maquina B:


o El proceso que realiza la llamada se suspende.
o La ejecucin del procedimientos se realiza en B
La informacin se puede transportar de un lado a otro mediante parmetros y puede
regresar en el resultado del procedimiento.
El programador no se preocupa de una transferencia de mensajes o de la e/s
A este mtodo se lo denomina llamada a procedimiento remoto o RPC
El procedimiento que hace la llamada y el que la recibe se ejecutan en mquinas diferentes
es decir que utilizan espacios de direcciones distintos.

Operaciones Basicas de RPC


La idea es que la llamada a un procedimiento remoto (RPC) se parezca lo mas posible a una llamda
local:

La RPC debe ser trasparente


El procedimientos que hace la llamada no debe ser consciente de que el procedimiento
llamado se ejecuta en una maquina distinta o viceversa
Para el servidor es como si tuviera una llamada directa del cliente; lleva
a cabo el trabajo y regresa el resultado a quien hizo la llamada, de la
forma usual.

Pasos como una llamada a un procedimiento remoto:

El procedimiento cliente llama al stub del cliente de la manera usual.

El stub del cliente construye un mensaje y hace un sealamiento al ncleo.

El ncleo enva el mensaje al ncleo remoto.

El ncleo remoto proporciona el mensaje al stub del servidor.

El stub del servidor desempaca los parmetros y llama al servidor.

El servidor realiza el trabajo y regresa el resultado al stub.

El stub del servidor empaca el resultado en un mensaje y hace un sealamiento al


ncleo.

El ncleo remoto enva el mensaje al ncleo del cliente.

El ncleo del cliente da el mensaje al stub del cliente.

El stub desempaca el resultado y regresa al cliente.

TRANSFERENCIA DE PARAMETROS RPC


El empacamiento de parmetros en un mensaje se llama ordenamiento de parmetros.
El mensaje tambin contiene el nombre o nmero del procedimiento por llamar , el servidor podra
soportar varias llamadas y el tiene que indicar cual de ellas necesita.
Cuando el mensaje llega al Servidor

El resguardo (Stub) lo examina para ver cual procedimientos necesita.


Lleva a cabo la llamada apropiada

La llamada real del resguardo al servidor es similar a la llamada original del cliente, excepto en que
los parmetros son variables inicializadas a partir del mensaje recibido en vez de ser constantes.

CONEXIN DINAMICA (Dynamic binding) EN RPC


Un tema fundamental es la forma en que el cliente localiza al servidor.

Un mtodo consiste en integrar dentro del cdigo del cliente la direccin (en la red) del
servidor:

El problema es que resulta demasiado rgido.

Si el servidor se desplaza, si se duplica o si cambia la interfaz, habra que localizar y


volver a compilar los numerosos programas.

Una solucin es la conexin dinmica para que concuerden los clientes y los servidores.
El punto de inicio de la conexin dinmica es la especificacin formal del servidor, que
indica el nombre del servidor, el nmero de versin y una lista de los procedimientos que
proporciona.
Se tienen los tipos de parmetros para cada procedimiento y cada parmetro queda
determinado como parmetro in, out o in-out.
La direccin es relativa al servidor.

SEMANTICA DE RPC EN PRECENCIA DE FALLOS


El objetivo de RPC es ocultar la comunicacin al hacer que las llamadas a procedimientos
remotos se parezcan a las llamadas locales
El problema se presenta cuando aparecen los errores, ya que las diferencias entre las
llamadas locales y remotas no son tan fciles de encubrir.

Se consideraran las siguientes situaciones:

El cliente no puede localizar al servidor.

Se pierde el mensaje de solicitud del cliente al servidor.

Se pierde el mensaje de respuesta del servidor al cliente.

El servidor falla antes de recibir una solicitud.

El cliente falla despus de enviar una solicitud.

ASPECTOS DE IMPLATACION EN RPC


El desempeo o performance es fundamenta en los sistemas distribuidos , el desempeo depende de
manera crtica de la velocidad de la comunicacin. La velocidad depende en gran medida de la
implantacin.
Se debe elegir entre un protocolo orientado a la conexin o un protocolo sin conexin

Lo ideal es que la RPC sea transparente:

El programador no debe poder decir si los procedimientos de biblioteca son locales


o remotos.

El programador debe poder escribir procedimientos sin importar si sern ejecutados


en forma local o remota.

La introduccin de RPC en un sistema que se ejecutaba antes en una nica cpu no


debe ir acompaada de una serie de reglas que:
o Prohban construcciones antes vlidas.
o Exijan construcciones que antes eran opcionales.

COMUNICACIN EN GRUPOS
INTRODUCCION A LA COMUNICACIN EN GRUPO
Un grupo es una coleccin de procesos que actan juntos en cierto sistema o alguna forma
determinada por el usuario.

La propiedad fundamental de todos los grupos es que cuando un mensaje se enva al propio grupo,
todos los miembros del grupo lo reciben.
Se trata de comunicacin uno- muchos (Un emisor, muchos receptores), que se distingue de la
comunicacin puntual o punto a punto (un emisor , un receptor).
Los grupos son dinmicos:

Se pueden crear y destruir.


Un proceso se puede unir a un grupo o dejar otro.
Un proceso puede ser miembro de varios grupos a la vez.

ASPECTOS DE DISEO DE LA COMUNICACIN EN GRUPO


En la comunicacin en grupo tambin se presentan posibilidades tales como:

Almacenamiento en buffers vs no almacenamiento


Bloqueo vs. No bloqueo

Adems existen otras posibilidades que no se dan en la comunicacin entre un emisor y un solo
receptor.
GRUPOS CERRADOS VS. GRUPOS ABIERTOS.
En los grupos cerrados:

Solo los miembros del grupo pueden enviar hacia el grupo


Los extraos no pueden enviar mensajes al grupo como un todo, pero pueden enviar
mensajes a miembros del grupo en lo individual.

En los Grupos Abiertos:

Cualquier proceso del sistema puede enviar a cualquier grupo.

GRUPOS DE COMPAEROS VS. GRUPOS JERARQUICOS.


En algunos grupos todos los procesos son iguales:

No existe distincin de jerarquas.


Son los Grupos de compaeros.

En otros grupos existe cierto tipo de jerarqua:

Son los grupos jerrquicos


Un procesos es el coordinador y todos los dems son los trabajadores
Una solicitud de un trabajo que se genere en un cliente externo o en uno de los procesos
trabajadores:
o Se enva al coordinador
o El coordinador decide cul de los trabajadores es el ms adecuado para llevarla a
cabo y se la enva.

Cada Grupo tiene sus ventajas y desventajas:

Respecto del grupo de compaeros:


o Es simtrico y no tienen un punto de fallo.
o Si uno de los procesos falla, el grupo se reduce pero puede continuar.
o Para tomar decisiones grupales se producen retrasos debidos a la comunicacin
entre los miembros del grupo.
Respecto al grupo jerrquico:
o La prdida del coordinador lleva al grupo a un alto total, lo que es una desventaja.
o En condiciones normales, el coordinador funciona correctamente y toma decisiones
sin molestar a los dems procesos

MENBRESIA DE GRUPOS
La comunicacin en grupo requiere cierto mtodo para:

Creacin y eliminacin de grupos


Unin y separacin de procesos a grupos

Una posibilidad es la administracin distribuida de las membrecas de grupos:

En un grupo abierto, un proceso extrao puede enviar un mensaje a los integrantes del
grupo para anunciar su presencia.

En un grupo cerrado se precisa algo similar, ya que se debe contemplar la admisin de


nuevos miembros al grupo cerrado.

Al salir de un grupo, el proceso debe comunicarlo a los dems del grupo que deja.

Otro aspecto importante es que la entrada y salida al grupo debe sincronizarse con el envo de
mensajes:

Un proceso que se uni a un grupo debe recibir todos los mensajes que se enven al mismo.
Un proceso que ha salido del grupo:
o No debe recibir ms mensajes del grupo.
o El grupo no debe recibir ms mensajes del proceso.
o Los otros miembros no deben recibir ms mensajes del proceso saliente.

DIRECCIONAMIENTO AL GRUPO
Los grupos deben poder direccionarse, al igual que los procesos.
Una forma de darla a cada grupo una direccin nica, similar a una direccin de proceso.
Si la red soporta multitransmision:

La direccin del grupo se puede asociar con una direccin de multitransmision.


Cada mensaje enviado a la direccin del grupo se podr multitransmitir.

Si la red no Soporta Multitransmision

Se tendr que usar trasmisin simple.


Cada ncleo lo recibir y extraer la direccin del grupo
Si ninguno de los procesos en la maquina es miembro del grupo se descarta la trasmisin,
En caso contrario se trasfiere a todos los miembros del grupo

Si la red no soporta multitrasmision ni trasmisin simple

Se tendr que utilizar unitransmisin.


El ncleo de la maquina emisora deber contar con una lista de mquinas que tiene
procesos pertenecientes al grupo
Deber enviar a cada mquina un mensaje puntual.

ATOMICIDAD
La mayora de los sistemas de comunicacin en grupo estn diseados para que los mensajes
enviados al grupo lleguen correctamente a todos los miembros o a ninguno de ellos.

Esta propiedad de todo o nada en la entrega se llama atomicidad o transmisin


atmica.

Facilita la programacin de los sistemas distribuidos.

Es de gran importancia para garantizar la consistencia de las bases de datos y de los


archivos distribuidos y duplicados.

La nica forma de garantizar que cada destino recibe todos sus mensajes es pedirle que
enve de regreso un reconocimiento despus de recibir el mensaje:

SINCRONIZACION EN SISTEMAS DISTRIBUIDOS


Adems de la comunicacin, es fundamental la forma en que los procesos

Cooperan.
Se sincronizan entre si.

Los problemas relativos a las regiones crticas, exclusin mutua y la sincronizacin:

Generalmente se resuelven en sistemas de una sola cpu con mtodos como los
semforos y los monitores:
o Se basan en la memoria compartida.
o No son aplicables a sistemas distribuidos.

Otro problema de gran importancia es el tiempo y la forma de medirlo, ya que juega un


papel fundamental en algunos modelos de sincronizacin.

SINCRONIZACION DE RELOJES

En un sistema centralizado el tiempo no es ambiguo.

En un sistema distribuido no es trivial poner de acuerdo a todas las mquinas en la


hora.

Se requiere un acuerdo global en el tiempo, pues la falta de sincronizacin en los


relojes puede ser drstica en procesos dependientes del tiempo.

RELOJES LOGICOS
Las computadoras poseen un circuito para el registro del tiempo conocido
como dispositivo reloj.
Para varias computadores con sus respectivos relojes:

Es imposible que los cristales de computadores distintas oscilen con la


misma frecuencia
Habr un perdida de sincrona en los relojes (de software), es decir que
tendrn valores distintos al ser ledos.

La diferencia entre los valores del tiempo se llama distorsin del reloj y podra generar
fallas en los programas dependientes del tiempo.
Lamport demostr que la sincronizacin de relojes es posible y present un algoritmo para
lograrlo.
Lamport seal que la sincronizacin de relojes no tiene que ser absoluta:

Si 2 procesos no interactan no es necesario que sus relojes estn sincronizados.

Generalmente lo importante no es que los procesos estn de acuerdo en la hora, pero


s importa que coincidan en el orden en que ocurren los eventos.

Para ciertos algoritmos lo que importa es la consistencia interna de los relojes:

No interesa su cercana particular al tiempo real (oficial).

Los relojes se denominan relojes lgicos.

RELOJES FISICOS
Los relojes fsicos son relojes que:

Deben ser iguales (estar sincronizados).

No deben desviarse del tiempo real ms all de cierta magnitud.

En ciertos sistemas (ej.: sistemas de tiempo real ), es importante la hora real del reloj:

Se precisan relojes fsicos externos (ms de uno).

Se deben sincronizar:
o Con los relojes del mundo real.
o Entre s.

La medicin del tiempo real con alta precisin no es sencilla.


ALGORITMOS PARA LA SINCRONIZACION DE RELOJES
UTC: tiempo coordenado universal.

NIST(Instituto Nacional del Tiempor Estandar):

Operan estaciones de radio de onda corta o satlites de comunicaciones.


Transmiten pulsos UTC con cierta regularidad establecida

Algoritmo de Cristian:
Es adecuado para los sistemas que:

Una maquina tiene un receptor UTC, por lo que se la llama despachador del tiempo
El objetivo es sincronizar todas las maquinas con ella.

Cada mquina enva un mensaje al servidor para solicitar el tiempo actual, peridicamente.
El despachador del tiempo responde prontamente con el mensaje que contiene el tiempo actual
Cutc
Cuando el emisor obtiene la respuesta puede hacer que su tiempo sea Cutc.
Un gran problema es que el tiempo no puede correr hacia atrs.
El tiempo de propagacin se suma al tiempo del servidor para sincronizar al
emisor cuando ste recibe la respuesta.
Algoritmo de Berkeley:
En el algoritmo de Cristian el servidor de tiempo es pasivo.
En el algoritmo de Berkeley el servidor de tiempo:

Es activo
Realiza un muestreo peridico de todas las mquinas para preguntarles el tiempo.
Con las respuestas:
o Calcula el tiempo promedio
o Indica a las dems mquinas que avancen su reloj disminuyan la velocidad del
mismo hasta lograr la disminucin requerida

Es adecuado cuando no se dispone de un receptor UTC.

Algoritmo Promedio:
Los anteriores son algoritmos centralizados.
Una clase de algoritmos descentralizados divide el tiempo en intervalos de re
sincronizacin de longitud fija.
Al inicio de cada intervalo cada mquina transmite el tiempo actual segn su reloj.
Debido a la diferente velocidad de los relojes las transmisiones no sern simultneas.
Luego de que una mquina transmite su hora, inicializa un cronmetro local para reunir las
dems transmisiones que lleguen en cierto intervalo S.
Cuando recibe todas las transmisiones se ejecuta un algoritmo para calcular una nueva hora
para los relojes.
Una variante es promediar los valores de todas las dems mquinas.
Otra variante es descartar los valores extremos antes de promediar (los m mayores y los
m menores).
Una mejora al algoritmo considera la correccin por tiempos de propagacin.

EXCLUSION MUTUA
Cuando un procesos debe leer o actualizar ciertas estructuras de datos compartidas.

Primero ingresar a una regin critica para lograr exclusin mutua y garantizar que ningn
otro proceso utilizara las estructuras de datos al mismo tiempo.

En sistemas de monoprocesadores las regiones crticas se protegen con semforos, monitores y


similares.
En sistemas distribuidos la cuestin es ms compleja.

UN ALGORITMO CENTRALIZADO
La forma ms directa de lograr la exclusin mutua en un sistema distribuido es simular la forma en
que se lleva a cabo en un sistema monoprocesador.

Se elige un proceso coordinador.

Cuando un proceso desea ingresar a una regin crtica:

Enva un mensaje de solicitud al coordinador:


o Indicando la regin crtica.
o Solicitando permiso de acceso.

Si ningn otro proceso est en ese momento en esa regin crtica:


o El coordinador enva una respuesta otorgando el permiso.

Cuando llega la respuesta el proceso solicitante entra a la regin crtica.

Si un proceso pide permiso para entrar a una regin crtica ya asignada a otro proceso:

El coordinador no otorga el permiso y encola el pedido.

Cuando un proceso sale de la regin crtica enva un mensaje al coordinador para liberar su
acceso exclusivo:

El coordinador extrae el primer elemento de la cola de solicitudes diferidas y enva


a ese proceso un mensaje otorgando el permiso, con lo cual el proceso queda
habilitado para acceder a la regin crtica solicitada.

Es un esquema sencillo, justo y con pocos mensajes de control.


La limitante es que el coordinador puede ser un cuello de botella y puede fallar
y bloquear a los procesos que esperan una respuesta de habilitacin de acceso.
UN ALGORITMO DISTRIBUIDO
El objetivo es no tener un nico punto de fallo (el coordinador central)
Se requiere un orden total de todos los eventos en el sistema para saber cul ocurri primero.
Cuando un proceso desea entrar a una regin critica:

Construye un mensaje con el nombre de la regin critica, su numero de proceso y la hora


actual.
Envia el mensaje a todos los dems procesos y de manera conceptual a el mismo.
Se supone que cada mensaje tiene un reconocimiento.

Si el receptor no est en la regin crtica y no desea entrar a ella, envia de regreso un mensaje ok
Al emisor.

Si el receptor ya esta en la regin critica no responde y encola la solicitud.


Si el receptor desea entra a la regin critica pero an no lo logro, compara:

La marca de tiempo del mensaje recibido con,

La marca contenida en el mensaje que envi a cada uno.

La menor de las marcas gana.

Si el mensaje recibido es menor el receptor enva un o.k.

Si su propio mensaje tiene una marca menor el receptor no enva nada y encola el
pedido.

Luego de enviar las solicitudes un proceso

Espera hasta que alguien mas obtiene el permiso


Cuando llegan todos los permisos puden entra a la regin critica.

Cuando un Proceso sale de la regin critica.

Envia mensajes ok a todos los procesos en su cola


Elimina todos los elementos de su cola

La exclusin mutua queda garantizada sin bloqueo ni inanicin.


El nmero de mensajes necesarios por entrada es 2(n - 1), siendo n el
nmero total de procesos en el sistema.
Se incrementa la probabilidad de fallo en n veces y tambin el trfico en la
red.
Una mejora consiste en permitir que un proceso entre a una regin crtica con
el permiso de una mayora simple de los dems procesos (en vez de todos)
ALGORITMO DE ANILLOS DE FICHAS
Los procesos se organizan por software formando un anillo lgico asignndose a cada proceso una
posicin en el anillo.
Cuando un proceso obtiene la ficha de su vecino verifica si intenta entrar a la regin critica:

En caso positivo
o El proceso entra a la regin critica, hace el proceso necesario y sale de ella.
o Despus de salir pasa la ficha a lo largo del anillo

En caso negativo
o La vuelve a pasar.

En un instante dado solo un proceso puede estar en una regin crtica.


Si la ficha se pierde debe ser regenerada, pero es difcil detectar su perdida.
La falla de un proceso es detectada cuando su vecino intenta sin xito pasarle
la ficha.

ALGORITMOS DE ELECCION
Son los algoritmos para la eleccin de un procesos coordinador, iniciador, secuenciador, etc.
El objetivo de un algoritmo de eleccin es garantizar que iniciada una eleccin esta concluya con el
acuerdo de todos los procesos con respecto a la identidad del nuevo coordinador.

EL ALGORITMO DEL GRANDULON


Un proceso P inicia una leccin cuando observa que el coordinador ya no responde a las
solicitudes.
P realiza una eleccin de la siguiente manera:

Enva un mensaje de eleccin a lo dems procesos con un numero mayor


Si nadie responde asume que gana la eleccin y se convierte en el nuevo coordinador
Si un proceso con un nmero mayor responde, toma el control y el trabajo de P termina.

Un proceso puede recibir en cualquier momento un mensaje de eleccin de otros procesos con un
nmero menor:

Enva de regreso un mensaje o.k al emisor para indicar que est vivo y que tomara el
control.
Realiza una eleccin salvo que ya est haciendo alguna.

En cierto momento todos los procesos han declinado ante uno de ellos, que ser el nuevo
coordinador, que enva un mensaje de coordinador a todos los procesos para anunciarlo.
Si un proceso inactivo se activa se realiza la eleccin.

UN ALGORITMO DE ANILLO.
Se supone que que los procesos tienen un orden fsico o lgico , es decir que cada proceso conoce a
su sucesor.

Cuando algn proceso observa que el coordinador no funciona:

Construye un mensaje de eleccin con su propio nmero de proceso.


Enva el mensaje a su sucesor
Si su sucesor esta inactivo:
o El emisor va hacia el siguiente numero de anillo o al siguiente de este.
o Continua hasta que localiza un proceso en ejecucin.
En cierto momento el mensaje regresa al proceso que lo inicio:
El mensaje de eleccin se transforma en mensaje coordinador y circula nuevamente:
o Informa a los dems procesos
Quien es el coordinador
Quienes son los miembros del nuevo anillo.

TRANSACCIONES ATOMICAS
Las tcnicas de sincronizacin ya vistas son de bajo nivel.
Se precisa de tcnicas de abstraccin de mayor nivel que:
Oculten estos aspectos tcnicos.
Permitan a los programadores concentrarse en los algoritmos y la forma en que los procesos
trabajan juntos en paralelo
Tal abstraccin la llamaremos transaccin atmica, transaccin o accin atmica.
La principal propiedad de la transaccin atmica es el todo o nada:

O se hace todo lo que se tena que hacer como una unidad o no se hace nada.

Primitivas de las transacciones


Deben ser proporcionadas por el sistema operativo o por el sistema de ejecucin del lenguaje.
Ejemplos:

Begin_transaction: los comandos siguientes forman una transaccin.

End_transaction: termina la transaccin y se intenta un compromiso.

Abort_transaction: se elimina la transaccin; se recuperan los valores anteriores.

Read: se leen datos de un archivo (o algn otro objeto).

Write: se escriben datos en un archivo (o algn otro objeto).

Las operaciones entre Begin y End forman el cuerpo de la transaccin y deben


ejecutarse todas o ninguna de ellas

Propiedades de las transacciones

Las propiedades fundamentales son:

Serializacin:
o Las transacciones concurrentes no interfieren entre s.

Atomicidad:
o Para el mundo exterior, la transaccin ocurre de manera indivisible.

Permanencia:
o Una vez comprometida una transaccin, los cambios son permanentes.

CONTROL DE CONCURRENCIA
Los algoritmos de controls de concurrencia son necesarios cuando se ejecutan varias transacciones
de manera simultanea:

En distintos procesos
En distintos procesadores

Los Principales algoritmos son:

El de la cerradura
El del control Optimista de la concurrencia
El de las marcas de tiempo.

CERRADURA
Cuando un proceso debe leer o escribir en un archivo, como parte de una transaccin primero cierra
el archivo.
La cerradura se puede hacer mediante.

Un nico manejador centralizado de cerraduras


Un Manejador local de cerraduras en cada maquina

El manejador de cerraduras

Mantiene una lista de archivos cerrados.


Rechaza todos los intentos por cerrar archivos ya cerrador por otros procesos

CONTROL OPTIMISTA DE LA CONCURRENCIA


La idea es muy sencilla:

Se sigue adelante y se hace todo lo que s deba hacer sin prestar atencin a lo que hacen los
dems
Se acta a posteriori si se presenta algn problema

Se mantiene un registro de los archivos ledos o grabados.


En el momento del compromiso

Se verifican todas las dems transacciones para ver si alguno de los archivos a sido
modificado desde el inicio de la transaccin:
o Si esto ocurres la transaccin aborta
o Si esto no ocurres se realiza el compromiso.

MARCAS DE TIEMPO
Se asocia a cada transaccin una marca de tiempo al iniciar.
Se garantiza que las marcas son nicas mediantes el algoritmo de Lamport.
Cada archivo del sistema tiene asociada una marca de tiempo para lectura y otra para escritura, que
indican la ltima transaccin comprometida que realizo la lectura o escritura.
Cuando un proceso intente acceder a un archivo, lo lograra si las marcas de tiempo de lectura y
escritura son menores que la marca de transaccin activa.
En el mtodo de las marcas no preocupa que las transacciones concurrentes utilicen los mismos
archivos, pero s importa que la transaccin con el nmero menor est en primer lugar.
Las marcas de tiempo son libres de bloqueos, lo que es una gran ventaja.

BLOQUEOS EN SISTEMAS DISTRIBUIDOS


Son peores que los bloqueos en sistemas monoprocesador:

Son mas difciles de evitar prevenir y detectar y solucionar.


Toda la informacin relevante esta dispersa en muchas maquinas.

Las estrategia usuales para el manejo de bloqueos son:

Algoritmo del avestruz:


o Ignorar el problema
Deteccin
o Permitir que ocurran los bloqueos, detectarlos e intentar
recuperarse de ellos.
Prevencin:

Hacer que los bloqueos sean imposibles desde el punto de vista


estructural.
Evitarlos
o Evitar los bloqueos mediante la asignacin cuidadosa de los
recursos.
o

En los sistemas distribuidos resulta muy difcil implantar algoritmos para evitar
bloqueos:

Se requiere saber de antemano la proporcin de cada recurso que


necesitara cada proceso.
Es muy difcil disponer de esta informacin en forma practica.

Las tcnicas mas aplicables para el anlisis de bloques en sistemas distribuidos


son

Deteccin.
Prevencin.

DETECION DISTRIBUIDA DE BLOQUEOS


Un algoritmo tpico es el de chandy-Misra-Haas
Los procesos pueden solicitar varios recursos (por ejemplo cerraduras) al
mismo tiempo, en vez de uno cada vez.
Se permiten las solicitudes simultneas de varios procesos:

Un proceso puede esperar a uno o ms recursos simultneamente.


Los recursos que espera un proceso pueden ser locales o remotos.

Si el proceso 0 de bloquea debido al procesos 1:

Se genera un mensaje de exploracin que se enva al proceso (o


procesos) que detienen los recursos necesarios
El mensaje Consta de tres nmeros:
o El proceso recin bloqueado, el procesos que enva el mensaje y el
procesos al cual se enva.
Al llegar el mensaje el receptor verifica si el mismo espero algunos
procesos, en cuyo caso:
o El mensaje se actualiza
o El mensaje se enva al proceso debido al cual se bloquea.
Si un mensaje recorre todo el camino y regresa a su emisor original
o Existe un ciclo y el sistema esta bloqueado.

Una forma de romper el bloque es que el proceso que inicio la exploracin se


comprometa a suicidarse y, si varios procesos se bloquean al mismo tiempo e
inician exploraciones, todos ellos se suicidaran.

Una variantes es eliminar solo el procesos del ciclo que tiene el nmero mas
alto.
PREVENCION DISTRIBUIDA DE BLOQUEOS
La prevencin consiste en el diseo cuidadoso para que los bloqueos sean
imposibles estructuralmente.
Entre las distintas tcnicas se incluye:

Permitir a los procesos que solo conservar un recurso a la vez.


Exigir a los procesos que soliciten todos sus recursos desde un principio.
Hacer que todos los procesos liberen todos sus recursos cuando soliciten
uno nuevo.

En un sistema distribuido con tiempo global y transacciones atmicas:

Se puede asociar cada transaccin con una marca de tiempo global al


momento de su inicio.

La idea es que cuando un proceso est a punto de bloquearse en espera de un


recurso que esta utilizando otro proceso:

Se verifica cual de ellos tiene la maraca de tiempo mayor (el ms joven).


Se puede permitir la espera solo si el proceso en estado de espera tiene
una marca inferior (ms viejo) que el otro.

Otra posibilidad es permitir la espera de procesos solo si el proceso que espera


tiene un marca mayor (el ms joven) que el otro procesos; las marcas aparecen
en la cadena de forma descendente.

Es ms sabio dar prioridad a los procesos ms viejos:

Se ha invertido tiempo de proceso en ellos.

Probablemente conservan ms recursos.

Procesos y Procesadores en Sistemas Distribuidos:


EL MODELO DE ESTACION DE TRABAJO

El sistema consta de estaciones de trabajo PC dispersas entre si mediante una red de rea local
(LAN)
Pueden contar o no con disco rigido en cada una de ellas.
Los usuarios tienen:

Una cantidad fija de poder de cmputo exclusiva.


Un alto grado de autonoma para asignar los recursos de su estacin de trabajo.

Uso de los discos en las estaciones de trabajo:

Sin disco:
o Bajo costo, fcil mantenimiento del hardware y del software, simetra y
flexibilidad.
o Gran uso de la red, los servidores de archivos se pueden convertir en cuellos de
botella.
Disco para paginacin y archivos de tipo borrador y archivos binarios (ejecutables):
o Reduce la carga de la red respecto al caso anterior.
o Alto costo debido al gran nmero de discos necesarios.
Disco para paginacin , archivos de tipo borrador y archivos binarios (ejecutables):
o Reduce an ms la cargad de la red
o Alto costo y complejidad adicional para actualizar los binarios.
Disco para paginacin , borrador , binarios y ocultamiento de archivos.
o Reduce an ms la carga de la red y de los servidores de archivos.
o Alto costo
o Problemas de consistencia del cache.
Sistema local de archivos completo
o Escasa carga de la red
o Elimina la necesidad de los servidores de archivos
o Perdida de transparencia.

USO DE ESTACIONES DE TRABAJO INACTIVAS


La idea consiste en ordenar remotamente la ejecucin de procesos en
estaciones de trabajo inactivas.
Los aspectos clave son:

cmo encontrar una estacin de trabajo inactiva?


cmo lograr que un proceso remoto se ejecute de forma trasparente?
Qu ocurre si regresa el poseedor de la maquina?

Generalmente se considera que una estacin de trabajo esta inactiva cuando


se dan ambas condiciones:

Nadie toca el ratn o el teclado durante varios minutos.


No se ejecutar algn proceso iniciado por el usuario.

Los algoritmos para localizar estaciones de trabajo inacativas se pueden dividir


en dos categoras

Controlados por el servidor


Controlados por el cliente.

MODELO DE PILA DE PROCESADORES


Se dispone de un conjunto de cpu que se pueden asignar dinmicamente a los usuarios segn la
demanda.
Los usuarios no disponen de estaciones de trabajo sino de terminales graficas de alto rendimiento.
No existe el concepto de propiedad de los procesadores, los que pertenecen a todos y se utilizan
compartidamente.

El modelo de pila es ms eficiente que el modelo de bsqueda de estaciones inactivas.


Tambin existe el modelo hbrido que consta de estaciones de trabajo y una pila de
procesadores.

TOLERANCIA A FALLAS
Decimos que un sistema falla cuando no cumple su especificacin.
Fallas de componentes:
Los sistemas de cmputo pueden fallar debido a una falla de algn componente como procesador, la
memoria, un dispositivo E/S, un cable o el software. Una falla es un desperfecto, causado tal vez
por un error de diseo, un error de fabricacin, un error de programacin, un dao fsico, un
deterioro con el curso del tiempo.
Las fallas se clasifica en transitorias, intermitentes o permanentes.
Fallas del Sistema:
En un Sistema distribuido crtico, con frecuencia nos interesa que el sistema pueda sobrevivir a las
fallas de los componentes (en particular, del procesador).La confiabilidad en un sistema distribuido
es particular importante, debido a la gran cantidad de componentes presentes.

Fallas del procesador se deben entender como fallas del proceso( Errores de sofware). Se pueden
distinguir dos tipos de fallas del procesador.

1. Fallas Silentes. Un procesador falla solo se detiene y no responde a als entradas, ni produce
ms entradas.
2. Fallas Bizantinas. Un procesador que falla continua su ejecucin , proporcionando
respuestas incorrectas. Trabajando de manera maliciosa .

USO DE REDUNDACIA
El mtodo general para la tolerancia de fallas consiste en el uso de
redundancia. Existen tres tipos de posibles: Redundancia de la informacin,
redundancia del tiempo y la redundancia fsica.
La redundancia Fsica, se agrega un equipo adicional para permitir que el
sistema como un todo tolere la prdida o el mal funcionamientos de algunos
componentes. por ejemplos se pueden agregar ms procesadores
Hay dos formas de organizar estos procesadores adicionales: La rplica activa y
el respaldo primario.
Replica activa: Todos los procesadores se utilizan todo el tiempo como
servidores (En paralelos) para ocultar las fallas por completo.
Es una tcnica conocida para proporcionar la tolerancia de fallas mediante la
redundancia fsica.
Respaldo Primario: Solo se utiliza un procesador como servidor,
remplazndolo con respaldo si falla.
La idea principal de respaldo primario es que en cualquier instante, un servidor
es primario y realiza todo el trabajo. si el primario falla , el respaldo ocupa su
lugar.

SISTEMAS DISTRIBUIDOS DE ARCHIVOS


Muchos aspectos son similares a los sistemas convencionales centralizados.

En un sistema distribuido es imprtate distinguir entre los conceptos de


servicios de archivos y el servidor de archivos
El servicio de archivos:

Es la especificacin de los servicios que el sistema de archivo ofrece a


sus clientes.
Describe las primitivas disponibles, los parmetros que utilizan y las
acciones que llevan a cabo.
Definen precisamente el servicio con que pueden contra los clientes sin
decir nada respecto de su implantacin.

El despachador (Servidor) de archivos:

Es un proceso que se ejecuta en alguna mquina y ayuda con la


implantacin del servicio de archivos.
Puede haber uno o varios en un sistema
Los clientes no deben ser conscientes de la forma de implantar el
sistema de archivos
o No precisan conocer el nmero de servidores de archivos, su
posicin o funcin.
o Deberan ver al sistema distribuido de archivos con un sistema de
archivos normal de uniprocesador.

Generalmente un servidor de archivos de un proceso del usuario que se


ejecuta en una maquina

DISEO DE LOS SISTEMAS DE ARCHIVOS


Los componentes de un sistema distribuido de archivos son:

El verdadero servicio de archivos:


o Realiza operaciones en los archivos individuales: lectura,
escritura, adicin.
El servicio de directorios:
o Crea y maneja directorios, aade y elimina archivos de los
directorios, etc.

LA INTEFAZ DEL SERVICIO DE ARCHIVOS


La proteccin en los sistemas distribuidos utilizar las mismas tcnicas de los
sistemas con uniprocesador.

Posibilidades
o Cada usuario tiene un permiso o posibilidad para cada objeto al
que tiene acceso.
Tipos de accesos permitidos

Lista de control de accesos


o Se asocia a cada archivos un lista implcita o explcita de usurarios
que pueden atener accesos al archivo y los tipos de accesos
permitido.

Los servicios de archivos se pueden clasificar en dos tipos:

Modelo de carga /descarga:


o Transfiere archivos del cliente al servidor y viceversa segn la
operacin que se realice
Modelo de accesos remoto:
o Ejecuta todas sus funciones en los servidores y no en los clientes

LA INTERFAZ DEL SERVIDOR DE DIRECTORIOS.


Proporciona operaciones para crear y eliminar directorios, nombrar y cambiar
el nombre de archivos y mover archivos de un directorio a otro.
Se utiliza un sistema jerrquico de archivos, representado por un rbol de
directorios.

En una jerarqua con estructura de rbol solo se puede eliminar un enlace con
un directorio si el directorio al cual se apunta est vaco.

Un aspecto fundamental de diseo en sistemas distribuidos es si todas las


mquinas y procesos tendrn exactamente la misma visin de la jerarqua de
los directorios.

IMPLANTACION DE UN SISTEMA DISTRIBUIDO DE


ARCHIVOS
La implantacin de un sistema distribuido de archivos incluye aspectos tales
como:

El uso de los archivos


La estructura del sistema
El ocultamiento
La duplicacin o replica
El control de concurrencia

USO DE ARCHIVOS
Antes de implantar un sistema de archivos resulta de inters analizar los
patrones de uso de dichos archivos
Para determinar los patrones de uso es necesario tomar mediciones que puede
ser:

Estticas:
o Representan una toma instantnea del sistema en un momento
dado.
Dinmicas:
o Registran en un log todas las operaciones que modifican el
sistema de archivos

Las principales propiedades observadas son:

La mayora de los archivos son pequeos.

La lectura es ms comn que la escritura.

La mayora de los accesos es secuencial.

La mayora de los archivos son de corta vida.

Es poco usual compartir archivos.

Los procesos promedio utilizan pocos archivos.

Distintas clases de archivos poseen propiedades distintas.

ESTRUCTURA DEL SISTEMA


En ciertos sistemas no existe distincin entre un cliente y un servidor
Los clientes y servidores tambin podran ser mquinas totalmente distintas en
trminos de hardware o de software.
Un aspecto de implantacin en donde difieren los sistemas es la forma de
estructurar al servicio a directorios y archivos; las principales opciones son las
siguientes:

Combinar el servicio de directorios y archivos en un nico servidor que


administre todas las llamadas a directorios y archivos.
Separar el servicio a directorios y archivos utilizando un servidor de
directorios y un servidor de archivos

Si se considera el caso de servidores de archivos y directorios independientes:

El cliente enva un nombre simblico al servidor de directorios.

El servidor de directorios regresa el nombre en binario (ej.: mquina + nodo_i ) que


comprende el servidor de archivos.

Es posible que una jerarqua de directorios se reparta entre varios


servidores.

OCULTAMIENTO:
En un sistema cliente - servidor, cada uno con su memoria principal y un disco, existen
cuatro lugares donde se pueden almacenar los archivos o partes de ellos

El disco del servidor.

La memoria principal del servidor.

El disco del cliente (si existe).

La memoria principal del cliente.

Si los archivos se almacenan en el disco del servidor:

Antes de que un cliente pueda leer un archivo se lo debe transferir:

Del disco del servidor a la memoria principal del servidor.


De la memoria principal del servidor a la memoria principal del cliente, a travs de
la red.

Se puede mejorar el desempeo ocultando los archivos de ms reciente uso en la memoria


principal del servidor.

Un cliente que lea un archivo ya presente en el cach del servidor elimina la


transferencia del disco.
Se necesita un algoritmo para determinar los archivos o partes de archivos que
deben permanecer en el cach.

Si se utiliza ocultamiento en el lado del cliente:

Se elimina el acceso a la red para transferir del servidor al cliente.

El disco del cliente generalmente es ms lento y de menor capacidad.

Generalmente es ms rpido y ms sencillo tener un cach en la memoria principal


del servidor que en el disco del cliente.

REPLICA
Frecuentemente los sistemas distribuidos de archivos proporcionan la rplica de archivos
como un servicio.

Existen varias copias de algunos archivos.

Cada copia est en un servidor de archivos independiente.

Las principales razones para la rplica son:

Aumentar la confiabilidad al disponer de respaldos independientes de cada archivo.

Permitir el acceso a archivos an cuando falle un servidor de archivos.

Repartir la carga de trabajo entre varios servidores.

Un sistema es transparente con respecto a la rplica si la misma se administra sin


intervencin del usuario.
Una forma de llevar a cabo la replica consiste en que el programador controle todo el
proceso (Replica explicita)

Los archivos y las copias adicionales se crean en servidores especficos.

Las direcciones en la red de todas las copias se asocian con el nombre del archivo.

Un mtodo alternativo es la rplica retrasada:

Solo se crea una copia de cada archivo en un servidor.

El servidor crea rplicas en otros servidores, a posteriori, automticamente y sin


intervencin del proceso de usuario.

Otro mtodo consiste en el uso de la comunicacin en grupo:

Todas las operaciones de escritura se transmiten simultneamente a todos los


servidores.

Las copias adicionales se hacen al mismo tiempo que el original.

TOLERANCIA A FALLOS
La difusin de los sistemas distribuidos incrementa la demanda de sistemas que
esencialmente nunca fallen
Los sistemas tolerantes a fallos requerirn cada vez ms una considerable redundancia en
hardware, comunicaciones, software, datos, etc.
La rplica de archivos sera un requisito esencial.
Tambin debera contemplarse la posibilidad de que los sistemas funcionen an con la
carencia de parte de los datos.
Los tiempos de fallo aceptables por los usuarios sern cada vez menores.

MEMORIA COMPARTIDA DISTRIBUIDA

MEMORIA COMPARTIDA
La memoria compartida es aquel tipo de memoria que puede ser accedida por mltiples
programas, ya sea para comunicarse, entre ellos o para evitar copias redundantes. La
memoria compartida es un modo eficaz de pasar datos entres las aplicaciones, Los
programas pueden ejecutarse en un mismo procesador o en procesadores separados.
En computacin, la Distributed Shared memory (DSM ) es un tipo de implementacin de
hardware y software, en la que cada nodo de un clster tiene acceso a una amplia memoria
compartida propia de cada nodo.
Estos sistemas son trasparentes al desarrollador, lo que significa que la memoria distribuida
subyacente est completamente oculta para los usuarios.
Se propuso tener una coleccin de estaciones de trabajo conectadas por una LAN
compartiendo un solo espacio de direcciones virtuales con pginas. En la variante ms
simple, cada pgina est presente en una mquina. El hardware hace una llamada a las
pginas locales, con toda la velocidad de la memoria. Un intento por llamar a una pgina en
una maquina diferente causa un fallo de pgina en hardware, el cual realiza un
sealamiento al sistema operativo. Entonces, el sistema operativo enva un mensaje a la
maquina remota, quien encuentra la pgina necesaria y la enva al proceso solicitante.
Entonces se reinicia la instruccin detenida y se puede concluir.

MODELO DE CONSISTENCIA
Un modelo de consistencia es en esencia un contrato en el software y la memoria. Dice que
si el software acuerda obedecer ciertas reglas, la memoria promete trabajar de forma
correcta. Si el software viola estas reglas, todo acaba y ya no se garantiza que la operacin
de memoria sea correcta.
Consistencia estricta:
El modelo de consistencia mas estricto es el de consistencia estricta. Se define mediante la
siguiente condicin:
Cualquier lectura a una localidad de memoria x regresa el valor guardado por la
operacin de escritura ms reciente en x.
Requiere de un tiempo global absoluto de modo que la determinacin del mas reciente no
sea ambigua.

Consistencia secuencial:
La consistencia secuencial es un modelo de memoria un poco mas dbil que la consistencia
estricta. Fue definida por lamport, quien dijo que una memoria de consistencia secuencial
es la que satisface la siguiente condicin:
El resultado de cualquier ejecucin es el mismo que si las operaciones de todos los
procesos fueran ejecutadas en algn orden secuencial, y las operaciones de cada proceso
individual aparecen en esta secuencia en el orden especificado por su programa.
Lo que significa esta definicin es que cuando los procesos se ejecutan en paralelo en
diferentes maquinas, cualquier intercalado valido es un comportamiento aceptable, pero
todos los procesos deben ver la misma serie de llamadas a memoria.
Una memoria donde un proceso (o procesos) ven un intercalado y otro proceso ve otro
distinto no es una memoria con consistencia secuencial.
Una memoria con consistencia secuencial se puede implantar en un sistema DSM o
multiprocesador que duplique las pginas que se pueden escribir garantizando que ninguna
operacin de memoria comienza hasta que las anteriores hayan concluido.
Consistencia casual:
El modelo de consistencia casual representa un debilitamiento de la consistencia secuencial
que hace una distincin entre los eventos potencialmente relacionados por casualidad y
aquellos que no lo estn.
Las operaciones que no estn relacionadas de forma casual son concurrentes.
Para que una memoria sea consistente de forma casual, obedece las siguientes condiciones:
Las escrituras potencialmente relacionadas de forma casual son vistas por todos los
procesos en el mismo orden. Las escrituras concurrentes pueden ser vistas en un orden
diferente en maquinas diferentes.

MEMORIA COMPARTIDA DISTRIBUIDA CON BASE A PAGINAS


Las estacionas de trabajo en una LAN son muy distintas de un multiprocesador.
Los procesadores solo pueden Hacer referencia a su memoria local. No existe el
concept de memoria compartida global, como en un NUMA o multiprocesador
UMA.
Sin embargo el objetivo del trabajo de DSM, es agregar software al sistema
para permitir que una multicomputadora ejecute programas en un
multiprocesador. En consecuencia, cuando un procesador hace referencia a una
pgina remota, esta pgina debe ser trada.

DISEO BASICO
En un sistema DSM, el espacio de direcciones se separa en pedazos, los cuales
estn dispersos en todos los procesadores del sistema. Cuando un procesador
hace referencia a una direccin que no es local, ocurre un sealamiento, y el
software DSM trae el pedazo que contiene la direccin y reinicia la instruccin
suspendida, que puede entonces concluir con xito.

REPLICA
Una mejora al sistema bsico, ayuda al desempeo en gran medida consiste en
duplicar los pedazos exclusivos para lectura; por ejemplo texto de programa,
constantes exclusivas de lectura, u otras estructuras exclusivas para lectura.
Otra posibilidad consiste en duplicar todos los pedazos no solo exclusivos para
lectura.
Mientras se realicen lecturas, en realidad no habr diferencia entre la
duplicacin de un pedazo exclusivo para lectura y uno para lectura escritura.

GRANURALIDAD
En los sistemas DSM cuando se hace referencia a una palabra de memoria no
local, se trae un pedazo de memoria con la palabra, desde su posicin actual, y
coloca en la mquina que se hace referencia.
Un aspecto importante del diseo es el tamao de dicho pedazo. Las
posibilidades son Una palabra, un bloque ,una pgina o un segmento(Varias
Paginas).
Con un multiprocesador, el transporte de una palabra o unas docenas de bytes
es factible, pues el MMU (Unidad de gestin de memoria) conoce con exactitud
la direccin de referencia y el tiempo para establecer una trasferencia en el
bus se mide en nanosegundos. Con los sistemas DSM , una granularidad tan
fina es difcil, debido a la forma en que funciona MMU(Unidad de gestin de
memoria).
Existen ventajas y desventajas del uso de un tamao mayor de pedazo para
DSM.La principal ventaja es que debido al tiempo de arranque de una
transferencia en la red es esencial, No tarda mucho ms tiempo la trasferencia
de 1024 bytes que 512 bytes.
Por otro lado la red se bloqueara ms tiempo con un trasferencia mayor.

OBTENCION DE LA CONSISTENCIA SECUENCIAL


El caso interesante es el de las pginas de lectura-escritura duplicadas. En
muchos sistemas DSM, cuando un proceso intenta leer una pgina remota , se
crea una copia local, pues el sistema no sabe lo que hay en la pgina o si se
puede escribir en ella. La copia local y la pagina original estn configuradas en
su MMU respectivo como exclusivas para lectura.
Sin embargo , si algn proceso intenta escribir en un pagina duplicada, puede
surgir un problema debido a que la modificacin de una copia sin modificar las
dems

Das könnte Ihnen auch gefallen