Procesos en SD

58
Sistemas de Operación II Procesos en Sistemas Distribuidos Prof. Yudith Cardinale Abril-Julio 2012

description

hilos en los sistemas distribuidos

Transcript of Procesos en SD

  • Sistemas de Operacin II

    Procesos en Sistemas Distribuidos

    Prof. Yudith Cardinale

    Abril-Julio 2012

  • 2

    Contenido

    Hilos en Sistemas Distribuidos Clientes Servidores Anexo: Virtualizacin

  • 3

    Procesos e hilos

    Un proceso es una entidad que posee 2 caractersticas importantes: Recursos: Bsicamente: un espacio de direcciones

    (programas, datos y pila y un PCB), archivos, memoria, etc. El SOP realiza la funcin de proteccin para evitar interferencias no deseadas entre procesos en relacin con los recursos.

    Planificacin/Ejecucin: El proceso sigue una ruta de ejecucin. Tiene un PC, un Estado de ejecucin (Listo, bloqueado, ejecutndose, etc.) y una prioridad.

  • 4

    Procesos e hilos

    Estas dos caractersticas son independientes y pueden ser tratadas como tales por los sistemas de operacin.

    En algunos sistemas de operacin se le denomina a la unidad activa hilo (thread) y a la unidad propietaria de recursos se le suele denominar proceso o tarea.

  • 5

    Procesos e hilos En un entorno multihilo se le asocia a los procesos:

    Un espacio de direcciones virtuales que soporta la imagen del proceso.

    Acceso protegido a procesadores, otros procesos, archivos y recursos de E/S

    En un entorno multihilo se asocian a cada hilo: un estado de ejecucin. Un PC, un contexto (conjunto de registros) que se

    almacena cuando no est en ejecucin. Una pila. Un espacio de almacenamiento para variables locales. Acceso a la memoria y recursos del proceso.

  • 6

    Procesos e hilos Para que la comunicacin entre procesos sea

    posible es necesario usar las llamadas al sistema. Los threads comparten el mismo espacio de

    direcciones. Por lo tanto el cambio de contexto entre un thread y otro que pertenecen al mismo proceso pudiera hacerse de forma totalmente independiente del sistema de operacin.

    Los cambios de contexto de procesos son ms costosos. Implican salvar el contexto del proceso, cambio de modo (trap al sistema de operacin, etc), otro cambio de modo, restaurar contexto del nuevo proceso

  • 7

    Procesos e hilos

    Implementaciones de hilos: Threads a nivel de usuario.

    Threads a nivel de kernel

    Enfoque combinado, procesos Livianos

  • 8

    Hilos en Sistemas Distribuidos

    Usando hilos, se puede permitir el uso de llamadas al sistema bloqueantes sin necesidad de bloquear todo el proceso. Esta propiedad vuelve a los hilos particularmente atractivos para su uso dentro de sistemas distribuidos.

    Concentrmonos en la arquitectura Cliente-Servidor.

  • 9

    Clientes Multihilos

    Sirven para esconder la latencia de comunicacin a travs de la red.

    Ejemplo 1: Navegadores WEB En muchos casos una pgina WEB consiste de un

    texto plano con mltiples figuras. Con frecuencia el navegador, establece la conexin

    con el servidor, recupera y comienza a desplegar la pgina HTML (incluso se permite al usuario el desplazamiento dentro de la pgina) mientras el navegador continua recuperando otros archivos que conforman la pgina.

  • 10

    Clientes Multihilos

    Ejemplo 1: Navegadores WEB Desarrollar navegadores multihilos simplifica este

    hecho de forma considerable. Tan pronto como llega la pgina principal se pueden activar hilos que se encarguen de recuperar las dems partes. Cada hilo establece su propia conexin con el servidor.

    Mientras tanto el usuario advierte el retardo en las imgenes pero puede ir explorando el documento

  • 11

    Clientes Multihilos

    Si el servidor est saturado o es lento no se observarn mejoras notables en el rendimiento.

    Ejemplo 2: Servidores WEB Replicados En muchos casos los servidores se replican en

    distintas mquinas y cada servidor proporciona el mismo conjunto de documentos WEB. Estn localizados en el mismo sitio y se conocen por el mismo nombre.

  • 12

    Clientes Multihilos

    Ejemplo 2: Servidores WEB Replicados Cuando entra una peticin para una pgina WEB

    es re-enviada a uno de los servidores (usando round-robin u otra tcnica de balanceo de carga)

    Cuando se usan clientes multihilos cada conexin puede ir a una rplica diferente del mismo servidor. En este caso los distintos archivos se transmiten en paralelo asegurando que la pgina WEB completa se despliega en un tiempo ms corto

  • 13

    Servidores Multihilos

    El principal uso de la tecnologa multihilos est del lado del servidor.

    Bsicamente buscan mejorar el desempeo (an en servidores monoprocesador) y la forma cmo se estructura el servidor.

    Ejm: por lo general un servidor de archivos espera una peticin de entrada para una operacin de archivo, posteriormente ejecuta la peticin (operacin bloqueante al disco) y luego enva la respuesta de regreso.

  • 14

    Servidores Multihilos

    Alternativas: Modelo Servidor/Trabajador: Las peticiones son

    enviadas por los clientes hasta el servidor. Despus de examinar la peticin el hilo servidor elige un hilo trabajador sin utilizar y le encarga la peticin.

    Hilo servidor

    Peticin del cliente

    Hilos trabajadores

    peticiones

  • 15

    Servidores Multihilos El hilo trabajador realiza la lectura, lo cual puede provocar que se

    suspenda hasta que los datos sean recuperados. Si el hilo se suspende, el procesador, selecciona otro para su ejecucin.

    Cmo se programa un servidor de archivos en la ausencia de hilos? El servidor recibe a peticiones, las examina y las trata de resolver antes de recibir

    la siguiente peticin. Mientras espera por el disco el servidor est ocioso y no procesa otra peticin. Se procesan menos peticiones por segundo (throughput).

    Con los hilos se gana un rendimiento considerable. Cada hilo se programa secuencialmente en forma tradicional

  • 16

    Servidores Multihilos

    Supongamos que los hilos no estn disponibles, pero los diseadores del sistema consideran inaceptable el rendimiento debido al uso de un solo hilo y operaciones bloqueantes.

    Sol: uso de operaciones no bloqueantes (asncronas). Cuando llega una peticin se examina. Si se puede satisfacer desde el cache

    bien. Si no, se enva un mensaje al disco (no bloqueante). Se registra el estado de la peticin actual en una tabla y se va al siguiente mensaje. El siguiente mensaje puede ser una peticin para otro trabajo o una respuesta del disco relacionada con una operacin previa. En este ltimo caso se recupera la informacin relevante de la tabla y junto con los datos solicitados, se enva al cliente.

    En este caso la programacin del servidor es ms difcil y se necesita que el sistema de operacin provea llamadas asncronas.

  • 17

    Cliente/Servidor

    Cuando la plataforma es una red de computadoras, las aplicaciones se distribuyen sobre la red para sacar partido del paralelismo

    Un modelo bsico para estas plataformas es estructurar las aplicaciones en dos tipos de componentes: clientes y servidores.

    Los clientes hacen la parte de interaccin con usuario o solicitante de servicio, el servidor se ocupa de la parte de procesamiento (ms pesada)

  • 18

    Protocolo TCP/IP

    Conjunto (pila) de protocolos que permiten la interconexin de mquinas en red

    Basado en dos protocolos: IP (Internetworking Protocol). Provee una abstraccin de la

    ubicacin. Cada mquina es identificada por una direccin nica IP

    TCP (Transmission Control Protocol). Ofrece servicio de conexin proceso a proceso en mquinas diferentes, a travs de la nocin de puerto

    Una direccin es tpicamente un par (IP, puerto TCP)

  • 19

    Cliente/Servidor

    Cliente/Servidor con protocolos de interaccin ad-hoc

  • 20

    Cliente/Servidor

    Cliente/Servidor con protocolo de interaccin genrico

  • 21

    Clientes

    Pueden aportar o no algn nivel de procesamiento: Clientes especficos por cada servicio remoto pueden

    ocuparse de ciertas tareas (interpretacin de la solicitud), y acceder al servidor remoto para completarla

    Clientes livianos. Slo ofrecen la interfaz al usuario, todo el anlisis y procesamiento (incluso el manejo de ventanas) se hace remotamente

    Ocultan al usuario ubicacin de servidor, protocolos de interaccin, si la consulta implica acceder a varios servidores, etc.

  • 22

    Ej. Cliente oculta replicacin

  • 23

    Localizacin de servicio

  • 24

    Servidores

    Un servidor es un proceso que implementa un servicio, a travs de una direccin especfica en la red

    Tpicamente, el servidor se asigna a un puerto TCP en una mquina. El servicio se accede a travs de IP/Puerto. Ej.: puerto 80 (http), correo (25)

    El cliente accede directamente si conoce la direccin. En ciertos casos, se puede utilizar servicios de localizacin adicionales. Ej: DNS

  • 25

    Tipos de servidores

    Iterativos vs Concurrentes. Iterativos reciben, procesan y responden. Los concurrentes reciben la solicitud y la pasan a un hilo/proceso local que hace el procesamiento

    Con estado vs. Sin estado. Guarda informacin o no entre cada interaccin con el cliente. Sin estado requiere que el cliente mantenga la

    informacin necesaria. Ej: interaccin http Con estado. Ej: servidor de archivos.

  • 26

    Tipos de servidores

    Servidores sin estado (stateless)

    Cuando un cliente enva una solicitud a un servidor, ste la lleva a cabo, enva la respuesta y elimina de sus tablas internas toda la informacin relativa a dicha solicitud.

    No guarda informacin del cliente entre solicitudes. No mantiene un registro de las operaciones que van dejando los clientes

    Cada solicitud debe ser autocontenida.

  • 27

    Tipos de servidores

    Consecuencias: Servidores y clientes son completamente

    independientes. Se reducen los estados inconsistentes debido a

    cadas de clientes y/o servidores Posible prdida de performance, ej. Un servidor no

    se puede anticipar al comportamiento del cliente. El estado del servidor no crece con ms cliente

  • 28

    Tipos de servidores

    Servidores con estado Los servidores guardan informacin del estado de

    los clientes entre solicitudes: tabla que asocia los descriptores de archivos con los archivos propiamente dichos.

    Pueden saber qu datos estn en el cache del cliente (permiten al cliente mantener copias locales de datos compartidos).

  • 29

    Tipos de servidores

    Consecuencias: Mejor performance: las actualizaciones se hacen

    localmente, mensajes mas cortos. Si el servidor falla y se pierde la tabla que lleva las

    actualizaciones que realizan los clientes a cada archivo. No se puede garantizar que se han procesado las actualizaciones ms recientes.

  • 30

    Tipos de servidores

    Cules son las ventajas y desventajas relativas de cada esquema?

    Fallla servidor

    Falla cliente Desempeo

    Iterativo

    Concurrente

    Con estadoSin estado

  • 31

    Plataformas de servidores: cluster

    Coleccin de mquinas conectadas a travs de una red (LAN), donde cada mquina ejecuta uno o ms servidores de aplicacin. La red tiene un gran ancho de banda y la latencia muy pequea.

    Organizacin tpica: en tres capas. Variante: dos capas, donde cada servidor de

    aplicacin tiene su BD o almacenamiento.

  • 32

    Servidores en cluster de tres capas

  • 33

    Servidores en cluster de tres capas

    El primer nivel es un switch o interruptor lgico que enruta las peticiones del cliente hacia el componente del cluster adecuado.

    En el segundo nivel se encuentran los servidores dedicados a procesar aplicaciones. Contienen Hw para computacin de alto rendimiento.

    En el caso de servidores empresariales, pudiera ser que el poder de cmputo requerido no sea el cuello de botella, sino que requieran gran capacidad de almacenamiento: El tercer nivel consta de servidores de procesamiento de datos (sistemas de archivos), servidores de BD.

  • 34

    Servidores en cluster de tres capas

    No todos los clsteres siguen esta separacin, es frecuente que cada mquina tenga sus propias unidades de almacenamiento (arquitectura de dos niveles).

    Cuando el servidor de cluster ofrece mltiples servicios, pudiera ser que nodos diferentes dentro del cluster ejecuten servidores de aplicaciones distintos.

    En este caso el switch tiene que tener la capacidad de distinguir los servicios para enviar las peticiones a las mquinas apropiadas (slo basta observar el nmero de puerto dentro de la peticin)

  • 35

    Clusters: Distribucin de tareas

    La mayora de las implementaciones son servidores de dos niveles que ejecutan un nico servicio.

    Objetivo principal: balancear la carga. El conmutador enva los requerimientos a los nodos sin importar el

    tipo de servicio o el contenido solicitado. Todos los nodos se consideran con igual capacidad de servir

    cualquier solicitud (granja de servidores). Una estrategia sencilla puede ser round-robin.

    Otras estrategias: nodos heterogneos, aprovechar procesamientos anteriores (cache)

  • 36

    Clusters: Distribucin de tareas

    Hay otros enfoques: Locality-Aware Request Distribution: Se distribuyen las peticiones de acuerdo al contenido junto con informacin relacionada con la carga de cada nodo. La idea es enviar cada requerimiento al nodo que ya tiene los datos en su cache.

    Esta estrategia debe aumentar el rendimiento debido principalmente al aumento en la cantidad de hits en los caches.

    Tambin se incrementa la escalabilidad porque los datos se distribuyen entre los distintos nodos del cluster.

  • 37

    Servidores en Clusters: el switch

    Una meta importante en el diseo de clster de servidores es ocultar el hecho de que existen mltiples servidores.

    Esta transparencia de acceso se ofrece dado que se tiene un nico punto de acceso, el interruptor, que pudiera ser una mquina dedicada.

    Es el nico punto de entrada, por lo cual se ofrece una nica direccin de red.

  • 38

    Servidores en Clusters: el switch El swith acepta peticiones entrantes de una conexin TCP y re-

    direcciona las peticiones hacia uno de los nodos. Para cada peticin se re-enva el paquete con la misma, al nodo o servidor seleccionado.

    Esto es necesario para que el cliente pueda continuar con la ejecucin del protocolo TCP: est esperando una respuesta por parte del switch, no de algn servidor aleatorio con el cual nunca se ha comunicado.

  • 39

    Servidores Distribuidos

    Problema de un slo servidor o cluster: Si el servidor falla, el cliente no puede acceder al servicio

    (Recordar definicin de Sistema Distribuido: conjunto de computadoras independientes que se muestran como un sistema nico coherente.)

    Un servidor distribuido consiste en varios servidores que ofrecen el mismo servicio

    El hecho de que sean varios servidores es transparente al cliente, quien slo conoce una direccin y puerto

  • 40

    Tcnicas para servidores distribuidos

    El servicio DNS (Domain Name System) puede devolver varias direcciones IP para un mismo nombre (ej: google.com). El software de red toma una de ellas

    Se utiliza propiedades del encaminamiento para ocultar direccin final. Si uno de los servidores falla, las solicitudes del cliente son

    encaminadas hacia otro servidor. Protocolo IP versin 6 provee soporte para movilidad

    (roaming). Un agente se encarga de reenvo a la direccin original (HoA) desde la asignada (CoA)

  • 41

    Servidores distribuidos

  • 42

    Anexo: Virtualizacin

  • 43

    Virtualizacin

    Se origina en los 60 (p.e., IBM), cuando no haba multiprogramacin.

    El Hw ofreca una mquina virtual (entorno SO/Hw) a cada aplicacin, similar a la mquina original

    Los avances y abaratamiento del hardware, junto con la multiprogramacin (a partir de los 70) desplazaron las mquinas virtuales por Hw.

  • Virtualizacin

    (a) Organizacin general entre programa, interfaz y sistema (a) y en un sistema A virtual sobre un sistema B (b)

  • 45

    Virtualizacin

    El hw y sw de soporte (bajo nivel) cambian razonablemente rpido, las aplicaciones se hacen ms estables.

    El software heredado (legacy) no se puede actualizar al mismo paso que las plataformas sobre las que se apoya.

    La virtualizacin puede ayudar a desarrollar interfaces heredadas en nuevas plataformas.

  • 46

    Virtualizacin

    Desde los 90, Java hizo resurgir la virtualizacin, con la promesa de la portabilidad

    Los servidores deben manejar gran cantidad de aplicaciones diversas, cuya administracin y funcionamiento se beneficia por la virtualizacin

  • 47

    Aportes de la virtualizacin

    Reducir heterogeneidad, facilitando la portabilidad (p.e., Java)

    Al no tener las aplicaciones acceso directo al hw, pueden disminuir los problemas de seguridad

    Si falla una mquina virtual, las dems siguen funcionando (mejor disponibilidad)

  • 48

    Abstraccin

    Simplificar lo que est en niveles inferiores Ejemplos:

    SO abstrae a los programas del almacenamiento en disco (sectores, pistas, etc.) a travs de los archivos

    El conjunto de instrucciones de una arquitectura (p.e., IA-32) ofrece a los compiladores/aplicaciones la misma interfaz aunque cambie el procesador

    Interfaz bien definida limita aplicaciones a esas arquitecturas, poco flexible para un mundo en red!

  • 49

    Definicin de virtualizacin

    Virtualizar un componente es establecer una correspondencia (map) entre su interfaz y recursos sobre otro(s) componente(s) posiblemente diferente(s)

    El sistema real aparece como un sistema virtual diferente o mltiples sistemas virtuales

    El objetivo de la virtualizacin no es ocultar detalles (como en la abstraccin)

  • 50

    Interfaces/abstracciones ofrecidas por un SO

  • 51

    Tipos de mquina virtual

    Para un proceso usuario, la mquina es: espacio de direcciones asignado, sus instrucciones

    y los registros. La E/S slo es accesible a travs de la Interfaz

    binaria de aplicacin (IBA), la cual define la vista de los dispositivos reales

    Desde la perspectiva del SO, todo el sistema se ejecuta en la mquina que define el conjunto de instrucciones de esa mquina

  • 52

    Tipos de mquina virtual

    Mquinas virtuales de proceso (perspectiva de un proceso) Es una plataforma que ejecuta un proceso. Nace y

    muere con la creacin/terminacin de un proceso Mquinas virtuales de sistema. Ofrecen un

    ambiente persistente que soporta ejecucin de SO y de los procesos

  • 53

    Terminologa

    El proceso que se ejecuta sobre una mquina virtual es el invitado

    La plataforma sobre la que se ejecuta la mquina virtual es el anfitrin

    El software que implementa una mquina virtual de proceso es el soporte de tiempo de ejecucin (runtime)

    El sw de virtualizacin se denomina monitor de la mquina virtual (VMM). Ej: VMWare, XEN

  • 54

    Arquitecturas de Mquinas Virtuales

    Mquina virtual de procesos, con mltiples instancias de (aplicacin, soporte ejecucin)

  • 55

    Arquitecturas de Mquinas Virtuales

    Monitor de mquina virtual con mltiples instancias de (aplicaciones, SO)

  • 56

    Mquinas virtuales de proceso

    Sistemas multiprogramados. Visin de una mquina presentada a la aplicacin (proceso) por el conjunto de Instrucciones de la arquitectura

    Emuladores y traductores binarios dinmicos. Permiten ejecutar un cdigo que fue compilado para otra arquitectura

    MV de lenguajes de alto nivel. La MV se porta (implementa) a cada plataforma. Ej.: JVM

  • 57

    MV de sistemas

    Proporcionan ambiente completo que permite mltiples SO y procesos.

    Implementacin clsica: VMM encima del hw, el resto sobre l. Es el nico

    que se ejecuta con privilegios altos; toma el control cuando SO invitado manipula recursos crticos

    Provee visin uniforme del hw. p.e., un Sist. Distr. Podra verse como un conjunto de recursos que prestan servicios

  • 58

    Implementacin de MV de sistemas

    MV Alojadas. Sw de virtualizacin sobre el SO. Se instala como una aplicacin ms del SO. Confa en SO subyacente para servir acceso a dispositivos. Ej.: VMWare

    MV sistema completo. Se emula el hw (ISA) + SO. Ejemplo: un sistema Windows sobre MacOS

    Slide 1Slide 2Slide 3Slide 4Slide 5Slide 6Slide 7Slide 8Slide 9Slide 10Slide 11Slide 12Slide 13Slide 14Slide 15Slide 16Slide 17Slide 18Slide 19Slide 20Slide 21Slide 22Slide 23Slide 24Slide 25Slide 26Slide 27Slide 28Slide 29Slide 30Slide 31Slide 32Slide 33Slide 34Slide 35Slide 36Slide 37Slide 38Slide 39Slide 40Slide 41Slide 42Slide 43Slide 44Slide 45Slide 46Slide 47Slide 48Slide 49Slide 50Slide 51Slide 52Slide 53Slide 54Slide 55Slide 56Slide 57Slide 58