Taller 1 Sistemas Di

download Taller 1 Sistemas Di

of 17

Transcript of Taller 1 Sistemas Di

  • 8/16/2019 Taller 1 Sistemas Di

    1/17

    CAPITULO 1: COMPONENTES DE UN SISTEMA DISTRIBUIDO

    Introducción

    En ésta primera unidad se abordan los aspectos conceptuales necesarios para iniciar

    el estudio de los SD. Se presentan los componentes de un sistema distribuido, las

    principales características así como los tipos de sistemas distribuidos.

    Un Sistema Distribuido consiste en una colección de computadores autónomos

    enlazados por una red y equipadas con un sistema desoftware distribuido que luce a

    los usuarios como si fuera en sistema único y centralizado.

    Figura 1. Sistema Distribuido

    Este tipo de sistemas se poseen las siguientes características intrínsecas:

    Cada uno de los componentes trabajan en forma concurrente (interactúan

    simultáneamente).

    Lección 1: Introducción y Conceptos1

  • 8/16/2019 Taller 1 Sistemas Di

    2/17

    Los componentes pueden fallar de manera independiente sin ocasionar un fallo

    general.

    No existe un reloj global que sincronice los procesos que se ejecutan en el sistema.

    Los componentes no comparten memoria.

    Los sistemas distribuidos están por todas partes. Internet (considerado un gran

    sistema distribuido) permite que los usuarios de todo el mundo accedan a sus

    servicios donde quiera que estén situados. La mayoría de empresas administran una

    intranet, que provee servicios locales y servicios de Internet a los usuarios locales y

    habitualmente proporciona servicios a otros usuarios de Internet. Es posible construir

    pequeños sistemas distribuidos con computadores portátiles y otros dispositivos

    computacionales pequeños conectados a una red inalámbrica.

    Figura 2. Sistema Distribuido Multimedia

    En la figura 2 se presenta un sistema distribuido multimedia típico capaz de soportar

    una variedad de aplicaciones como conferencias, accesos a secuencias almacenadas

    de vídeo y difusión de radio y televisión digitales. En este sistema, distribuido y

    abierto, las aplicaciones multimedia2 pueden ser iniciadas y utilizadas sin anuncio

    previo. Pueden coexistir varias aplicaciones en la misma red e incluso en la misma

    estación de trabajo, para lo cual se debe garantizar que todas las aplicaciones serán

    capaces de obtener la cantidad de recursos necesaria en los momentos requeridos,

    incluso cuando otras aplicaciones estén compitiendo por esos recursos.

    Lección 2: Objetivos de un Sistema Distribuido

    La compartición de recursos es el principal factor que motiva la construcción de

  • 8/16/2019 Taller 1 Sistemas Di

    3/17

    sistemas distribuidos. Recursos como impresoras, archivos, páginasweb o registros

    de bases de datos se administran mediante servidores del tipo apropiado. Por

    ejemplo, los servidoresweb administran páginas y otros recursosweb. Los recursos

    son accedidos por clientes, por ejemplo, los clientes de los servidoresweb se llaman

    normalmentebrowsers o navegadoresweb.

    Además de compartir recursos, un sistema distribuid o tiene como finalidad atender

    los siguientes aspectos que regularmente se presentan en una red:

    1. Concurrencia

    En una red de computadores, la ejecución de programas concurrentes es la norma.

    Yo puedo realizar mi trabajo en mi computador, mientras tú realizas tu trabajo en el

    tuyo, compartiendo recursos como páginasweb o archivos, cuando es necesario. La

    capacidad del sistema para manejar recursos compartidos se puede incrementar

    añadiendo más recursos (por ejemplo, computadores) a la red. La coordinación de

    programas que comparten recursos y se ejecutan de forma concurrente es también

    un aspecto importante de cualquier sistema distribuido.

    2. Inexistencia de reloj global

    Cuando los programas necesitan cooperar coordinan sus acciones mediante el

    intercambio de mensajes. La coordinación estrecha depende a menudo de una idea

    compartida del instante en el que ocurren las acciones de los programas. Pero resulta

    que hay límites a la precisión con lo que los computadores en una red pueden

    sincronizar sus relojes (Figura 3), ya que no hay una única noción global del tiempo

    correcto. Esto es una consecuencia directa del hecho que la única comunicación se

    realiza enviando mensajes a través de la red.

    Figura 3. Sincronización en Red

  • 8/16/2019 Taller 1 Sistemas Di

    4/17

    Fuente: Autor

    3. Fallos independientes

    Todos los sistemas informáticos pueden fallar y los diseñadores de sistemas tienen la

    responsabilidad de planificar las consecuencias de posibles fallos. Los sistemas

    distribuidos pueden fallar de muy diversas formas. Los fallos en la red producen el

    aislamiento de los computadores conectados al Sistema Distribuido, pero eso no

    significa que detengan su ejecución. De hecho, los programas que se ejecutan en

    ellos pueden no ser capaces de detectar cuando la red ha fallado o está

    excesivamente lenta (Figura 4).

    Fallos Independientes

    De forma similar, la caída de un servidor o la terminación inesperada de un programaen alguna parte del sistema (crash) no se da a conocer inmediatamente a los demás

    componentes con los que se comunica. En un sistema distribuido cada componente

    del sistema puede fallar independientemente, permitiendo que los demás continúen su

    ejecución

  • 8/16/2019 Taller 1 Sistemas Di

    5/17

    Lección 3: Comunicación en los Sistemas Distribuidos

    Por ser de gran importancia para el esquema de comunicación entre los elementos de

    un sistema distribuido, se hará una profundización en el concepto de Agente y sus

    diversas connotaciones.

    1. Agentes

    Uno de los elementos claves para la comunicación en un Sistema Distribuido es el

    Agente. La palabra “ Agente” se refiere a todo ente que posee la habilidad, capacidad

    y autorización para actuar en nombre de otro (Figura 5). A diario, los “agentes

    humanos” asisten a las personas en tareas que requieren recursos especializados o

    conocimiento específico en un dominio. Por ejemplo, una secretaria atiende y

    resuelve situaciones en nombre de su jefe: administra la agenda, coordina las

    reuniones, recibe a los visitantes. El usuario “delega” en el agente una o varias tareas

    que debe llevar a cabo quedando a la espera de los resultados. Dichas tareas son a

    menudo fáciles de e specificar, pero - en algunos casos – complejas de realizar.

    Los investigadores en el campo de los agentes computacionales han dado varias

    definiciones al término, cada uno desde su óptica particular, fundamentada

    básicamente en la línea de investigación en la cual trabajan (Inteligencia Artificial,Ingeniería deSoftware, Sistemas Autónomos, Sistemas Distribuidos). A continuación

    se presentan algunas definiciones:

  • 8/16/2019 Taller 1 Sistemas Di

    6/17

    SegúnNwana, “el término agente se refiere a un componente de software y/o

    hardware que es capaz de actuar para poder ejecutar tareas en nombre de un

    usuario”.

    Pattie Maesdel laboratorio de Inteligencia Artificial del MIT (Massachusetts Institute of

    Technology / Instituto Tecnológico de Massachusetts) definió a los agentes autónomos

    como “sistemas computacionales que habitan en algún ambiente dinámico y complejo,

    censando su estado actuando autónomamente, llevando a cabo una serie de objetivos

    o tareas para los cuales fueron diseñados”.

    Nicholas Negro ponte, director del Media Labdel MIT, hizo la observación que el

    futuro de la computación será de “delegar a” y no de “manipular” computadores.

    Dentro de este marco el término agente se redefine para cada aplicación que persiga

    dicho objetivo.

    2. Propiedades de los agentes

    Con base en todas las definiciones anteriores es posible extraer algunas

    características que requieren los agentes: deben ser parte de un ambiente, deben

    poder monitorear (sensar) su entorno y actuar sobre el, y deben responder según los

    objetivos para los cuales fueron diseñados. Deben –entonces – poseer una serie de

    atributos o propiedades que lo definen como agente.

     Autonomía:Capacidad de actuar sin la intervención directa de una persona o de otro

    agente. Un agente debe poder controlar sus propias acciones y estado interno. Una

    vez que el usuario activa el agente indicando algún objetivo de alto nivel, éste actúa

    independientemente, seleccionando estrategias y monitoreando el progreso en busca

    de la meta. Si falla con una estrategia, usa otra, pero sin intervención humana o con

    la mínima indispensable.

    Habilidad Social:Un agente debe ser comunicativo. Debe tener habilidad para

  • 8/16/2019 Taller 1 Sistemas Di

    7/17

    interactuar con otros agentes o incluso con alguna persona, para solicitar información

    o bien para exponer los resultados obtenidos de la ejecución de las tareas planeadas.

    La naturaleza de la comunicación depende del tipo de agente con quien se comunique

    (humanos o no), en ambos casos debe establecer un protocolo común de intercambio

    de información entre ambas partes. Los agentes deben poseer algún tipo de interfaz

    para comunicars e con sus usuarios. Dicha interfaz puede establecerse simplemente

    mediante el envío de mensajes por correo electrónico o puede ser todo lo sofisticada

    que se desee (lo ideal es proveer una interfaz más antropomórfica para los agentes).

    Reactividad:Se refiere al hecho de que un agente debe poder sensar el estado del

    ambiente dentro del cual se encuentra inmerso y -en función de esto- actuar,

    respondiendo de manera adecuada a cambios producidos en el mismo. Los efectos

    producidos pueden modificar el estado de su entorno. Por ejemplo, un agente de

    filtrado de correo electrónico está sensando su ambiente, alerta a la llegada de nuevos

    mensajes. La llegada de un nuevo mensaje (cambio en el medio) produce que el

    agente responda de acuerdo a las tareas asignadas.

    Orientación por objetivos:Un agente no sólo debe actuar por cambios detectados

    en el medioambiente, sino que debe “trabajar” en función de los objetivos para los

    cuales fue diseñado y las tareas que le fueron delegadas en cada momento. Un

    agente busca permanentemente satisfacer su agenda interna. En las aplicacionesconvencionales, cuando un usuario ejecuta un comando, se activa un proceso que se

    ejecuta por determinado tiempo, algunos solicitan datos al usuario, retornan

    resultados y así sucesivamente. Esta es una visión pasiva de computación, ya que la

    motivación viene de parte del usuario. En un modelo basado en agentes, el proceso

    es auto-motivado, es decir, el agente busca satisfacer cierto estado interno con

    mínima intervención humana. Por ejemplo, un agente recuperador de archivos tiene

    especificada una tarea. El agente debe intentar permanentemente satisfacer la tarea

    que le fue delegada con base en las estrategias de búsqueda y recuperación con lascuales fue construido, hasta cumplir con el objetivo.

    Continuidad temporal:Un agente es un proceso temporalmente continuo. A

    diferencia de un programa convencional del cual se conoce su inicio y fin, un agente

    debe ejecutarse hasta que se haya alcanzado con el conjunto de objetivos solicitados,

  • 8/16/2019 Taller 1 Sistemas Di

    8/17

    o bien, mientras su ciclo perdure y su usuario no desee detenerlo. La continuidad

    temporal es la propiedad que da “vida” al agente, posibilitando que se mantenga

    alerta a una solicitud o a algún cambio en el medio. El ciclo de vida de un agente

    depende de sus características, de las tareas que realice y de los deseos de su

    usuario en cuanto al tiempo durante el cual el agente debe ejecutarse.

    Movilidad:Es la capacidad de un agente de “viajar” por las redes de computadores,

    de nodo a nodo, en busca de los recursos que le permitan cumplir con su agenda. El

    término “viajar” se refiere a que en un determinado instante de tiempo el agente

    detiene su ejecución, almacena su estado interno y se dirige a otro sitio dentro de una

    red de computadores (tanto el código del agente como su estado) para luego

    continuar con su ejecución en la nueva ubicación. Los recursos a los que puede

    acceder pueden ser desoftware ohardware. Por ejemplo, un agente puede ir en

    busca de una base de datos que se encuentra en cierta máquina o bien ejecutarse

    remotamente haciendo uso del procesador y memoria del equipo destino.

    3. Clasificación de los Agentes

    Los agentes pueden clasificarse de varias maneras, teniendo en cuenta algunas de

    las propiedades que poseen o bien haciendo hincapié en alguna en particular. De esta

    manera puede armarse un árbol taxonómico que abarque todas las combinaciones de

    propiedades y tareas que se quieran.

    Partiendo de lo anterior, se presenta la siguiente clasificación de los agentes de

    acuerdo con la función u objetivo principal del mismo

    • Agentes de interfaz

    • Agentes colaborativos

    • Agentes móviles

    • Agentes de recuperación de información

     Agentes de interfaz

    Un agente de interfaz es unsoftware cuasi-inteligente que asiste a un usuario cuando

    interactúa con una o más aplicaciones. La motivación es que se les pueda delegar

    tareas aburridas y laboriosas. Son asistentes personales que reducen el trabajo por la

  • 8/16/2019 Taller 1 Sistemas Di

    9/17

    sobrecarga de información, como por ejemplo el filtrado de los mensajes de correo

    electrónico o la recuperación de archivos de Internet. Esta categoría de agentes

    apoyan y proveen asistencia a su usuario. El agente observa y monitorea las acciones

    que toma el usuario en la interfaz, aprende nuevos atajos, y sugiere mejores formas

    de hacer las tareas. La idea es que el agente pueda adaptarse a las preferencias y

    hábitos de sus usuarios. Enfatizan la autonomía y el aprendizaje para llevar a cabo

    tareas para sus dueños y trabajan en el mismo ambiente que éstos.

    A su vez, los agentes de interfaz pueden encontrarse subdivididos debido a diferentes

    tareas para las cuales son construidos. Las más comunes son:

     Asistentes: Trabajan realizando tareas típicas como el manejo de la agenda.

    Estos agentes ayudan al usuario a planificar las reuniones. Sus acciones incluyennegociar, aceptar o rechazar reuniones.

    Filtros: Su tarea principal es la de analizar información según un conjunto de

    reglas dadas por el usuario. La aplicación típica es el filtrado de mensajes de

    correo electrónico.

    Guías: Asisten a los usuarios en el uso de una aplicación. Estos agentes

    monitorean las acciones de los usuarios e intentan sugerir qué pasos realizar para

    alcanzar el objetivo. Algunos ayudan a navegar por la Web.

     Agentes colaborativos

    Los agentes colaborativos constituyen un sistema multiagentes, es decir existe más de

    un agente dedicado a satisfacer los requerimientos de sus usuarios. Para ello es

    necesario contar con esquemas de comunicación entre agentes que posibiliten la

    cooperación y el intercambio de conocimiento. Además, deben poseer un alto grado

    de autonomía para actuar interactuando con sus pares.

    La motivación detrás de la construcción de agentes colaborativos es que los sistemas

    construidos con unidadesrelativamente simples proveen mayor funcionalidad que un

    ente mayor, pudiendo extender la funcionalidad del sistema más allá de las

    capacidades de uno de sus miembros.

  • 8/16/2019 Taller 1 Sistemas Di

    10/17

    Además, estas arquitecturas posibilitan contar con mayor confiabilidad (debido a la

    redundancia) y mayor velocidad (debido al paralelismo) en el sistema conjunto. Las

    áreas de aplicación de este tipo de agentes incluyen: 

    Resolución de problemas demasiado grandes.Interconexión de múltiples sistemas.

    Manejo de información proveniente de fuentes distribuidas.

     Agentes Móviles

    Los agentes móviles son procesos capaces de “viajar” por una red de computadores,

    interactuando conhosts9 externos, recolectando información en nombre de su dueño y

    retornando a “casa” luego de completar las tareas establecidas (Figura 6). Los

    agentes forman un nivel de abstracción más para el usuario, detrás del cual se

    encuentran soluciones a cuestiones técnicas en algunos casos complicadas. Una de

    estas cuestiones es la distribución, es decir, como manejar recursos computacionales

    distribuidos. Con la idea de agentes móviles los recursos distribuidos no son

    completamente ocultados al usuario pero tampoco completamente expuestos10. La

    noción de movilidad viene del objetivo de reducir el tráfico innecesario dentro de una

    red , con lo que se pueden reducir los costos de comunicación. Además, al aportar

    una nueva forma de computación distribuida posibilita el mejor aprovechamiento de

    los recursos de la red y permite que los usuarios tengan acceso a una cantidad mayor

    de recursos. Por ejemplo, debido a que las sesiones en busca de un recurso

    determinado ciertas veces son largas, la idea de agentes móviles provee una solución.

    Un usuario delega la tarea de búsqueda de información a un agente, establece una

    comunicación con la red y “envía” al agente a cumplir con su misión. La próxima vez

    que el usuario se conecte, el agente “retorna” con los resultados obtenidos.

    Figura 6. Agentes Móviles

  • 8/16/2019 Taller 1 Sistemas Di

    11/17

    Para soportar la movilidad, debe existir una infraestructura de transporte que mueva

    el código del agente de una ubicación a otra.Además, se debe contar con un entorno

    de ejecución de agentes, donde los agentes “viven”, compuesto por todas los

    computadores que los proveen. Finalmente, para construir sistemas con agentes

    móviles es necesario resolver algunas cuestiones fundamentales tales como:

    • Transporte: Cómo se mueven de lugar en lugar?

    • Ejecución: Cómo ejecutar el agente de forma remota?

    • Autenticación: Cómo saber si el agente es quien dice ser y a quién

    representa?

    • Privacidad: Cómo asegurar que el agente mantenga resguardado su estado

    interno?

    •Seguridad: Cómo protegerlo de virus? Cómo prevenirque el agente entre enbucles infinitos o falle?

     Agentes de recuperación de información 

    El objetivo principal de los agentes dedicados específicamente a la recuperación de

    información es obtener información por el usuario (Figura 7). La motivación para su

    construcción es que con el crecimiento vertiginoso de Internet, la cantidad de

    información accesible supera la cantidad de tiempo disponible para analizarla. Un

    adagio popular en Internet dice: “Nos estamos sumergiendo en información  pero

    hambrientos de conocimiento”.

    Las tecnologías de la información han expandido los horizontes de los usuarios en

    cuanto a las formas de generar y acceder a la misma. Pero esta amplia variedad de

    información distribuida plantea desafíos en cuanto a las formas de manejar su

  • 8/16/2019 Taller 1 Sistemas Di

    12/17

    complejidad y heterogeneidad

    Agentes de Recuperación de Informacion

    Hoy en día, la información se produce en múltiples contextos, se difunde por medios

    muy variados y se utiliza en todas partes. El rápido crecimiento de la cantidad de

    documentos en Internet (especialmente en la web) presenta la dificultad de poder

    acceder a la información relevante.

    Se produce así el fenómeno conocido como “sobrecarga de información ”, entonces

    se trata de mejorar, pero no eliminar, el problema específico de la sobrecarga y

    administración de la información. Además, existe el problema que debido al gran

    volumen de información disponible, se mezclan el ruido o desperdicio con lainformación útil o necesaria, lo que determina la gran dificultad de hallar lo que

    realmente resulta de interés para las personas.

    Las soluciones actuales a este problema se basan en la construcción de motores de

    búsqueda, con mecanismos de indexación de documentos, combinados con

  • 8/16/2019 Taller 1 Sistemas Di

    13/17

    interfaces de consulta apropiadas a esta tarea, o bien, índices manuales multi-nivel (o

    directorios), los cuales presentan clasificaciones de los documentos según el criterio

    de sus autores. Ambas técnicas poseen debilidades visibles. Los primeros, son muy

    propensos a “recuperar” demasiada cantidad de documentos “no deseables” ya que

    trabajan (básicamente) mediante técnica de búsqueda de la ocurrencia de los

    términos buscados en los documentos. Por otra parte, los índices manuales,

    solamente tienen “ parte” de los posibles documentos, debido al alto costo que posee

    la recuperación, manipulación y clasificación manual de los mismos. La motivación es

    poder diseñar una técnicaque permita describir los cientos de millones de documentos

    disponibles de manera precisa, creando un índice de alta calidad, con una forma

    eficaz y eficiente de acceder a éste (ya sea de manera manual o automática). Una de

    las solucion es posible se basa en los agentes de recuperación de información. Estos

    agentes pueden asistir a un usuario novato en la formulación de consultas avanzadas,

    en base a sus necesidades de información. Además, permiten acceder e integrar

    fuentes heterogéneas y manejar diferentes tipos formatos de información.

    Los agentes de recuperación de información poseen métodos para permitir el rápido

    acceso y recuperación de información relevante. Tienen la tarea de administrar,

    manipular y juntar información de fuentes distribuidas. Pueden tener mecanismos de

    búsqueda y navegación flexibles y algoritmos de clasificación poderosos. El objetivo

    es construir agentes capaces de “armar” un diario personalizado, sabiendo dónde

    buscar, cómo encontra lo buscado y cómo armarlo luego. Los agentes se presentan

    como una herramienta muy útil en la tarea de resolver el problema de la sobrecarga

    de información, debido a que éstos pueden realizar sus tareas mucho más rápido que

    las personas y, además, se encuentran disponibles las veinticuatro horas

    4. Ejemplos de Agentes

    Para dar claridad acerca concepto de agentesoftware, se describen dos ejemplos de

    amplia utilización en las plataformas computacionales distribuidas:

  • 8/16/2019 Taller 1 Sistemas Di

    14/17

    Los agentes de biblioteca.

    Un interesante ámbito de aplicación de los agentes de recuperación de información

    son las bibliotecas. Las colecciones de información pública almacenadas en formato

    electrónico han aumentado considerablemente, por lo cual las bibliotecas debenincorporar este formato como una alternativa a las publicaciones tradicionales. Dentro

    de este ámbito, los agentes de recuperación de información pueden resultar de gran

    utilidad como asistentes de los bibliotecarios, manejando los grandes volúmenes de

    material electrónico almacenado. Dado un contexto de búsqueda (según la petición de

    material por parte de un usuario), el bibliotecario puede recurrir a un agente para que

    lo asista en las tareas de buscar, clasificar y filtrar la información solicitada. Con base

    en una solicitud, el agente puede recurrir a estrategias para seleccionar las bases de

    datos donde buscar y cómo categorizar los documentos encontrados. Además,pueden colaborar con el bibliotecario en el desarrollo de las siguientes actividades:

    • Recuperar información de fuentes distribuidas

    (Internet) Realizar consultas con distintas estrategias

    • Generar reportes detallados y/o resumidos

    • Mantener estadísticas de solicitudes/búsqueda/utilidad

    • Crear perfiles de usuarios, con base en sus áreas temáticas o preferencias de

    material

    En los próximos años, es impensable una biblioteca que no incorpore asistentes

    digitales. La diversidad de soportes, formatos, idiomas, motores de consulta, etc,

    están a disposición de los usuarios con la finalidad de brindar una mayor calidad de

    servicio informativo, pero él usuario debe abstraerse de cuestiones tecnológicas que

    lo dispersen de sus objetivos principales. Esta última cuestión es la que tienden a

    realizar los asistentes o agentes de bibliotecas, operando como interfaces inteligentes

    entre el usuario y las tecnologías de información.

    Googlebot

    UnGooglebot es un agente distribuido (robot de búsqueda) usado porGoogle.

    Colecciona documentos desde laweb, para construir una base de datos para el motor

    de búsquedaGoogle.

    Si unwebmaster no quiere que su página sea descargada por unGooglebot, el

  • 8/16/2019 Taller 1 Sistemas Di

    15/17

    puede insertar un texto llamadorobots.txt, el cual puede hacer queGooglebot (y

    otros robots de información) no investiguen esa página.

    Googlebottiene dos versiones, deepboty freshbot. Deepbotinvestiga profundamente,

    tratando de seguir cualquier enlace en esa página, además de poner está página en

    el caché, y dejarla disponible para Google.Freshbot investiga laweb buscando por

    contenido nuevo, visitando sitios que cambia frecuentemente. Idealmente, elfreshbot

    visita la página de un periódico todos los días, mientras que la de una revista cada

    semana, o cada 15 días.

    Googleboot

    Googlebotdescubre enlaces a otras páginas, y se dirige hacia ellos también, así 

    puede abarcar toda laweb fácilmente.

    Lección 4: Ventajas y desventajas de los Sistemas Distribuidos

    En general, los sistemas distribuidos exhiben algunas ventajas sobre los sistemas

    centralizados. Las principales se describen enseguida:

    Economía: El cociente precio/desempeño de la suma del poder de losprocesadores separados contra el poder de uno solo centralizado es mejor

    cuando están distribuidos.

    • Velocidad: Relacionado con el punto anterior, la velocidad sumada es muy

    superior.

  • 8/16/2019 Taller 1 Sistemas Di

    16/17

    • Confiabilidad:Si una sola máquina falla, el sistema total sigue funcionando. 

    • Crecimiento:El poder total del sistema puede irse incrementando al añadir

    pequeños sistemas, lo cual es mucho más difícil en un sistema centralizado y caro.

    • Distribución: Algunas aplicaciones requieren de por sí una distribución física. 

    Por otro lado, los sistemas distribuidos también exhiben algunas ventajas sobre

    sistemas aislados. Estas ventajas son:

    • Compartir datos:Un sistema distribuido permite compartir datos más

    fácilmente que los sistemas aislados, que tendrían que duplicarlos en cada

    nodo para lograrlo.

    • Compartir dispositivos:Un sistema distribuido permite acceder dispositivos

    desde cualquier nodo en forma transparente, lo cual es imposible con los

    sistemas aislados. El sistema distribuido logra un efecto sinergético.

    • Comunicaciones:La comunicación persona a persona es factible en los

    sistemas distribuidos, en los sistemas aislados no.

    • Flexibilidad:La distribución de las cargas de trabajo es factible en el sistema

    distribuido, se puede incrementar el poder de cómputo.

    Así como los sistemas distribuidos exhiben grandes ventajas, también se pueden

    identificar algunas desventajas, algunas de ellas tan serias que han frenado la

    producción comercial de sistemas operativos en la actualidad. El problema más

    importante en la creación de sistemas distribuidos es elsoftware; los problemas de

    compartición de datos y recursos son tan complejos que los mecanismos de solución

    generan mucha sobrecarga al sistema haciéndolo ineficiente. El revisar y validar, por

    ejemplo, quiénes tienen acceso a algunos recursos y quiénes no, el aplicar los

    mecanismos de protección y registro de permisos consume demasiados recursos. Engeneral, las soluciones presentes para estos problemas están aún en sus comienzos.

    Otros problemas de los sistemas distribuidos surgen debido a la concurrencia y al

    paralelismo. Tradicionalmente las aplicaciones son creadas para computadores que

    ejecutan secuencialmente, de manera que el identificar secciones de código

  • 8/16/2019 Taller 1 Sistemas Di

    17/17

    “ paralelizable” es un trabajo “arduo”, pero necesario para dividir un proceso grande

    en sub-procesos y enviarlos a diferentes unidades de procesamiento para lograr la

    distribución. Con la concurrencia se deben implantar mecanismos para evitar las

    condiciones de competencia, las postergaciones indefinidas, el ocupar un recurso y

    estar esperando otro, las condiciones de espera circulares y, finalmente, los "abrazos

    mortales" (deadlocks). Estos problemas de por sí se presentan en los sistemas

    multiusuarios o multitareas, y su tratamiento en los sistemas distribuidos es aún más

    complejo, y por lo tanto, necesita de algoritmos más complejos con la inherente

    sobrecarga esperada.