Módulo+1+[1]..
Short Description
Download Módulo+1+[1].....
Description
Acerca del curso de Sistemas Operativos Avanzados
Universidad de Guadalajara – Depto. de Cs. Computacionales - Sistemas Operativos Avanzados – Prof. Luis Alberto Muñoz Gómez
Módulo I. Antecedentes Básicos de los Sistemas Distribuidos 1.1 Introducción 1945-1985: ? Computadoras grandes y caras ? Organizaciones con un puñado de computadoras sin conexión entre sí 1980 ... : ? Dos avances tecnológicos: - Poderosos microprocesadores - Redes de area local (LANs [Local Area Networks]) Actualmente: ? Fácil reunir sistemas de cómputo compuestos por un gran número de CPUs, conectados mediante una red de Alta velocidad ? Nombre genérico de Sistemas Distribuidos ? Contraste con los centralizados, de un solo procesador, memoria, periféricos y terminales Problema: ? Software radicalmente distinto de los centralizados - Comunicación - Procesadores - Sincronización - Procesos
- Archivos - Control de memoria
Sistema Distribuido Es una colección de computadoras independientes que aparecen ante los usuarios del sistema como una única computadora. Aspectos: ? Hardware: máquinas autónomas ? Software: usuarios piensan que es como una única computadora Universidad de Guadalajara – Depto. de Cs. Computacionales - Sistemas Operativos Avanzados – Prof. Luis Alberto Muñoz Gómez
Ejemplos: ? Red de estaciones de trabajo en un departamento ? Fabrica de robots ? Banco con sucursales en el mundo Un sistema distribuido es una colección de procesadores que no comparten ni memoria ni reloj. Cada procesador tiene su propia memoria local y los procesadores se comunican entre sí a través de diversas líneas de comunicación. Diferencia entre Sistemas Operativos en Red y Distribuidos Sistema Operativo en Red: Los Usuarios saben que hay varias máquinas y necesitan acceder a los recursos iniciando una sesión en la máquina remota apropiada. Sistema Operativo Distribuido: Los usuarios no tienen que saber que hay varias máquinas: acceden a los recursos remotos de la misma manera que a los locales (transparencia al usuario)
Universidad de Guadalajara – Depto. de Cs. Computacionales - Sistemas Operativos Avanzados – Prof. Luis Alberto Muñoz Gómez
Motivación para la implementación de un sistema distribuido Ventajas contra sistemas centralizados (mainframes) ? Economía ? Velocidad ? Distribución inherente ? Confiabilidad ? Crecimiento por incrementos Economía: - Ley de Grosch: el poder de cómputo de CPU es proporcional al cuadrado de su precio - bien con los mainframes, pero no válida con los microprocesadores (por el doble solo un más veloz) Ejem: - sistema de 10,000 microcircuitos a 50 MIPS -> rendimiento total de 500,000 MIPS - una instrucción en 0.002 nanosegundos, improbable - luz recorre distancia de 0.6mm -> un micro de ese tamaño se funde por el calor ? solución al costo: gran # de CPUs (microprocesadores) baratos en un sistema -> mejor precio/desempeño Velocidad (agilizar los cálculos): ? Un sistema distribuido puede tener mayor poder de cómputo que un mainframe. Distribución inherente: ? Algunas aplicaciones utilizan máquinas que están separadas a cierta distancia. Ejem: - cadena de supermercados: - juegos cooperativos por computadora: Confiabilidad: ? Si una máquina se descompone, el sistema puede sobrevivir como un todo - se distribuye la carga de trabajo - baja solo en rendimiento % - uso en aplicaciones críticas: reactores nucleares o aviación Crecimiento por incrementos: ? Se puede añadir poder de cómputo en pequeños incrementos - un solo mainframe llega a ser inadecuado - en distribuido, solo se añaden procesadores en base a necesidades Ventajas contra PCs independientes ? Datos compartidos ? Dispositivos compartidos ? Comunicación ? Flexibilidad Datos compartidos: ? Varios usuarios tienen acceso a una BD común Dispositivos compartidos (compartición de recursos): ? Varios usuarios comparten periféricos caros Universidad de Guadalajara – Depto. de Cs. Computacionales - Sistemas Operativos Avanzados – Prof. Luis Alberto Muñoz Gómez
- la conexión entre las máquinas para compartir información y recursos conduce a distribuido Comunicación: ? Facilita la comunicación de persona a persona Flexibilidad: ? Difunde carga de trabajo entre máquinas disponibles - puede no ejecutarse en la máquina del propietario - uso de computadoras sin usuario Desventajas de los sistemas distribuidos Software: ? Existe poco software para SDs en la actualidad - Cuestionamientos sobre diseño, implantación y uso del software distribuido - Tipo de sistemas operativos - Lenguajes de programación - Aplicaciones - Conocimiento de los usuarios sobre la distribución - Que haga el sistema y que los usuarios Redes: ? La red se puede saturar o causar otros problemas - Pérdida de mensajes - Software especial sobrecargado - Saturación de la red; reemplazar o añadir - Dependencia de la red Seguridad: ? Acceso sencillo a los datos, lo es también para los secretos - problema frecuente con la seguridad 1.2 Aspectos básicos de las redes 1.2.1 Análisis de Redes Comunicación ? Asignación y resolución de nombres (DNS) ? Estrategias de encaminamiento: fijo, virtual y dinámico ? Estrategias de paquetes ? Estrategias de conexión: conmutación de circuitos, mensajes y paquetes ? Conflictos Para resolver el problema de la comunicación en sistemas remotos se requiere por lo general: host (máquina) proceso Nombre del anfitrión: es un nombre único en la red. - Para encontrar a un anfitrión en particular se puede hacer uno de los siguientes: a) Cada anfitrión tiene un archivo de datos con los nombres y direcciones de todos los demás b) Designar un Servicio de Nombres de Dominio (DNS) Universidad de Guadalajara – Depto. de Cs. Computacionales - Sistemas Operativos Avanzados – Prof. Luis Alberto Muñoz Gómez
Identificador: alguna forma de designar a un proceso de una máquina mediante un nombre o un número Asignación y resolución de nombres por DNS Los anfitriones usan direcciones lógicas con varias partes, de lo más específico a lo más general de la dirección. Ejem: para buscar una dirección como “cs.brown.edu” Estrategias de encaminamiento Encaminamiento fijo: se especifica por adelantado un camino de A a B y no cambia a menos que un fallo de hardware lo inhabilite. Casi siempre se escoge el camino más corto. Circuito virtual: se fija un camino de A a B mientras dura una sesión. Diferentes sesiones en las que se transfieren mensajes de A a B podrían tener diferentes caminos. Encaminamiento dinámico: se toman las decisiones en forma dinámica de tal forma que podrían asignarse caminos distintos a mensajes individuales. +Cada sitio cuenta con una “tabla de encaminamiento” que indica las rutas alternativas que se pueden usar para enviar un mensaje a otros sitios. Dichas tablas pueden contener información acerca de la velocidad y el costo de distintas rutas de comunicación. Encaminador (router):- Es la entidad dentro del sistema de computación que se encarga de encaminar los mensajes. El encaminador puede ser un computador anfitrión con software de encaminamiento o un dispositivo de propósito general. Estrategias de paquetes Los mensajes tienen longitud variable generalmente. Para simplificar el diseño del sistema, es implementar comunicación con mensajes de longitud fija llamados paquetes, tramas o datagramas. Estrategias de conexión Llegando los mensajes a su destino, los procesos pueden instituir “sesiones” de comunicación para intercambiar información. Formas de conectar pares de procesos a comunicarse por la red: Conmutación de circuitos: enlace físico entre los procesos asignado durante el tiempo que dure la comunicación; ningún otro proceso puede usar el enlace durante ese periodo; (sistema telefónico) Conmutación de mensajes: enlaces físicos temporales asignados dinámicamente entre los corresponsales según se necesita y sólo durante periodos cortos. Cada mensaje es un bloque de datos, con información del sistema (fuente, destino y código de corrección de errores) que permite a la red entregar el mensaje al destino correctamente (ej. El sistema de correo tradicional). Conmutación de paquetes: un mensaje lógico podría tener que dividirse en varios paquetes. Cada paquete podría enviarse a su destino por separado y debe incluir una dirección de origen y destino junto con sus datos. Los paquetes deben ensamblarse a medida que llegan para formar mensajes. Conflictos Dependiendo de la topología de red, un enlace podría conectar más de dos sitios de la red de computadoras, así que es posible que varios sitios quieran transmitir información por un enlace simultáneamente. Este problema se presenta sobretodo en las redes de anillo o bus multiacceso. Universidad de Guadalajara – Depto. de Cs. Computacionales - Sistemas Operativos Avanzados – Prof. Luis Alberto Muñoz Gómez
CSMA/CD: Carrier Sense Multiple Access with Colission Detection Antes de transmitir un mensaje por un enlace, un sitio debe “escuchar” para determinar si se está transmitiendo otro mensaje por ese enlace; esta técnica se denomina (Detección de portadora con acceso múltiple. Si dos o más sitios comienzan a transmitir en el mismo momento, registrarán una detección de colisión y dejarán de transmitir. Cada sitio lo intentará después de un tiempo aleatorio - puede haber algo relacionado a una inanición Paso de testigo: un tipo de mensaje único, llamado testigo (token), circula continuamente por el sistema. Si un sitio desea transmitir información debe esperar la llegada del testigo, el sitio saca al testigo del anillo y comienza a transmitir sus mensajes. Cuando el sitio termina, vuelve a transmitir el testigo. Si el testigo se pierde, los sistemas deben detectar la pérdida y generar un nuevo testigo. Ranuras de mensajes: Varias ranuras de mensajes de longitud fija circulan continuamente en el sistema, cada ranura puede contener un mensaje de tamaño fijo e información de control (como el origen y el destino y si la ranura está llena o vacía). Un sitio debe esperar la llegada de una ranura vacía, se inserta su mensaje y sigue su camino por la red, cada sitio verifica si el mensaje es para él, si no fue así, el sitio recircula la ranura y el mensaje. 1.2.2 Topologías Consideraciones para montar una red: ? Costo básico: valor económico de la instalación ? Costo de comunicación: pro´s y contras de la transmisión ? Confiabilidad: si un sitio o enlace falla, la red debe seguir funcionando 1.3 Conceptos 1.3.1 Conceptos de Hardware - Con los años se han propuesto diversos esquemas de clasificación para los sistemas de cómputo - La taxonomía más citada es la de Flynn Taxonomía de Flynn Características elegidas: a) numero de flujos de instrucciones b) número de flujos de datos SISD – Single Instruction Single Data Todas las computadoras tradicionales de un procesador, desde personales hasta mainframes. SIMD – Single Instruction Multiple Data Varios procesadores con unidad de instrucción sobre varias unidades de datos ejecutan una instrucción en paralelo, cada unidad con sus datos; para mismos cálculos en varios conjuntos de datos. Algunas supercomputadoras son SIMD. MISD – Múltiple Instruction Single Data Ninguna computadora se ajusta al modelo. MIMD – Multiple Instruction Multiple Data Grupo de computadoras independientes, con CPU, CP y datos propios. Todo Sistema Distribuido es MIMD. Universidad de Guadalajara – Depto. de Cs. Computacionales - Sistemas Operativos Avanzados – Prof. Luis Alberto Muñoz Gómez
Taxonomía para computadoras paralelas y distribuidas (MIMD) Dos grupos: 1) Fuertemente acopladas: multiprocesadores; memoria compartida; retraso de envío corto, tasa de transmisión de datos alta - espacio de direcciones virtuales compartido - sistemas paralelos, para un mismo problema 2) Débilmente acopladas: multicomputadoras; memoria privada; retraso de mensajes grande, tasa de transmisión de datos baja - sistemas distribuidos, para problemas no relacionados entre sí
Multiprocesadores con base en buses Cierta cantidad de CPUs en una tarjeta, conectados a un bus común, junto con un módulo de memoria. - Bus típico: 32 ó 64 líneas de direcciones, 32 ó 64 líneas de datos y 32 ó más líneas de control, todo en paralelo Características típicas: - Memoria coherente - Pero con 4 ó 5 CPU -> bus sobrecargado - Solución: memoria caché 64K a 1M, 90% encuentros - Caché de escritura y caché monitor -> 32 a 64 CPUs máximo
Universidad de Guadalajara – Depto. de Cs. Computacionales - Sistemas Operativos Avanzados – Prof. Luis Alberto Muñoz Gómez
+ un diseño consistente en cachés monitores y de escritura es coherente e invisible al programador Multiprocesadores con conmutador - Para más de 64 procesadores - Memoria en módulos - Conexión mediante conmutador de cruceta - Intersección con conmutator de punto de cruce - Desventaja n2 conmutadores ? Alternativa Red Omega: - Conmutadores 2x2 - (Nlog2n)/2 conmutadores - para 1024 en RISC de 100 MIPS, instr. en 10 ns - 10 etapas conmutación - una conm en 0.5 ns + son caros y lentos
? -
Maquinas NUMA cada CPU con memoria asociada rápido acceso a memoria local lento a memoria de los demás complicación: colocación de los programas para accesos a memoria local, complejos algoritmos
Universidad de Guadalajara – Depto. de Cs. Computacionales - Sistemas Operativos Avanzados – Prof. Luis Alberto Muñoz Gómez
Multicomputadoras con base en buses - Cada CPU con memoria local - Problema de comunicación entre CPUs - Menor tráfico que CPU-memoria - Similar topológicamente al multiprocesador de bus - Colección de estaciones de trabajo en LAN
Multicomputadoras con conmutador - CPUs con memoria particular ? Retícula: - Fácil de comprender - P/problemas bidimensionales inherentes, teoría de gráficas y visión (ojos de robot, análisis de fotografías) - Trayectoria crece conforme a la raíz cuadrada de CPUs ? Hipercubo: - Cubo n-dimensional - Cada arista conecta 2 CPUs - Complejidad de cableado aumenta en proporción logarítmica con el tamaño - La trayectoria más larga es logarítmica - Hipercubos de 1024 y de 16384 CPUs
Universidad de Guadalajara – Depto. de Cs. Computacionales - Sistemas Operativos Avanzados – Prof. Luis Alberto Muñoz Gómez
1.3.2 Conceptos de Software - La imagen que el sistema distribuido presenta a los usuarios, queda determinada en gran medida por el software - Los SOs son difíciles de clasificar, por que el software es vago y amorfo Dos tipos de SOs: a) Débilmente acoplados - máquinas y usuarios independientes en lo fundamental: CPU, memoria, disco - interactúan en cierto grado en lo necesario b) Fuertemente acoplados - multiprocesador - operaciones en paralelo Sistemas Operativos de Redes ? Software débilmente acoplado ? Hardware débilmente acoplado - Red de estaciones de trabajo en LAN - Una estación por usuario - SO propio - Ejecución local de comandos - Selección manual de máquina a utilizar (rlogin) - rcp machine1:file1 machine2:file2 -
Comunicación Cliente-Servidor Servidor de archivos montado diferente por cada usuario Diferentes SOs Coincidir formato y significado de mensajes
Universidad de Guadalajara – Depto. de Cs. Computacionales - Sistemas Operativos Avanzados – Prof. Luis Alberto Muñoz Gómez
- Máquinas autónomas con pocos requisitos para comunicación
Sistemas Realmente Distribuidos ? Software fuertemente acoplado ? Hardware débilmente acoplado ? Objetivo: toda la red es un sistema de tiempo compartido ? Percepciones: - Imagen de único sistema - Máquinas en red que actúan como uniprocesador virtual - No conciencia de varios CPUs ? Características: - Mecanismo de comunicación global entre procesos - Administración de procesos igual en todas partes: crear, destruir, inicio suspensión - Llamadas a sistema diseñadas para ambiente distribuido - Sistema de archivos con misma apariencia en todas partes - Archivos visibles en cualquier posición, con protección y seguridad - Misma interfaz de llamadas a sistema -> núcleos idénticos - Inicio de proceso, todos buscan el mejor lugar - Cada núcleo, control propio de recursos: memoria, planificación
Universidad de Guadalajara – Depto. de Cs. Computacionales - Sistemas Operativos Avanzados – Prof. Luis Alberto Muñoz Gómez
Sistemas multiprocesador de tiempo compartido ? Software fuertemente acoplado ? Hardware fuertemente acoplado - Ejem: máquinas dedicadas a las BDs - Multiprocesadores en tiempo compartido - 32 CPU de 30 MIPS actúan igual que uno de 960 MIPS, al exterior ? Características: - Cola de ejecución: procesos listos - Cola: estructura de datos en memoria compartida
- elección de CPU no efecto; preferible en el de antes - difiere de una red o SD en la organización del sistema de archivos, lo normal es tener un sistema de archivos tradicional - sección crítica en archivos, tablas centrales Elemento S.O. de S.O. S.O. de Red Distribuido multiprocesador ¿Se ve como uniprocesador virtual? No Sí Sí ¿Todos tienen que ejecutar el mismo S.O.? No Sí Sí ¿Cuántas copias del S.O. existen? N N 1 ¿Cómo se logra la comunicación? Archivos Mensajes Memoria compartido compartida s ¿Se requiere acuerdo en protocolos de red? Sí Sí No ¿Existe una cola de ejecución? No No Sí ¿Existe una semántica bien definida para los archivos No Sí Sí compartidos? 1.4 Aspectos de Diseño Los aspectos a trabajar para construir un sistema distribuido son: ? Transparencia ? Flexibilidad ? Confiabilidad ? Desempeño ? Escalabilidad Universidad de Guadalajara – Depto. de Cs. Computacionales - Sistemas Operativos Avanzados – Prof. Luis Alberto Muñoz Gómez
Transparencia - Lograr la imagen de un sistema - El sistema es como uno de tiempo compartido de un procesador a la antigua Dos niveles: ? Ocultar la distribución a los usuarios - Ejem: make en paralelo en distintas máquinas, servidores de archivos - desempeño descendente - comandos en terminal y respuesta igual ? Sistema transparente a los programas - Interfaz de llamadas al sistema, no visibles procesadores - No indicar conexión de red a servidor: archivos - Difícil vendar al programador Aspectos de la transparencia: ? Transparencia de localización: usuarios no pueden indicar localización de recursos HW y SW; machine1/prog.c ? Transparencia de migración: los recursos se pueden mover sin tener que cambiar sus nombres; mover servidor2:/trabajo/noticias al servidor1 ? Transparencia de réplica: el sistema puede fabricar por su cuenta copias adicionales de archivos y otros recursos, los usuarios no pueden indicar el número de tales copias ? Transparencia de concurrencia: Varios usuarios pueden compartir recursos de manera automática; cerrar el recurso hasta terminar acceso; acceso secuencial, nunca concurrente ? Transparencia de paralelismo: Ejecución de un programa en CPUs en paralelo sin el conocimiento de los usuarios o programadores; el más difícil; ejem: si un programa requiere de varios CPUs, se debe declarar en forma explícita; se puede considerar el cáliz sagrado para los diseñadores de sistemas distribuidos - hay ocasiones en que los usuarios no desean la transparencia completa; ejem: impresora Flexibilidad - Decisiones de diseño razonables pueden ser incorrectas posteriormente - Mantener abiertas las opciones Dos escuelas del pensamiento para la estructura de SDs: A) Núcleo Monolítico: Núcleo tradicional que ejecute la mayoría de los servicios; más capacidades de red y servicios remotos; como UNIX B) Micronúcleo: Núcleo proporciona lo menos posible; grueso de servicios en servidores de nivel usuario, como archivos, directorios, procesos; más flexible; servicios: ? Mecanismo de comunicación entre procesos ? Cierta administración de memoria ? Cantidad limitada de planificación y admón. de procesos de bajo nivel ? E/S de bajo nivel Universidad de Guadalajara – Depto. de Cs. Computacionales - Sistemas Operativos Avanzados – Prof. Luis Alberto Muñoz Gómez
- para un servicio, mensaje al servidor - fácil implantar, instalar y depurar servicios, sin alto total del sistema para arranque de nuevo núcleo - usuarios pueden escribir sus propios servicios - Ejem: servicio de archivos UNIX o MSDOS en diferentes servidores ? ventaja del monolítico: rendimiento, más rápido que el envío de mensajes a servidores remotos; aunque en la práctica la diferencia es insignificante para el envío de mensaje y recepción de la respuesta Confiabilidad ? Si una máquina falla, otra se encargue del trabajo ? La confiabilidad del sistema es el OR booleano de la de los componentes - Ejem: probabilidad 0.95 de un servidor de archivos; 0.054=0.000006 fallo simultáneo - En la práctica, algunos SDs cuentan en algunos servidores críticos para el todo funcione (+definición de Leslie Lamport de un SD) ? -
Disponibilidad: fracción de tiempo en que se puede utilizar un sistema Otra herramienta: redundancia de HW y SW Sistema alt amente confiable debe ser altamente disponible Si archivos redundantes, copias deben ser consistentes Más copias, más disponibilidad; aumenta la probabilidad de inconsistencia si actualización frecuente
? -
Seguridad Archivos y recursos protegidos bajo autorización En un procesador, se autentica y el sistema sabe quien es el usuario En distribuido, mensaje a servidor, difícil determinar de quien proviene, emisor puede mentir con campo identificador
Universidad de Guadalajara – Depto. de Cs. Computacionales - Sistemas Operativos Avanzados – Prof. Luis Alberto Muñoz Gómez
? Tolerancia a fallas - Si servidor falla, ¿se extiende a usuarios?; recuperación de tablas de actividades en proceso, difícil ? grupo de servidores en cooperación, si fallo, degradación en desempeño, pero caso normal de uso sin costo sustancial al sistema Desempeño ? Ejecución de aplicación en distribuido no ser peor que en un procesador Métricas: - Tiempo de respuesta - Rendimiento: trabajos por hora - Uso del sistema - Consumo de capacidad de la red -
desempeño se complica por comunicación lenta, por protocolos minimizar no. de mensajes actividades en paralelo en CPUs requiere muchos mensajes ver el tamaño de grano problemas con paralelismo de grano fino: trabajos con gran número de pequeños cálculos que interactúan en gran medida con otros trabajos - mejor paralelismo de grano grueso: trabajos de grandes cálculos y baja tasa de interacción - tolerancia a fallas con servidores cooperantes, mensajes adicionales, con tiempo y uso de red, sin ganancia notable Escalabilidad ? Verificar por la escalabilidad de los sistemas actuales, hacia grandes sistemas en el futuro Evitar: - componentes centralizados; ej. un solo servidor de correo para todos los usuarios; no tolera fallas, mensajes locales no globales - tablas centralizadas; ej. Un directorio telefónico en línea; una BD, saturación de líneas de comunicación en ella, vulnerable a fallas, desperdicio de la red - algoritmos centralizados; ej. Realización de ruteo con base en información completa; mejor, calcular ruta óptima por carga de máquinas y líneas locales Características de algoritmos descentralizados: 1. Ninguna máquina con información completa del estado del sistema 2. Máquinas toman decisiones sobre información local 3. Falla en una máquina no arruina el algoritmo 4. No existe hipótesis implícita sobre un reloj global - algoritmos tomar en cuenta carencia de sincronización precisa de relojes - mayor sistema, mayor incertidunbre Universidad de Guadalajara – Depto. de Cs. Computacionales - Sistemas Operativos Avanzados – Prof. Luis Alberto Muñoz Gómez
View more...
Comments