Introducción. Ø La Computación Distribuida, 13/04/15 M.en C. C. Asunción Enríquez Zárate 13



Documentos relacionados
Sistemas de Operación II

Conceptos de redes. LAN (Local Area Network) WAN (Wide Area Network)

Capitulo V Administración de memoria

Capítulo IV. INTERBLOQUEO E INANICIÓN

ARQUITECTURA DE DISTRIBUCIÓN DE DATOS

CAPÍTULO I. Sistemas de Control Distribuido (SCD).

Implementación de algoritmos genéticos paralelos de grano burdo en redes locales de computadoras. Resumen

TRABAJO COOPERATIVO EN ROBOTS

ADMINISTRACIÓN DE BASES DE DATOS DISTRIBUIDAS

Redes I Clase # 3. Licda. Consuelo E. Sandoval

PRC-DTI-006 Administración de Roles de los Sistemas de Información de la DTI Procedimiento Dirección de TI - COSEVI

Porqué Nemetschek cambió su sistema de protección de software a NemSLock?

Colección de Tesis Digitales Universidad de las Américas Puebla. Morales Salcedo, Raúl

Manual de Procedimientos

SISTEMAS DE INFORMACIÓN II TEORÍA

Sistemas. Distribuidos

Sistema de Provisión Centralizada CPS

MANTENIMIENTO Y SOPORTE

Capítulo 5. Cliente-Servidor.

PLANEAMIENTO DE LAS COMUNICACIONES EN EMERGENCIAS OTRAS REDES PÚBLICAS. Índice 1. INTERNET SERVICIOS DE RADIO BUSQUEDA...

Arquitectura de sistema de alta disponibilidad

Introducción. Ciclo de vida de los Sistemas de Información. Diseño Conceptual

EL MODELO DE ESTRATIFICACIÓN POR CAPAS DE TCP/IP DE INTERNET

Institución Educativa Inem Felipe Pérez de Pereira 2012 Estrategia taller. AREA: Sistemas de información Taller Previsto

SISTEMAS OPERATIVOS AVANZADOS

IAP ENTORNOS INFORMATIZADOS CON SISTEMAS DE BASES DE DATOS

ISO Anexo A OBJETIVOS DE CONTROL Y CONTROLES DE REFERENCIA DANIELA RAMIREZ PEÑARANDA WENDY CARRASCAL VILLAMIZAR

Computación de Alta Performance Curso 2009 TOLERANCIA A FALLOS COMPUTACIÓN DE ALTA PERFORMANCE 2009 TOLERANCIA A FALLOS

INTRODUCCIÓN A LOS SISTEMAS GESTORES DE BASE DE DATOS

Los mayores cambios se dieron en las décadas de los setenta, atribuidos principalmente a dos causas:

CAPITULO I FORMULACION DEL PROBLEMA

Diagramas del UML. A continuación se describirán los diagramas más comunes del UML y los conceptos que representan: Diagrama de Clases

Int. a las ciencias computacionales

TALLER No. 1 Capitulo 1: Conceptos Básicos de Bases de datos

Actividades para mejoras. Actividades donde se evalúa constantemente todo el proceso del proyecto para evitar errores y eficientar los procesos.

Manual de usuario para Android de la aplicación PORTAFIRMAS MÓVIL

Tienda Virtual Synergy (Parte 2)

Arquitectura de Redes y Comunicaciones

MANUAL PARA CREAR USUARIOS. Guía para crear, desactivar e inmovilizar Usuarios de Salesforce

4. Programación Paralela

SISTEMA InfoSGA Manual de Actualización Mensajeros Radio Worldwide C.A Código Postal 1060

Introducción a las redes de computadores

MANUAL DE USUARIO DE OFICINA CONECTADA

EMC Soporte remoto seguro para VNXe Requisitos y configuración Número de referencia Rev. 01 Mayo de 2014

Conclusiones. Particionado Consciente de los Datos

INTEGRACIÓN HERMES POSITRÓN

Gestión de Permisos. Documento de Construcción. Copyright 2014 Bizagi

Vicerrectorado de Investigación Oficina de Patentes y Valorización

Capítulo 5: Pruebas y evaluación del sistema. A continuación se muestran una serie de pruebas propuestas para evaluar varias

ESPECIFICACIONES TÉCNICAS DEL PROCESO DE ATENCIÓN AL CIUDADANO

copia no controlada ACUERDO DE SERVICIO Sistemas-Gestión de los Servicios Informáticos AS-T-01 Rev OBJETIVO

GESTIÓN Y CONTROL DEL DESARROLLO E IMPLANTACIÓN DE APLICACIONES

GUÍA TÉCNICA PARA LA DEFINICIÓN DE COMPROMISOS DE CALIDAD Y SUS INDICADORES

REDES AD HOC INFORME DE REDES DE COMPUTADORES I. Felipe Muñoz Jonathan Porta Matías Contreras

UNIVERSIDAD ESTATAL DE MILAGRO

Servicio de hospedaje de servidores

Centro de Capacitación en Informática

Cómo las herramientas en línea están revolucionando la implementación de ITIL e ISO 20000

GESTIÓN DE LA DOCUMENTACIÓN

En este capítulo se describe las herramientas, así como los procesos involucrados en el análisis y desarrollo de sistemas de información, por otro

Modelos de los sistemas distribuidos. Jorge Iván Meza Martínez

CAPITULO VI ESTRATEGIAS DE OUTSOURCING

Servicio de Firma Electrónica Remota sobre Dispositivo Seguro Centralizado (SSCD)

Asistente Liberador de Espacio. Manual de Usuario

LA PLATAFORMA VIRTUAL DE LA ASOCIACIÓN ARAGONESA DE PSICOPEDAGOGÍA. REQUISITOS MÍNIMOS PARA ACCEDER AL CURSO.


BASES DE LA CATEGORÍA RASTREADORES DE LÍNEA DESCRIPCIÓN: (REVISAR ANTES EL DOCUMENTO INFORMACIÓN GENERAL)

18 y 19 Sistemas de Archivos Distribuidos y Tarea 05

ANEXO XII. Denominación: Administración y programación en sistemas de planificación de recursos empresariales y de gestión de relaciones con clientes.

Capítulo 9 Redes y Teleinformática 9.1 Introducción

CUESTIONARIO DE AUTOEVALUACIÓN

Estimado usuario. Tabla de Contenidos

Manual etime para supervisores

CAPITULO 8. Planeamiento, Arquitectura e Implementación

CAPÍTULO III MARCO TEÓRICO. Cada día cambian las condiciones de los mercados debido a diferentes factores como: el

8. Las VLAN 8.1. Visión general de las VLAN La solución para la comunidad de la universidad es utilizar una tecnología de networking

LA REVOLUCIÓN DE LOS SISTEMAS DE INFORMACIÓN (S.I.) Introducción PORQUÉ SISTEMAS DE INFORMACIÓN? El Competitivo Entorno de los Negocios

Figura 4.1 Clasificación de los lenguajes de bases de datos

Unidad II: Administración de Procesos y del procesador

LINEAMIENTOS BASICOS PARA EL DISEÑO Y ESTABLECIMIENTO DE SISTEMAS DE ALERTA TEMPRANA Juan Carlos Villagrán De León CIMDEN-VILLATEK, Guatemala

DISCOS RAID. Se considera que todos los discos físicos tienen la misma capacidad, y de no ser así, en el que sea mayor se desperdicia la diferencia.

CICLO FORMATIVO: MANTENIMIENTO ELECTROMECÁNICO MÓDULO: MONTAJE Y MANTENIMIENTO DE LÍNEAS AUTOMATIZADAS CURSO:

Descripción y alcance del servicio INTERNET NEGOCIOS IPLAN. IPLAN iplan.com.ar NSS S.A. Reconquista 865 C1003ABQ Buenos Aires Argentina

Base de datos relacional

Curso Internet Básico - Aularagon

Servicio de telefonía ip de la Universidad Carlos III de Madrid

LA METODOLOGÍA DEL BANCO PROVINCIA

Escuela Universitaria Politécnica Grado en Ingeniería Informática Fundamentos de Programación II ENUNCIADO DE PRÁCTICAS CONVOCATORIA DE SEPTIEMBRE

Versión 10 Fecha de Elaboración: 21/10/2015 Página 1 de 8

LABORATORIO Nº 2 GUÍA PARA REALIZAR FORMULAS EN EXCEL

POLÍTICA DE COOKIES. A continuación explicaremos qué son las cookies y los tipos de cookies que utiliza la Fundación Fuertes en su sitio Web:

PROGRAMACIÓN ORIENTADA A OBJETOS

PROCEDIMIENTO VERSION: 03 ELABORACION Y CONTROL DE DOCUMENTOS PROCESO DE PLANIFICACION DEL SISTEMA INTEGRADO DE GESTION

INGENIERÍA EN COMPUTACIÓN Reglamento para la realización de la Práctica Profesional Supervisada

DATOS IDENTIFICATIVOS:

4. Base de datos XML nativa: Marklogic

FORMACIÓN DE EQUIPOS DE E-LEARNING 2.0 MÓDULO DE DISEÑO Y PRODUCCIÓN DE MATERIALES UNIDAD 6 B

DIRECCIONAMIENTO IPv4

4. METODOLOGÍA. 4.1 Materiales Equipo

1. Liderar equipos. Liderazgo

Transcripción:

Introducción Ø La Computación Distribuida, Ø Ø Termino se utiliza indiscriminadamente para referirse a cualquier sistema en el que múltiples agentes autónomos, cada uno con capacidades de cómputo individual, se comunican entre sí y afectan mutuamente su comportamiento. Los agentes, usualmente llamados procesadores, procesos o nodos, pueden ser desde computadoras completas hasta autómatas celulares con capacidad de cómputo y memoria muy limitados que se pueden comunicar mediante mensajes. 13/04/15 M.en C. C. Asunción Enríquez Zárate 13

Introducción Ø La Computación Distribuida Ø Ø Referencia a cualquier evento en el cual se maneja un sistema en una red de computadoras y trata de describir las tendencias hacia la funcionalidad distribuida: Ø Ø Ø sistemas distribuidos, procesamiento distribuido, bases de datos distribuidas. Servicios que provee un Sistema de Computación Distribuido. 13/04/15 M.en C. C. Asunción Enríquez Zárate 14

Introducción Ø Philip H. Enslow in 1978, atribuye las siguientes propiedades: Ø Está compuesto por varios recursos informáticos de propósito general, tanto físicos como lógicos, que pueden asignarse dinámicamente a tareas concretas. Ø Estos recursos están distribuidos físicamente, y funcionan gracias a una red de comunicaciones. Ø Hay un sistema operativo de alto nivel, que unifica e integra el control de los componentes. 13/04/15 M.en C. C. Asunción Enríquez Zárate 15

Introducción Ø Philip H. Enslow in 1978, atribuye las siguientes propiedades: Ø Ø El hecho de la distribución es transparente, permitiendo que los servicios puedan ser solicitados especificando simplemente su nombre (no su localización). El funcionamiento de los recursos físicos y lógicos está caracterizado por una autonomía coordinada. 13/04/15 M.en C. C. Asunción Enríquez Zárate 16

Introducción Definición Ø Coulouris Ø Un sistema distribuido es aquel que está compuesto por varias computadoras autónomas conectadas mediante una red de comunicaciones y equipadas con programas que les permitan coordinar sus actividades y compartir recursos 13/04/15 M.en C. C. Asunción Enríquez Zárate 17

Introducción Definición Ø Henri Elle Bal Ø Un sistema de computación distribuida está compuesto por varios procesadores autónomos que no comparten memoria principal, pero cooperan mediante el paso de mensajes sobre una red de comunicaciones''. 13/04/15 M.en C. C. Asunción Enríquez Zárate 18

Introducción Ø Michael D. Schroeder Ø Ø Ø Todo sistema distribuido tiene tres características básicas Existencia de varias computadoras. Ø En general, cada una con su propio procesador, memoria local, subsistema de entrada/salida y quizás incluso memoria persistente. Interconexión. Ø Existen vías que permiten la comunicación entre las computadoras, a través de las cuales pueden transmitir información. 13/04/15 M.en C. C. Asunción Enríquez Zárate 19

Introducción Ø Michael D. Schroeder Ø Estado compartido. Ø Ø Las computadoras cooperan para mantener algún tipo de estado compartido. El funcionamiento correcto del sistema se describirse como el mantenimiento de una serie de invariantes globales que requiere la coordinación de varias computadoras. 13/04/15 M.en C. C. Asunción Enríquez Zárate 20

Introducción l Def 1: Se puede definir como una colección de computadoras independientes que el usuario percibe como un solo sistema. l Def 2: Es un sistema en el cual las funciones se reparten por áreas de trabajo diferentes, estas trabajan de forma coordinada para asumir los objetivos que la organización asigna al sistema. 21

Introducción 22

Objetivos de los u Alto Rendimiento (Performance): Puede utilizarse una red local para distribuir procesos de una tarea entre los nodos de la red, con el fin de aprovechar los recursos de cómputo disponibles (Computación en Clúster y Computación en Malla). u Tolerancia a Fallos: Un ejemplo de ello seria un sistema bancario donde es de gran vitalidad mantener la información replicada, ya que el riesgo de perder información por el fallo de una maquina resulta inaceptable. 23

Objetivos de los u Alta Disponibilidad: Aplicada sobre todo para acercar la información al usuario logrando con ello disminuir los tiempos de respuesta, para esta tarea se han propuesto diversas técnicas como: caching, mirroring y peer-to-peer. u Movilidad: Un ejemplo de ello seria mover la información de un usuario entre sus diferentes dispositivos (computadoras, teléfonos móviles, tabletas, etc). 24

Objetivos de los u Ubicuidad: Donde las aplicaciones tratan de ofrecer un comportamiento inteligente en función de las necesidades del usuario, la naturaleza y disponibilidad de los recursos, como ejemplo de ello se tiene a las aplicaciones de inteligencia ambiental. Tarea 1.- Definiciones de: caching, mirroring y peer-to-peer. 25

Ventajas de los Ventajas respecto a un sistema centralizado: u Bajo costo: Puede estar compuesto de Pc's estándar. u Escalabilidad: Debido a su modularidad. u Flexibilidad: reutilización de máquinas viejas. u Disponibilidad: mediante replicación de recursos. u Ofrecen la posibilidad de paralelismo. u Permiten acceder a recursos remotos.

Ventajas de los Ventajas respecto a un sistema en red: u u Uso más eficiente de los recursos (migración). Acceso transparente a los recursos.

Ejemplos de S.D. (Búsqueda Web) u Esta tarea hace referencia a los motores de búsqueda que indexen contenidos completos que se encuentran dentro de la WWW (World Wide Web), los cuales abarcan una amplia gama de estilos de información: páginas web, fuentes multimedia y libros escaneados. u Siendo una tarea muy complicada debido a que la web consiste aproximadamente de 63 billones de páginas y un trillón de direcciones web únicas. 28

Ejemplos (Juegos en Línea Multi Jugador) u Estos juegos ofrecen una experiencia de inmersión mediante el cual un gran número de usuarios interactúan. u Un ejemplo de ello es el juego EVE, el cual consiste de un universo con cerca de 5,000 sistemas estelares y múltiples sistemas económicos y sociales. Puede soportar 50,000 jugadores simultáneos. u Utiliza una arquitectura cliente-servidor donde una simple copia del estado del mundo es mantenida sobre un servidor centralizado. 29

Ejemplos (Juegos en Línea Multi Jugador) Dicho servidor es accedido por programas clientes de las consolas de los jugadores. (Este servidor consiste de una arquitectura clúster compuesta por miles de nodos). u El objetivo de esta arquitectura es asegurarse de una rápida respuesta a través de protocolos de red optimizados. u La carga de trabajo es segmentada en sistemas estelares individuales asignadas a computadoras particulares dentro del clúster. u Siempre tienen cuenta el seguimiento del movimiento de los jugadores entre los sistemas estelares. 30

Ejemplos (Comercio Financiero) La industria financiera se ha mantenido a la vanguardia en cuanto a la tecnología de los sistemas distribuidos, tomando como caso particular el acceso en tiempo real a un amplio rango de fuentes de información (La actualización de precios y tendencias, desarrollos económicos y políticos). 31

Tareas Tarea 2.- Buscar las especificaciones de la arquitectura de los siguientes : NAPSTER, P2P y SETI. TAREA 3.- Que características tienen los middlewares y buscar ejemplos. 32

Retos en los u La industria financiera se ha mantenido a la vanguardia en cuanto a la tecnología de los sistemas distribuidos, tomando como caso particular el acceso en tiempo real a un amplio rango de fuentes de información (La actualización de precios y tendencias, desarrollos económicos y políticos).

Retos en los l Middleware: Proporciona un modelo computacional y se aplica a una capa de software que proporciona una abstracción de programación, generando el enmascaramiento de la heterogeneidad de: redes subyacentes, hardware, sistemas operativos y lenguajes de programación. l Extensibilidad: Es la característica que determina si un sistema puede ser extendido y re implementado en diversos aspectos. Se puede determinar por: El grado en el cual se pueden añadir nuevos servicios de compartición de recursos. 34

Retos en los l Escalabilidad: Se dice que un sistema es escalable si conserva su efectividad cuando ocurre un incremento significativo en el número de recursos y el número de usuarios. Los problemas que se pueden presentar para la generación de la escalabilidad son: u Control del costo de los recursos físicos. u Control de perdidas de prestaciones. u Prevención de desbordamiento de recursos de software u Cuellos de botella de prestaciones 35

Retos en los l Seguridad: La seguridad de los recursos de información tiene tres componentes: confidencialidad, integridad y disponibilidad. La seguridad no solo es cuestión de de ocultar los contenidos de los mensajes sino también consiste en: u u u Autenticar usuarios y recurso Definir roles y patrones de acceso Seguridad física. 36

Retos en los Transparencia Transparencia Acceso Ubicación Migración Re asignación Replicación Concurrencia Fallos Descripción Oculta las diferencias en la representación de los datos y como los recursos son accedidos Oculta la ubicación de los recursos Oculta como un recurso puede ser movido a otro lugar Oculta que un recurso puede ser movido a otra ubicación mientras esta en uso Oculta que un recurso es replicado Oculta que un recurso puede ser compar=do Oculta los fallos y la recuperación de un recurso 37

Requisitos de diseño l Los sistemas distribuidos en general, permiten que los usuarios accedan a servicios y ejecuten aplicaciones, para ello suelen hacer uso de: u u u u u Redes Hardware de computadoras Sistemas Operativos Lenguajes de programación Implementaciones de diferentes desarrolladores 38

Requisitos de diseño Los temas de prestaciones que se deben considerar son las siguientes: u Capacidad de Respuesta (Responsiveness): Cuando esta implicado un servicio remoto, la velocidad a la que se genera la respuesta esta determinada no solo por la carga y prestaciones del servidor y la red si no también por los retardos de todos los componentes de software implicados como: u La Comunicación entre los sistemas operativos u Las Comunicaciones entre procesos u Los servicios (Middleware) 39

Requisitos de diseño Es importante tener en cuenta que la transferencia de datos entre procesos y la conmutación del control es relativamente lenta, incluso cuando los procesos residen en la misma maquina. Para obtener buenos tiempos de respuesta, lo sistemas deben estar compuestos de relativamente pocas capas de software y la cantidad de datos transferidos debe ser pequeña. 40

Requisitos de diseño Productividad (Throughput): Hace referencia a la rapidez con la que se realiza el trabajo computacional. Esto esta dado por: u Las velocidades de procesamiento u Las tasas de transferencia de datos 41

Requisitos de diseño Balance de Cargas Computacionales: Uno de los propósitos de los sistemas distribuidos es permitir que los procesos de servicio evolucionen concurrentemente sin competir por los mismos recursos, de esta manera se pretende aumentar el paralelismo de ejecución y en consecuencia el rendimiento del procesamiento. La principal herramienta utilizada para este propósito es la migración de procesos. La problemática a enfrentar para este aspecto hace referencia a: u Determinar hacia donde enviar una tarea. u Definir que se entiende por carga alta y que se define por carga liviana. 42

Requisitos de diseño Calidad de Servicio: Las principales propiedades no funcionales de los sistemas distribuidos que afectan la calidad del servicio experimentado por los clientes y usuarios son las siguientes: u u u Fiabilidad Seguridad Prestaciones Los aspectos de fiabilidad y seguridad son críticos en el diseño de los sistemas. Los aspectos de prestaciones se han definido recientemente en términos de la capacidad de proporcionar las garantías de los datos críticos en el tiempo. 43

Requisitos de diseño Uso de Caché y Replicación: Actualmente se están generando nuevos progresos en el diseño de los sistemas distribuidos que tratan de superar los obstáculos mencionados anteriormente mediante el uso de la caché y la replicación. La idea principal es que las copias de los recursos en la caché puedan puedan mantenerse actualizadas cuando se actualiza el recurso en el servidor. 44

Requisitos de diseño Aspectos de Fiabilidad: Es crucial no solo en actividades de control y gobierno sino también en muchas aplicaciones comerciales incluyendo las de comercio en Internet. La fiabilidad se puede definir como: u Corrección: Técnicas para comprobar y asegurar la corrección de los programas distribuidos y concurrentes. u Seguridad: Afecta a la necesidad de ubicar los datos y otros recursos sensibles solo en aquellas maquinas equipadas con un método eficaz contra ataques. u Tolerancia a Fallos: Las aplicaciones estables deben continuar correctamente en presencia de fallos de hardware, software y las redes. 45

Tipos de Hablando en términos generales se puede hacer una distinción entre dos subgrupos: l Cómputo en Clúster: Consta de una colección de estaciones de trabajo similares (homogéneas) conectadas por medio de una red de área local de alta velocidad (infinidad), cada nodo ejecuta el mismo Sistema Operativo. u Cómputo Grid: Consta de sistemas distribuidos, donde cada uno de ellos podría caer dentro de un dominio administrativo diferente, su principal característica es tanto el hardware como el software y la red de interconexión, pueden tener diferentes características (heterogéneos). 46

Tipos de l Computación de alto rendimiento (High Performance Computing -HPC): u u u u Usa supercomputadoras y clusters para resolver problemas de calculo avanzados Comúnmente asociado con la computación usada para la investigación científica. Usado para procesamiento paralelo Sinónimo de supercomputación

Tipos de l High-Performance Technical Computing (HPTC): u Aplicaciones de ingeniería de computación tales como: l Dinámica computacional de fluidos l Construcción y verificación de prototipos virtuales. l Simulación y modelos l Tomografía sísmica para aplicaciones de petroquímica. u Aplicación a los negocios para: l Data Warehouses l Procesamiento de transacciones.

TOP 500 13/04/15 M.en C. C. Asunción Enríquez Zárate 49

Tipos de HPL benchmark (High Performance Computing Linpack Benchmark): HPL es un paquete de software que resuelve un sistema lineal denso (al azar) en aritmética de doble precisión (64 bits) sobre computadoras con memoria distribuida. TAREA3.- revisar http://www.top500.org/project/ top500_description

Computación de Alto Rendimiento en México Xiuhcoatl forma p a r t e d e l Laboratorio Nacional de Cómputo de Alto D e s e m p e ñ o (LANCAD), integrado por los clústers Kan B a l a m d e l a Universidad Nacional Autónoma de México (UNAM) y Aitzaloa de la Universidad A u t ó n o m a Metropolitana (UAM).

Sistemas de Cómputo en Clúster Al menos virtualmente en la computación en clúster se utiliza para la programación en paralelo donde un solo programa de cálculo intensivo corre de forma paralela en múltiples máquinas.

Sistemas de Cómputo en Clúster Cada clúster consta de una de una colección de nodos de cómputo y se accede a ellos mediante un solo nodo maestro, siendo este quien manipula la ubicación de los nodos.el nodo Maestro como tal ejecuta el Middleware para la ejecución de programas y la administración del clúster

Sistemas de Cómputo en Grid Los sistemas de cómputo basados en Grid tienen un alto grado de heterogeneidad, no se hacen suposiciones de ningún índole con respecto al hardware, Sistemas Operativos, Redes, dominios administrativos, políticas de seguridad, etc.

Sistemas de Cómputo en Grid Los sistemas Grid fundamentalmente tratan de: u Reunir recursos de diferentes organizaciones para permitir la colaboración de un grupo de personas o instituciones. u Genera organizaciones de recursos virtuales l Supercomputadoras l Clústers de computadoras l Facilidades de almacenamiento l Bases de datos l Dispositivos especiales de red como telescopios, sensores, etc

Arquitectura de los Sistemas de Cómputo en Grid

Sincronización l Importancia: La sincronización es de gran importancia para evitar que varios procesos accedan simultáneamente a un recurso compartido, la idea es que cooperen para garantizar a cada uno el acceso exclusivo temporal al recurso

Relojes Físicos Es un cristal de cuarzo mecanizado con precisión, cuando este dispositivo se mantiene sujeto a tensión, los cristales del cuarzo oscilan en una frecuencia definida por las características del cuarzo. Existen dos registros asociados a cada cristal, un contador y un mantenedor, Cada cada oscilación disminuye el contador en uno, cuando el contador llega a cero se genera una interrupción y se reinicia a partir del registro mantenedor, De esta manera es posible programar un cronómetro para generar una interrupción (marca de reloj) 60 veces por segundo.

Relojes Físicos Tan pronto como se introducen varios CPUs, cada una con su propio reloj, la situación cambia radicalmente, lo cual genera un problema: l Como sincronizarlos entre si? l En Ramanathan y colaboradores (1990) presentan una investigación a fondo acerca de los algoritmos de sincronización de relojes.

Algoritmos de Sincronización de Relojes l WWV: Es una estación de radio de onda corta, la cual emite un pulso corto al inicio de cada segundo UTC (Universal Time Coordinated), la presición de WWV es de aproximadamente +- 1 ms. A partir de un receptor se puede calcular el tiempo. Para el caso en que los servidores tengan un dominio de tiempo activo (cierto tiempo pregunta a cada máquina sobre la hora ahí registrada). Basado en las respuestas, calcula el tiempo promedio y les dice a todas las maquinas que adelanten o atrasen sus relojes, según la nueva hora.

Relojes Lógicos de Lamport Lamport señaló que la sincronización de relojes no tiene que ser absoluta. Si 2 procesos no interactúan no es necesario que sus relojes estén sincronizados. Generalmente lo importante no es que los procesos estén de acuerdo en la hora, pero sí importa que coincidan en el orden en que ocurren los eventos. Por tanto un reloj lógico de Lamport es un contador software que se incrementa monótonamente, cuyos valores no necesitan tener ninguna relación particular con ningún reloj físico.

Relojes Lógicos de Lamport Para sincronizar los relojes lógicos, Lamport definió una relación llamada ocurrencia anterior. Donde la la expresión a -> b (a ocurre antes que b) y significa que todos los procesos coinciden en que ocurre el primer evento a y después el evento b. Lo cual puede conservarse en dos situaciones:

Relojes Lógicos de Lamport Si a y b son eventos en el mismo proceso y a ocurre antes de b, entonces a > b es verdadero. Ocurre antes de es una relación transitiva: u Si a > b y b > c, entonces a > c. u Si dos eventos x e y están en procesos diferentes que no intercambian mensajes, entonces x > y no es verdadero, pero tampoco lo es y > x : u Se dice que son eventos concurrentes.

Relojes Lógicos de Lamport P1 P2 P3 P1 P2 P3

Relojes Lógicos de Lamport Al tiempo 6, el proceso p1 envía el mensaje m1 al proceso p2. El tiempo en que el mensaje demore en llegar depende del reloj de p1. Para el reloj del proceso P2 indica que 16 fue el tiempo en que le tomo en llegar al mensaje. Si el mensaje lleva inscrito el tiempo de inicio 6 el proceso p2 concluirá que le tomo 10 marcas realizar el recorrido. Siendo este valor posible.

Relojes Lógicos de Lamport De acuerdo con este razonamiento el mensaje m2 desde p2 hasta p3 se lleva otras 16 marcas. Ahora el mensaje m3 deja al proceso p3 al 60 y llega a p2 al 56, de manera similar el mensaje m4 desde p2 hasta p1 sale en el 64 y llega en el 54, siendo estos valores claramente imposibles. Esta situación es la que debe evitarse.

Relojes Lógicos de Lamport La solución de Lamport se deriva a partir de la relación ocurrencia-anterior. Esto es, m3 salio en 60, así que debe llegar en 61 o después. Por tanto cada mensaje lleva el tiempo de envío de acuerdo con el reloj del remitente. Cuando un mensaje llega y el reloj del destinatario muestra un valor anterior al tiempo al que el mensaje fue enviado, el destinatario debe adelantar su reloj para estar una unidad adelante del tiempo de envío.

Relojes Lógicos de Lamport En este punto es importante diferenciar tres capas de software distintas: la red, el middleware y una capa de aplicación.

Práctica - Relojes Lógicos de Lamport Ejercicio.- Para implementar los relojes lógicos de Lamport cada proceso Pi mantiene un contador local Ci, los cuales se deben actualizar de acuerdo a los siguientes pasos: Antes de ejecutar un evento (es decir, enviar un mensaje a través de la red, entregar un mensaje a una aplicación o algún evento interno) Pi ejecuta Ci <- Ci + 1.

Práctica - Relojes Lógicos de Lamport Cuando el proceso Pi envía un mensaje m a Pj, este ajusta el registro de tiempo de m, ts(m) igual a Ci después de haber ejecutado el paso anterior. Una vez que se recibe el mensaje m, el proceso Pj ajusta su propio contador local como Cj <- max{cj,ts(m)} después ejecuta el primer paso y entrega el mensaje a la aplicación.

Relojes Lógicos de Lamport P1 P2 P3 P1 P2 P3

Algoritmo de Sincronización de Berkeley Este algoritmo pasa por tres fases: u u u El servidor (maestro) es activo, pregunta a cada cliente por su hora. Calcula el promedio, descontando los que están lejos del mismo. Informa a cada cliente como debe cambiar la hora.

Algoritmo de Sincronización de Berkeley Estos intercambios de información se realizan a través de paquetes de datos que circulan por la red de interconexión entre las computadoras que se van a sincronizar. Se deben considerar demoras a la hora de evaluar la corrección para sincronizar los relojes. La diferencia entre los relojes será:

Algoritmo de Sincronización de Berkeley Práctica 1.- Implementar el algoritmo de Berkeley para sincronizar al menos 3 esclavos y un maestro, para ello es necesario hacer uso de la función date.

Esquemas de Multitransmisión En los sistemas distribuidos es posible utilizar la multifunción para localizar una entidad (host), Internet soporta multitransmisión a nivel de red al permitir a los servidores conectarse a un grupo específico de multitransmisión. Cuando el servidor envía un mensaje a una dirección de multitransmisión, la capa de red proporciona un servicio del mejor esfuerzo para enviar dicho mensaje a todos los miembros del grupo.

Esquemas de Multitransmisión Entonces es posible usar una dirección de multitranmisión como un servicio general de localización para múltiples entidades. Ejercicio en Clase.- Por ejemplo se puede considerar una empresa en donde cada empleado tiene su propia computadora móvil. Cuando una de estas se conecta a la red local disponible se le asigna una IP de manera automática. Cuando un proceso desea localizar a la computadora A envía una petición ( En donde esta A?). Si A esta conectada responde con su dirección actual.

Exclusión Mutua Para los sistemas distribuidos resulta fundamental concurrencia y la colaboración entre diversos procesos. la Esto significa que los procesos necesitarán de acceso simultáneo a los mismos recursos. Para evitar que los accesos concurrentes corrompan los recursos, o que los vuelvan inconsistentes es necesario: u Implementar métodos que garanticen que los procesos tengan acceso mutuamente exclusivo.

Exclusión Mutua Los algoritmos distribuidos de exclusión mutua pueden clasificarse en dos diferentes categorías. Las soluciones basadas en token: u u u u Se logra pasando entre los procesos un mensaje especial conocido como token. Solo hay un token conocido y quien lo tenga puede acceder al recurso compartido. Cuando termina, pasa el token al siguiente proceso. Si un proceso tiene el token, pero no esta interesado en acceder al recurso, simplemente lo pasa.

Exclusión Mutua Soluciones Basadas en Token Propiedades: Evitan la inanición: Deben garantizar fácilmente que todos los procesos tendrán la oportunidad de acceder a los recursos. Interbloqueo: Diversos procesos se esperan unos a otros para continuar. Inconvenientes: Cuando el token se pierde (debido a que falla el proceso que lo tiene) es necesario iniciar un nuevo proceso distribuido para garantizar la creación de un nuevo token. Es muy importante evitar generar más de un token.

Exclusión Mutua - Basada en Permisos l Soluciones basadas en permisos: Un proceso que desea el primer acceso a los recursos requiere el permiso de los otros procesos. Existen diferentes formas de garantizar tal permiso algunas de ellas son: l Un algoritmo Centralizado: Es similar a lo que hace un sistema de un procesador. Se elige un proceso como coordinador, siempre que un proceso desea acceder a un recurso compartido, envía un mensaje de petición al coordinador mencionando el recurso al que desea acceder y solicita permiso.

Exclusión Mutua Algoritmo Centralizado Si ningún otro proceso esta accediendo al recurso en ese momento, el coordinador otorga una respuesta en la que otorga el permiso (a). Cuando la respuesta llega, el proceso solicitante puede continuar.

Exclusión Mutua Algoritmo Centralizado l Si otro proceso solicita permiso para acceder al recurso. El coordinador sabe que otro proceso se encuentra utilizando el recurso, por lo que no otorga el permiso en (b), el coordinador simplemente se abstiene de responder y bloquea al proceso 2 que esta en espera de una respuesta. l Cuando el proceso 1 termina de usar el recurso, envía un mensaje al coordinador para que libere su acceso exclusivo (c). El coordinador toma el primer elemento de la cola de peticiones aplazadas y le envía un mensaje de autorización.

Exclusión Mutua Algoritmo Centralizado l Desventajas del algoritmo centralizado: u u u Si el coordinador falla todo el sistema puede irse abajo. Si los procesos normalmente se bloquean después de hacer una petición no pueden distinguir un coordinador desactivado. Un solo coordinador puede volverse un cuello de botella en cuanto a rendimiento.

Exclusión Mutua Algoritmo Descentralizado En este algoritmo se supone que cada recurso tiene n replicas, cada replica tiene su propio coordinador para controlar el acceso de procesos concurrentes. Sin embargo cada que un proceso quiera acceder al recurso, este tendrá que lograr una votación mayoritaria a partir de m > n/2 coordinadores.

Exclusión Mutua - Algoritmo Descentralizado Este esquema hace que la solución original centralizada sea menos vulnerable ante las fallas de un solo coordinador. El riesgo que se corre es que un reinicio hará que los permisos otorgados previamente a algunos procesos. En consecuencia, después de su recuperación puede nuevamente otorgar, de manera incorrecta permiso a otro proceso.

Exclusión Mutua - Algoritmo Descentralizado l Si suponemos que el recurso se conoce con un nombre único. Se puede decir que la i-esima réplica se le llama nombre-i, la cual se utiliza después de calcular una clave única mediante una función hash. En consecuencia todo proceso puede generar las n claves dado el nombre de un recurso y posteriormente busca al nodo responsable de una réplica. l Si se niega el permiso para acceder al recurso (es decir, un proceso obtiene menos de m votos), desiste durante cierto tiempo y lo intenta más tarde.

Exclusión Mutua - Algoritmo Descentralizado Desventajas: El problema de este algoritmo es que si muchos nodos que desean acceder al mismo recurso, ninguno podrá obtener suficientes votos y por lo tanto no podrán utilizar el recurso.

Exclusión Mutua Algoritmo Distribuido Este algoritmo requiere un ordenamiento total de todos los eventos del sistema. Es decir, para cualquier par de eventos, tales como los mensajes debe ser inequívoco en cual de ellos realmente ocurre primero. El algoritmo de Lamport es una manera de lograr este orden, ya que se utiliza para proporcionar registros de tiempo para la exclusión mutua distribuida.

Exclusión Mutua Algoritmo Distribuido Cuando un proceso desea acceder a un recurso compartido, elabora el mensaje que contiene el nombre del recurso, su número de proceso y el tiempo actual (lógico). Entonces envía un mensaje a todos los demás procesos. Cuando un proceso recibe un mensaje de petición de otro proceso la acción que tome dependerá de su estado con respecto al recurso mencionado en el mensaje. Se deben distinguir tres casos:

Exclusión Mutua Algoritmo Distribuido u Si el destinatario no accede al recurso y no desea acceder a el, envía un mensaje de OK al remitente. u Si el destinatario ya cuenta con acceso al recurso, simplemente no responde, en vez de eso, coloca la petición en una cola. u Si el receptor también quiere acceder al recurso, pero aún no lo ha hecho, compara el registro de tiempo del mensaje entrante con el del mensaje que ya ha enviado a todos. El menor gana.

Exclusión Mutua El proceso 0 envía a todos una petición con un registro de tiempo 8 mientras que al mismo tiempo el proceso 2 envía a todos una petición con el registro 12. El proceso 1 no esta interesado, de manera que envía un OK a ambos remitentes. Los procesos 0 y 2 entran en conflicto y comparan los registro de tiempo. El proceso 2 pierde de manera que concede permiso a 0 al enviar OK ahora el proceso 0 forma en la cola a la petición de 2 para su posterior procesamiento y acceso al recurso (b). Cuando termina elimina la petición de 2 de su cola y envía un mensaje de OK a 2 permitiéndole el acceso al recurso (c).

Exclusión Mutua Por desgracia el único punto de falla que tenia el algoritmo centralizado aquí se sustituye por n puntos de falla. Si alguno de los procesos falla, fallara en responder las peticiones. Lo cual se interpretará como una negativa de permiso, lo que bloqueará todos los intentos posteriores de los procesos para entrar a las regiones críticas.

Exclusión Mutua Algoritmo de anillo de token: Genera exclusión mutua de manera determinística. En software un anillo lógico se construye con cada proceso asignado a una posición en el anillo, las posiciones se pueden localizar con el orden numérico de las direcciones de red. No importa cual es el orden lo que importa es que cada proceso sabe cual es el siguiente después de él.

Exclusión Mutua Cuando se inicia el anillo al proceso 0 se le asigna un token. El token circula al rededor del anillo desde el proceso k al k + 1. Cuando el proceso adquiere el token de su vecino, verifica si necesita acceder al recurso compartido. Si es así el proceso sigue adelante, hace el trabajo que requiere hacer y libera los recursos. Una vez que ha terminado pasa el token a lo largo del anillo. No esta permitido acceder de inmediato al recurso otra vez mediante el uso del mismo token.

Exclusión Mutua u Cuando un proceso decide que quiere acceder al recurso, lo peor que pueda pasarle es que deba esperar a que todos los demás procesos usen el recurso. u Si el token se pierde en algún momento deberá reponerse. Sin embargo es difícil detectar su perdida por que la cantidad de tiempo de uso del token no tiene límites. u También entra en problemas si falla un proceso.

Comparación de los Cuatro Algoritmos Algoritmo Mensajes por Entrada/Salida Retraso antes de la entrada (durante el tiempo del mensaje) Problemas Centralizado 3 2 Falla el coordinador Descentralizado 2mk, k = 1,2,... 2 m Innanicion, baja eficiencia Distribuido 2(n - 1) 2(n - 1) Falla de cualquier proceso Anillo de token 1 a 0 a n - 1 Pérdida del token, falla del proceso

Tarea Tarea.- Exponer el algoritmo del abusón y el de elección

Exclusión Mutua υ Algoritmos de Elección: Muchos algoritmos distribuidos requieren que un proceso actué como coordinador, iniciador o que represente algún papel en especial. En general, no importa que proceso tenga esta responsabilidad, pero alguno tiene que realizarla. Si todos los procesos son exactamente iguales, sin características que los distingan, no hay manera de seleccionar a alguno para que sea el especial

Exclusión Mutua υ Por lo tanto se puede utilizar su dirección IP, con la cual los algoritmos de elección intentan localizar al proceso que tenga el número más grande para designarlo como coordinador. υ El objetivo de un algoritmo de elección es garantizar que cuando inicie una elección, esta concluya todos los procesos de acuerdo con el que será el nuevo coordinador.

Exclusión Mutua El algoritmo del abusón (bully): Cuando cualquier proceso advierte que el coordinador ya no esta respondiendo peticiones, inicia una elección. Un proceso p, celebra una elección de la siguiente manera: u u u P envía un mensaje de elección a todos los procesos con números superiores. Si ningún proceso responde, P gana la elección y se convierte en el coordinador. Si uno de los procesos superiores responde, toma el mando. El trabajo de P esta hecho.

Exclusión Mutua υ En cualquier momento, un proceso puede recibir un mensaje de elección de alguno de sus colegas con número menor. Cuando llega un mensaje de este tipo, el destinatario envía un mensaje de OK de vuelta al remitente para indicarle que esta activo y que tomará el control. υ El destinatario entonces celebra una elección a manos que ya tenga una. Este anuncia su victoria enviando un mensaje a todos los procesos en el que les indica que a partir de ese momento es el coordinador.