SISTEMAS DISTRIBUÍDOS 1. 2. 3. 4. 5. 6. 7. Concepto Características Factores que han ayudado a su desarrollo Ventajas Desventajas Categorías Complejidad y Aspectos que intervienen en el diseño de un Sistema Operativo Distribuido CONCEPTO Colección de elementos de cómputo autónomo que se encuentran físicamente separados y no comparten una memoria común. Se comunican entre sí a través del intercambio de mensajes utilizando un medio de comunicación. CARACTERÍSTICAS • Cada elemento de computo tiene su propia memoria y su propio Sistema Operativo • Control de recursos locales y remotos • Sistemas Abiertos • Plataforma no standard • Medios de comunicación • Capacidad de Procesamiento en paralelo • Dispersión y parcialidad FACTORES QUE HAN AFECTADO A SU DESARROLLO 1. Avances Tecnológicos 2. Nuevos requerimientos 3. Globalización 4. Aspectos Externos 5. Integración VENTAJAS Procesadores más poderosos y a menos costos Desarrollo de Estaciones con más capacidades Las estaciones satisfacen las necesidades de los usuarios. Uso de nuevas interfaces. Avances en la Tecnología de Comunicaciones Disponibilidad de elementos de Comunicación Desarrollo de nuevas técnicas Compartición de Recursos. Dispositivos Programas Eficiencia y Flexibilidad Respuesta Rápida Ejecución Concurrente de procesos Empleo de técnicas de procesamiento distribuido Disponibilidad y Confiabilidad Sistema poco propenso a fallas Mayores servicios que elevan la funcionalidad Crecimiento Modular Es inherente al crecimiento Inclusión rápida de nuevos recursos Los recursos actuales no afectan DESVENTAJAS 1. Requerimientos de mayores controles de procesamiento. 2. Velocidad de propagación de información. 3. Servicios de replicación de datos y servicios con posibilidades de fallas. 4. Mayores controles de acceso y proceso. 5. Administración más compleja. 6. Costos. CATEGORÍAS Modelo de Minicomputadoras 1. Varias computadoras que soportan diferentes usuarios cada una y provee acceso a recursos remotos. 2. Por lo menos un usuario por cada computadora. Modelo de Estación de Trabajo 1. Varias estaciones, donde cada usuario cuenta con una estación de trabajo y realiza en ella todo su trabajo. Requiere de un SO que soporte funciones de acceso y control remoto. 2. Un microprocesador por cada usuario. 3. Las estaciones de trabajo cuentan con Interfaces Gráficas, CPU potentes y Memorias propias. Modelo microprocesadores en Pooling 1. Trata de utilizar uno o más microprocesadores dependiendo de las necesidades de los usuarios. 2. Primero los procesadores completan su tarea y posteriormente regresan a esperar una nueva asignación. 3. El número de microprocesadores normalmente es mayor a uno por usuario. COMPLEJIDAD Y ASPECTOS QUE INTERVIENEN EN EL DISEÑO DE UN SISTEMA OPERATIVO DISTRIBUÍDO CARACTERÍSTICAS Se tiene soluciones mucho más complejas. No se tiene disponibilidad de una memoria global y un reloj global, no se pueden predecir los retardos y mensajes. Una sola computadora no puede colectar toda la información del sistema distribuido. Un problema que se presenta es determinar técnicas eficientes para establecer controles amplios en un sistema descentralizado y donde una sola computadora no conoce el estado actual y completo del sistema global. Otro problema significativo se presenta debido a la ausencia de un reloj global y no permite tener formas de ordenar y controlar todos los eventos que ocurren en diferentes tiempos y en diferentes computadoras. COMPLEJIDAD Y ASPECTOS QUE INTERVIENEN EN EL DISEÑO DE UN SISTEMA OPERATIVO DISTRIBUÍDO NOMENCLATURA • En ese aspecto se utilizan nombres para referirse a los objetos • Por ejemplo: El servicio de FTP o el servicio de DNS. COMPLEJIDAD Y ASPECTOS QUE INTERVIENEN EN EL DISEÑO DE UN SISTEMA OPERATIVO DISTRIBUÍDO COMPATIBILIDAD 1. Nivel binario: Todos los procesadores ejecutan el mismo conjunto de instrucciones binarias, sin embargo los procesadores pueden diferir en rendimiento y su forma de entrada y salida. Ventajas: Es más fácil el desarrollo de sistemas. No pueden incluirse arquitecturas diferentes de un fabricante o varios. Es raramente soportado por sistemas grandes. 2. Nivel Ejecución: Se presenta cuando el mismo código fuente puede ser compilado y ejecutado correctamente en cualquier computadora del sistema. 3. Nivel Protocolo: Es el menos receptivo de todos ya que se obtiene interoperabilidad con el simple requerimiento de los componentes de comunicación de los sistemas, soportan un conjunto común de protocolos por ejemplo las computadoras individuales pueden ejecutar diferentes Sistemas y sacrificar su operatibilidad. COMPLEJIDAD Y ASPECTOS QUE INTERVIENEN EN EL DISEÑO DE UN SISTEMA OPERATIVO DISTRIBUÍDO SINCRONIZACIÓN DE PROCESOS 1. Es uno de los más importantes a considerar dentro de los sistemas distribuidos. La sincronización es difícil por la falta de una memoria común al no conocerse las características de los procesos que se ejecutan. 2. Un Sistema Operativo Distribuido tiene que sincronizar los procesos que se están ejecutando en diferentes computadoras cuando estas tratan de accesar concurrentemente un recurso compartido. 3. El recurso compartido debe ser accesado por un proceso a la vez. 4. Cuando se tiene acceso concurrentemente a un recurso compartido por diversas peticiones no coordinadas de usuarios, estas deben de seriabilizarse para asegurar la integridad del recurso. 5. Los procesos deben solicitar recursos locales o remotos y posteriormente liberados en cualquier orden que puede ser no conocido. 6. Si la ausencia de asignación de recursos de los procesos no se controla se puede presentar un " Dead Lock " ( Candado muerto o recurso bloqueado ) que degrade al sistema. COMPLEJIDAD Y ASPECTOS QUE INTERVIENEN EN EL DISEÑO DE UN SISTEMA OPERATIVO DISTRIBUÍDO ADMINISTRACIÓN DE RECURSOS Se refiere en hacer que los recursos locales y remotos de una manera efectiva y fácil. Esta localización de recursos debe ser transparente para el usuario. Migración de datos Los datos son traídos al lugar del sistema donde son necesitados, pueden llegar a ser desde un archivo o hasta el contenido de una memoria física. Migración de Cálculos Los cálculos procesados son llevados hacia otra localización y puede ser eficiente bajo ciertas circunstancias, por ejemplo: Cuando se requiere información de un directorio remoto es más eficiente enviar el mensaje solicitando la información necesaria y recibiéndola de regreso. Planeación Distribuida Los procesos son transferidos de una computadora a otra dentro del sistema distribuido, esto es que un proceso puede ser ejecutado en una computadora diferente de donde fue originado. Este proceso de relocalización puede ser deseable si la computadora donde se origino se encuentra sobrecargada o no posee los recursos necesarios. La planeación distribuida es la responsable de todos los procesos distribuidos que se lleven a cabo entre computadoras sean efectuados con criterio y transparencia para obtener el máximo rendimiento. COMPLEJIDAD Y ASPECTOS QUE INTERVIENEN EN EL DISEÑO DE UN SISTEMA OPERATIVO DISTRIBUÍDO SEGURIDAD La seguridad de un sistema es la responsable de la integridad del Sistema Operativo dentro del diseño de un sistema de seguridad se consideren dos aspectos importantes: Autentificación Es el proceso de garantizar que una entidad es quien debe ser. Autorización: Es el proceso de decidir que privilegios tiene una entidad y hacer que solo esos privilegios se encuentren disponibles.