Beruflich Dokumente
Kultur Dokumente
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.
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.
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.
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 migracin: los recursos se pueden mover a voluntad sin cambiar sus
nombres.
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.
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
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.
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.
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:
Descartar el mensaje.
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:
CONFIABLES
Otro mtodo exige que el ncleo de la maquina receptora envi un reconocimiento al ncleo de la
maquina emisora: (Solicitud-reconocimiento-respuesta-reconocimiento)
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.
Un mtodo consiste en integrar dentro del cdigo del cliente la direccin (en la red) del
servidor:
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.
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:
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:
MENBRESIA DE GRUPOS
La comunicacin en grupo requiere cierto mtodo para:
En un grupo abierto, un proceso extrao puede enviar un mensaje a los integrantes del
grupo para anunciar su presencia.
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:
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.
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:
Cooperan.
Se sincronizan entre si.
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.
SINCRONIZACION DE RELOJES
RELOJES LOGICOS
Las computadoras poseen un circuito para el registro del tiempo conocido
como dispositivo reloj.
Para varias computadores con sus respectivos relojes:
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:
RELOJES FISICOS
Los relojes fsicos son relojes que:
En ciertos sistemas (ej.: sistemas de tiempo real ), es importante la hora real del reloj:
Se deben sincronizar:
o Con los relojes del mundo real.
o Entre s.
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
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.
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.
Si un proceso pide permiso para entrar a una regin crtica ya asignada a otro proceso:
Cuando un proceso sale de la regin crtica enva un mensaje al coordinador para liberar su
acceso exclusivo:
Si el receptor no est en la regin crtica y no desea entrar a ella, envia de regreso un mensaje ok
Al emisor.
Si su propio mensaje tiene una marca menor el receptor no enva nada y encola el
pedido.
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.
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.
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.
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.
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
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.
El manejador de cerraduras
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 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.
En los sistemas distribuidos resulta muy difcil implantar algoritmos para evitar
bloqueos:
Deteccin.
Prevencin.
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:
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:
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.
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.
Posibilidades
o Cada usuario tiene un permiso o posibilidad para cada objeto al
que tiene acceso.
Tipos de accesos permitidos
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.
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
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
REPLICA
Frecuentemente los sistemas distribuidos de archivos proporcionan la rplica de archivos
como un servicio.
Las direcciones en la red de todas las copias se asocian con el nombre del archivo.
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
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.
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.