Sie sind auf Seite 1von 49

CAPITULO 3: Procesos

CAPITULO 4: Comunicacin
NOMBRES DE LOS INTEGRANTES:
DELGADO ALONZO HENRY HARRY
HOLGUIN CARRILLO CRISTHIAN VICENTE
ORTEGA RODRIGUEZ ALEXIS
PALMA GUALE IRVING JOSE
SAMANIEGO MONCAYO ISABEL PATRICIA
SISTEMAS DISTRIBUIDOS
CURSO:
7 NIVEL B

PROFESOR:
ING. CESAR CEDEO
PROCESOS
Procesos: tipos e importancia en los sistemas
distribuidos.
Definicin en los sistemas operativos: programa en
ejecucin.
En un sistema operativo la administracin y la
calendarizacin de los procesos son quiz los asuntos
ms importantes a tratar; sin embargo, cuando nos
referimos a los sistemas distribuidos, tenemos que otros
temas resultan ser igualmente o ms importantes.

PROCESO: programa que es ejecutado por lo general en uno de los
procesadores virtuales del sistema operativo. Una cuestin importante
es que el sistema operativo tiene mucho cuidado en asegurar que los
procesos independientes no puedan afectar de manera maliciosa o
inadvertida la correccin del comportamiento de otro proceso.
Igual que un proceso, un hilo ejecuta su propio segmento de cdigo,
independientemente de otros hilos. Esto quiere decir que crea
espacios independientes para cada uno de los hilos.

HILOS
Implementacin de hilos
Los hilos son proporcionados en la forma de un paquete de hilos. Dicho
paquete contiene operaciones para crear y destruir hilos.
METODOS PARA IMPLEMENTAR PAQUETES DE HILOS
Biblioteca de hilos que se ejecutan
por completo en el modo de
usuario
Ventajas: barato crearla y destruirla (la
administracin de los hilos se mantiene en el
espacio de direcciones del usuario)
Desventaja: con llamada de bloqueo de
sistema se bloquear el proceso al cual
pertenece el hilo, y entonces bloquear todos
los hilos presentes en dicho proceso.
kernel est al tanto de los hilos y los
pueda calendarizar.
Cada operacin de un hilo debe llevarse a cabo
por el kernel (llamada de sistema)
El intercambio de contextos de hilo puede ser tan
costoso como el intercambio de contextos de
proceso.
Desventaja: la mayor parte de los beneficios del
uso de hilos en lugar del uso de procesos
desaparece.
Solucin: una forma hbrida entre hilos de nivel
usuario y nivel kernel, por lo general se le conoce
como procesos de peso ligero (LWP).
HILOS EN SISTEMAS DISTRIBUIDO
Clientes multihilos
Para establecer un alto grado de transparencia de distribucin a veces se necesita la conciliacin
de grandes tiempos de propagacin de mensajes de interproceso. Para ocultar las latencias de
comunicacin hay que ocultar la comunicacin y proceder de inmediato con alguna otra cosa.
Propiedad importante: Permiten llamadas de bloqueo de sistema sin bloquear
todo el proceso en que se ejecuta el hilo.
Servidores multihilos
Principal uso de la tecnologa multihilos est del lado del servidor.
La tecnologa multihilos:
Simplifica el cdigo del servidor de manera considerable
Hace ms sencillo el desarrollo de servidores que explotan el paralelismo para lograr un alto
rendimiento, incluso en sistemas de un solo procesador.
EJEMPLO: navegadores web.
El navegador web realiza cierto nmero de tareas de manera simultnea. Tan pronto como el
archivo HTML principal es recuperado, podemos activar hilos separados para que se hagan cargo
de la recuperacin de las dems partes.
Cuando utilizamos un cliente multihilos, las conexiones pueden configurarse como rplicas
diferentes, lo cual permite que los datos sean transferidos en paralelo asegurando efectivamente
que se despliega la pgina web completa en un tiempo ms corto que con un servidor no
replicado.
VIRTUALIZACION
Hilos y procesos: una manera de hacer ms cosas al mismo tiempo.
Permiten construir programas que parecen ejecutarse en forma simultnea.
En una computadora con un solo procesador, esta ejecucin simultnea es
una ilusin. El rpido intercambio entre hilos y procesos crea la ilusin de
paralelismo.
La separacin entre tener una sola CPU y ser capaz de pretender que
existen ms unidades de procesamiento se puede extender tambin a otros
recursos, ello origina lo que conocemos como virtualizacin de recursos.
EL ROL DE LA VIRTUALIZACIN EN LOS SISTEMAS
DISTRIBUIDOS
Virtualizacin: extensin o el reemplazo de una interfaz existente de modo que imite el
comportamiento de otro sistema. Importancia viene desde 1970 donde se permiti que
el software heredado pudiera ejecutarse sobre el costoso hardware de una mainframe.
Mientras el harware y el software de los sistemas de bajo nivel cambian razonablemente
rpido, el software ubicado en niveles ms altos de abstraccin (aplicaciones), son
mucho ms estables.
El software heredado no se puede mantener al mismo paso de las plataformas en que se
apoya. La virtualizacin puede ayudar aqu al aportar las interfaces heredadas hacia nuevas
plataformas.
En una red, los administradores de sistemas manejan toda una coleccin de servidores
grandes y heterogneos, ejecutando cada uno aplicaciones muy diferentes, a los
cuales tienen acceso los clientes. Al mismo tiempo, los distintos recursos debieran ser
fcilmente accesibles a estas aplicaciones.
La virtualizacin ayuda mucho: la diversidad de plataformas y mquinas se puede
reducir si se deja que cada aplicacin se ejecute en su propia mquina virtual,
posiblemente incluyendo las bibliotecas relacionadas y el sistema operativo, el cual, a
su vez, se ejecute en una plataforma comn.
Las dos formas de virtualizacin:
mquina virtual de proceso: Construir un sistema en tiempo de ejecucin que esencialmente
proporcione un conjunto de instrucciones para ser utilizado en la ejecucin de aplicaciones.
monitor de la mquina virtual (VMM). Proporcionar un sistema que se implemente como una
capa que cubre por completo al hardware original, pero que ofrece todo un conjunto de
instrucciones del mismo (o de otro hardware) como una interfaz.(tener mltiples y diferentes
sistemas operativos que se ejecutan de distinto modo y concurrentemente sobre la misma
plataforma)
ARQUITECTURAS DE MQUINAS VIRTUALES
CLIENTES
Tarea importante de mquinas cliente: proporcionar los medios necesarios para que los usuarios
interacten con servidores remotos. Existen dos maneras:
Para cada servicio remoto, la mquina
cliente tendr una contraparte por
separado que puede contactar el servicio
sobre una red. En este caso, un protocolo
a nivel de aplicacin manipular esta
sincronizacin.
Mquina cliente slo se utiliza como terminal sin
necesidad de almacenamiento local. En el caso de
interfaces de usuario en red, todo es procesado y
almacenado en el servidor.

DEMOS UN VISTAZO A LA ORGANIZACIN DE LOS SERVIDORES
Temas generales de diseo
Servidor iterativo
El propio servidor manipula la peticin y, si es necesario, devuelve una
respuesta a la peticin del cliente.
Servidor concurrente
No manipula por s mismo la peticin, pero la pasa a un hilo separado
o a otro proceso, despus de lo cual de inmediato queda en espera
de la siguiente peticin entrante.
Los clientes envan las peticiones a un punto final, tambin llamado puerto,
Cmo saben los clientes el puerto de un servicio?
Un mtodo es asignar
puertos de manera
global para servicios muy
conocidos.
Existen muchos servicios
que no requieren un
puerto asignado
previamente. Para esto
se usan los dominios, un
cliente contactar
primero al demonio,
solicitar el puerto, y
luego contactar al
servidor especificado.
INTERRUMPIR UN
SERVIDOR
El usuario suspenda la
conexin con el servidor
Un mejor mtodo es
desarrollar al cliente y al
servidor de tal modo que
sea posible enviar datos
fuera-de-banda (son
datos a procesar por el
servidor antes que
cualquier otro dato del
cliente).

EL SERVIDOR ES
DESPLAZADO
Un servidor sin estado:
Estado suave.
Un servidor con estados :
Cookie

Servidores de clsteres

Organizacin general
Una coleccin de mquinas conectadas a travs de una red, donde
cada mquina ejecuta uno o ms servidores.
Interruptor lgico
Proceso de las aplicaciones
Servidores de procesamiento de datos y de Bases de datos



Servidores de clsteres

Servidores distribuidos
Es deseable tener un alto grado de flexibilidad en
la configuracin de un servidor de cluster. Esta
observacin conduce al diseo de un servidor
distribuido el cual, en efecto, posiblemente no es
nada ms que un conjunto de mquinas que
cambian de manera dinmica, y posiblemente
tambin con ms de un punto de acceso, pero
que sin embargo, aparecen ante el mundo como
una sola y poderosa mquina.


Administracin de
servidores de clsteres
Mtodos comunes
La alternativa es que
cada nodo est
equipado con una serie
de monitores,

EXISTEN SITUACIONES EN LAS CUALES EL PASO DE PROGRAMAS, A VECES
INCLUSO MIENTRAS SE EJECUTAN, SIMPLIFICA EL DISEO DE UN SISTEMA
DISTRIBUIDO
Mtodos para la migracin de cdigo
a) Razones para la migracin de cdigo

La idea bsica es que se puede mejorar el rendimiento general del
sistema si los procesos se trasladan desde una mquina muy
saturada hacia mquinas ligeramente saturadas, la mejora en el
rendimiento a travs de la migracin de cdigo se basa
generalmente en razones cualitativas en lugar de en modelos
matemticos.
b) Modelos para
migracin de cdigo

Para tener un mejor
entendimiento de los diferentes
modelos existentes para la
migracin de cdigo, utilizamos
un marco de trabajo. En este
marco de trabajo, un proceso
consta de tres segmentos:
El segmento de cdigo
El segmento de recurso
El segmento de ejecucin

Migracin y recursos locales
Con frecuencia, lo que vuelve tan difcil la migracin de cdigo es
que el segmento de recursos no siempre se puede transferir de
manera sencilla, junto con los otros segmentos, sin sufrir modificacin
alguna.



Para comprender las implicaciones que la migracin
de cdigo tiene sobre el segmento de recursos, se)
distinguen entre tres tipos de enlaces de proceso a
recurso:
Enlace de identificador
Enlace por valor
Enlace por tipo
Cuando se migra cdigo, con frecuencia requerimos
modificar las referencias a los recursos, pero no
podemos afectar el tipo de enlace de proceso a
recurso, De manera ms especfica, necesitamos
considerar los enlaces de recurso a mquina, y
distinguir los siguientes casos:
Recursos no adjuntos
Recursos adjuntos
Recursos fijos
3.5.3 Migracin y sistemas
heterogneos


La migracin en dichos sistemas requiere que cada plataforma se encuentre soportada, es
decir, que un segmento de cdigo se pueda ejecutar en cada plataforma.
La migracin de cdigo en sistemas heterogneos es enfrentada por lenguajes mediante
scripts altamente portables como Java. Estos se apoyan en una mquina virtual que
interpreta el cdigo fuente de manera directa (como en el caso de los leguajes que
implementan scripts), o de lo contrario interpreta el cdigo mediante el compilador (como
en Java).
La idea bsica es dividir en fragmentos todo el ambiente y los procesos para su migracin.
Si la divisin en compartimentos se realiza de manera adecuada, ser posible desacoplar
una parte del sistema inferior y realmente migrarla hacia otra mquina.
De esta manera, la migracin proporcionar en efecto una forma de movilidad fuerte para
los procesos, dado que es posible trasladarla hacia cualquier punto durante su ejecucin, y
continuar en donde se qued cuando se complete la migracin.


COMUNICACIN

La comunicacin entre procesos se encuentra en el ncleo de todos los
sistemas distribuidos. No tiene sentido estudiar los sistemas distribuidos,
sin examinar cuidadosamente las formas en que los procesos desarrollados
en diferentes mquinas pueden intercambiar informacin


FUNDAMENTOS
Protocolos en capas
Debido a la ausencia de memoria compartida en los sistemas
distribuidos, toda la comunicacin se basa en el envo y la recepcin
de mensajes.
El modelo OSI est diseado para permitir que los sistemas abiertos se
comuniquen. Un sistema abierto, es aquel que est preparado para
comunicarse con cualquier otro sistema abierto mediante reglas o
estndares que regulen formato, contenido, y significado de los
mensajes enviados y recibidos. Estas reglas estn formalizadas en lo
que conocemos como protocolos. Para permitir a un grupo de
computadoras comunicarse a travs de una red, deben usar los
mismos protocolos.

Protocolos en capas Modelo OSI
En el modelo OSI, la
comunicacin se divide en
siete niveles o capas.
Protocolos de bajo nivel

Capa Fsica
Enlace Fsico de la
red
Enlace de Datos
Control de Errores
Tramado de la
informacin
Capa de Red
Direccionamiento
Lgico
Protocolo TCP/IP

Protocolos de transporte

Capa de transporte
Encargada de efectuar el
transporte de los datos de la
mquina origen a la de destino,
Sus protocolos son TCP y UDP; el
primero orientado a conexin y
el otro sin conexin.
Protocolos de alto nivel
Sesin
Mantener y
Controlar el
enlace
establecido
Presentacin
Representacin
y traduccin de
la informacin
Aplicacin
Conexin al
usuario
Protocolos middleware
El middleware es una aplicacin que lgicamente reside en la capa
de aplicacin, pero que contiene muchos protocolos de propsito
general que garantizan sus propias capas. Los protocolos de
comunicacin middleware soportan servicios de comunicacin de
alto nivel.
El middleware abstrae de la complejidad y heterogeneidad de las
redes de comunicaciones subyacentes facilitando el manejo de
aplicaciones distribuidas
Protocolos middleware
Tipos de comunicacin
Existen varios tipos de comunicacin entre los procesos como:

Comunicacin Persistente: almacena el mensaje o la informacin
enviado por el emisor el tiempo que tome entregarlo al receptor.

Comunicacin Transitoria: almacena un mensaje slo mientras las
aplicaciones del emisor y receptor estn en ejecucin.

Comunicacin asincrnica: el emisor contina inmediatamente despus
de que ha pasado su mensaje para la transmisin.

Comunicacin sincrnica: el emisor es bloqueado hasta que se sabe que
su peticin es aceptada.

Tipos de comunicacin
Llamadas a procedimientos
remotos
Muchos sistemas distribuidos se han basado en el intercambio explcito
de mensajes entre procesos. Sin embargo, los procedimientos send y
receive no ocultan en absoluto la comunicacin, lo cual es importante
para lograr la transparencia en los sistemas distribuidos.
De hay surge la idea de permitir que los programas llamaran a
procedimientos ubicados en otras mquinas.
Cuando un proceso de la mquina A llama a un procedimiento de la
mquina B, el proceso que llama desde A se suspende, y la ejecucin
del procedimiento llamado ocurre en B. La informacin puede
transportarse en los parmetros desde quien llama hasta el que es
llamado, y puede regresar en el procedimiento resultante. Ningn
mensaje de paso es visible para el programador. Este mtodo se
conoce como llamada a procedimiento remoto, o simplemente RPC.
Operacin bsica RPC

Llamadas a procedimientos locales.
Las llamadas a procedimientos convencionales son llamadas que se ejecutan en
la misma maquina donde:
fd es un entero que indica un
archivo.
buf es un arreglo de
caracteres en el que se leen
los datos.
nbytes es otro entero que
indica cuntos bytes leer.
Resguardos del cliente y servidor

La idea tras la RPC es hacerla parecer como una
llamada local. En otras palabras, deseamos que la
RPC sea transparente (el procedimiento de llamada
no debe advertir que el procedimiento llamado se
ejecuta en una mquina diferente o viceversa).
Esto se logra gracias a los resguardos tanto cliente
como servidor que bsicamente consisten en, Una
parte de cdigo que transforma las peticiones
entrantes a la red en llamadas a procedimientos
locales.

Pasos de una llamada a un
procedimiento remoto.
1. El procedimiento cliente llama al resguardo del cliente de manera normal.
2. El resguardo del cliente construye un mensaje y llama al sistema operativo local.
3. El sistema operativo del cliente enva el mensaje al sistema operativo remoto.
4. El sistema operativo remoto da el mensaje al resguardo del servidor.
5. El resguardo del servidor desempaca los parmetros y llama al servidor.
6. El servidor realiza el trabajo y devuelve el resultado al resguardo.
7. El resguardo del servidor empaca el resultado en un mensaje y llama a su sistema
operativo local.
8. El sistema operativo del servidor enva el mensaje al sistema operativo del cliente.
9. El sistema operativo del cliente da el mensaje al resguardo del cliente.
10. El resguardo desempaca el resultado y lo regresa al cliente.


REMOTE PROCEDURE CALL
LLAMADAS A PROCEDIMIENTOS
REMOTOS

RPC
Definicin:

ES UN PROTOCOLO QUE PERMITE A UN PROGRAMA DE
ORDENADOR EJECUTAR CDIGO EN OTRA MQUINA REMOTA
SIN TENER QUE PREOCUPARSE POR LAS COMUNICACIONES
ENTRE AMBOS.
ES UNA LLAMADA A UN PROCEDIMIENTO QUE EXISTE Y SE
EJECUTARA EN UNA MQUINA REMOTA.
ES UNA TCNICA PARA EL DESARROLLO DE APLICACIONES
DISTRIBUIDAS, BASADAS EN EL PARADIGMA CLIENTE/SERVIDOR.
Funcionamiento General de RPC
CLIENTE:
EL PROCESO QUE REALIZA UNA LA LLAMADA A UNA FUNCIN.
DICHA LLAMADA EMPAQUETA LOS ARGUMENTOS EN UN MENSAJE
Y SE LOS ENVA A OTRO PROCESO.
QUEDA LA ESPERA DEL RESULTADO.
SERVIDOR:
SE RECIBE UN MENSAJE CONSISTENTE EN VARIOS ARGUMENTOS.
LOS ARGUMENTOS SON USADOS PARA LLAMAR UNA FUNCIN EN
EL SERVIDOR.
EL RESULTADO DE LA FUNCIN SE EMPAQUETA EN UN MENSAJE
QUE SE RETRANSMITE AL CLIENTE
Mecanismos para el paso de
parmetros:



pueden llamarse:

por valor:
Se copia a la pila.
Para el procedimiento que recibe la llamada es solo una variable local ya inicializada.
El procedimiento podra modificarla, sin que esto afecte el valor de la variable original en el
procedimiento que hizo la llamada.

Por referencia:
Es un apuntador a una variable (es decir, la direccin de la variable), no el valor de la variable.
En el ej. anterior, vlido para C, el segundo parmetro es un parmetro por referencia y es un
arreglo.
Si el procedimiento que recibe la llamada utiliza este parmetro por referencia para almacenar algo en
el arreglo, modifica el arreglo en el procedimiento que hizo la llamada.









LLAMADA POR COPIAR / RESTAURAR CONSISTE EN:
QUIEN RECIBE LA LLAMADA COPIA LA VARIABLE EN LA PILA, COMO
EN LA LLAMADA POR VALOR.

LA COPIA DE NUEVO DESPUS DE LA LLAMADA, ESCRIBIENDO
SOBRE EL VALOR ORIGINAL.


LA DECISIN DE CUL MECANISMO UTILIZAR PARA EL PASO DE
PARMETROS LA TOMAN LOS DISEADORES DEL SISTEMA Y ES UNA
PROPIEDAD FIJA DEL LENGUAJE.

Mecanismos para el paso de
parmetros:
Tareas que realizan:

LOCALIZAN AL SERVIDOR.
EMPAQUETAN LOS PARMETROS Y CONSTRUYEN LOS
MENSAJES.
ENVAN EL MENSAJE AL SERVIDOR.
ESPERA LA RECEPCIN DEL MENSAJE Y DEVUELVEN LOS
RESULTADOS.
SE BASAN EN UNA LIBRERA DE FUNCIONES RPC PARA LAS
TAREAS MS HABITUALES.
COMUNICACON ORIENTADA A FLUJOS
ADMINISTRACIN DE REDES SOBREPUESTAS

Por la descripcin que hemos hecho
hasta el momento, debe resultar claro
que una parte importante de la
administracin de sistemas, es conectar
a los diversos administradores de colas
en una red sobrepuesta consistente.
Ms an, con el tiempo, esta red
necesita mantenimiento
Para redes pequeas, este mantenimiento no requerir ms que un
trabajo administrativo promedio, pero las cosas se complican
cuando la cola de mensajes se utiliza para integrar y desintegrar
grandes sistemas existentes
Soporte para medios continuos
El soporte para intercambiar informacin dependiente del tiempo con
frecuencia se conoce como soporte para medios continuos. Un medio se
refiere al recurso mediante el cual se transmite la informacin. Estos
recursos incluyen a los medios de almacenamiento y transmisin, medios
de presentacin como un monitor, etc.
Un tipo importante de medio es la forma en que se representa la informacin. En
otras palabras, cmo se codifica la informacin en un sistema de cmputo? Se
utilizan diferentes representaciones para diferentes tipos de informacin. Por
ejemplo, el texto generalmente se codifica en ASCII o Unicode. Las imgenes
pueden representarse en diferentes formatos, como GIF o JPEG. En un sistema de
cmputo, los flujos de audio pueden codificarse al tomar muestras de 16 bits
empleando PCM.
Flujos y calidad del servicio
Los requerimientos de sincronizacin (y otros no funcionales) se
expresan generalmente como requerimientos de Calidad del
Servicio (QoS, por sus siglas en ingls). Estos requerimientos
describen lo que se necesita del sistema distribuido subyacente y
de la red para garantizar que, por ejemplo, las relaciones
temporales de un flujo puedan preservarse
Cmo imponer la QoS
Dado que el sistema subyacente slo ofrece un servicio bien
intencionado de entrega, un sistema distribuido puede intentar
ocultar lo ms posible la carencia de calidad del servicio. Por
fortuna, existen diversos mecanismos que se pueden utilizar.
Primero, la situacin no es realmente tan mala como se plante
hasta el momento. Por ejemplo, internet proporciona recursos
para diferenciar las clases de datos mediante sus servicios
diferenciados

Sincronizacin de flujos
Un tema muy importante en sistemas multimedia es que flujos diferentes, posiblemente en
forma de un flujo complejo, estn mutuamente sincronizados
Un tipo ms demandante de sincronizacin es el que tiene lugar entre flujos continuos de
datos. Un ejemplo diario es la reproduccin de una pelcula en la que el flujo de video necesita
sincronizarse con el de audio, proceso conocido como sincronizacin de labios
COMUNICACION POR
MULTITRANSMISION
Un tema importante en comunicacin de sistemas distribuidos es el soporte para enviar datos a
varios destinatarios, lo cual tambin se conoce como comunicacin por multitransmisin.
Con la llegada de la tecnologa de punto a punto, y la notablemente estructurada administracin
sobrepuesta, se volvi ms sencillo configurar rutas de comunicacin.
Multitransmisin al nivel de aplicacin
La idea bsica de la multitransmisin al nivel de aplicacin es que los
nodos se organizan en una red sobrepuesta, la cual despus se utiliza
para diseminar la informacin a sus miembros.
Una observacin importante es que los ruteadores de red no estn
organizados en grupos de miembros. En consecuencia, las conexiones
entre los nodos de la red sobrepuesta pueden cruzar diversas uniones
fsicas
Diseminacin de datos basada en el
gossip
Una tcnica que cobra cada vez ms importancia para implementar la
diseminacin de informacin se basa en el comportamiento epidmico.
Al observar cmo se propagan las enfermedades entre la gente,
los investigadores han estudiado desde hace mucho si tcnicas tan
simples pudieran desarrollarse para propagar informacin en
sistemas distribuidos de gran escala.

Das könnte Ihnen auch gefallen