sistemas distribuidos enrique sorianolsub.org/dis/t2.pdf · numa i non-uniform memory access. i...
TRANSCRIPT
Tema 2: Sistemas Operativos DistribuidosOrganizacion
Sistemas Distribuidos
Enrique Soriano
LS, GSYC
17 de septiembre de 2015
(cc) 2015 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, vease
http://creativecommons.org/licenses/by-sa/2.1/es. Tambien puede solicitarse a Creative Commons, 559 Nathan
Abbott Way, Stanford, California 94305, USA. Las imagenes de terceros conservan su propia licencia.
OS distribuido
I OS distribuido: Los servicios del sistema ofrecidos por el OSestan distribuidos (sistema de ficheros, procesos, autenticacionetc.).
I Un OS distribuido... ¿Donde?
Modelos de programacion paralela
I Implıcita: el sistema (compilador, runtime y/o sistemaoperativo) se ocupan de paralelizar lo que se pueda. Elprogramador se abstrae.
I Memoria compartida: distintos flujos de controlconcurrentes que acceden a una memoria comun. El problemaes la sincronizacion de los flujos de control en el acceso a lamemoria.
I Paso de mensajes: se programa secuencialmente y losdistintos componentes paralelos se comunican pasandomensajes entre ellos, pidiendose cosas. Problema: paso deestructuras de datos grandes. Si no hay memoriacompartida, no se puede pasar un puntero.
Multiprocesador
I Una maquina con varios procesadores y memoria compartida.
I Los procesadores estan fuertemente acoplados.
I Distintas formas de conectar los procesadores con la memoria:bus, switched.
UMA
I Uniform Memory Access.
I Todos los procesadores estan conectados a la memoria con unbus y acceceden a la memoria de la misma forma (SMP).
I El bus es un cuello de botella.
NUMA
I Non-Uniform Memory Access.
I Cada procesador (o conjunto de procesadores) esta conectadoa una memoria mediante un bus, a la que accede muy rapido.
I Tambien puede acceder a las otras memorias, pero es maslento.
I Los procesadores estan conectados en una red (p. ej. AMDhypertransport, Intel Quick-Path Interconnect)
I ccNUMA: Los distintos procesadores tienen caches dememoria y se garantiza la coherencia.
I nccNUMA: Las caches no mantienen coherencia. No encajabien en el modelo de memoria compartida y ya apenas se usa.
Conexion de red omega
I Con N procesadores:I Numero de etapas: log2(N)I Numero 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 → B1Etapa2: en B1 elige la salida 1 → C2Etapa3: en C2 elige la salida 0 → memoria 010
Multiprocesador: Hardware actual
P.Ej: uno de nuestras maquinas de testing (2012): AMD64 K10
I Multiprocesador con memoria compartida, fuertementeacoplado.
I Conexion de procesadores: switchedI Hypertransport (6400 MT/s)1.I ccNUMA.
I Cache (lınea de cache de 64 bytes):I L1 Datos (64 Kb), L1 Instrucciones (64 Kb), por core.I L2 Datos+Instrucciones (512 Kb), por core.I L3 (12 Mb), una para todos los cores.
I Protocolo de coherencia de caches: MOESI.
I Comunicacion entre cores: IPIs.
1Mega-transfers per sec.
Multicomputador
I Multicomputador != Multiprocesador
I Los procesadores son nodos conectados en red con unainterfaz dedicada.
I Los procesadores estan debilmente acoplados (depende de lared).
I Varias formas de interconectar los nodos: hypercube, torus,etc.
Multiprocesador: Hardware actual
P.Ej: IBM Blue Gene/Q
I Cada nodo tiene 16 CPUs 64-bit Power A2 con 16GB deRAM.
I Cada rack tiene 32 nodos.
I Total: 4096 nodos (65536 cores)
I Interconexion: torus de 5 dimensiones.
Estructura del SO
Repaso:
I Kernel (nucleo):I Modo privilegiado (puede ejecutar instrucciones como halt,
trap, invalidar caches, invalida TLB, gestionar segmentos, etc.)I Multiplexa la maquina (espacio y tiempo): CPU, memoria,
disco, red,...I Maneja el hardware: driver.I Proporciona abstracciones (proceso, fichero, etc.).
I Area de usuario.I Modo no privilegiado.I Pide servicio al kernel → llamada al sistema.I Las aplicaciones y herramientas del SO (shell, compiladores,
GUI, etc.).
Estructura del SO
APPLICATIONSUserspace (ring 3)
LIBRARIESUserspace (ring 3)
OPERATING SYSTEMKernel (ring 0)
HARDWARE (CPU)
Application Programming Interface (API)
System Calls
Instruction Set Architecture (ISA)
SO: Llamadas al sistemas
Ejemplo: Plan 9 para AMD64.
1. Coloca los argumentos en la pila del proceso.
2. Carga el numero de llamada al sistema en un registro.
3. Ejecuta la instruccion SYSCALL, que pasa a ring 0 y salta al punto de entrada delas llamadas al sistema en el kernel (apuntado por el registro Lstar, configuradoen tiempo de arranque) que:
3.1 Cambia el SP para usar pila de kernel del proceso.3.2 Guarda el contexto del proceso en area de usuario en la pila de kernel.
4. Copia los argumentos de la llamada al sistema a la estructura que representa alproceso.
5. Indexa la tabla de llamadas al sistema con el numero de llamada al sistema, yllama a la funcion que la implementa.
Estructura del OS: Tipos de kernel
Kernel monolıtico:
I El kernel es un unico programa.
I Pros: simplicidad, rendimiento.
I Contras: proteccion de los datos, puede haber falta deestructura (si se programa mal).
I Ejemplo: Linux, FreeBSD, Plan 9.
Estructura del OS: Tipos de kernel
Microkernel:
I El kernel queda reducido a lo mınimo: abstraccion del HW(HAL), tareas/hilos, IPC y manejo de memoria virtual.
I El resto (OS personality : gestion de procesos, red, FS...) seimplementa en servidores independientes.
I Idea: polıticas en espacio de usuario, mecanismos en espaciode kernel.
I Pros: modularidad, tolera fallos en los servidores, distribucion.
I Contras: bajo rendimiento, mas complejo, mas codigo.
I Ejemplo: Mach, L4.
Estructura del OS: Tipos de kernel
Kernel Hıbrido:
I Compromiso entre microkernel y monolıtico.
I Algunos incluyen ciertos componentes en espacio de kernel:device drivers, gestion de procesos, etc. Ejemplos: Minix,QNX.
I Otros simplemente solo siguen un diseno de microkernel, perotodos los servidores estan en espacio de kernel. Ejemplos:XNU (OSX), Windows NT.
Estructura del OS: Tipos de kernel
VFS, System call
IPC, File System
Scheduler, Virtual Memory
Device Drivers, Dispatcher, ... Basic IPC, Virtual Memory, Scheduling
UNIXServer
DeviceDriver
FileServer
ApplicationIPC
Application
Hardware Hardware
Monolithic Kernelbased Operating System
Microkernelbased Operating System
Basic IPC, Virtual Memory, Scheduling
UNIXServer
DeviceDriver
ApplicationIPC
Hardware
"Hybrid kernel"based Operating System
Operating system
SystemApplication Application
usermode
kernelmode
usermode
kernelmode
kernelmode
usermode
kernelmode
FileServer
Imagen: Public Domain, Wikipedia
Estructura del OS: Tipos de kernel
Exokernel:
I No provee abstracciones, solo multiplexa la maquina.
I Library Operating Systems: las aplicaciones se enlazan conbibliotecas que implementan las abstracciones especializadaspara la aplicacion.
I Ejemplos antiguos: Cambridge Nemesis, MIT Exokernel.
I Aproximacion actual: MirageOS/Unikernel, basado en Xen.
Estructura del OS: Kernel modular
I KLM: carga de modulos dinamicos en el kernel.
I Ventaja: solo se cargan los drivers necesarios → ahorro dememoria.
I Desventaja: seguridad.
I Ejemplos: Linux (.ko), Mac OSX (.kext), FreeBSD (.kld),Windows (.sys).
Estructura del OS: Kernel modular
Carga de un modulo:
I Se le piden al kernel las direcciones de los sımbolos del kernelque usa el modulo del kernel.
I Se le pasan al kernel los sımbolos del modulo, para que losincluya en su tabla de sımbolos.
I Se pide al kernel que reserve memoria para cargar el modulo(ya no sera memoria fısica contigua al kernel).
I Se pide al kernel que llame a la funcion init() del modulo paraque se inicialize.
Maquinas Virtuales
Tipos:
I Maquina virtual de proceso: tiene como objetivoproporcionar una plataforma para ejecutar un unico proceso.
I Maquina virtual de sistema: el VMM (VM Monitor)proporciona un entorno completo y persistente para ejecutarun OS y sus procesos.
Maquinas Virtuales de Proceso
PROCESS VIRTUAL MACHINEUserspace (ring 3)
LIBRARIESUserspace (ring 3)
OPERATING SYSTEMKernel (ring 0)
HARDWARE (CPU)
Application Programming Interface (API)
System Calls
Instruction Set Architecture (ISA)
APPLICATION
Maquinas Virtuales de Proceso
I Multiprogrammed systems: el propio OS!
I Emuladores (dynamic binary translators): ejecuta unprograma cuya ISA es distinta a la de la maquina local. P. ej.OSX Rosetta.
I Optimizadores: traducen instrucciones de la misma ISA paramejorar la eficiencia. P. ej. Dynamo.
I HLL VM: ejecutan programas portables cuya ISA es virtual(bytecode). P. ej. .NET, Java.
Maquinas Virtuales de Sistema
I VM clasica (hypervisor type 1).I Paravirtualizacion.I Virtualizacion completa asistida por HW.
I VM alojada (hypervisor type 2).
Maquinas Virtuales de Sistema: paravirtualizacion
I El OS huesped esta modificado para ejecutar sobre el VMM.
I El OS huesped realiza hypercalls para gestionar la tabla depaginas, planificar, poner timers, configurar el HW, etc.
I Ejemplos: Xen, KVM.
APPLICATIONUserspace (ring 3)
LIBRARIESUserspace (ring 3)
OPERATING SYSTEM
Kernel (ring 1)
HARDWARE (CPU)
Application Programming Interface (API)
System calls
VMM (HYPERVISOR TYPE 1)(ring 0)
APPLICATIONUserspace (ring 3)
LIBRARIESUserspace (ring 3)
OPERATING SYSTEM
Kernel (ring 1)
Instruction Set Architecture (ISA)
hypercalls
Maquinas Virtuales de Sistema: asistidas por HW
I Se basa instrucciones especiales de la CPU para virtualizacion. P. ej. Intel VT-x,AMD-V.
I Instrucciones VMX: activar el modo VMX root, lanzar una VM, pasar el controlal VMM, retomar una VM, etc.
I Ademas de ring 0-3, hay un modo especial en el que ejecuta el VMM: VMX root.
I El OS huesped no necesita modificaciones.
I Ejemplo: VMware vSphere.
APPLICATIONUserspace (ring 3)
LIBRARIESUserspace (ring 3)
OPERATING SYSTEMKernel (ring 0, VMX non-root)
HARDWARE (CPU)
Application Programming Interface (API)
VMM (HYPERVISOR TYPE 1)(VMX root)
APPLICATIONUserspace (ring 3)
LIBRARIESUserspace (ring 3)
OPERATING SYSTEMKernel (ring 0, VMX non-root)
Instruction Set Architecture (ISA)
System Calls
Maquinas Virtuales de Sistema: alojada
I La VM se aloja sobre otro OS.
I El VMM puede instalar drivers en el OS anfitrion para mejorarel rendimiento. P. ej. VMWare Fusion, Virtual Box.
I Whole-system VM: la ISA de la VM no es la misma que la delHW y necesita emulacion. P. ej. Virtual PC.
Maquinas Virtuales de Sistema: alojada
VMM (HYPERVISOR type 2) Userspace (ring 3)
LIBRARIESUserspace (ring 3)
OPERATING SYSTEMKernel (ring 0)
HARDWARE (CPU)
Application Programming Interface (API)
System Calls System Calls
Instruction Set Architecture (ISA)
APPLICATION
LIBRARIES
OPERATING SYSTEM
Application Programming Interface (API)
System Calls
VMM Driver Kernelspace (ring 0)
Instruction Set Architecture (ISA)
Virtualizacion a nivel de Sistema Operativo
I Una VM aisla distintas imagenes completas de distintossistemas operativos ejecutando. Si lo que queremos aislar esun servicio, pagamos cierto coste ejecutando un OS completopara el (tiempo en arrancar y parar la VM, rendimiento,etc.).
I Solucion: dentro del mismo sistema operativo (kernel) sepueden crear distintos entornos aislados, cada uno con suspropias abstracciones y recursos (espacio de procesos, sistemade ficheros raız, CPU, recursos de red, usuarios, etc.).
I El sistema operativo tiene que proporcionar mecanismos paraaislar procesos. P. ej: Linux Namespaces, Linux Cgroup, etc.
I Ejemplos: Docker, Linux Containers (LXC), OpenVZ,FreeBSD Jails, Solaris Zones etc.
Virtualizacion a nivel de Sistema Operativo: Contenedores
APPLICATIONUserspace (ring 3)
LIBRARIES BUserspace (ring 3)
HARDWARE (CPU)
Application Programming Interface (API)
System Calls
Instruction Set Architecture (ISA)
APPLICATIONUserspace (ring 3)
LIBRARIES AUserspace (ring 3)
OPERATING SYSTEMKernel (ring 0)
CONTAINER A CONTAINER B
RESOURCESA
RESOURCESB
Bibliografıa
I Mark D. Hill, Norman P. Jouppi, and Gurindar S. Sohi. Chapter 9 ”Multiprocessors andMulticomputers,”from Readings in Computer Architecture, Morgan Kaufmann, 2000
I A. S. Tanenbaum. Operating Systems, design and implementaiton. Pearson Prentice Hill.
I A. S. Tanenbaum. Distributed Systems. Pearson Prentice Hill.
I A. S. Tanenbaum. Modern Operating Systems. Pearson Prentice Hill.
I A. Silberschatz. Operating Systems. Wiley.
I J. E. Smith and R. Nair. The Architecture of Virtual Machines. IEEE Computer 38, 5. 2005.
I D. Berstein. Containers and Cloud: From LXC to Docker to Kubernetes. Cloud Computing, IEEE(Volume:1 , Issue: 3 ).
I A. Madhavapeddy and D. J. Scott. Unikernels: Rise of the Virtual Library Operating System. ACM Queue.Volume 11, issue 11.