SD07 SopSisOper
description
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