You are on page 1of 28

UNIVERSIDAD POLITCNICA

SALESIANA
SISTEMAS DISTRIBUIDOS
Integrantes:
Andres Andrade
Jacqueline Maldonado
Paola Valverde
Jonnathan Zhunio

Contenidos
Procesos
Tipos de procesos
Hilos
Introduccin a los hilos
Uso de hilos en sistemas no distribuidos
Implementacin de hilos
Hilos en sistemas distribuidos
Clientes multihilos
servidores multihilos

Proceso

Un proceso es como un programa en ejecucin.


Consta de uno o ms hilos.
Son eventos o actividades que se realizan bajo ciertas circunstancias en un
momento y con un fin determinado.

Caractersticas de un Proceso

Posee un espacio de memoria.


Se crea un espacio en PCB.
Sigue una ruta de ejecucin.
Posee una prioridad de ejecucin.
Trabajan de forma independiente.

Tipos de procesos
Multiproceso Simtrico:

El proceso es repartido de forma balanceada a todos los procesadores.


Mayor eficiencia
Si un procesado falla, se reparte las tareas.

Multiproceso Asimtrico:

El procesador principal Maestro reparte el trabajo entre el resto de los CPUs


llamados Esclavos.
Es escalable, mayor integridad de los datos.
Si falla el maestro falla todo el sistema.

Hilos

Son mini procesos que se ejecutan estrictamente en forma secuencial.


Pueden ser ejecutados en forma paralela o concurrente.
Los hilos de un proceso comparten un espacio de direcciones.
Trabajan con variables mtex.
Comparten recursos de forma directa.

HILOS EN SISTEMAS NO DISTRIBUIDOS


Un proceso tradicional es el que posee un nico hilo de control, sin embargo este
concepto genera muchos inconvenientes a los cuales la solucin que se presenta
sera que mltiples hilos de control que puedan realizar varias tareas a la vez, esta
solucin es conocida como sistemas multihilos.
Ejemplo:
Un navegador de Internet .
Un procesador de palabras, los hilos separados se pueden utilizar para manipular
la entrada del usuario, la gramtica y la ortografa, la visualizacin del documento,
la generacin de ndices, etc.

HILOS EN SISTEMAS NO DISTRIBUIDOS


BENEFICIOS DE LOS SISTEMAS MULTIHILOS

Aprovecha el paralelismo cuando se ejecuta un programa dentro de un


sistema multiprocesador.

La tecnologa multiproceso para el paralelismo ha adquirido ms


importancia en las estaciones de trabajo, puesto que utiliza un mismo
espacio y ya no necesita la adquisicin de ms recursos.

Implementacin de hilos
Por lo general los hilos son proporcionados en la forma de un paquete de hilos
dicho paquete tiene operaciones de:

Crear hilos
Destruir hilos
sincronizacin de variables

mutex
variables de condicin

Mtodos para implementar un paquete de hilos

A nivel de usuario

Est compuesto de una biblioteca completa que se ejecuta en el modo de usuario

A nivel de kernel

El kernel est al tanto de los hilos y los puede calendarizar

Hilos a nivel de usuario


Este mtodo consiste en que toda la biblioteca de hilos se ejecuta en modo
usuario lo cual nos brinda algunas ventajas ya que crear y destruir hilos no
representa un gasto mayor de procesador debido a que todos los hilos se
encuentran en el espacio de direccionamiento del usuario dndonos como
resultado que el costo de creacin del hilo se determine primordialmente por la
ubicacin de memoria para establecer una pila de hilos de igual forma para la
eliminacin de hilos.

Adems un hilo a nivel de usuario puede cambiar de contexto simplemente con


unas cuantas instrucciones bsicamente el proceso sera el siguiente:
1.
2.

Almacenar los valores de los registros de CPU.


Recargarlo con valores previamente almacenados de los hilos al cual se hace
el intercambio.

No hay necesidad de modificar los mapas de memoria o de reinicio de TLB(buffer


lookaside) ni hacer un conteo de cpu.
Un cambio de contextos de hilos se realiza cuando dos hilos necesitan
sincronizacin por ejemplo para compartir datos.

Una desventaja que tiene este mtodo es que el momento en que el hilo invoca
una llamada de bloqueo de sistema esta bloqueara todo el proceso al cual
pertenece al hilo por lo tanto bloquear todo los hilos de dicho proceso.

Hilos a nivel de kernel


Este problema mencionado anteriormente se puede eliminar en su mayora con
hilos a nivel de kernel pero la implementacin de este tipo de hilos involucra un
alto costo en cuanto a la utilizacin de cpu ya que cada operacin de los hilos
debe llevarse a cabo por el kernel lo cual requiere una llamada al sistema
desapareciendo los beneficios del uso de hilos en lugar de uso de procesos.

Mtodo hbrido
Una solucin radica en una mezcla entre el mtodo de hilos a nivel de usuario e
hilos a nivel de kernel este mtodo es conocido como LWP( Processo de peso
ligero). Un proceso completo, puede contener distintos LWP, adems de LWP el
sistema ofrece paquetes de hilos a nivel de usuario lo cual permite a las
aplicaciones efectuar las operaciones necesarias para los hilos. La principal
caracterstica es que los paquetes de hilos radican en los usuarios por lo tanto
los hilos se procesan sin la intervencin del kernel.

La combinacin de hilos y de LWP funciona de la siguiente manera


1.
2.
3.
4.
5.

El paquete de hilos tiene una rutina simple para calendarizar el siguiente hilo.
Al crearse una LWP esta tiene la instruccin de ejecutar la rutina de
calendarizacin en busca de un hilo para ejecucin.
Si existen varios LWP cada uno invoca al planificador.
La tabla de hilos es compartida por las LWP.
Cuando un LWP encuentra un hilo ejecutable el LWP cambia de contexto a
este hilo.

Solamente cuando un hilo necesita llamar a una llamada de bloqueo del sistema
se involucra el kernel.

HILOS EN SISTEMAS DISTRIBUIDOS


Usando hilos, se puede permitir llamadas de bloqueo de sistema sin necesidad
de bloquear todo el proceso.
Esta propiedad vuelve a los hilos particularmente atractivos para su uso dentro de
sistemas distribuidos.
por ejemplo:
RPC para comunicarse con el disco.

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
contina recuperando otros archivos que conforman la pgina.

Clientes Multihilos
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.
Si el servidor est saturado o es lento no se observarn mejoras notables en el
rendimiento.

Clientes Multihilos
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.
Cuando entra una peticin para una pgina WEB es re-enviada a uno de los
servidores (usando roundrobin u otra tcnica de balanceo de carga).

Clientes Multihilos
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.

Servidores Multihilos
El principal uso de la tecnologa multihilos est del lado del servidor.
La tecnologa multihilos no solo simplifica el cdigo del servidor de forma
considerable, sino tambin hace sencillo el desarrollo de servidores (an en
servidores de un procesador) que explotan el paralelismo para lograr un alto
rendimiento.
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.

Servidores Multihilos
Alternativas:
Modelo Servidor/Trabajador:
Un hilo servidor lee las peticiones de entradas para una operacin con archivos.
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.

Servidores Multihilos

Servidor multihilos organizado en un modelo servidor/trabajador

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.

Servidores Multihilos
Servidor de archivos escrito durante la ausencia de hilos.(un solo hilo)
El servidor recibe 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.

Servidor Multihilos
Hilo servidor como una gran mquina de estado finito.
Cuando llega una peticin se examina. Si se puede satisfacer desde el cache bien.
Sino, 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.

Servidor Multihilos
En este esquema el servidor tendr que hacer uso de las llamadas sin bloqueo .
Este mtodo logra un alto rendimiento a travs del paralelismo.
La programacin del servidor es ms difcil.
Modelo

Caracterstica

hilos

Paralelismo, llamadas de bloqueo de sistema

Procesos de un solo
hilo

Sin paralelismo, llamadas de bloqueo de sistema

Mquina de estado
finito

Paralelismo, llamadas de bloqueo de sistema