Tema 2: Sistemas Operativos Distribuidos Organización



Documentos relacionados
Tema 2: Sistemas Operativos Distribuidos Organización

Introducción. Sistemas Operativos. Pedro Chávez Lugo 23 de marzo de 2010

Unidad 1: Conceptos generales de Sistemas Operativos.

Redes de Nueva Generación Área de Ingeniería Telemática. Virtualización

Sistemas Operativos. Curso 2013 Virtualización

VMware vs. Xen. Comparación de dos esquemas populares de virtualización. Héctor López Guillermo Veitia

µkernels y virtualización

Virtualización en GNU/Linux

Guia para examen de Sistemas Operativos Para primer parcial Febrero 2013 Revisión 2 Ing. Julio Cesar Gonzalez Cervantes

Entorno ubicuo basado en virtualización para la docencia práctica. Entorno ubicuo basado en virtualización para la docencia práctica.

Virtualización. Administración Avanzada de Sistemas Operativos. Eduardo Iniesta Soto

Estructura del Sistema Operativo. Módulo 2. Estructuras de Sistemas Operativos

COMO CONFIGURAR UNA MAQUINA VIRTUAL EN VIRTUALBOX PARA ELASTIX

Virtualización. Fernando Lorge Laboratorio de REDES Recuperación de Información y Estudios de la Web

Virtualización - Que es?

15. Arquitectura de los multiprocesadores. 16. Multiprocesadores de memoria compartida. 17. Multicomputadores.

Introducción a los Sistemas Operativos

Alta Disponibilidad y Virtualización con soluciones de bajo costo. Virtualización. Conceptos básicos

Virtualización. (y Software Libre) Lic. Marcelo Fernández - UNLuX. fernandezm@gmail.com -

Procesos. Bibliografía. Threads y procesos. Definiciones

Virtualización. Carlo López Armando Mejía Andrés Sánchez

1. Introducción 2. Historia 3. Características clave 4. Cuestiones de diseño

Sistemas de Operación II

Conferencias Técnicas

UT04 01 Máquinas virtuales (introducción)


Una mirada práctica a los Micro-Kernels y los Virtual Machine Monitors François Armand, Michel Gien INFORMATICA III

Maquinas virtuales Conceptos Básicos

Tema 2. Arquitecturas de Sistemas Operativos

picojava TM Características

VIRTUALIZACIÓN DE SERVIDORES

Maquinas Virtuales. Prof.: Huerta Molina Samuel. Cuellar Sánchez Jesús. Pinto López Luis Tonatiuh. Hecho por Jesús y Luis. 1

Actividad 2: Configurar e Instalar un Sistema Operativo virtual

Máquinas Virtuales en arquitecturas de microkernel

Instalación de XEN Información de XEN Qué es XEN? Componentes de XEN:... 2

La Arquitectura de las Máquinas Virtuales.

Virtualización RouterOS con KVM. Cristian Damián Cazón MikroTik Certified Consultant Jujuy - Argentina

UNIVERSIDAD DE ORIENTE FACULTAD DE ICIENCIAS ECONOMICAS LAS REDES I. Licda. Consuelo Eleticia Sandoval

Redes de Altas Prestaciones

Trabajo TP6 Sistemas Legados

Virtualización en Servidores. Conceptos básicos

Introducción a Java LSUB. 15 de enero de 2015 GSYC

Tema 1: Introducción al S.O.

Gestión de Recursos y Seguridad en Redes Virtualización de Servidores, VMware. Derman Zepeda Vega. dzepeda@unan.edu.ni

Virtualización. Esquemas populares

Estructura del Sistema Operativo. Módulo 2. Estructuras de Sistemas Operativos

Máquinas Virtuales. Curso Diseño y Administración de Sistemas y Redes.

Plataformas paralelas

Tema 6. Gestión de la memoria

NOMBRE: Sánchez Sandoval Edgar Rafael GRUPO: 301 MATERIA: OPERAR EL EQUIPO DE COMPUTO PROFESOR: Joel rodríguez Sánchez FECHA DE CREACION: 24/09/2013

Sistemas operativos: una visión aplicada. Capítulo 11 Estudio de casos: Linux

Global File System (GFS)...

ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA Sistemas Embebidos Act 11: Reconocimiento Unidad 3 LECTURA 1

Tema 3. Introducción a la configuración de un PC

TEMA 1: SISTEMAS INFORMÁTICOS. Parte 3: sistemas operativos

Introducción a las redes de computadores

Soluciones de virtualización en sistemas Linux:

Contenidos. Sistemas operativos Tema 3: Estructura del sistema operativo. Componentes típicos de un SO. Gestión de procesos.

Software para virtualización

Guía de Instalación de Imagen GNU/Linux en VirtualBox (SEDM)

Cómo crear una máquina virtual?

Sistemas Operativos. Tema 1. Arquitectura Básica de los Computadores

Máquinas virtuales. Tema 1 SRI. Vicente Sánchez Patón. I.E.S Gregorio Prieto

CAPÍTULO 4 ANÁLISIS DE IMPLEMENTACIONES

Historia de los sistemas operativos

Capítulo 1 Introducción a la Computación

Microtutorial. Software Defined Networking

PROYECTO. Solución Empresarial Ingeniería y Desarrollo de Software - info@solucionempresarial.com.

Firebird 2.5 SuperServer, ClassicServer o SuperClassic?

Es el corazón del ordenador. En el procesador se realizan todas y cada una de las tareas que los programas ordenan cumplir.

Introducción Componentes Básicos Concurrencia y Paralelismo Ejemplos Síntesis Lecturas Recomendadas. Arquitectura de Computadoras

Área Académica: Escuela Superior de Tlahuelilpan. Tema: Los Sistemas Operativos y sus Procesos

Tema 1. Conceptos fundamentales de los Sistemas Operativos

UNIVERSIDAD LUTERANA SALVADOREÑA FACULTAD DE CIENCIAS DEL HOMBRE Y LA NATURALEZA LICENCIATURA EN CIENCIAS DE LA COMPUTACIÓN

Programación Concurrente

DISCOS RAID. Se considera que todos los discos físicos tienen la misma capacidad, y de no ser así, en el que sea mayor se desperdicia la diferencia.

CAPÍTULO 3: Resultados

Servidores de aplicaciones. Sesión 1: Introducción a los servidores de aplicaciones. Instalación de BEA WebLogic

ACTIVIDADES TEMA 1. EL LENGUAJE DE LOS ORDENADORES. 4º E.S.O- SOLUCIONES.

Copia. Guarda. Recupera. Cuando quieras. Donde quieras.

SISTEMAS OPERATIVOS II

Detalle de equipamiento. Laboratorio de Ingeniería Informática

PVFS (Parallel Virtual File System)

ANEXO 2. Manual de instalación y configuración del entorno Mininet. Sergio Rodríguez Santamaría

Arquitectura de el Hp Superdome INTEGRANTES: Islas Islas Roberto A. Ortiz Flores Enrique A. Rico Vázquez Alejandro. Sistemas Operativos Avanzados

Componentes de un S.O.

INDICE. Prefacio Parte 1: sistemas operativos tradicionales

Análisis de un plan de continuidad de servicios clave mediante infraestructuras virtualizadas privadas

PROYECTO INTEGRADO CLUSTER DE ALTA DISPONIBILIDAD CON HAPROXY Y KEEPALIVED. Antonio Madrena Lucenilla 21 de Diciembre de 2012 I.E.S.

Aplicaciones Informáticas

CONFIGURACIONES DE ALTA DISPONIBILIDAD

II. HERRAMIENTAS DE VIRTUALIZACIÓN

Máster en Administración y Gestión de Sistemas Informáticos

ECCAIRS 5 Curso Técnico Arquitectura

Requisitos de Sistema Impresión Comercial y Editorial

Introducción a la Computación

4. Programación Paralela

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN PROFESOR: MSC. P. Norma Maya Pérez SISTEMAS OPERATIVOS

INGENIERÍA CIVIL I NFORMÁTICA II PROF. ING. CESAR TAMARIZ FIGUEROA

UNIVERSIDAD NACIONAL SAN ANTONIO ABAD DEL CUSCO CARRERA PROFESIONAL DE INGENIERIA ELECTRONICA LINUX AVID ROMAN GONZALEZ

Transcripción:

Tema 2: Sistemas Operativos Distribuidos Organización Sistemas Distribuidos Enrique Soriano LS, GSYC 24 de septiembre de 2014

(cc) 2014 Grupo de Sistemas y Comunicaciones. Algunos derechos reservados. Este trabajo se entrega bajo la licencia Creative Commons Reconocimiento - NoComercial - SinObraDerivada (by-nc-nd). Para obtener la licencia completa, véase http://creativecommons.org/licenses/by-sa/2.1/es. También puede solicitarse a Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA. Las imágenes de terceros conservan su propia licencia.

OS distribuido OS distribuido: Los servicios del sistema ofrecidos por el OS están distribuidos (sistema de ficheros, procesos, autenticación etc.). Un OS distribuido... Dónde?

Hardware

Imagen: (CC) Wikipedia Taxonomía de Flynn

Modelos de programación paralela Impĺıcita: el sistema (compilador, runtime y/o sistema operativo) se ocupan de paralelizar lo que se pueda. El programador se abstrae. Memoria compartida: distintos flujos de control concurrentes que acceden a una memoria común. El problema es la sincronización de los flujos de control en el acceso a la memoria. Paso de mensajes: se programa secuencialmente y los distintos componentes paralelos se comunican pasando mensajes entre ellos, pidiendose cosas. Problema: paso de estructuras de datos grandes. Si no hay memoria compartida, no se puede pasar un puntero.

Multiprocesador Una máquina con varios procesadores y memoria compartida. Los procesadores están fuertemente acoplados. Distintas formas de conectar los procesadores con la memoria: bus, switched.

UMA Uniform Memory Access. Todos los procesadores están conectados a la memoria con un bus y acceceden a la memoria de la misma forma (SMP). El bus es un cuello de botella.

NUMA Non-Uniform Memory Access. Cada procesador (o conjunto de procesadores) está conectado a una memoria mediante un bus, a la que accede muy rapido. También puede acceder a las otras memorias, pero es más lento. Los procesadores están conectados en una red (p. ej. AMD hypertransport, Intel Quick-Path Interconnect) ccnuma: Los distintos procesadores tienen caches de memoria y se garantiza la coherencia. nccnuma: Las caches no mantienen coherencia. No encaja bien en el modelo de memoria compartida y ya apenas se usa.

Número de switches: N 2 Conexión crossbar

Conexión de red omega Con N procesadores: Número de etapas: log 2 (N) Número de switches por etapa: N/2 Ejemplo de rutado: el procesador 100 quiere acceder a la memoria 010: Etapa1: en A1 elige la salida 0 B1 Etapa2: en B1 elige la salida 1 C2 Etapa3: en C2 elige la salida 0 memoria 010

Multiprocesador: Hardware actual P.Ej: Nuestro servidor, AMD64 K10 Multiprocesador con memoria compartida, fuertemente acoplado. Conexión de procesadores: switched Hypertransport (6400 MT/s) 1. ccnuma. Cache (ĺınea de cache de 64 bytes): L1 Datos (64 Kb), L1 Instrucciones (64 Kb), por core. L2 Datos+Instrucciones (512 Kb), por core. L3 (12 Mb), una para todos los cores. Protocolo de coherencia de caches: MOESI. Comunicación entre cores: IPIs. 1 Mega-transfers per sec.

Multicomputador Los procesadores son nodos conectados en red con una interfaz dedicada. Los procesadores están débilmente acoplados (depende de la red). Varias formas de interconectar los nodos: hypercube, torus, etc.

Topologías Hypercube: Torus:

Multiprocesador: Hardware actual P.Ej: IBM Blue Gene/Q Cada nodo tiene 16 CPUs 64-bit Power A2 con 16GB de RAM. Cada rack tiene 32 nodos. Total: 4096 nodos (65536 cores) Interconexión: torus de 5 dimensiones.

Estructura del SO

Estructura del SO Repaso: Kernel (núcleo): Modo privilegiado (puede ejecutar instrucciones como halt, trap, invalidar caches, invalida TLB, gestionar segmentos, etc.) Multiplexa la máquina (espacio y tiempo): CPU, memoria, disco, red,... Maneja el hardware: driver. Proporciona abstracciones (proceso, fichero, etc.). Área de usuario. Modo no privilegiado. Pide servicio al kernel llamada al sistema. Las aplicaciones y herramientas del SO (shell, compiladores, GUI, etc.).

Estructura del SO Application Programming Interface (API) Application Binary Interface (ABI) or System Calls APPLICATIONS Userspace (ring 3) LIBRARIES Userspace (ring 3) OPERATING SYSTEM Kernel (ring 0) Instruction Set Architecture (ISA) HARDWARE (CPU)

SO: Llamadas al sistemas Ejemplo: Plan 9 para AMD64. 1. Coloca los argumentos en la pila del proceso. 2. Carga el número de llamada al sistema en un registro. 3. Ejecuta la instrucción SYSCALL, que pasa a ring 0 y salta al punto de entrada de las llamadas al sistema en el kernel (apuntado por el registro Lstar, configurado en tiempo de arranque) que: 3.1 Cambia el SP para usar pila de kernel del proceso. 3.2 Guarda el contexto del proceso en área de usuario en la pila de kernel. 4. Copia los argumentos de la llamada al sistema a la estructura que representa al proceso. 5. Indexa la tabla de llamadas al sistema con el número de llamada al sistema, y llama a la función que la implementa.

Estructura del OS: Kernel

Estructura del OS: Tipos de kernel Kernel monoĺıtico: El kernel es un único programa. Pros: simplicidad, rendimiento. Contras: protección de los datos, puede haber falta de estructura (si se programa mal). Ejemplo: Linux, FreeBSD, Plan 9.

Estructura del OS: Tipos de kernel Microkernel: El kernel queda reducido a lo mínimo: abstracción del HW (HAL), tareas/hilos, IPC y manejo de memoria virtual. El resto (OS personality: gestión de procesos, red, FS...) se implementa en servidores independientes. Idea: poĺıticas en espacio de usuario, mecanismos en espacio de kernel. Pros: modularidad, tolera fallos en los servidores, distribución. Contras: bajo rendimiento, más complejo, más código. Ejemplo: Mach, L4.

Estructura del OS: Tipos de kernel Kernel Híbrido: Compromiso entre microkernel y monoĺıtico. Algunos incluyen ciertos componentes en espacio de kernel: device drivers, gestión de procesos, etc. Ejemplos: Minix, QNX. Otros simplemente sólo siguen un diseño de microkernel, pero todos los servidores están en espacio de kernel. Ejemplos: XNU (OSX), Windows NT.

Estructura del OS: Tipos de kernel Monolithic Kernel based Operating System Microkernel based Operating System "Hybrid kernel" based Operating System Application Application Application system kernel VFS, System call IPC, File System user mode Application IPC UNIX Server Device Driver File Server user mode File Server UNIX Server user mode mode Scheduler, Virtual Memory kernel mode kernel mode Application IPC Device Driver kernel mode Device Drivers, Dispatcher,... Basic IPC, Virtual Memory, Scheduling Basic IPC, Virtual Memory, Scheduling Hardware Hardware Hardware Imagen: Public Domain, Wikipedia

Estructura del OS: Tipos de kernel Exokernel: No provee abstracciones, sólo multiplexa la máquina. Library Operating Systems: las aplicaciones se enlazan con bibliotecas que implementan las abstracciones especializadas para la aplicación. Es investigación. Ejemplos: Cambridge Nemesis, MIT Exokernel.

Estructura del OS: Kernel modular KLM: carga de módulos dinámicos en el kernel. Ventaja: sólo se cargan los drivers necesarios ahorro de memoria. Desventaja: seguridad. Ejemplos: Linux (.ko), Mac OSX (.kext), FreeBSD (.kld), Windows (.sys).

Estructura del OS: Kernel modular Carga de un módulo: Se le piden al kernel las direcciones de los símbolos del kernel que usa el módulo del kernel. Se le pasan al kernel los símbolos del módulo, para que los incluya en su tabla de símbolos. Se pide al kernel que reserve memoria para cargar el módulo (ya no será memoria física contigua al kernel). Se pide al kernel que llame a la función init() del módulo para que se inicialize.

Máquinas Virtuales Tipos: Máquina virtual de proceso: tiene como objetivo proporcionar una plataforma para ejecutar un único proceso. Máquina virtual de sistema: el VMM (VM Monitor) proporciona un entorno completo y persistente para ejecutar un OS y sus procesos.

Máquinas Virtuales de Proceso APPLICATION Application Programming Interface (API) Application Binary Interface (ABI) or System Calls PROCESS VIRTUAL MACHINE Userspace (ring 3) LIBRARIES Userspace (ring 3) OPERATING SYSTEM Kernel (ring 0) Instruction Set Architecture (ISA) HARDWARE (CPU)

Máquinas Virtuales de Proceso Multiprogrammed systems: el propio OS! Emuladores (dynamic binary translators): ejecuta un programa cuya ISA es distinta a la de la máquina local. P. ej. OSX Rosetta. Optimizadores: traducen instrucciones de la misma ISA para mejorar la eficiencia. P. ej. Dynamo. HLL VM: ejecutan programas portables cuya ISA es virtual (bytecode). P. ej..net, Java.

Máquinas Virtuales de Sistema VM clásica (hypervisor type 1). Paravirtualización. Virtualización completa asistida por HW. VM alojada (hypervisor type 2).

Máquinas Virtuales de Sistema: paravirtualización El OS huésped está modificado para ejecutar sobre el VMM. El huésped realiza hypercalls para gestionar la tabla de páginas, planificar, poner timers, configurar el HW, etc. Application Programming Interface (API) Application Binary Interface (ABI) or System Calls APPLICATION Userspace (ring 3) LIBRARIES Userspace (ring 3) OPERATING SYSTEM Kernel (ring 1) APPLICATION Userspace (ring 3) LIBRARIES Userspace (ring 3) OPERATING SYSTEM Kernel (ring 1) hypercalls Instruction Set Architecture (ISA) VMM (HYPERVISOR TYPE 1) (ring 0) HARDWARE (CPU)

Máquinas Virtuales de Sistema: asistidas por HW Se basa instrucciones especiales de la CPU para virtualización. P. ej. Intel VT-x, AMD-V. Instrucciones VMX: activar el modo VMX root, lanzar una VM, pasar el control al VMM, retomar una VM, etc. Además de ring 0-3, hay un modo especial en el que ejecuta el VMM: VMX root. El OS huésped no necesita modificaciones. Application Programming Interface (API) Application Binary Interface (ABI) or System Calls APPLICATION Userspace (ring 3) LIBRARIES Userspace (ring 3) APPLICATION Userspace (ring 3) LIBRARIES Userspace (ring 3) OPERATING SYSTEM Kernel (ring 0, VMX non-root) OPERATING SYSTEM Kernel (ring 0, VMX non-root) Instruction Set Architecture (ISA) VMM (HYPERVISOR TYPE 1) (VMX root) HARDWARE (CPU)

Máquinas Virtuales de Sistema: alojada La VM se aloja sobre otro OS. El VMM puede instalar drivers en el OS anfitrión para mejorar el rendimiento. P. ej. VMWare, Virtual Box. Whole-system VM: la ISA de la VM no es la misma que la del HW y necesita emulación. P. ej. Virtual PC.

Máquinas Virtuales de Sistema: alojada Application Programming Interface (API) Application Binary Interface (ABI) or System Calls Instruction Set Architecture (ISA) Application Programming Interface (API) Application Binary Interface (ABI) or System Calls VMM Driver Kernelspace (ring 0) APPLICATION LIBRARIES OPERATING SYSTEM VMM (HYPERVISOR type 2) Userspace (ring 3) LIBRARIES Userspace (ring 3) OPERATING SYSTEM Kernel (ring 0) Instruction Set Architecture (ISA) HARDWARE (CPU)

Bibliografía Mark D. Hill, Norman P. Jouppi, and Gurindar S. Sohi. Chapter 9 Multiprocessors and Multicomputers, from Readings in Computer Architecture, Morgan Kaufmann, 2000 A. S. Tanenbaum. Operating Systems, design and implementaiton. Pearson Prentice Hill. A. S. Tanenbaum. Distributed Systems. Pearson Prentice Hill. A. S. Tanenbaum. Modern Operating Systems. Pearson Prentice Hill. A. Silberschatz. Operating Systems. Wiley. J. E. Smith and R. Nair. The Architecture of Virtual Machines. IEEE Computer 38, 5. 2005.