SD07 SopSisOper

download SD07 SopSisOper

of 76

description

SIST OPERATIVO

Transcript of SD07 SopSisOper

  • Soporte del Sistema

    Operativo

    Jos Sulla Torres

  • Agenda

    Introduccin.

    El nivel de sistema operativo.

    Proteccin.

    Procesos e hilos.

    Comunicacin e invocacin.

    Arquitectura del sistema operativo.

    Resumen.

  • Introduccin

    Middleware permite la comunicacin remota entreobjetos o procesos en los nodos de un sistema

    distribuido.

    Por debajo del nivel de middleware se sita el nivel delSistema Operativo (S.O.).

    El S.O. puede resolver los requisitos del middleware(acceso eficiente a los recursos y flexibilidad para lagestin).

    La tarea de un S.O. es la de proporcionar abstracciones,por ejemplo: sockets en lugar de acceso directo a la red.

  • Introduccin

    Perspectiva histrica:

    Sistemas operativos en red: Existenmltiples imgenes del sistema, una en cadanodo. Los nodos mantienen la autonomapara la gestin de sus propios recursos.

  • Introduccin

    Sistemas operativos distribuido: Existeuna nica imagen del sistema. No debenpreocuparse del nodo en que lanzan susprogramas.

  • Middleware y sistemas operativos en red

    En realidad, no se emplean ampliamente

    ningn Sistema Operativo Distribuido, sino

    slo S.O. en Red, por las siguientes razones:

    1. Los usuarios ya han realizado grandes

    inversiones en su software de aplicaciones.

    2. Los usuarios prefieren tener autonoma en la

    gestin de sus propias mquinas.

  • El nivel de sistema Operativo

    El middleware se ejecuta en mltiplescombinaciones hardware/sistema operativo,es decir en mltiples plataformas en losnodos de un sistema distribuido.

    El middleware utiliza una combinacin deesos recursos locales para implementar losmecanismos de invocacin remota entreobjetos.

  • El Nivel de Sistema Operativo

    Aplicaciones, servicios

    Computador y

    Plataforma

    Middleware

    SO: ncleo,bibliotecas y servidores

    hardware de red

    SO1

    Computador y hardware de red

    Nodo 1 Nodo 2

    Procesos, hilos,comunicaciones, ...

    SO2Procesos, hilos,comunicaciones, ...

  • El nivel de sistema operativo

    Componentes de la arquitectura:

    Ncleos (kernel) y

    procesos.

    Los ncleos y el proceso servidor son loscomponentes que gestionan los recursos ylos presentan a los clientes a travs de unainterfaz de recursos.

  • El nivel de sistema Operativo

    La interfaz debe tener las siguientescaractersticas:1. Encapsulamiento: Los detalles del conjunto de

    operaciones ofrecidas deben ocultarse.

    2. Proteccin: Los recursos deben protegerse delos accesos no permitidos.

    3. Procesamiento concurrente: Los clientespueden compartir mltiples recursos y acceder aellos concurrentemente.

  • El nivel de sistema Operativo

    Una combinacin de bibliotecas, ncleos yservidores puede utilizarse para realizarlas siguientes tareas de invocacin:

    Comunicacin: Los parmetros y resultadosdeben pasarse desde y hacia los gestores derecursos.

    Planificacin: El procesamiento debeplanificarse dentro del ncleo.

  • Funcionalidad bsica del sistema operativo

    Gestor de

    comunicaciones

    Gestor del hilos Gestor de memoria

    Supervisor

    Gestor de procesos

  • El nivel de sistema Operativo

    Principales componentes de Sistema Operativo Gestor de proceso: gestiona la creacin y las

    diferentes operaciones sobre procesos.

    Gestor de hilos: incluye la creacin, sincronizacin yplanificacin de hilos.

    Gestor de comunicaciones: entre hilos asociados adiferentes procesos.

    Gestor de memoria: gestin de memoria fsica y virtual.

    Supervisor: resolucin de interrupciones y otrasexcepciones, control de la unidad de gestin dememoria y cach.

  • Proteccin

    Los recursos necesitan proteccin contra losaccesos no permitidos.

    Una solucin a los subproblemas deproteccin requerir tcnicascriptogrficas.

    Otra posibilidad es el uso de lenguajes deprogramacin con sistemas de tiposseguros.

    Tambin se utiliza soporte hardware(ncleo) para proteger los mdulos entre s,independientemente del lenguaje.

  • Ncleos y proteccin

    El ncleo es un programa cuya principalpropiedad es que su cdigo siempre seejecuta con privilegios completos deacceso a los recursos fsicos en elcomputador husped (supervisor).

    El ncleo tambin gestiona los espacios dedirecciones para protegerse a s mismo, y aotros procesos, de accesos desde unproceso anmalo.

  • Ncleos y proteccin

    Un espacios de direcciones es un conjuntode rangos de posiciones de memoria virtualcon derechos de acceso (lectura - escritura).

    Un proceso de usuario tiene un espacio dedirecciones de nivel usuario con derechosde acceso a memoria restringidos encomparacin con el espacio de direccionesdel ncleo.

  • Ncleos y proteccin

  • Procesos e hilos

    El concepto tradicional en los S.O. es que unproceso ejecuta una nica actividad.

    Esto es poco adecuado para lasespecificaciones de los sistemas distribuidos,que necesita concurrencia interna.

    El problema es que los procesos realizan lacomparticin de una forma difcil y cara.

  • Procesos e hilos

    La solucin es ampliar el concepto deproceso de forma que pudiera asociarse amltiples actividades.

    Un hilo es una abstraccin del S.O. asociadaa una actividad.

  • Procesos e hilos

    Un entorno de ejecucin equivale a una

    unidad de gestin de recursos que consiste:

    Un espacio de direcciones.

    Recursos de comunicacin y sincronizacin.

    Recursos de alto nivel como archivos.

  • Procesos e hilos

    Los entornos de ejecucin son caros en

    cuanto a su creacin y gestin, aunque sin

    embargo pueden ser compartidos por ms de

    un hilo.

  • Procesos e hilos

    Los hilos pueden crearse y destruirse deforma dinmica segn se necesite.

    El principal propsito para la existencia demltiples hilos de ejecucin es maximizar elgrado de ejecucin concurrente entre lasdiferentes operaciones.

    Reduce la tendencia de los servidores aconvertirse en cuellos de botella.

  • Espacio de direcciones

    Un espacio de direcciones es una unidad degestin de la memoria virtual de un proceso.

    Tamao: 232 - 264 bytes

    Formado por una o ms regiones, separadaspor reas de memoria virtual inaccesibles.

    Regin: zona de memoria virtual contiguaaccesible por los hilos del proceso propietario.

    Caractersticas de la regin: tamao,

    permisos de lectura/escritura/ejecucin,

    indicacin de crecimiento.

  • Espaciado de direcciones

    Pila

    Texto

    Montn

    Regiones

    auxiliares

    0

    2N

    Cdigo

    Inicializacin

  • Espacio de direcciones

    Una regin de memoria compartida es unaregin adicional para satisfacer la necesidadde compartir memoria entre procesos.

    Algunos usos de esta regin es: Bibliotecas: Varios procesos pueden compartir

    una sola copia del cdigo.

    Ncleo: El cdigo y los datos del ncleo secorresponden dentro del espacio dedirecciones. No hay necesidad de conmutar.

    Comparticin de datos y comunicacin: Esms eficiente utilizar regiones de direccionescompartidas que intercambiar datos mediantemensajes.

  • Creacin de un proceso nuevo

    Para un sistema distribuido el diseo delmecanismo de creacin de un proceso debetener en cuenta la utilizacin de mltiplescomputadores.

    La creacin de un proceso nuevo puedeseparase en dos aspectos independientes:

    La eleccin del computador destino (delcluster).

    La creacin de un entorno de ejecucin (y lade un hilo inicial en l).

  • Eleccin del nodo de proceso

    Es una cuestin de poltica. Se distinguen lassiguientes:

    Poltica de ubicacin: decide si un procesonuevo debe ubicarse en el nodo local o en unremoto, esto depender si el nodo est pocoo muy cargado.

    Poltica de transferencia: determina qu nodoalojar un proceso nuevo seleccionado paratransferirse.

    Poltica de localizacin: pueden ser estticas(no considera el estado) o adaptativas.

  • Clusteres

    Un grupo clster no es ms que un conjunto

    de computadoras conectados mediante una

    red de comunicaciones.

  • Eleccin del nodo de proceso

    Los sistemas de comparticin de carga en uncluster pueden ser:

    Centralizados: existe un gestor de cargasobre los nodos.

    Jerrquicos: existe varios gestores de cargaorganizados en una estructura arborecente.

    Descentralizados: los nodos intercambianinformacin entre ellos directamente.

  • Eleccin del nodo de proceso

    Los algoritmos de comparticin pueden ser:

    Iniciados por el emisor: enva a los dems

    Iniciados por el receptor: avisa que notiene carga.

  • Creacin de un nuevo entorno de ejecucin

    Existen 2 aproximaciones en la definicin einiciacin del espacio de direcciones de unproceso recientemente creado:

    1. Utiliza un formato definido estticamente.

    2. Puede definirse respecto a un entorno deejecucin existente. El proceso hijocomparte una regin del padre.

  • Creacin de un nuevo entorno de ejecucin

    Una optimizacin llamada copia en escriturase da cuando una regin heredada se copiadesde el padre.

    La regin es copiada pero por defecto no serealiza una copia fsica.

    Los marcos de pgina que componen laregin heredada se comparten entre los dosespacios de direcciones.

    Una pgina de la regin es copiadafsicamente nicamente cuando uno de losdos procesos intente modificarla.

  • Copia en escritura

    a) Antes de escribir b) Despus de escribir

    Marco

    compartidoTabla de pg

    de A

    Tabla de pg

    de B

    Espaciado de direcciones del proceso A Espaciado de direcciones del proceso B

    Ncleo

    RA RB

    RB copiado

    desde RA

  • Hilos

    El servidor tiene un conjunto almacenado por

    uno o ms hilos cada uno de los cuales, y

    de forma repetitiva, toma una solicitud de la

    cola de solicitudes recibidas y la procesa.

    No interesa el instante en el que se

    recibe las solicitudes y se almacenan para

    ser procesadas por los hilos.

  • Clientes y servidores con hilos

    Servidor

    N hilos

    Entrada-salida

    Cliente

    El hilo 2 realiza

    T1

    El hilo 1

    solicitudes del servidor

    genera los

    resultados

    Solicitudes

    Receipt &queuing

  • Hilos

    Supongamos que cada solicitud necesita, portrmino medio, 2 mseg. de procesamiento y 8mseg. de entrada-salida.

    La productividad mxima del servidor:

    Si existe un nico hilo debe realizar todo elprocesamiento, entonces cualquier solicitudes de 2 + 8 = 10 mseg. Entonces el servidorpodr atender a 100 clientes x seg.

    Si existe 2 hilos y estos se bloquean sobreuna nica unidad de disco, entonces resultade 1000/8 = 125 solicitudes x seg.

  • Hilos

    Si ahora existe un cach de bloques de disco,

    si se consigue una tasa de aciertos del 75%,

    el tiempo medio de entrada-salida por cada

    solicitud se reduce a (0.75x0 + 0.25x8)= 2

    mseg. y la productividad se incrementa a

    1000/2 = 500 solicitudes x seg.

    Considerando la gestin de la cach

    entonces y si el tiempo se incrementa a 2.5

    mseg. Entonces podr gestionar como

    mximo 1000/2.5 = 400 solicitudes x seg.

  • Arquitecturas para servidores multi-hilo

    Arquitectura de asociacin de trabajadores: Elservidor, durante su inicializacin, crea unconjunto fijo de hilos de trabajadores paraprocesar las solicitudes.

    Arquitectura de hilo por solicitud: Genera unhilo por cada solicitud

    Arquitectura de hilo por conexin: Asocia unhilo a cada conexin

    Arquitectura de hilo por objeto: Asocia un hiloa cada objeto remoto.

  • Arquitecturas para servidores multi-

    hilo

    a. Hilos-por-solicitud b. Hilo-por-conexin c. Hilo-por-objeto

    Objetos

    Trabajadores

    E/S ObjetosObjetos E/S

    Hilo por-conexin Hilo por-solicitud

    remotos remotosremotos

  • Hilos dentro de los clientes

    Tambin se puede incorporar hilos a los

    clientes.

    Por ejemplo: Navegadores web. El usuario

    sufre retardos significativos mientras se

    cargan las pginas; es por lo tanto esencial

    para los navegadores la gestin de mltiples

    solicitudes concurrentes a pginas web.

  • Hilos frente a mltiples procesos

    Se prefiere el modelo de proceso multi-hilo

    debido a que la creacin y gestin de los hilos

    es mas barata que la de los procesos y la

    comparticin de recursos se puede conseguir

    de forma mas eficiente entre hilos que entre

    procesos ya que los hilos comparten los

    entornos de ejecucin.

  • Hilos frente a mltiples procesos

    Un entorno de ejecucin tiene:

    Espacio de direcciones,

    Interfaces de comunicacin y sincronizacin.

    Recursos de alto nivel

    Un hilo tiene:

    Prioridad de planificacin,

    Estado de ejecucin (BLOQUEADO o

    PREPARADO).

    Almacenamiento de registros.

    Gestin de interrupciones del hilo.

  • Hilos frente a mltiples procesos

    Comparacin entre procesos e hilos

    1. La creacin de un nuevo hilo dentro de unproceso existente es mas barata que lacreacin de un proceso.

    2. La conmutacin a un hilo diferente dentro delmismo proceso es mas barata que entre hilosque pertenecen a diferentes procesos.

    3. Los hilos dentro de un proceso puedencompartir datos y otros recursos.

    4. Los hilos dentro de un proceso no estnprotegidos entre ellos.

  • Programacin de hilos

    Equivale a la programacin concurrente:

    condiciones de carrera, secciones crticas,

    monitores, variables de condicin, semforos.

    La mayor parte de la programacin de hilos

    se realiza en lenguajes de programacin

    como C aumentados con bibliotecas de hilos.

    La clase de Java Thread incluye el

    constructor y los mtodos de gestin, as

    como los mtodos de sincronizacin.

  • Mtodos constructor y de gestin de hilos Java

    Thread(ThreadGroup group, Runnable target, String name)

    Crea un nuevo hilo en estado SUSPENDIDO, perteneciente a grupo eidentificado con nombre; el hilo ejecutar el mtodo run() de destino.

    setPriority(int newPriority), getPriority()

    Cambia y devuelve la prioridad del hilo.

    run()

    Un hilo ejecuta el mtodo run() de su objeto destino.

    start()

    Cambia el estado de un hilo desde SUSPENDIDO a PREPARADO.

    sleep(int millisecs)

    Provoca que el hilo pase al estado SUSPENDIDO durante el tiempo quese especifica.

    yield()

    Pasa al estado READY e invoca al planificador.

    destroy()

    Elimina el hilo.

  • Mtodos constructor y de gestin de hilos Java

    thread.join(int millisecs)

    Bloquea el hilo invocador durante el tiempo especificado hastaque el hilo haya terminado.

    thread.interrupt()

    Interrrumpe el hilo: le obliga a volver desde una llamada amtodo bloqueante como sleep().

    object.wait(long millisecs, int nanosecs)

    Bloquea el hilo invocador hasta que una llamada realizada aaotify() o notifyAll() en el objeto despierte el hilo, o bien el hilo seainterrumpido, o bien el tiempo especificado se haya cumplido.

    object.notify(), object.notifyAll()

    Despierta, respectivamente, uno o todos los hilos que haninvocado a wait() en el objeto.

  • Tiempos de vida de los hilos

    Cada nuevo hilo se crea en la misma

    mquina vritual Java que su creador y en

    estado SUSPENDIDO.

    Una vez que ha pasado a estado

    PREPARADO con el mtodo start(), ejecuta

    el mtodo run() de un objeto designado en su

    constructor.

    Un hilo finaliza su vida cuando vuelve del

    mtodo run(), o bien cuando se invoca el

    mtodo destroy().

  • Sincronizacin de hilos

    La principal dificultad estriba en la

    comparticin de objetos y en las tcnicas

    utilizadas para la coordinacin y cooperacin

    de los hilos.

    20

    n

    Leer el valor de nAadir 1Escribir el valorde regreso a n

    Leer el valor de nAadir 1Escribir el valorde regreso a n

    Proceso A

    n=n+1

    Proceso B

    n=n+1

    20 20

    21 21

  • Sincronizacin de hilos

    Java proporciona la palabra clave

    synchronized para designar un monitor que

    es un recurso de sincronizacin de hilos.

    La garanta de un monitor viene del hecho de

    que como mximo un hilo puede ejecutarse

    dentro del monitor.

    Un hilo se bloquea con wait().

    Un hilo se desbloquea con notify().

    Un hilo se bloquea hasta que termine con

    join().

  • Planificacin de hilos

    Planificacin apropiativa: Un hilo puede

    suspenderse en cualquier punto para dejar

    paso a otro hilo, incluso aunque el hilo

    pudiera seguir en ejecucin.

    Planificacin no apropiativa: Un hilo se

    ejecuta hasta que l mismo realiza una

    invocacin al sistema de gestin de hilos,

    siendo en ese momento cuando el sistema

    puede desalojarle para planificar otro hilo.

  • Implementacin de hilos

    Muchos ncleos dan soporte para procesosmultihilo de forma nativa.

    Problemas cuando un ncleo no tiene soportepara procesos multihilo:

    Los hilos de un cierto proceso no puedenaprovecharse de un multiprocesador.

    Un hilo que genera una falta bloquea elproceso y todos los hilos dentro de l.

    Los hilos de diferentes procesos no puedenplanificarse de acuerdo a un nico criterio deprioridad relativa.

  • Implementacin de los hilos

    ProcesoA

    ProcesoB

    Procesadores virtuales Ncleo

    Proceso

    Ncleo

    P ocioso

    P solicitado

    P aadido

    SA bloqueado

    SA desbloqueado

    SA desalojado

    A. Asignacin de procesadores

    virtuales a procesos

    B. Eventos entre planificador de usuario y ncleo

    Key: P = procesador; SA = activacin del planific

  • Comunicacin e invocacin

    Cuestiones acerca de los sistemas operativos:

    Qu primitivas de comunicacin debeproporcionar?

    Qu protocolos debe soportar y cmo deabierta es la implementacin de lacomunicacin?

    Qu pasos han sido dados para hacer que lacomunicacin sea todo lo eficiente posible?

    Qu soporte se proporciona para lasoperaciones de latencia elevada y para lasdesconectadas?.

  • Primitivas

    Algunos ncleos diseados para sistemasdistribuidos han proporcionado primitivas decomunicacin.

    Amoeba proporciona las operacioneshazOperacin, tomarPeticin yenviaRespuesta como primitivas, que son masventajosos sobre el middleware que loproporciona RMI sobre sockets, donde uncliente debe realizar 2 llamadas (write y read)para cada invocacin remota. Sobre Amoebasolamente se necesitara una nica llamada.

  • Protocolos y apertura

    Los protocolos es uno de los requisitosprincipales de los sistemas operativos quepermitan la intercomunicacin entreimplementaciones middleware.

    Los protocolos se organizan en una pila deniveles. Muchos S.O. permiten la integracinesttica de nuevos niveles mediante la inclusinde un manejador (driver).

    Por el contrario la composicin dinmica deprotocolos es una tcnica en la que puedecomponerse para ajustarse a los requisitos deuna aplicacin particular.

  • Prestaciones de la invocacin

    Son un factor crtico ya que los clientes y

    servidores pueden realizar muchos millones

    de operaciones asociadas a invocaciones a

    los largo de su vida, de forma que pequeas

    fracciones de milisegundo son relevantes en

    los costes de invocacin.

    Las tecnologas de red continan mejorando

    pero los tiempo de invocacin no han

    decrecido en proporcin con el incremento del

    ancho de banda.

  • Costes de invocacin

    Ejemplos de invocacin: Llamada a un

    procedimiento, llamada al sistema, el envo de

    un mensaje, invocacin a un mtodo remoto.

    Cada mecanismo provoca que se ejecute

    cdigo fuera del mbito del procedimiento u

    objeto que invoca.

    Cada invocacin supone una transicin de

    dominio (cambio de un espacio de

    direcciones), planificacin y conmutacin de

    hilos.

  • Invocaciones entre espacios de direcciones

    Transferencia de control mediante

    una instruccin trap

    Usuario Ncleo

    Hilo

    User 1 User 2

    Transferencia de control mediante

    instrucciones privilegiadas

    Hilo 1 Hilo 2

    Frontera de dominio

    de proteccin

    (a) Llamada el sistema

    (b) RPC/RMI (dentro de un computador)

    Ncleo

    (c) RPC/RMI (entre computadores)

    User 1 User 2

    Hilo 1 Red Hilo 2

    Ncleo 2Ncleo 1

  • Invocacin utilizando la red

    Un RPC nulo (igual que un RMI nulo) es un

    RPC sin parmetros que ejecutan un

    procedimiento nulo y no devuelve valores.

    Los costes de invocaciones nulas tiene mucha

    importancia ya que miden una sobrecarga fija,

    la latencia.

    Los costes de invocacin se incrementan con

    los tamaos de los argumentos y resultados,

    pero en muchos casos la latencia es

    significativa en comparacin con el resto de

    retardo.

  • Invocacin utilizando la red

    Otro valor de inters es el ancho de banda(productividad), que es la tasa de transferencia dedatos entre computadores en un nico RPC.

    Componentes en el retardo de invocacin remota: Empaquetamiento: preparacin de los datos.

    Copia de datos: entre el usuario y ncleo, encada nivel de protocolo, en los bferes.

    Inicializacin de paquetes: inicializacin decabeceras y finalizacin, as como los checksum.

    Planificacin de hilos y conmutacin decontexto: llamadas al sistema y uso de mas de unhilo.

    Espera por reconocimiento: eleccin delprotocolo.

  • Comparticin de memoria

    Las regiones compartidas pueden utilizarsepara una comunicacin rpida entre unproceso de usuario y el ncleo, o bien entreprocesos de usuario.

    Los datos se comunican mediante la escrituray la lectura en la regin compartida,

    Se pueden necesitar llamadas al sistema einterrupciones para la sincronizacin.

    Una regin compartida slo se justificacuando se utiliza suficientemente, de formaque amortiza el coste de inicializacin.

  • Invocacin dentro de un computador

    La mayor parte de las invocaciones entre

    espacios de direcciones distintos se realizan

    dentro de un computador, y no como es de

    esperar en una instalacin cliente-servidor,

    entre diferentes computadores.

    As, se desarroll un mecanismo de

    invocacin ms eficiente, llamado RPC de

    peso ligero (LRPC, light weight RPC), para el

    caso de dos procesos en la misma mquina.

  • Invocacin dentro de un computador

    El diseo de LRPC se basa en: optimizaciones de la copia de datos y la planificacin de los hilos.

    Optimizaciones de la copia de datos:Debera ser mas eficiente la utilizacin deregiones de memoria compartida para lacomunicacin cliente-servidor, con una regin(privada) diferente entre el servidor y cadauno de los clientes.

    Esta regin contiene una o ms pilas pordonde se pasan argumentos y devuelvenvalores directamente. En RPC lo tendran quehacer a travs del ncleo.

  • Una invocacin a procedimiento remoto de peso ligero

    1. Copia argum

    2. Invoca al ncleo (trap)

    4. Ejecuta el procedimiento

    y copia los resultados

    Cliente

    Usuario Resguardo

    Servidor

    Ncleo

    Resguardo

    3. Retrollamada 5. Retorno (trap)

    APila A

  • Operacin concurrente y asncrona

    Una tcnica para vencer las latencias muy

    elevadas es la operacin asncrona, la cual

    aparece en dos modelos de programacin:

    invocaciones concurrentes e

    invocaciones asncronas.

    Estos modelos aparecen sobre todo en el

    dominio del middleware en lugar del diseo

    del ncleo del sistema operativo.

  • Realizando invocaciones concurrentemente

    El middleware proporciona invocaciones

    bloqueantes, es la aplicacin que crea

    mltiples hilos para realizar estas

    invocaciones bloqueantes de forma

    concurrente.

    Ejemplo: Una pgina web normalmente

    contiene varias imgenes. El navegador no

    necesita obtener las imgenes en una

    secuencia en particular, de forma que realiza

    solicitudes concurrentes.

  • Realizando invocaciones concurrentemente

    Las invocaciones entre un cliente y servidor:

    Caso serializado, el cliente empaqueta losargumentos, invoca la operacin Enva yespera hasta que la respuesta del servidorllegue; cuando eso ocurra ejecuta Recibe,desempaqueta y finalmente procesa losresultados.

    Caso concurrente, el primer hilo empaquetalos argumentos y llama a la operacin Envo. Elsegundo hilo inmediatamente realiza lasegunda invocacin. Cada hilo espera larecepcin de sus resultados.

  • Temporizacin para invocaciones serializadas y concurrentes

    Cliente Servidor

    execute request

    Send

    Receiveunmarshal

    marshal

    Receiveunmarshal

    process results

    marshalSend

    process args

    marshalSend

    process args

    Transmisin

    Receiveunmarshal

    process results

    execute request

    Send

    Receiveunmarshal

    marshal

    marshalSend

    process args

    marshalSend

    process args

    execute request

    Send

    Receiveunmarshal

    marshal

    execute request

    Send

    Receiveunmarshal

    marshalReceive

    unmarshalprocess results

    Receiveunmarshal

    process results

    Tiempo

    Cliente Servidor

    Invocaciones serializadas Invocaciones concurrentes

  • Invocaciones asncronas

    Es aquella que se realiza de forma asncronarespecto al invocador, es decir, se realiza conuna llamada no bloqueante, la cual retorna tanpronto como el mensaje de solicitud deinvocacin ha sido creado y esta preparadopara ser enviado.

    Algunas veces el cliente no necesitarespuesta. Por ejemplo, las invocaciones deuna direccin (ping) tiene semntica pudiera.En caso contrario el cliente utiliza una llamadaseparada para obtener los resultados.

  • Invocaciones asncronas persistentes

    Es un modelo de invocacin msdesarrollado, en la semntica de fallos.

    El modelo intenta realizar la invocacinindefinidamente, hasta que puede determinarque ha tenido xito o ha fracasado, o hastaque la aplicacin cancela la invocacin.

    Ejemplo: QRPC (RPC en colas), inserta encolas, realizando un registro estable, lassolicitudes de invocaciones salientes mientrasno exista conexin a red y planifica lasoperaciones que son enviadas a losservidores a travs de la red cuando existeconexin.

  • Arquitectura del Sistema Operativo

    Un sistema distribuido abierto debera

    posibilitar lo siguiente:

    Ejecutar en cada computador nicamente el

    software de sistema que sea necesario.

    Permitir al software implementar la posibilidad de

    que cualquier servicio particular sea cambiado

    independientemente de otros recursos.

    Permitir que se puedan proporcionar diferentes

    alternativas para el mismo servicio.

    Introducir nuevos servicios sin daar la integridad

    de los ya existentes.

  • Arquitectura del Sistema Operativo

    El ncleo debera proporcionar nicamente losmecanismos bsicos sobre los que seimplementan en un cierto nodo las tareas degestin de recursos generales.

    Los mdulos del servidor deberan cargarsede forma dinmica bajo solicitud, paraimplementar las polticas de gestin derecursos que solicitan las aplicacionesactualmente en ejecucin.

    Existen 2 diseos de ncleos: monoltica y

    microncleo.

  • Ncleos monolticos y microncleos

    Monoltico:

    masivo, realiza todas las funciones

    bsicas del S.O. necesitando para ello del

    orden de megabytes de cdigo y datos

    indistinguible, en su composicin. Est

    codificado de una forma no modular.

    intratable, en su resultado. Es difcil

    alterar cualquier componente software.

  • Ncleos monolticos y microncleos

    Microncleo:

    El ncleo proporciona nicamente las

    abstracciones ms bsicas, principalmente

    espacios de direcciones, hilos y

    comunicacin local entre procesos

    El resto de servicios del sistema vienen

    dados por servidores que se cargan

    dinmicamente, precisamente en aquellos

    computadores del sistema distribuido que

    los requieran.

  • Ncleo monoltico y microncleo

    Ncleo monoltico Microncleo

    Servidor: Programa servidor cargado dinmic:Cdigo y datos ncleo:

    .......

    .......

    Leyenda:

    S4

    S1 .......

    S1 S2 S3

    S2 S3 S4

  • Ncleo monoltico y microncleo

    El papel del microncleo

    Middleware

    Subsistema

    de soporte

    del lenguaje

    Subsistema

    de soporte

    del lenguaje

    Subsistema de

    emulacin SO ....

    Microncleo

    Hardware

    El microncleo soporta el middleware mediante subsistemas