SlideShare una empresa de Scribd logo
1 de 48
SISTEMAS
DISTRIBUIDOS
UNIDAD 2
COMUNICACIÓN Y PROCESOS
PROCESOS
Un proceso es un concepto manejado por el sistema operativo que consiste en el
conjunto formado por:
• Las instrucciones de un programa destinadas a ser ejecutadas por el microprocesador.
• Su estado de ejecución en un momento dado, esto es, los valores de los registros de la
CPU para dicho programa.
• Su memoria de trabajo, es decir, la memoria que ha reservado.
• Sus contenidos.
• La diferencia más importante entre un Sistema Distribuido y un sistema de
un único procesador es la comunicación entre procesos. En un sistema de un
solo procesador la comunicación supone implícitamente la existencia de la
memoria compartida. Por ejemplo: un proceso escribe en un buffer
compartido y otro proceso lee de él.
• Los procesos, para comunicarse, deben apegarse a reglas conocidas como
protocolos. Para los sistemas distribuidos en un área amplia, estos protocolos
toman frecuentemente la forma de varias capas y cada capa tiene sus propias
metas y reglas
• Los mensajes se intercambian de diversas formas, existiendo muchas
opciones de diseño al respecto; una importante opción es la llamada a un
procedimiento remoto. También es importante considerar las posibilidades
de comunicación entre grupos de procesos, no sólo entre dos procesos.
• Debido a la ausencia de memoria compartida, toda la comunicación en los
sistemas distribuidos se basa en la transferencia de mensajes.
Por ejemplo: cuando el proceso “A” quiere comunicarse con el proceso “B”:
• Construye un mensaje en su propio espacio de direcciones.
• Ejecuta una llamada al sistema para que el Sistema Operativo busque el
mensaje y lo envíe a través de la red hacia “B”.
• Para evitar el caos, “A” y “B” deben coincidir en el significado de los bits que
se envíen. Los puntos de acuerdo necesarios incluyen lo siguiente:
• ¿Cuántos voltios hay que utilizar para un bit “0” y cuántos para un bit “1”?
• ¿Cómo sabe el receptor cuál es el último bit del mensaje?
• ¿Cómo puede detectar si un mensaje ha sido dañado o perdido, y qué debe
hacer si lo descubre?
• ¿Qué longitud tienen los números, cadenas y otros elementos de datos y cuál
es la forma en que están representados?
EL MODELO ISO/OSI
Este modelo se denomina “Modelo de referencia para interconexión de sistemas
abiertos” (ISO o modelo OSI), el cual está diseñado para permitir la comunicación de
los sistemas abiertos.
Dicho modelo:
• Establece el formato, contenido y significado de los mensajes recibidos y enviados.
• Constituye los protocolos, que son acuerdos en la forma en que debe desarrollarse la
comunicación.
• Cada nivel incluye su propia cabecera/cola en el mensaje a enviar, con los datos
necesarios para implementar su protocolo.
Protocolos de bajo nivel
• Nivel físico: Este nivel se dedica a transmitir los 0’s y 1’s, especificando
cuántos voltios se emplearán para codificar los 0’s y cuántos para los 1’s;
cuántos bits por segundo; si la comunicación es simplex o dúplex, así como
el tamaño, forma y características de los conectores; por ejemplo: RS-232.
• Nivel de enlace: Asegurar transmisión libre de errores, agrupando los bits
en tramas; aplicando códigos de redundancia a las tramas para detectar
errores, y en caso de errores, envía mensajes de control para pedir la
retransmisión.
• Nivel de red: Encaminar los mensajes de una máquina a otra. En este nivel a
los mensajes se les llama paquetes; por ejemplo: IP
Protocolos de trasporte
• Los mensajes enviados desde las aplicaciones (o desde los niveles superiores
del modelo OSI), son divididos en paquetes, que serán reensamblados en el
destino. Los paquetes que no lleguen a su destino, serán retransmitidos.
Ejemplos de estos protocolos son el TCP y el UDP, el primero ofrece
mensajes fiables con conexión, y el segundo, ofrece mensajes no fiables sin
conexión (sin retransmisiones).
Protocolos de alto nivel
Por encima del nivel de transporte, OSI define tres niveles más, englobándose
en uno sólo: el nivel de aplicación.
• Nivel de sesión: Proporciona control sobre la conversación y proporciona
facilidades de sincronización.
• Nivel de presentación: Dedicado a tratar el significado de la información
que se transmite.
• Nivel de aplicación: Son los protocolos específicos necesarios para dotar
de funcionalidad a determinado sistema: FTP, HTTP, MAIL, TELNET, etc.
2.2 COMUNICACIÓN
Para comunicar procesos en un ambiente distribuido, además del uso de un
sistema de nombres de recursos, se necesita un esquema de comunicación
lógico que dé sentido a estas transacciones. El sistema operativo provee
mínimamente dos primitivas, enviar y recibir, normalmente llamadas send y
receive, pero tendrá que implementar un enlace de comunicación entre los
procesos. Este enlace puede ser unidireccional o multidireccional según permita
la comunicación en solo uno o en varios sentidos, y dependiendo de la forma
en que se dispara la comunicación.
Existen diferentes tipos de comunicación, entre las que podemos encontrar:
• Comunicación Síncrona: Quien envía permanece bloqueado esperando a que
llegue una respuesta del receptor antes de realizar cualquier otro ejercicio.
• Comunicación Asíncrona: Quien envía continúa con su ejecución inmediatamente
después de enviar el mensaje al receptor.
• Comunicación Persistente: El receptor no tiene que estar operativo al mismo
tiempo que se realiza la comunicación, el mensaje se almacena tanto tiempo como
sea necesario para poder ser entregado.
Comunicación Transitoria: El mensaje se descarta si el receptor no está operativo al
tiempo que se realiza la comunicación. Por lo tanto, no será entregado.
Comunicación Directa: Las primitivas enviar y recibir, usan directamente el nombre
del proceso con el que se comunican. Por ejemplo: enviar (mensaje, A) envía un
mensaje al proceso A. Obsérvese que la primitiva sólo debe especificar cuál va a ser él
proceso destino, ya que el proceso fuente viene direccionado en la comunicación. Las
operaciones básicas Send y Receive se definen de la siguiente manera: Send (P,
mensaje); envía un mensaje al proceso P. Receive (Q, mensaje); espera la recepción de
un mensaje por parte del proceso Q.
Comunicación Indirecta: Es aquella donde la comunicación está basada en un
gateway, enrutador, puente o switch, ya que el emisor y el receptor están a distancia.
• Comunicación Simétrica: Todos los procesos pueden enviar o recibir.
También establece una llamada bidireccional para el caso de dos procesos.
• Comunicación Asimétrica: Un proceso puede enviar, los demás procesos
solo reciben. También llamada unidireccional o no interactiva. Es el esquema
típico de algunos servidores de Internet.
• Comunicación con uso de buffers automático: El transmisor se bloquea
hasta que el receptor recibe el mensaje completo, pero éste tiene capacidad
para recibirlo, aunque no esté listo para procesarlo.
Tarea
• COMUNICACIÓN MEDIANTE SOCKETS.
• COMUNICACION CON LLAMADA A PROCEDIMIENTO REMOTO
(RPC).
• COMUNICACION EN GRUPO.
COMUNICACIÓN MEDIANTE SOCKETS
Un Socket designa un concepto abstracto por el cual dos programas
(posiblemente situados en computadoras distintas) pueden intercambiar
cualquier flujo de datos, generalmente de manera fiable y ordenada.
Los sockets proporcionan una comunicación de dos vías, punto a punto entre
dos procesos. Los sockets son muy versátiles y son un componente básico de
comunicación entre interprocesos e intersistemas. Un socket es un punto final
de comunicación al cual se puede asociar un nombre.
Para lograr tener un socket es necesario que se cumplan ciertos requisitos:
• Que un programa sea capaz de localizar al otro.
• Que ambos programas sean capaces de intercambiarse información.
Por lo que son necesarios tres recursos que originan el concepto de socket:
• Un protocolo de comunicaciones, que permite el intercambio de octetos.
• Una dirección del Protocolo de Red (Dirección IP, si se utiliza el Protocolo
TCP/IP), que identifica una computadora.
• Un número de puerto, que identifica a un programa dentro de una
computadora.
• Con un socket se logra implementar una arquitectura cliente-servidor. La
comunicación es iniciada por uno de los programas (cliente), mientras el
segundo programa espera a que el otro inicie la comunicación (servidor). Un
Socket es un archivo existente en el cliente y en el servidor.
COMUNICACION CON LLAMADA A
PROCEDIMIENTO REMOTO (RPC)
Una llamada a un procedimiento (función o subrutina) es un método bien
conocido para transferir el control de una parte del programa a otra, con un
retorno del control a la primera. Asociado con la llamada a un procedimiento
están el pase de argumentos y el retorno de uno o varios resultados. Cuando el
código que invoca a un procedimiento y dicho procedimiento están en un
mismo proceso en un computador dado, se dice que ha ocurrido una llamada a
un procedimiento local.
• Por el contrario, en una llamada a un procedimiento remoto (RPC,
Remote Proceure Call) el sistema local invoca, a través de la red, a
una función alojada en otro sistema. Lo que se pretende es hacerle
parecer al programador que está ocurriendo una simple llamada
local.
• Se utiliza el término solicitud para referirse a la llamada que realiza
el cliente al procedimiento remoto (servidor) y, el término
respuesta, para describir el resultado devuelto por este último.
• El concepto de llamada a procedimiento remoto permite ocultar
en los “stubs” todos los detalles del código correspondiente a la
comunicación a través de la red. Esto permite que los
desarrolladores de programas de aplicación no se preocupen por
detalles tales como “sockets” y ordenamiento de bytes. Uno de los
objetivos de RPC es facilitar el desarrollo de aplicaciones
distribuidas.
COMUNICACION EN GRUPO
La comunicación se clasifica de acuerdo al número de usuarios a los que se le
ha enviado el mensaje.
• Broadcast o difusión forzada: Un nodo emite, todos los escuchan y solo
contesta a quien va dirigido el mensaje.
• Multicast: Se entrega el mensaje a todos los anfitriones HOST que están
compuestos de ciertas características.
COMUNICACION EN GRUPO
• Unicast o pointcast: Un nodo emite y otro recibe, solo escucha aquel a quien se
dirigió el mensaje.
Una clasificación adicional es la realizada en base a grupos:
• Listas de destinarios: Se tiene una lista de aquellos a los que se les enviará el
mensaje.
• Identificador de grupo: Se forman grupos y el mensaje es dirigido solo a los
miembros de ese grupo.
• Predicador de pertenencia: Se envía y otro recibe, solo escucha aquel a quien se
dirigió el mensaje.
NOMBRES
En los sistemas distribuidos los nombres hacen referencia a cualquier entidad,
ya sea un archivo, un periférico, un proceso, etc. que se pueden encontrar en
máquinas remotas. Los servidores de nombres ayudan a localizar fácilmente y
hacer transparente el acceso a los recursos (transparencia de localización).
Hay tres enfoques principales para los
esquemas de nominación.
• El primer enfoque y el más sencillo, los archivos se nombran con una
combinación del nombre de su anfitrión y su nombre local, lo que garantiza
un nombre único dentro de todo el sistema.
• El segundo enfoque popularizado por el sistema de archivos de red (NFS,
Network File System), ofrece una forma de unir directorios remotos a
directorios locales, lo que da la apariencia a un árbol de directorios
coherentes.
• El tercer enfoque es la estructura más compleja y difícil de mantener en la
NFS, ya que cualquier directorio se puede unir a cualquier árbol de
direcciones locales y la jerarquía resultante puede estar poco estructurada.
existen dos conceptos que hay que distinguir en
relación con la correspondencia de nombres en
un Sistema Distribuido:
Transparencia de Nominación: El nombre de archivo no revela ningún
indicio sobre de la ubicación del almacenamiento físico del archivo.
Independencia de Ubicación: No es necesario modificar el nombre de un
archivo cuando cambia su ubicación en el almacenamiento físico.
SERVIDORES Y AGENTES DE NOMBRES
• Un agente de usuario es una aplicación informática que funciona como
cliente en un protocolo de red; el nombre se aplica generalmente para
referirse a aquellas aplicaciones que acceden a la World Wide Web. Los
agentes de usuario que se conectan a la Web pueden ser desde navegadores
web hasta los web crawler de los buscadores, pasando por teléfonos móviles,
lectores de pantalla y navegadores en Braille usados por personas con
discapacidades.
MAPEO DE DIRECCIONES
El mapeo de direcciones corresponde en la relación de equivalencia entre un tipo de
nombre a otro tipo de nombre; por ejemplo, de un nombre de usuario a un nombre de
sistema.
Para poder ejecutar instrucciones, se debe tener un mecanismo de traducción de
direcciones virtuales a reales. Para ello, se necesitan dos cosas.
Primero, el compilador manejará una dirección base más un desplazamiento al referirse
a las instrucciones.
Segundo, el sistema operativo asignará como dirección base el número de página, al
paginar al proceso.
De esta manera, puede buscarse el inicio de una página en memoria, sumarle el
desplazamiento y así obtener la dirección real de una instrucción.
MAPEO DE RUTAS
• El mapeo de rutas consiste en la relación de equivalencia entre un tipo de
ruta u otro tipo, por lo que se debe considerar que las rutas consisten en la
serie de ubicaciones para poder acceder a un recurso.
• Otro nombre que recibe el mapeo de rutas es el de encaminamiento.
MODELO DE TERRY
• El problema principal de cualquier sistema de nombres, reside en encontrar
de manera fácil, sencilla y rápida cualquier recurso a través del identificador
(nombre) dado.
• Para solucionar este problema, Terry y otros colaboradores, propusieron un
modelo de facilidades que debe de poseer todo sistema de nombres. Dichas
características son las siguientes:
• Facilidad centralizada de nombramiento
• Facilidad replegada de nombramiento
• Facilidad descentralizada de nombramiento
• Facilidad distribuida de nombramiento
• Facilidad jerárquica de nombramiento
2.4 SINCRONIZACIÓN
• Un sistema distribuido debe permitir el apropiado uso de los recursos, debe
encargarse de un buen desempeño y de la consistencia de los datos, además
de mantener seguras todas estas operaciones.
• La sincronización de procesos en los sistemas distribuidos resulta más
compleja que en los centralizados, debido a que la información y el
procesamiento se mantienen en diferentes nodos. Un sistema distribuido
debe mantener vistas parciales y consistentes de todos los procesos
cooperativos y de cómputo. Tales vistas pueden ser provistas por los
mecanismos de sincronización.
El término sincronización se define como la forma de forzar un orden parcial o
total en cualquier conjunto de eventos, y es usado para hacer referencia a tres
problemas distintos pero relacionados entre sí:
• 1. La sincronización entre el emisor y el receptor.
• 2. La especificación y control de la actividad común entre procesos
cooperativos.
• 3. La serialización de accesos concurrentes a objetos compartidos por
múltiples procesos.
• Haciendo referencia a los métodos utilizados en un sistema centralizado, el
cual hace uso de semáforos y monitores; en un sistema distribuido se utilizan
algoritmos distribuidos para sincronizar el trabajo común entre los procesos
y estos algoritmos.
• La sincronización de relojes en un sistema distribuido consiste en garantizar
que los procesos se ejecuten en forma cronológica y a la misma vez respetar
el orden de los eventos dentro del sistema.
ALGORITMO DE CRISTIAN
• Este algoritmo está basado en el uso del Tiempo Coordenado Universal
(UTC), el cual es recibido por un equipo dentro del sistema distribuido. Este
equipo, denominado receptor de UTC, recibe a su vez solicitudes periódicas
del tiempo del resto de las máquinas del sistema a cada uno de los cuales les
envía una respuesta en el menor plazo posible informando el tiempo UTC
solicitado, con lo cual todas las máquinas del sistema actualicen su hora y se
mantenga así sincronizado todo el sistema. El receptor de UTC recibe el
tiempo a través de diversos medios disponibles, entre los cuales se menciona
las ondas de radio, Internet, entre otros.
• Un gran problema en este algoritmo es que el tiempo no puede correr hacia
atrás.
• El tiempo del receptor UTC no puede ser menor que el tiempo de la
máquina que le solicitó el tiempo.
• El servidor de UTC debe procesar las solicitudes de tiempo con el concepto
de interrupciones, lo cual incide en el tiempo de atención.
• El intervalo de transmisión de la solicitud y su respuesta debe ser tomado en
cuenta para la sincronización. El tiempo de propagación se suma al tiempo
del servidor para sincronizar al emisor cuando éste recibe la respuesta.
ALGORITMO DE BERKELEY
• Un sistema distribuido basado en el algoritmo de Berkeley no dispone del
tiempo coordenado universal (UTC); en lugar de ello, el sistema maneja su
propia hora. Para realizar la sincronización del tiempo en el sistema, también
existe un servidor de tiempo que, a diferencia del algoritmo de Cristian, se
comporta de manera activa. Este servidor realiza un muestreo periódico del
tiempo que poseen algunas de las máquinas del sistema, con lo cual calcula
un tiempo promedio, el cual es enviado a todas las máquinas del sistema a fin
de sincronizarlo.
• El problema que existe en un sistema distribuido, es determinar el orden
particular sobre cualquier conjunto de eventos en el sistema. Existen dos
grupos de mecanismos de sincronización: centralizados y distribuidos.
ALGORITMO DE LAMPORT
Fue el primer algoritmo propuesto para lograr la exclusión mutua en redes
cuyos nodos se comuniquen solamente mediante mensajes y que no compartan
memoria. Fue propuesto por Lamport en 1978. El objetivo de la propuesta de
Lamport es obtener un algoritmo que cumpla con las siguientes condiciones:
• Un proceso que posee a un recurso, debe liberarlo antes de que sea otorgado
a otro proceso.
• Se deben entregar los derechos sobre un recurso en el orden en que se
hicieron todas las solicitudes de uso del recurso.
ALGORITMO DE LAMPORT
• El algoritmo anterior es un algoritmo distribuido, pues no existe un proceso
central de sincronización o almacenamiento central. Independientemente,
cada nodo lo ejecuta y se requieren 3*(N-1) mensajes por sección crítica (N
representa el número de procesos). Una característica importante en este
algoritmo es que cada proceso requiere conocer la locación exacta del
recurso al que desea acceder.
RELOJ FÍSICO
• La idea es proveer de un único bloque de tiempo para el sistema. Los
procesos pueden usar la marca física del tiempo provista o leída de un reloj
central para expresar algún orden en el conjunto de acciones que inician. La
principal ventaja de este mecanismo es la simplicidad, aunque existen varios
inconvenientes: el correcto registro del tiempo depende en la posibilidad de
recibir correctamente y en todo momento, el tiempo actual desplegado por el
reloj físico; los errores de transmisión se convierten en un impedimento para
el orden deseado, el grado de exactitud depende de las constantes puestas en
el sistema.
• Los valores de tiempo asignados a los eventos no tienen porqué ser cercanos
a los tiempos reales en los que ocurren.
• En ciertos sistemas es importante la hora real del reloj por lo que se precisan
relojes físicos externos (más de uno).
• Se deben sincronizar con los relojes del mundo real, entre sí.
SINCRONIZACIÓN DE RELOJES FÍSICOS
• Para conocer en qué hora del día ocurren los sucesos en los procesos de
nuestro sistema distribuido Q, es necesario sincronizar los relojes de los
procesos con una fuente de tiempo externa autorizada. Esto es la
sincronización externa. Y si los relojes están sincronizados con otro con un
grado de precisión conocido, entonces podemos medir el intervalo entre dos
eventos que ocurren en diferentes computadores llamando a sus relojes
locales, incluso aunque ellos no estén necesariamente sincronizados con una
fuente externa de tiempo. Esto es sincronización interna.
TIEMPO LÓGICO Y RELOJES LÓGICOS
• Los relojes lógicos son aquellos por los cuales están ordenados los sucesos de
una forma única. Para poder usar en general el tiempo físico, se debe
sincronizar perfectamente bien los relojes a lo largo de un sistema distribuido
para poder así obtener el orden de cualquier par arbitrario de sucesos que
ocurran en él, pero es poco probable que esto ocurra porque no se puede
sincronizar perfectamente los relojes a lo largo de un sistema distribuido. Se
puede utilizar un esquema similar a la casualidad física, que se aplica en los
sistemas distribuidos, para controlar el orden de algunos sucesos que ocurren
en diversos procesos.
RELOJES LÓGICOS TOTALMENTE
ORDENADOS
• Algunos pares de sucesos distintos, generados por diferentes procesos, tienen
marcas de tiempo de Lamport numéricamente idénticas. Sin embargo,
podemos crear un orden, uno para el que todos los pares de sucesos distintos
están ordenados, teniendo en cuenta los identificadores de los procesos en
los que ocurren los sucesos. Lamport la utilizó, para ordenar la entrada de
procesos en una sección.
RELOJES VECTORIALES
• Mattern y Fidge desarrollaron relojes vectoriales para mejorar la deficiencia
de los relojes de Lamport, del hecho que no podemos deducir que un reloj
vectorial para un sistema de N procesos es un vector de N enteros. Cada
proceso mantiene su propio reloj vectorial Vi, que utiliza para colocar marcas
de tiempo en los sucesos locales. Como las marcas de tiempo de Lamport,
cada proceso adhiere el vector de marcas de tiempo en los mensajes que
envía al resto, y hay unas reglas sencillas para actualizar los relojes. Los
vectores de marcas de tiempo tienen la desventaja, comparados con las
marcas de tiempo de Lamport, de precisar una cantidad de almacenamiento y
de carga real de mensajes que es proporcional a N, el número de procesos.

Más contenido relacionado

Similar a SISTEMAS DISTRIBUIDOS COMUNICACION UNIDAD 2.pptx

Similar a SISTEMAS DISTRIBUIDOS COMUNICACION UNIDAD 2.pptx (20)

Protocolos del modelo osi de javier peña
Protocolos del modelo osi de javier peñaProtocolos del modelo osi de javier peña
Protocolos del modelo osi de javier peña
 
Protocolos
ProtocolosProtocolos
Protocolos
 
Comunicación entre procesos Sistemas distribuidos
Comunicación entre procesos Sistemas distribuidosComunicación entre procesos Sistemas distribuidos
Comunicación entre procesos Sistemas distribuidos
 
Protocolos del modelo osi
Protocolos del modelo osiProtocolos del modelo osi
Protocolos del modelo osi
 
Protocolos de comunicacion
Protocolos de comunicacionProtocolos de comunicacion
Protocolos de comunicacion
 
Tcp y osi
Tcp y osiTcp y osi
Tcp y osi
 
Resumen Capitulo 3
Resumen Capitulo 3Resumen Capitulo 3
Resumen Capitulo 3
 
Modelo OSI
Modelo OSIModelo OSI
Modelo OSI
 
Informe
InformeInforme
Informe
 
Presentación de redes hector montero
Presentación de redes hector monteroPresentación de redes hector montero
Presentación de redes hector montero
 
Protocolos
ProtocolosProtocolos
Protocolos
 
Ccna exploration 03
Ccna exploration 03Ccna exploration 03
Ccna exploration 03
 
Funciones y protocolos del modelo osi
Funciones y protocolos del modelo osiFunciones y protocolos del modelo osi
Funciones y protocolos del modelo osi
 
Protocolos y servicios informáticos
Protocolos y servicios informáticosProtocolos y servicios informáticos
Protocolos y servicios informáticos
 
Modelo osi, protocolo y componentes de red
Modelo osi, protocolo y componentes de redModelo osi, protocolo y componentes de red
Modelo osi, protocolo y componentes de red
 
Modelo osi. prot. comp.
Modelo osi. prot. comp.Modelo osi. prot. comp.
Modelo osi. prot. comp.
 
Protocolo de redes
Protocolo de redesProtocolo de redes
Protocolo de redes
 
Trabajo
TrabajoTrabajo
Trabajo
 
Modelos
ModelosModelos
Modelos
 
Ntworking
NtworkingNtworking
Ntworking
 

Último

Institucion educativa la esperanza sede la magdalena
Institucion educativa la esperanza sede la magdalenaInstitucion educativa la esperanza sede la magdalena
Institucion educativa la esperanza sede la magdalenadanielaerazok
 
Buscadores, SEM SEO: el desafío de ser visto en la web
Buscadores, SEM SEO: el desafío de ser visto en la webBuscadores, SEM SEO: el desafío de ser visto en la web
Buscadores, SEM SEO: el desafío de ser visto en la webDecaunlz
 
rodriguez_DelAngel_MariaGPE_M1S3AL6.pptx
rodriguez_DelAngel_MariaGPE_M1S3AL6.pptxrodriguez_DelAngel_MariaGPE_M1S3AL6.pptx
rodriguez_DelAngel_MariaGPE_M1S3AL6.pptxssuser61dda7
 
NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdf
NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdfNUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdf
NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdfisrael garcia
 
MODELO CARACTERIZACION DE PROCESOS SENA.
MODELO CARACTERIZACION DE PROCESOS SENA.MODELO CARACTERIZACION DE PROCESOS SENA.
MODELO CARACTERIZACION DE PROCESOS SENA.imejia2411
 
2º SOY LECTOR PART 2- MD EDUCATIVO (6).pdf
2º SOY LECTOR PART 2- MD  EDUCATIVO (6).pdf2º SOY LECTOR PART 2- MD  EDUCATIVO (6).pdf
2º SOY LECTOR PART 2- MD EDUCATIVO (6).pdfFernandaHernandez312615
 
INSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENA
INSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENAINSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENA
INSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENAdanielaerazok
 
COMPETENCIAS CIUDADANASadadadadadadada .pdf
COMPETENCIAS CIUDADANASadadadadadadada .pdfCOMPETENCIAS CIUDADANASadadadadadadada .pdf
COMPETENCIAS CIUDADANASadadadadadadada .pdfOscarBlas6
 
PRIMARIA 1. RESUELVE PROBLEMAS DE FORMA MOVIMIENTO Y LOCALIZACIÓN 2 (2).pptx
PRIMARIA 1. RESUELVE PROBLEMAS DE FORMA MOVIMIENTO Y LOCALIZACIÓN 2 (2).pptxPRIMARIA 1. RESUELVE PROBLEMAS DE FORMA MOVIMIENTO Y LOCALIZACIÓN 2 (2).pptx
PRIMARIA 1. RESUELVE PROBLEMAS DE FORMA MOVIMIENTO Y LOCALIZACIÓN 2 (2).pptxRodriguezLucero
 
libro de Ciencias Sociales_6to grado.pdf
libro de Ciencias Sociales_6to grado.pdflibro de Ciencias Sociales_6to grado.pdf
libro de Ciencias Sociales_6to grado.pdfFAUSTODANILOCRUZCAST
 
institucion educativa la esperanza sede magdalena
institucion educativa la esperanza sede magdalenainstitucion educativa la esperanza sede magdalena
institucion educativa la esperanza sede magdalenajuniorcuellargomez
 
Historia de la Medicina y bases para desarrollo de ella
Historia de la Medicina y bases para desarrollo de ellaHistoria de la Medicina y bases para desarrollo de ella
Historia de la Medicina y bases para desarrollo de ellajuancamilo3111391
 
actividad.06_crea_un_recurso_multimedia_M01_S03_M01.ppsx
actividad.06_crea_un_recurso_multimedia_M01_S03_M01.ppsxactividad.06_crea_un_recurso_multimedia_M01_S03_M01.ppsx
actividad.06_crea_un_recurso_multimedia_M01_S03_M01.ppsx241532171
 

Último (13)

Institucion educativa la esperanza sede la magdalena
Institucion educativa la esperanza sede la magdalenaInstitucion educativa la esperanza sede la magdalena
Institucion educativa la esperanza sede la magdalena
 
Buscadores, SEM SEO: el desafío de ser visto en la web
Buscadores, SEM SEO: el desafío de ser visto en la webBuscadores, SEM SEO: el desafío de ser visto en la web
Buscadores, SEM SEO: el desafío de ser visto en la web
 
rodriguez_DelAngel_MariaGPE_M1S3AL6.pptx
rodriguez_DelAngel_MariaGPE_M1S3AL6.pptxrodriguez_DelAngel_MariaGPE_M1S3AL6.pptx
rodriguez_DelAngel_MariaGPE_M1S3AL6.pptx
 
NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdf
NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdfNUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdf
NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdf
 
MODELO CARACTERIZACION DE PROCESOS SENA.
MODELO CARACTERIZACION DE PROCESOS SENA.MODELO CARACTERIZACION DE PROCESOS SENA.
MODELO CARACTERIZACION DE PROCESOS SENA.
 
2º SOY LECTOR PART 2- MD EDUCATIVO (6).pdf
2º SOY LECTOR PART 2- MD  EDUCATIVO (6).pdf2º SOY LECTOR PART 2- MD  EDUCATIVO (6).pdf
2º SOY LECTOR PART 2- MD EDUCATIVO (6).pdf
 
INSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENA
INSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENAINSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENA
INSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENA
 
COMPETENCIAS CIUDADANASadadadadadadada .pdf
COMPETENCIAS CIUDADANASadadadadadadada .pdfCOMPETENCIAS CIUDADANASadadadadadadada .pdf
COMPETENCIAS CIUDADANASadadadadadadada .pdf
 
PRIMARIA 1. RESUELVE PROBLEMAS DE FORMA MOVIMIENTO Y LOCALIZACIÓN 2 (2).pptx
PRIMARIA 1. RESUELVE PROBLEMAS DE FORMA MOVIMIENTO Y LOCALIZACIÓN 2 (2).pptxPRIMARIA 1. RESUELVE PROBLEMAS DE FORMA MOVIMIENTO Y LOCALIZACIÓN 2 (2).pptx
PRIMARIA 1. RESUELVE PROBLEMAS DE FORMA MOVIMIENTO Y LOCALIZACIÓN 2 (2).pptx
 
libro de Ciencias Sociales_6to grado.pdf
libro de Ciencias Sociales_6to grado.pdflibro de Ciencias Sociales_6to grado.pdf
libro de Ciencias Sociales_6to grado.pdf
 
institucion educativa la esperanza sede magdalena
institucion educativa la esperanza sede magdalenainstitucion educativa la esperanza sede magdalena
institucion educativa la esperanza sede magdalena
 
Historia de la Medicina y bases para desarrollo de ella
Historia de la Medicina y bases para desarrollo de ellaHistoria de la Medicina y bases para desarrollo de ella
Historia de la Medicina y bases para desarrollo de ella
 
actividad.06_crea_un_recurso_multimedia_M01_S03_M01.ppsx
actividad.06_crea_un_recurso_multimedia_M01_S03_M01.ppsxactividad.06_crea_un_recurso_multimedia_M01_S03_M01.ppsx
actividad.06_crea_un_recurso_multimedia_M01_S03_M01.ppsx
 

SISTEMAS DISTRIBUIDOS COMUNICACION UNIDAD 2.pptx

  • 2. PROCESOS Un proceso es un concepto manejado por el sistema operativo que consiste en el conjunto formado por: • Las instrucciones de un programa destinadas a ser ejecutadas por el microprocesador. • Su estado de ejecución en un momento dado, esto es, los valores de los registros de la CPU para dicho programa. • Su memoria de trabajo, es decir, la memoria que ha reservado. • Sus contenidos.
  • 3. • La diferencia más importante entre un Sistema Distribuido y un sistema de un único procesador es la comunicación entre procesos. En un sistema de un solo procesador la comunicación supone implícitamente la existencia de la memoria compartida. Por ejemplo: un proceso escribe en un buffer compartido y otro proceso lee de él. • Los procesos, para comunicarse, deben apegarse a reglas conocidas como protocolos. Para los sistemas distribuidos en un área amplia, estos protocolos toman frecuentemente la forma de varias capas y cada capa tiene sus propias metas y reglas
  • 4. • Los mensajes se intercambian de diversas formas, existiendo muchas opciones de diseño al respecto; una importante opción es la llamada a un procedimiento remoto. También es importante considerar las posibilidades de comunicación entre grupos de procesos, no sólo entre dos procesos. • Debido a la ausencia de memoria compartida, toda la comunicación en los sistemas distribuidos se basa en la transferencia de mensajes.
  • 5. Por ejemplo: cuando el proceso “A” quiere comunicarse con el proceso “B”: • Construye un mensaje en su propio espacio de direcciones. • Ejecuta una llamada al sistema para que el Sistema Operativo busque el mensaje y lo envíe a través de la red hacia “B”. • Para evitar el caos, “A” y “B” deben coincidir en el significado de los bits que se envíen. Los puntos de acuerdo necesarios incluyen lo siguiente:
  • 6. • ¿Cuántos voltios hay que utilizar para un bit “0” y cuántos para un bit “1”? • ¿Cómo sabe el receptor cuál es el último bit del mensaje? • ¿Cómo puede detectar si un mensaje ha sido dañado o perdido, y qué debe hacer si lo descubre? • ¿Qué longitud tienen los números, cadenas y otros elementos de datos y cuál es la forma en que están representados?
  • 7. EL MODELO ISO/OSI Este modelo se denomina “Modelo de referencia para interconexión de sistemas abiertos” (ISO o modelo OSI), el cual está diseñado para permitir la comunicación de los sistemas abiertos. Dicho modelo: • Establece el formato, contenido y significado de los mensajes recibidos y enviados. • Constituye los protocolos, que son acuerdos en la forma en que debe desarrollarse la comunicación. • Cada nivel incluye su propia cabecera/cola en el mensaje a enviar, con los datos necesarios para implementar su protocolo.
  • 8. Protocolos de bajo nivel • Nivel físico: Este nivel se dedica a transmitir los 0’s y 1’s, especificando cuántos voltios se emplearán para codificar los 0’s y cuántos para los 1’s; cuántos bits por segundo; si la comunicación es simplex o dúplex, así como el tamaño, forma y características de los conectores; por ejemplo: RS-232. • Nivel de enlace: Asegurar transmisión libre de errores, agrupando los bits en tramas; aplicando códigos de redundancia a las tramas para detectar errores, y en caso de errores, envía mensajes de control para pedir la retransmisión.
  • 9. • Nivel de red: Encaminar los mensajes de una máquina a otra. En este nivel a los mensajes se les llama paquetes; por ejemplo: IP
  • 10. Protocolos de trasporte • Los mensajes enviados desde las aplicaciones (o desde los niveles superiores del modelo OSI), son divididos en paquetes, que serán reensamblados en el destino. Los paquetes que no lleguen a su destino, serán retransmitidos. Ejemplos de estos protocolos son el TCP y el UDP, el primero ofrece mensajes fiables con conexión, y el segundo, ofrece mensajes no fiables sin conexión (sin retransmisiones).
  • 11. Protocolos de alto nivel Por encima del nivel de transporte, OSI define tres niveles más, englobándose en uno sólo: el nivel de aplicación. • Nivel de sesión: Proporciona control sobre la conversación y proporciona facilidades de sincronización. • Nivel de presentación: Dedicado a tratar el significado de la información que se transmite. • Nivel de aplicación: Son los protocolos específicos necesarios para dotar de funcionalidad a determinado sistema: FTP, HTTP, MAIL, TELNET, etc.
  • 12. 2.2 COMUNICACIÓN Para comunicar procesos en un ambiente distribuido, además del uso de un sistema de nombres de recursos, se necesita un esquema de comunicación lógico que dé sentido a estas transacciones. El sistema operativo provee mínimamente dos primitivas, enviar y recibir, normalmente llamadas send y receive, pero tendrá que implementar un enlace de comunicación entre los procesos. Este enlace puede ser unidireccional o multidireccional según permita la comunicación en solo uno o en varios sentidos, y dependiendo de la forma en que se dispara la comunicación.
  • 13. Existen diferentes tipos de comunicación, entre las que podemos encontrar: • Comunicación Síncrona: Quien envía permanece bloqueado esperando a que llegue una respuesta del receptor antes de realizar cualquier otro ejercicio. • Comunicación Asíncrona: Quien envía continúa con su ejecución inmediatamente después de enviar el mensaje al receptor. • Comunicación Persistente: El receptor no tiene que estar operativo al mismo tiempo que se realiza la comunicación, el mensaje se almacena tanto tiempo como sea necesario para poder ser entregado.
  • 14. Comunicación Transitoria: El mensaje se descarta si el receptor no está operativo al tiempo que se realiza la comunicación. Por lo tanto, no será entregado. Comunicación Directa: Las primitivas enviar y recibir, usan directamente el nombre del proceso con el que se comunican. Por ejemplo: enviar (mensaje, A) envía un mensaje al proceso A. Obsérvese que la primitiva sólo debe especificar cuál va a ser él proceso destino, ya que el proceso fuente viene direccionado en la comunicación. Las operaciones básicas Send y Receive se definen de la siguiente manera: Send (P, mensaje); envía un mensaje al proceso P. Receive (Q, mensaje); espera la recepción de un mensaje por parte del proceso Q. Comunicación Indirecta: Es aquella donde la comunicación está basada en un gateway, enrutador, puente o switch, ya que el emisor y el receptor están a distancia.
  • 15. • Comunicación Simétrica: Todos los procesos pueden enviar o recibir. También establece una llamada bidireccional para el caso de dos procesos. • Comunicación Asimétrica: Un proceso puede enviar, los demás procesos solo reciben. También llamada unidireccional o no interactiva. Es el esquema típico de algunos servidores de Internet. • Comunicación con uso de buffers automático: El transmisor se bloquea hasta que el receptor recibe el mensaje completo, pero éste tiene capacidad para recibirlo, aunque no esté listo para procesarlo.
  • 16. Tarea • COMUNICACIÓN MEDIANTE SOCKETS. • COMUNICACION CON LLAMADA A PROCEDIMIENTO REMOTO (RPC). • COMUNICACION EN GRUPO.
  • 17. COMUNICACIÓN MEDIANTE SOCKETS Un Socket designa un concepto abstracto por el cual dos programas (posiblemente situados en computadoras distintas) pueden intercambiar cualquier flujo de datos, generalmente de manera fiable y ordenada. Los sockets proporcionan una comunicación de dos vías, punto a punto entre dos procesos. Los sockets son muy versátiles y son un componente básico de comunicación entre interprocesos e intersistemas. Un socket es un punto final de comunicación al cual se puede asociar un nombre.
  • 18. Para lograr tener un socket es necesario que se cumplan ciertos requisitos: • Que un programa sea capaz de localizar al otro. • Que ambos programas sean capaces de intercambiarse información.
  • 19. Por lo que son necesarios tres recursos que originan el concepto de socket: • Un protocolo de comunicaciones, que permite el intercambio de octetos. • Una dirección del Protocolo de Red (Dirección IP, si se utiliza el Protocolo TCP/IP), que identifica una computadora. • Un número de puerto, que identifica a un programa dentro de una computadora.
  • 20. • Con un socket se logra implementar una arquitectura cliente-servidor. La comunicación es iniciada por uno de los programas (cliente), mientras el segundo programa espera a que el otro inicie la comunicación (servidor). Un Socket es un archivo existente en el cliente y en el servidor.
  • 21. COMUNICACION CON LLAMADA A PROCEDIMIENTO REMOTO (RPC) Una llamada a un procedimiento (función o subrutina) es un método bien conocido para transferir el control de una parte del programa a otra, con un retorno del control a la primera. Asociado con la llamada a un procedimiento están el pase de argumentos y el retorno de uno o varios resultados. Cuando el código que invoca a un procedimiento y dicho procedimiento están en un mismo proceso en un computador dado, se dice que ha ocurrido una llamada a un procedimiento local.
  • 22. • Por el contrario, en una llamada a un procedimiento remoto (RPC, Remote Proceure Call) el sistema local invoca, a través de la red, a una función alojada en otro sistema. Lo que se pretende es hacerle parecer al programador que está ocurriendo una simple llamada local. • Se utiliza el término solicitud para referirse a la llamada que realiza el cliente al procedimiento remoto (servidor) y, el término respuesta, para describir el resultado devuelto por este último.
  • 23. • El concepto de llamada a procedimiento remoto permite ocultar en los “stubs” todos los detalles del código correspondiente a la comunicación a través de la red. Esto permite que los desarrolladores de programas de aplicación no se preocupen por detalles tales como “sockets” y ordenamiento de bytes. Uno de los objetivos de RPC es facilitar el desarrollo de aplicaciones distribuidas.
  • 24. COMUNICACION EN GRUPO La comunicación se clasifica de acuerdo al número de usuarios a los que se le ha enviado el mensaje. • Broadcast o difusión forzada: Un nodo emite, todos los escuchan y solo contesta a quien va dirigido el mensaje. • Multicast: Se entrega el mensaje a todos los anfitriones HOST que están compuestos de ciertas características.
  • 25. COMUNICACION EN GRUPO • Unicast o pointcast: Un nodo emite y otro recibe, solo escucha aquel a quien se dirigió el mensaje. Una clasificación adicional es la realizada en base a grupos: • Listas de destinarios: Se tiene una lista de aquellos a los que se les enviará el mensaje. • Identificador de grupo: Se forman grupos y el mensaje es dirigido solo a los miembros de ese grupo. • Predicador de pertenencia: Se envía y otro recibe, solo escucha aquel a quien se dirigió el mensaje.
  • 26. NOMBRES En los sistemas distribuidos los nombres hacen referencia a cualquier entidad, ya sea un archivo, un periférico, un proceso, etc. que se pueden encontrar en máquinas remotas. Los servidores de nombres ayudan a localizar fácilmente y hacer transparente el acceso a los recursos (transparencia de localización).
  • 27. Hay tres enfoques principales para los esquemas de nominación. • El primer enfoque y el más sencillo, los archivos se nombran con una combinación del nombre de su anfitrión y su nombre local, lo que garantiza un nombre único dentro de todo el sistema. • El segundo enfoque popularizado por el sistema de archivos de red (NFS, Network File System), ofrece una forma de unir directorios remotos a directorios locales, lo que da la apariencia a un árbol de directorios coherentes.
  • 28. • El tercer enfoque es la estructura más compleja y difícil de mantener en la NFS, ya que cualquier directorio se puede unir a cualquier árbol de direcciones locales y la jerarquía resultante puede estar poco estructurada.
  • 29. existen dos conceptos que hay que distinguir en relación con la correspondencia de nombres en un Sistema Distribuido: Transparencia de Nominación: El nombre de archivo no revela ningún indicio sobre de la ubicación del almacenamiento físico del archivo. Independencia de Ubicación: No es necesario modificar el nombre de un archivo cuando cambia su ubicación en el almacenamiento físico.
  • 30. SERVIDORES Y AGENTES DE NOMBRES • Un agente de usuario es una aplicación informática que funciona como cliente en un protocolo de red; el nombre se aplica generalmente para referirse a aquellas aplicaciones que acceden a la World Wide Web. Los agentes de usuario que se conectan a la Web pueden ser desde navegadores web hasta los web crawler de los buscadores, pasando por teléfonos móviles, lectores de pantalla y navegadores en Braille usados por personas con discapacidades.
  • 31. MAPEO DE DIRECCIONES El mapeo de direcciones corresponde en la relación de equivalencia entre un tipo de nombre a otro tipo de nombre; por ejemplo, de un nombre de usuario a un nombre de sistema. Para poder ejecutar instrucciones, se debe tener un mecanismo de traducción de direcciones virtuales a reales. Para ello, se necesitan dos cosas. Primero, el compilador manejará una dirección base más un desplazamiento al referirse a las instrucciones. Segundo, el sistema operativo asignará como dirección base el número de página, al paginar al proceso. De esta manera, puede buscarse el inicio de una página en memoria, sumarle el desplazamiento y así obtener la dirección real de una instrucción.
  • 32. MAPEO DE RUTAS • El mapeo de rutas consiste en la relación de equivalencia entre un tipo de ruta u otro tipo, por lo que se debe considerar que las rutas consisten en la serie de ubicaciones para poder acceder a un recurso. • Otro nombre que recibe el mapeo de rutas es el de encaminamiento.
  • 33. MODELO DE TERRY • El problema principal de cualquier sistema de nombres, reside en encontrar de manera fácil, sencilla y rápida cualquier recurso a través del identificador (nombre) dado. • Para solucionar este problema, Terry y otros colaboradores, propusieron un modelo de facilidades que debe de poseer todo sistema de nombres. Dichas características son las siguientes:
  • 34. • Facilidad centralizada de nombramiento • Facilidad replegada de nombramiento • Facilidad descentralizada de nombramiento • Facilidad distribuida de nombramiento • Facilidad jerárquica de nombramiento
  • 35. 2.4 SINCRONIZACIÓN • Un sistema distribuido debe permitir el apropiado uso de los recursos, debe encargarse de un buen desempeño y de la consistencia de los datos, además de mantener seguras todas estas operaciones. • La sincronización de procesos en los sistemas distribuidos resulta más compleja que en los centralizados, debido a que la información y el procesamiento se mantienen en diferentes nodos. Un sistema distribuido debe mantener vistas parciales y consistentes de todos los procesos cooperativos y de cómputo. Tales vistas pueden ser provistas por los mecanismos de sincronización.
  • 36. El término sincronización se define como la forma de forzar un orden parcial o total en cualquier conjunto de eventos, y es usado para hacer referencia a tres problemas distintos pero relacionados entre sí: • 1. La sincronización entre el emisor y el receptor. • 2. La especificación y control de la actividad común entre procesos cooperativos. • 3. La serialización de accesos concurrentes a objetos compartidos por múltiples procesos.
  • 37. • Haciendo referencia a los métodos utilizados en un sistema centralizado, el cual hace uso de semáforos y monitores; en un sistema distribuido se utilizan algoritmos distribuidos para sincronizar el trabajo común entre los procesos y estos algoritmos. • La sincronización de relojes en un sistema distribuido consiste en garantizar que los procesos se ejecuten en forma cronológica y a la misma vez respetar el orden de los eventos dentro del sistema.
  • 38. ALGORITMO DE CRISTIAN • Este algoritmo está basado en el uso del Tiempo Coordenado Universal (UTC), el cual es recibido por un equipo dentro del sistema distribuido. Este equipo, denominado receptor de UTC, recibe a su vez solicitudes periódicas del tiempo del resto de las máquinas del sistema a cada uno de los cuales les envía una respuesta en el menor plazo posible informando el tiempo UTC solicitado, con lo cual todas las máquinas del sistema actualicen su hora y se mantenga así sincronizado todo el sistema. El receptor de UTC recibe el tiempo a través de diversos medios disponibles, entre los cuales se menciona las ondas de radio, Internet, entre otros.
  • 39. • Un gran problema en este algoritmo es que el tiempo no puede correr hacia atrás. • El tiempo del receptor UTC no puede ser menor que el tiempo de la máquina que le solicitó el tiempo. • El servidor de UTC debe procesar las solicitudes de tiempo con el concepto de interrupciones, lo cual incide en el tiempo de atención. • El intervalo de transmisión de la solicitud y su respuesta debe ser tomado en cuenta para la sincronización. El tiempo de propagación se suma al tiempo del servidor para sincronizar al emisor cuando éste recibe la respuesta.
  • 40. ALGORITMO DE BERKELEY • Un sistema distribuido basado en el algoritmo de Berkeley no dispone del tiempo coordenado universal (UTC); en lugar de ello, el sistema maneja su propia hora. Para realizar la sincronización del tiempo en el sistema, también existe un servidor de tiempo que, a diferencia del algoritmo de Cristian, se comporta de manera activa. Este servidor realiza un muestreo periódico del tiempo que poseen algunas de las máquinas del sistema, con lo cual calcula un tiempo promedio, el cual es enviado a todas las máquinas del sistema a fin de sincronizarlo. • El problema que existe en un sistema distribuido, es determinar el orden particular sobre cualquier conjunto de eventos en el sistema. Existen dos grupos de mecanismos de sincronización: centralizados y distribuidos.
  • 41. ALGORITMO DE LAMPORT Fue el primer algoritmo propuesto para lograr la exclusión mutua en redes cuyos nodos se comuniquen solamente mediante mensajes y que no compartan memoria. Fue propuesto por Lamport en 1978. El objetivo de la propuesta de Lamport es obtener un algoritmo que cumpla con las siguientes condiciones: • Un proceso que posee a un recurso, debe liberarlo antes de que sea otorgado a otro proceso. • Se deben entregar los derechos sobre un recurso en el orden en que se hicieron todas las solicitudes de uso del recurso.
  • 42. ALGORITMO DE LAMPORT • El algoritmo anterior es un algoritmo distribuido, pues no existe un proceso central de sincronización o almacenamiento central. Independientemente, cada nodo lo ejecuta y se requieren 3*(N-1) mensajes por sección crítica (N representa el número de procesos). Una característica importante en este algoritmo es que cada proceso requiere conocer la locación exacta del recurso al que desea acceder.
  • 43. RELOJ FÍSICO • La idea es proveer de un único bloque de tiempo para el sistema. Los procesos pueden usar la marca física del tiempo provista o leída de un reloj central para expresar algún orden en el conjunto de acciones que inician. La principal ventaja de este mecanismo es la simplicidad, aunque existen varios inconvenientes: el correcto registro del tiempo depende en la posibilidad de recibir correctamente y en todo momento, el tiempo actual desplegado por el reloj físico; los errores de transmisión se convierten en un impedimento para el orden deseado, el grado de exactitud depende de las constantes puestas en el sistema.
  • 44. • Los valores de tiempo asignados a los eventos no tienen porqué ser cercanos a los tiempos reales en los que ocurren. • En ciertos sistemas es importante la hora real del reloj por lo que se precisan relojes físicos externos (más de uno). • Se deben sincronizar con los relojes del mundo real, entre sí.
  • 45. SINCRONIZACIÓN DE RELOJES FÍSICOS • Para conocer en qué hora del día ocurren los sucesos en los procesos de nuestro sistema distribuido Q, es necesario sincronizar los relojes de los procesos con una fuente de tiempo externa autorizada. Esto es la sincronización externa. Y si los relojes están sincronizados con otro con un grado de precisión conocido, entonces podemos medir el intervalo entre dos eventos que ocurren en diferentes computadores llamando a sus relojes locales, incluso aunque ellos no estén necesariamente sincronizados con una fuente externa de tiempo. Esto es sincronización interna.
  • 46. TIEMPO LÓGICO Y RELOJES LÓGICOS • Los relojes lógicos son aquellos por los cuales están ordenados los sucesos de una forma única. Para poder usar en general el tiempo físico, se debe sincronizar perfectamente bien los relojes a lo largo de un sistema distribuido para poder así obtener el orden de cualquier par arbitrario de sucesos que ocurran en él, pero es poco probable que esto ocurra porque no se puede sincronizar perfectamente los relojes a lo largo de un sistema distribuido. Se puede utilizar un esquema similar a la casualidad física, que se aplica en los sistemas distribuidos, para controlar el orden de algunos sucesos que ocurren en diversos procesos.
  • 47. RELOJES LÓGICOS TOTALMENTE ORDENADOS • Algunos pares de sucesos distintos, generados por diferentes procesos, tienen marcas de tiempo de Lamport numéricamente idénticas. Sin embargo, podemos crear un orden, uno para el que todos los pares de sucesos distintos están ordenados, teniendo en cuenta los identificadores de los procesos en los que ocurren los sucesos. Lamport la utilizó, para ordenar la entrada de procesos en una sección.
  • 48. RELOJES VECTORIALES • Mattern y Fidge desarrollaron relojes vectoriales para mejorar la deficiencia de los relojes de Lamport, del hecho que no podemos deducir que un reloj vectorial para un sistema de N procesos es un vector de N enteros. Cada proceso mantiene su propio reloj vectorial Vi, que utiliza para colocar marcas de tiempo en los sucesos locales. Como las marcas de tiempo de Lamport, cada proceso adhiere el vector de marcas de tiempo en los mensajes que envía al resto, y hay unas reglas sencillas para actualizar los relojes. Los vectores de marcas de tiempo tienen la desventaja, comparados con las marcas de tiempo de Lamport, de precisar una cantidad de almacenamiento y de carga real de mensajes que es proporcional a N, el número de procesos.