Sistemas Distribuidos y Paralelos

Slides:



Advertisements
Presentaciones similares
Definición En un sistema de base de datos distribuida, los datos se almacenan en varios computadores. Los computadores de un sistema distribuido se comunican.
Advertisements

Guido Rubin Escalabilidad.
Multiprocesadores 3.1 Dominios de aplicación
I.T.E.S.R.C. Romina Tamez Andrea Martínez Ma. De Lourdes Solís
BASES DE DATOS DISTRIBUIDAS
Base de Datos Distribuidas FUNDAMENTOS DE BASES DE DATOS DISTRIBUIDAS
Carlos Rojas Kramer Universidad Cristóbal Colón
BASES DE DATOS CLIENTE SERVIDOR Y DISTRIBUIDAS
Sistemas Operativos Distribuidos Plataforma Cliente/Servidor
Estructura de un Sistema Operativo
TEMA 2: «CONFIGURACIÓN DE MÁQUINAS VIRTUALES»
Ana Lucia Farfan Estrada. Angela Aybar Rengifo.
Confiabilidad en Bases de Datos Distribuidas
Base de Datos Distribuidas
S.O. Multiusuario, red. Servicio: Cliente/Servidor, p2p
BASES DE DATOS DISTRIBUIDAS
SISTEMAS OPERATIVOS UNIDAD 1..
Introducción a los Sistemas de Bases de Datos Distribuidos
MOTORES DE BASE DE DATOS
BASES DE DATOS DISTRIBUIDAS
Universidad Centroamericana
Sistemas Operativos Distribuidos Plataforma Cliente/Servidor
Bases de datos Distribuidas ITES de la región carbonífera 1 Bases de datos distribuidas.
TRADUCTOR DE UN PROGRAMA
Conceptos generales: Concurrencia: Existencia simultánea de varios procesos en ejecución. IMPORTANTE: EXISTENCIA SIMULTÁNEA NO IMPLICA EJECUCIÓN SIMULTÁNEA.
Técnicas de recuperación de bases de datos
PROGRAMACIÓN PARALELA Tema 4: Metodología de la programación
Ing. Fabián Ruano.  Definición  Diferencias con BD Centralizadas.
Unidad III Administración de procesos
OMAR SANCHEZ ROBLES HECTOR PEREZ GARCIA. “Sistemas de cómputo compuesto por un gran número de CPU´s conectados mediante una red de alta velocidad”, Tanenbaum.
Arquitectura de una aplicación
DISEÑO DE SOFTWARE 1ª. Parte
Introducción al modelo Cliente-Servidor Carlos Rojas Kramer Universidad Cristóbal Colón.
Desarrollo de aplicaciones para ambientes distribuidos
Arquitectura NFS El servidor NFS exporta uno o más directorios
GESTION DEL CAMBIO Los presencia continua de competencia, la internacionalización económica y la aparición de nuevas tecnologías de información e informática.
Computación en la Nube UASF.
Introducción a los Sistemas Operativos
Servidores Conceptos Generales.
Elaborado por: Guillermo Baquerizo I Término
TEMA 10. SISTEMAS OPERATIVOS DISTRIBUIDOS
Transacciones en sistemas de base de datos
Introducción a los SOs.
Tema 8: Introducción a los SOs. Tema 8: 2 Silberschatz, Galvin and Gagne ©2005 Fundamentos de los Computadores (ITT, Sist. Electr.), Introducción.
Teoría de Sistemas Operativos Departamento de Electrónica 2º Semestre, 2002 Gabriel Astudillo Muñoz
Tema 5: Multiprocesadores
Departamento de Informática Universidad de Rancagua
“condición que necesita el usuario para resolver un problema o conseguir un objetivo determinado”. Los requisitos de un sistema son los aspectos que el.
Permite a los procesos Acceso transparente Archivos Servidores remotos.
Metodología de la programación
UNIVERSIDAD LATINA III. MANTENIMIENTO Y GESTIÓN DE LA INFORMACIÓN DE UNA BASE DE DATOS. E.I. L.E. Prof. Ramón Castro Liceaga.
Teoría de Sistemas Operativos Sistemas distribuidos.
Software El software permite comunicar al computador los problemas y hace posible que nos comunique las soluciones Los programas son el software del computador.
Introducción a los Sistemas Distribuidos. Prof. Yudith Cardinale Sept – Dic 2008 Universidad Simón Bolívar Departamento de Computación y T. I Sistemas.
File Transfer Protocol.
LIA. SUEI CHONG SOL, MCE..  1.- SOFTWARE BÁSICO O DE SISTEMA. Conjunto de programas imprescindibles para el funcionamiento del sistema.  2.- SOTWARE.
ARQUITECTURA ALTERNATIVA DE SERVIDORES SISTEMAS OPERTIVOS DE RED En un sistema operativo de red los usuarios saben que están conectados a la red y que.
Cliente-Servidor La arquitectura cliente-servidor permite al usuario en una máquina, llamada el cliente, requerir algún tipo de servicio de una máquina.
UNIVERSIDAD TECNOLOGICA DE IZUCAR DE MATAMOROS TECNOLOGIAS DE LA INFORMACION Y COMUNICACIÓN BASE DE DATOS PARA APLICACIONES MTRO: GONZALO ROSAS CABRERA.
Transacciones seguras  Concurrencia Ing. Yeberth Martinez Programación II.
BASE DE DATOS DISTRIBUIDAS
Computación en la Nube.
Tendencia De Los Sistemas Operativos
Arquitectura de una aplicación Arquitectur a: desarrolla un plan general del sistema, asegurando que las necesidades de los usuarios sean atendidas. Ingeniería.
SISTEMAS OPERTIVOS DE RED Los usuarios están conectados a la red y que pueden compartir recursos. Cada equipo ejecuta con sus propios recursos su propio.
1 Unidad I.2.- Objetivos de los Sistemas Distribuidos Ing. Luis Armando García Eliseo © Agosto 2011.
Sistemas Distribuidos Conceptos Básicos Propiedades MSI. Nancy A. Olivares Ruiz.
Administración de Base de Datos Recuperación Prof Mercy Ospina Torres
BASES DE DATOS DISTRIBUIDAS M.C.C. María Guadalupe Villanueva Carrasco INGENIERIA EN SISTEMAS COMPUTACIONALES.
Consistencia y Replicación
Transcripción de la presentación:

Sistemas Distribuidos y Paralelos Unidad 2 Conceptos de sistemas distribuidos y paralelos

Contenido Escalabilidad Transparencia Consistencia y control de datos Control de concurrencia Tolerancia a fallas y recuperación

Escalabilidad Un sistema distribuido es escalable si su capacidad de procesamiento puede crecer al añadir más nodos Aumenta el rendimiento al aumentar más nodos El tiempo de respuesta no aumenta La fiabilidad no se degrada Un sistema paralelo es escalable para un determinado rango de procesadores si la eficiencia se mantiene constante para todo el rango. A partir de cierto número de procesadores la eficiencia cae http://www.freerepublic.com/focus/f-chat/2599755/posts http://www.top500.org/lists/2011/06 http://www.freerepublic.com/focus/f-chat/2599755/posts

Escalabilidad … (2) Escalabilidad  Ampliabilidad Ampliabilidad Físicamente el sistema acepta nuevos módulos (procesadores, memoria, etc.) Aunque el sistema se amplíe el rendimiento no crece de forma proporcional

Transparencia Ocultar al usuario o programador los detalles que dan funcionalidad a un sistema. De manera ideal el usuario no percibe los posibles y normales problemas del sistema. Se pueden producir fallos pero el usuario no los va a notar (Transparencia a las fallas). El sistema puede crecer, pero para ello no habrá que detenerlo (Transparencia de escalabilidad o ampliabilidad) Se podrán compartir y utilizar recursos, pero no será necesario saber dónde están o a dónde se han movido (Transparencia de ubicación) El Usuario no “ve” la competencia y sincronización por los recursos (Transparencia de la concurrencia)

Transparencia … (2) Transparencia al paralelismo y su implementación Partir de la especificación del problema y no detenerse en el modo de descomponerlo en tareas. Requiere mayor nivel de abstracción Muy difícil obtener alta eficiencia Es deseable pero tiene su costo ya que acelera el proceso de producción pero disminuye su eficiencia

Transparencia … (3) La transparencia se puede conseguir a dos niveles: A nivel de usuario Por ejemplo: Cuando un usuario compila con make no necesita saber si se hará de forma secuencial, paralela, en máquinas distintas, utilizando servidores, etc. Simplemente usa el sistema desde su terminal tal como un sistema centralizado A nivel de programación Para mantener la transparencia de la semántica de make una posible solución consistiría en programar un nuevo make considerando la arquitectura del sistema distribuido y/o paralelo. Sin embargo, si no se reescribiera el make centralizado y se ejecutara de forma distribuida, entonces se tiene transparencia de programación real. Los desarrolladores deben contar con una interfaz de programación que oculte y/o encapsule la arquitectura y funcionamiento específico del sistema.

Transparencia … (4) En los sistemas distribuidos están identificados 7 tipos de transparencias: De acceso El acceso a objetos locales o remotos utiliza idénticas operaciones De ubicación Permite el acceso a los objetos sin tener conocimiento de su ubicación De réplica Se cuenta con múltiples instancias de objetos sin conocimiento de los usuarios o programas De fallos Las tareas se completan a pesar de los fallos de hardware o software De migración Los objetos se pueden mover de ubicación sin afectar la operación de los usuarios o aplicaciones De configuración Permite la reconfiguración dinámica del sistema para mejorar el rendimiento a medida que varia la carga de trabajo De escala Permite que el sistema o las aplicaciones se expandan sin cambiar la estructura del sistema o los algoritmos de programación.

Consistencia y control de datos

Consistencia y control de datos … (2) Consistencia de actualización Se pierde cuando la escritura concurrente en datos compartidos no se realiza como una única acción atómica en exclusión mutua. Es un problema común en BD, o datos compartidos, sin embargo en SD cobra particular importancia porque se puede tener un mayor número de usuarios. La inconsistencia de actualización se evita utilizando Transacciones. Primitivas equivalentes a la entrada y salida de una sección crítica cuando se utilizan datos compartidos. Garantizan que todas las operaciones involucradas en la transacción se realizan todas o no se realiza ninguna. Existe otra primitiva que permite abortar una transacción anulando cualquier operación que se hubiera realizado. ACID Acrónimo relacionado con las propiedades de las transacciones Atomicity, Consistency, Isolation, Durability. Ejemplos:

Consistencia y control de datos … (3) Consistencia de replica Se da cuando un conjunto de datos debe mantenerse replicado en varios nodos del sistema, pudiendo ser modificado por cualquiera de ellos. Si la modificación no se refleja en todos ocurre una inconsistencia de replica. La replicación de datos puede mejorar la velocidad del sistema y la tolerancia a fallos. Ejemplo: En un juego multiusuario en red la acción de un jugador debe propagarse inmediatamente al resto de los equipos de los otros jugadores, de no ser así cada jugador tendría una versión distinta del juego.

Consistencia y control de datos … (4) Consistencia de cache En los sistemas distribuidos, cuando se accede a un recurso remoto es posible guardar una copia de forma local para facilitar su acceso en lo posterior. Existe un problema de coherencia cuando alguien modifica su copia de forma local. En sistemas paralelos cada núcleo (procesador) cuenta con su propia cache. Existe un problema de coherencia cuando un procesador modifica un dato de su cache, y ese dato también está en la cache de otro procesador. Posibles soluciones Caches locales Memoria cache compartida Caches privadas con protocolos de escucha Caches privadas con directorio compartido

Consistencia y control de datos … (5) Consistencia de reloj Muchos de los algoritmos utilizados en aplicaciones y programación de sistemas dependen de marcas de tiempo timestamps que indican el momento en el que ha sucedido un evento.

Consistencia y control de datos … (6) Consistencia de interfaz de usuario Las aplicaciones interactivas pueden tener un comportamiento (en términos de acción-respuesta) similar a la de los sistemas centralizados en los que las respuestas a las acciones del usuario también pueden ser lentas e irregulares (dependiendo de la carga del sistema centralizado o del tráfico en la red del sistema distribuido).

Control de concurrencia Cuando se ejecutan varias transacciones de manera simultánea en distintos procesadores, se necesita cierto mecanismo para mantener a cada uno lejos del camino del otro. Este mecanismo es llamado algoritmo de control de concurrencia.

Control de concurrencia … (2) En un sistema paralelo se tienen mecanismos de comunicación y sincronización para el control de concurrencia Tuberías, mutex, semáforos, sockets, entre otros. Por otro lado, un sistema distribuido es inherentemente concurrente, se debe asegurar: Linealidad El resultado de la ejecución de las llamadas concurrentes debe ser equivalente a su ejecución secuencial. Seriación El resultado de la ejecución de secuencias de operaciones ejecutadas concurrentemente deben ser equivalentes a la ejecución secuencial de cada una de estas secuencias

Control de concurrencia … (3) Algoritmos de control de concurrencia en sistemas distribuidos: Cerradura Es el algoritmo más antiguo Cuando un proceso necesita leer o escribir en un objeto primero lo cierra. El sistema mantiene una lista de objetos cerrados. Un objeto solo puede ser cerrado por un proceso a la vez si la operación es de escritura. Variantes: Cerradura de dos fases La primera obtiene todas las cerraduras, la segunda las libera Control optimista de la concurrencia Hace todo lo que se debe llevar a cabo, sin prestar atención a lo que hacen los demás. Si existe un problema hay que preocuparse por el después. Se aborta la transacción Se basa en la premisa de que los problemas no son frecuentes. Sin embargo en condiciones de carga pesada la premisa no se cumple. Marcas de tiempo Asocia a cada transacción una marca de tiempo Se utiliza el algoritmo de Lamport para garantizar que las marcas son únicas Se compara que la marca de tiempo del objeto sea más antigua que la marca de tiempo de la transacción activa.

Tolerancia a fallas y recuperación

Tolerancia a fallas y recuperación … (2) Un sistema distribuido es inherentemente más propenso a errores El sistema será tolerante a fallos si el sistema cumple con sus especificaciones a pesar de la presencia de fallos Se debe asegurar: Disponibilidad Los recursos deben estar disponibles a pesar de que hay fallos Atomicidad La consistencia de los recursos se debe asegurar a pesar de fallos

Tolerancia a fallas y recuperación … (3)

Tolerancia a fallas y recuperación … (4)

Tolerancia a fallas y recuperación … (5)