Está en la página 1de 16

Acerca del curso de Sistemas Operativos Avanzados

Universidad de Guadalajara Depto. de Cs. Computacionales - Sistemas Operativos Avanzados Prof. Luis Alberto Muoz Gmez

Mdulo I. Antecedentes Bsicos de los Sistemas Distribuidos 1.1 Introduccin 1945-1985: ? Computadoras grandes y caras ? Organizaciones con un puado de computadoras sin conexin entre s 1980 ... : ? Dos avances tecnolgicos: - Poderosos microprocesadores - Redes de area local (LANs [Local Area Networks]) Actualmente: ? Fcil reunir sistemas de cmputo compuestos por un gran nmero de CPUs, conectados mediante una red de Alta velocidad ? Nombre genrico de Sistemas Distribuidos ? Contraste con los centralizados, de un solo procesador, memoria, perifricos y terminales Problema: ? Software radicalmente distinto de los centralizados - Comunicacin - Procesadores - Sincronizacin - Procesos

- Archivos - Control de memoria

Sistema Distribuido Es una coleccin de computadoras independientes que aparecen ante los usuarios del sistema como una nica computadora. Aspectos: ? Hardware: mquinas autnomas ? Software: usuarios piensan que es como una nica computadora
Universidad de Guadalajara Depto. de Cs. Computacionales - Sistemas Operativos Avanzados Prof. Luis Alberto Muoz Gmez

Ejemplos: ? Red de estaciones de trabajo en un departamento ? Fabrica de robots ? Banco con sucursales en el mundo Un sistema distribuido es una coleccin de procesadores que no comparten ni memoria ni reloj. Cada procesador tiene su propia memoria local y los procesadores se comunican entre s a travs de diversas lneas de comunicacin. Diferencia entre Sistemas Operativos en Red y Distribuidos Sistema Operativo en Red: Los Usuarios saben que hay varias mquinas y necesitan acceder a los recursos iniciando una sesin en la mquina remota apropiada. Sistema Operativo Distribuido: Los usuarios no tienen que saber que hay varias mquinas: 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 Muoz Gmez

Motivacin para la implementacin de un sistema distribuido Ventajas contra sistemas centralizados (mainframes) ? Economa ? Velocidad ? Distribucin inherente ? Confiabilidad ? Crecimiento por incrementos Economa : - Ley de Grosch: el poder de cmputo de CPU es proporcional al cuadrado de su precio - bien con los mainframes, pero no vlida con los microprocesadores (por el doble solo un ms veloz) Ejem: - sistema de 10,000 microcircuitos a 50 MIPS -> rendimiento total de 500,000 MIPS - una instruccin en 0.002 nanosegundos, improbable - luz recorre distancia de 0.6mm -> un micro de ese tamao se funde por el calor ? solucin al costo: gran # de CPUs (microprocesadores) baratos en un sistema -> mejor precio/desempeo Velocidad (agilizar los clculos): ? Un sistema distribuido puede tener mayor poder de cmputo que un mainframe. Distribucin inherente : ? Algunas aplicaciones utilizan mquinas que estn separadas a cierta distancia. Ejem: - cadena de supermercados: - juegos cooperativos por computadora: Confiabilidad: ? Si una mquina se descompone, el sistema puede sobrevivir como un todo - se distribuye la carga de trabajo - baja solo en rendimiento % - uso en aplicaciones crticas: reactores nucleares o aviacin Crecimiento por incrementos: ? Se puede aadir poder de cmputo en pequeos incrementos - un solo mainframe llega a ser inadecuado - en distribuido, solo se aaden procesadores en base a necesidades Ventajas contra PCs independientes ? Datos compartidos ? Dispositivos compartidos ? Comunicacin ? Flexibilidad Datos compartidos: ? Varios usuarios tienen acceso a una BD comn Dispositivos compartidos (comparticin de recursos): ? Varios usuarios comparten perifricos caros
Universidad de Guadalajara Depto. de Cs. Computacionales - Sistemas Operativos Avanzados Prof. Luis Alberto Muoz Gmez

- la conexin entre las mquinas para compartir informacin y recursos conduce a distribuido Comunicacin : ? Facilita la comunicacin de persona a persona Flexibilidad : ? Difunde carga de trabajo entre mquinas disponibles - puede no ejecutarse en la mquina del propietario - uso de computadoras sin usuario Desventajas de los sistemas distribuidos Software: ? Existe poco software para SDs en la actualidad - Cuestionamientos sobre diseo, implantacin y uso del software distribuido - Tipo de sistemas operativos - Lenguajes de programacin - Aplicaciones - Conocimiento de los usuarios sobre la distribucin - Que haga el sistema y que los usuarios Redes: ? La red se puede saturar o causar otros problemas - Prdida de mensajes - Software especial sobrecargado - Saturacin de la red; reemplazar o aadir - Dependencia de la red Seguridad: ? Acceso sencillo a los datos, lo es tambin para los secretos - problema frecuente con la seguridad 1.2 Aspectos bsicos de las redes 1.2.1 Anlisis de Redes Comunicacin ? Asignacin y resolucin de nombres (DNS) ? Estrategias de encaminamiento: fijo, virtual y dinmico ? Estrategias de paquetes ? Estrategias de conexin: conmutacin de circuitos, mensajes y paquetes ? Conflictos Para resolver el problema de la comunicacin en sistemas remotos se requiere por lo general: <nombre de anfitrin, id> host (mquina) proceso Nombre del anfitrin: es un nombre nico en la red. - Para encontrar a un anfitrin en particular se puede hacer uno de los siguientes: a) Cada anfitrin tiene un archivo de datos con los nombres y direcciones de todos los dems b) Designar un Servicio de Nombres de Dominio (DNS)
Universidad de Guadalajara Depto. de Cs. Computacionales - Sistemas Operativos Avanzados Prof. Luis Alberto Muoz Gmez

Identificador: alguna forma de designar a un proceso de una mquina mediante un nombre o un nmero Asignacin y resolucin de nombres por DNS Los anfitriones usan direcciones lgicas con varias partes, de lo ms especfico a lo ms general de la direccin. Ejem: para buscar una direccin 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 ms corto. Circuito virtual : se fija un camino de A a B mientras dura una sesin. Diferentes sesiones en las que se transfieren mensajes de A a B podran tener diferentes caminos. Encaminamiento dinmico : se toman las decisiones en forma dinmica de tal forma que podran 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 informacin acerca de la velocidad y el costo de distintas rutas de comunicacin. Encaminador (router) :- Es la entidad dentro del sistema de computacin que se encarga de encaminar los mensajes. El encaminador puede ser un computador anfitrin con software de encaminamiento o un dispositivo de propsito general. Estrategias de paquetes Los mensajes tienen longitud variable generalmente. Para simplificar el diseo del sistema, es implementar comunicacin con mensajes de longitud fija llamados paquetes, tramas o datagramas. Estrategias de conexin Llegando los mensajes a su destino, los procesos pueden instituir sesiones de comunicacin para intercambiar informacin. Formas de conectar pares de procesos a comunicarse por la red: Conmutacin de circuitos : enlace fsico entre los procesos asignado durante el tiempo que dure la comunicacin; ningn otro proceso puede usar el enlace durante ese periodo; (sistema telefnico) Conmutacin de mensajes : enlaces fsicos temporales asignados dinmicamente entre los corresponsales segn se necesita y slo durante periodos cortos. Cada mensaje es un bloque de datos, con informacin del sistema (fuente, destino y cdigo de correccin de errores) que permite a la red entregar el mensaje al destino correctamente (ej. El sistema de correo tradicional). Conmutacin de paquetes : un mensaje lgico podra tener que dividirse en varios paquetes. Cada paquete podra enviarse a su destino por separado y debe incluir una direccin de origen y destino junto con sus datos. Los paquetes deben ensamblarse a medida que llegan para formar mensajes. Conflictos Dependiendo de la topologa de red, un enlace podra conectar ms de dos sitios de la red de computadoras, as que es posible que varios sitios quieran transmitir informacin por un enlace simultneamente. 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 Muoz Gmez

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 tcnica se denomina (Deteccin de portadora con acceso mltiple. Si dos o ms sitios comienzan a transmitir en el mismo momento, registrarn una deteccin de colisin y dejarn de transmitir. Cada sitio lo intentar despus de un tiempo aleatorio - puede haber algo relacionado a una inanicin Paso de testigo : un tipo de mensaje nico, llamado testigo (token), circula continuamente por el sistema. Si un sitio desea transmitir informacin 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 prdida 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 tamao fijo e informacin de control (como el origen y el destino y si la ranura est llena o vaca). Un sitio debe esperar la llegada de una ranura vaca, 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 Topologas Consideraciones para montar una red: ? Costo bsico: valor econmico de la instalacin ? Costo de comunicacin: pros y contras de la transmisin ? Confiabilidad: si un sitio o enlace falla, la red debe seguir funcionando 1.3 Conceptos 1.3.1 Conceptos de Hardware - Con los aos se han propuesto diversos esquemas de clasificacin para los sistemas de cmputo - La taxonoma ms citada es la de Flynn Taxonoma de Flynn Caractersticas elegidas: a) numero de flujos de instrucciones b) nmero 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 instruccin sobre varias unidades de datos ejecutan una instruccin en paralelo, cada unidad con sus datos; para mismos clculos en varios conjuntos de datos. Algunas supercomputadoras son SIMD. MISD Mltiple 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 Muoz Gmez

Taxonoma para computadoras paralelas y distribuidas (MIMD) Dos grupos: 1) Fuertemente acopladas : multiprocesadores; memoria compartida; retraso de envo corto, tasa de transmisin de datos alta - espacio de direcciones virtuales compartido - sistemas paralelos, para un mismo problema 2) Dbilmente acopladas: multicomputadoras; memoria privada; retraso de mensajes grande, tasa de transmisin 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 comn, junto con un mdulo de memoria. - Bus tpico: 32 64 lneas de direcciones, 32 64 lneas de datos y 32 ms lneas de control, todo en paralelo Caractersticas tpicas: - Memoria coherente - Pero con 4 5 CPU -> bus sobrecargado - Solucin: memoria cach 64K a 1M, 90% encuentros - Cach de escritura y cach monitor -> 32 a 64 CPUs mximo

Universidad de Guadalajara Depto. de Cs. Computacionales - Sistemas Operativos Avanzados Prof. Luis Alberto Muoz Gmez

+ un diseo consistente en cachs monitores y de escritura es coherente e invisible al programador Multiprocesadores con conmutador - Para ms de 64 procesadores - Memoria en mdulos - Conexin mediante conmutador de cruceta - Interseccin 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 conmutacin - una conm en 0.5 ns + son caros y lentos

? -

Maquinas NUMA cada CPU con memoria asociada rpido acceso a memoria local lento a memoria de los dems complicacin: colocacin de los programas para accesos a memoria local, complejos algoritmos

Universidad de Guadalajara Depto. de Cs. Computacionales - Sistemas Operativos Avanzados Prof. Luis Alberto Muoz Gmez

Multicomputadoras con base en buses - Cada CPU con memoria local - Problema de comunicacin entre CPUs - Menor trfico que CPU-memoria - Similar topolgicamente al multiprocesador de bus - Coleccin de estaciones de trabajo en LAN

Multicomputadoras con conmutador - CPUs con memoria particular ? Retcula: - Fcil de comprender - P/problemas bidimensionales inherentes, teora de grficas y visin (ojos de robot, anlisis de fotografas) - Trayectoria crece conforme a la raz cuadrada de CPUs ? Hipercubo: - Cubo n-dimensional - Cada arista conecta 2 CPUs - Complejidad de cableado aumenta en proporcin logartmica con el tamao - La trayectoria ms larga es logartmica - Hipercubos de 1024 y de 16384 CPUs

Universidad de Guadalajara Depto. de Cs. Computacionales - Sistemas Operativos Avanzados Prof. Luis Alberto Muoz Gmez

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 difciles de clasificar, por que el software es vago y amorfo Dos tipos de SOs: a) Dbilmente acoplados - mquinas y usuarios independientes en lo fundamental: CPU, memoria, disco - interactan en cierto grado en lo necesario b) Fuertemente acoplados - multiprocesador - operaciones en paralelo Sistemas Operativos de Redes ? Software dbilmente acoplado ? Hardware dbilmente acoplado - Red de estaciones de trabajo en LAN - Una estacin por usuario - SO propio - Ejecucin local de comandos - Seleccin manual de mquina a utilizar (rlogin) - rcp machine1:file1 machine2:file2 Comunicacin 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 Muoz Gmez

- Mquinas autnomas con pocos requisitos para comunicacin

Sistemas Realmente Distribuidos ? Software fuertemente acoplado ? Hardware dbilmente acoplado ? Objetivo: toda la red es un sistema de tiempo compartido ? Percepciones: - Imagen de nico sistema - Mquinas en red que actan como uniprocesador virtual - No conciencia de varios CPUs ? Caractersticas: - Mecanismo de comunicacin global entre procesos - Administracin de procesos igual en todas partes: crear, destruir, inicio suspensin - Llamadas a sistema diseadas para ambiente distribuido - Sistema de archivos con misma apariencia en todas partes - Archivos visibles en cualquier posicin, con proteccin y seguridad - Misma interfaz de llamadas a sistema -> ncleos idnticos - Inicio de proceso, todos buscan el mejor lugar - Cada ncleo, control propio de recursos: memoria, planificacin

Universidad de Guadalajara Depto. de Cs. Computacionales - Sistemas Operativos Avanzados Prof. Luis Alberto Muoz Gmez

Sistemas multiprocesador de tiempo compartido ? Software fuertemente acoplado ? Hardware fuertemente acoplado - Ejem: mquinas dedicadas a las BDs - Multiprocesadores en tiempo compartido - 32 CPU de 30 MIPS actan igual que uno de 960 MIPS, al exterior ? Caractersticas: - Cola de ejecucin: procesos listos - Cola: estructura de datos en memoria compartida

- eleccin de CPU no efecto; preferible en el de antes - difiere de una red o SD en la organizacin del sistema de archivos, lo normal es tener un sistema de archivos tradicional - seccin crtica 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 Cuntas copias del S.O. existen? N N 1 Cmo se logra la comunicacin? Archivos Mensajes Memoria compartido compartida s Se requiere acuerdo en protocolos de red? S S No Existe una cola de ejecucin? No No S Existe una semntica bien definida para los archivos No S S compartidos? 1.4 Aspectos de Diseo Los aspectos a trabajar para construir un sistema distribuido son: ? Transparencia ? Flexibilidad ? Confiabilidad ? Desempeo ? Escalabilidad
Universidad de Guadalajara Depto. de Cs. Computacionales - Sistemas Operativos Avanzados Prof. Luis Alberto Muoz Gmez

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 distribucin a los usuarios - Ejem: make en paralelo en distintas mquinas, servidores de archivos - desempeo descendente - comandos en terminal y respuesta igual ? Sistema transparente a los programas - Interfaz de llamadas al sistema, no visibles procesadores - No indicar conexin de red a servidor: archivos - Difcil vendar al programador Aspectos de la transparencia: ? Transparencia de localizacin: usuarios no pueden indicar localizacin de recursos HW y SW; machine1/prog.c ? Transparencia de migracin: los recursos se pueden mover sin tener que cambiar sus nombres; mover servidor2:/trabajo/noticias al servidor1 ? Transparencia de rplica: el sistema puede fabricar por su cuenta copias adicionales de archivos y otros recursos, los usuarios no pueden indicar el nmero de tales copias ? Transparencia de concurrencia: Varios usuarios pueden compartir recursos de manera automtica; cerrar el recurso hasta terminar acceso; acceso secuencial, nunca concurrente ? Transparencia de paralelismo: Ejecucin de un programa en CPUs en paralelo sin el conocimiento de los usuarios o programadores; el ms difcil; ejem: si un programa requiere de varios CPUs, se debe declarar en forma explcita; se puede considerar el cliz sagrado para los diseadores de sistemas distribuidos - hay ocasiones en que los usuarios no desean la transparencia completa; ejem: impresora Flexibilidad - Decisiones de diseo razonables pueden ser incorrectas posteriormente - Mantener abiertas las opciones Dos escuelas del pensamiento para la estructura de SDs: A) Ncleo Monoltico: Ncleo tradicional que ejecute la mayora de los servicios; ms capacidades de red y servicios remotos; como UNIX B) Microncleo: Ncleo proporciona lo menos posible; grueso de servicios en servidores de nivel usuario, como archivos, directorios, procesos; ms flexible; servicios: ? Mecanismo de comunicacin entre procesos ? Cierta administracin de memoria ? Cantidad limitada de planificacin y admn. de procesos de bajo nivel ? E/S de bajo nivel
Universidad de Guadalajara Depto. de Cs. Computacionales - Sistemas Operativos Avanzados Prof. Luis Alberto Muoz Gmez

- para un servicio, mensaje al servidor - fcil implantar, instalar y depurar servicios, sin alto total del sistema para arranque de nuevo ncleo - usuarios pueden escribir sus propios servicios - Ejem: servicio de archivos UNIX o MSDOS en diferentes servidores ? ventaja del monoltico: rendimiento, ms rpido que el envo de mensajes a servidores remotos; aunque en la prctica la diferencia es insignificante para el envo de mensaje y recepcin de la respuesta Confiabilidad ? Si una mquina 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 simultneo - En la prctica, algunos SDs cuentan en algunos servidores crticos para el todo funcione (+definicin de Leslie Lamport de un SD) ? ? Disponibilidad: fraccin 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 Ms copias, ms disponibilidad; aumenta la probabilidad de inconsistencia si actualizacin frecuente Seguridad Archivos y recursos protegidos bajo autorizacin En un procesador, se autentica y el sistema sabe quien es el usuario En distribuido, mensaje a servidor, difcil determinar de quien proviene, emisor puede mentir con campo identificador

Universidad de Guadalajara Depto. de Cs. Computacionales - Sistemas Operativos Avanzados Prof. Luis Alberto Muoz Gmez

? Tolerancia a fallas - Si servidor falla, se extiende a usuarios?; recuperacin de tablas de actividades en proceso, difcil ? grupo de servidores en cooperacin, si fallo, degradacin en desempeo, pero caso normal de uso sin costo sustancial al sistema Desempeo ? Ejecucin de aplicacin en distribuido no ser peor que en un procesador Mtricas: - Tiempo de respuesta - Rendimiento: trabajos por hora - Uso del sistema - Consumo de capacidad de la red desempeo se complica por comunicacin lenta, por protocolos minimizar no. de mensajes actividades en paralelo en CPUs requiere muchos mensajes ver el tamao de grano problemas con paralelismo de grano fino: trabajos con gran nmero de pequeos clculos que interactan en gran medida con otros trabajos - mejor paralelismo de grano grueso: trabajos de grandes clculos y baja tasa de interaccin - 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 telefnico en lnea; una BD, saturacin de lneas de comunicacin en ella, vulnerable a fallas, desperdicio de la red - algoritmos centralizados; ej. Realizacin de ruteo con base en informacin completa; mejor, calcular ruta ptima por carga de mquinas y lneas locales Caractersticas de algoritmos descentralizados: 1. Ninguna mquina con informacin completa del estado del sistema 2. Mquinas toman decisiones sobre informacin local 3. Falla en una mquina no arruina el algoritmo 4. No existe hiptesis implcita sobre un reloj global - algoritmos tomar en cuenta carencia de sincronizacin precisa de relojes - mayor sistema, mayor incertidunbre
Universidad de Guadalajara Depto. de Cs. Computacionales - Sistemas Operativos Avanzados Prof. Luis Alberto Muoz Gmez

También podría gustarte