4 Clase

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 17

INICIO

GRABACIÓN
INDICE

1 HILOS

2 VIRTUALIZACIÓN

3 CLIENTES Y SERVIDORES

4 MIGRACIÓN DE CÓDIGO
HILOS
CONCEPTOS
Para entender el rol de los hilos en los sistemas distribuidos, es importante comprender lo que es
un proceso y cómo se relacionan los procesos y los hilos. Para ejecutar un programa, un sistema
operativo crea cierto número virtual de procesadores, cada procesador ejecuta un programa
diferente.
Con el fin de seguir la pista de estos procesadores virtuales, el sistema operativo tiene una tabla de
procesos que contiene entradas para almacenar valores de los registros de la CPU.
Con frecuencia, un proceso está definido como un programa en ejecución, esto es, un programa
que es ejecutado por lo general en uno de los procesadores virtuales del sistema operativo.

hilos. Sin embargo, por contraste con los procesos, no se hace ningún intento por lograr un alto
grado de transparencia de concurrencia si esto resulta en una degradación del rendimiento. Por
tanto, un sistema de hilos mantiene generalmente sólo un mínimo de información para permitir
que la CPU sea compartida por varios hilos.

https://www.youtube.com/watch?v=n6IxKTS2zYs

Tanenbaum, A. S. (2008). Sistemas Distribuidos /


Principios y Paradigmas / 2da ed
Uso de hilos en sistemas no
distribuidos
Un proceso es una entidad que posee 2 características importantes:
●Recursos: Básicamente: un espacio de direcciones (programas, datos y pila y un PCB), archivos,
memoria, etc. El SOP realiza la función de protección para evitar interferencias no deseadas entre
procesos en relación con los recursos.
●Planificación/Ejecución: El proceso sigue una ruta de ejecución. Tiene un PC, un Estado de
ejecución (Listo, bloqueado, ejecutándose, etc.) y una prioridad.
● Estas dos características son independientes y pueden ser tratadas como tales por los sistemas
de operación.
●En algunos sistemas de operación se le denomina a la unidad activa hilo (thread) y a la unidad
propietaria de recursos se le suele denominar proceso o tarea.
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 ejecución.
●Un PC, un contexto (conjunto de registros) que se almacena cuando no está en ejecución.
●Una pila.
●Un espacio de almacenamiento para variables locales.
●Acceso a la memoria y recursos del proceso.

Tanenbaum, A. S. (2008). Sistemas Distribuidos /


Principios y Paradigmas / 2da ed
Métodos de distribución
de carga
El gestor de una arquitectura Cliente/Servidor se implementa en una capa intermedia o del lado
del cliente, y administra recursos en una cardinalidad n:n. En cambio un gestor tipo UNIX admistra
recursos bajo la jerarquía de root (aunque puede trabajar como cliente -servidor). Por su parte en
un gestor Orientado a Objetos cada recurso es visto como un objeto, unívocamente identificado, y
móvil, mediante la nomenclatura de clases.

En la actualidad el problema del balanceo de carga ha sido abordado desde diferentes enfoques,
con el propósito de disminuir al máximo el tiempo de ejecución de las aplicaciones ejecutadas.
Aunque la carga de trabajo en un S.O.D. está planificada de antemano, sigue siendo un problema
complejo, debido a la dificultad para lograr que las propuestas en las distribuciones de carga de
trabajo sean fácilmente escalables, o que puedan correrse sobre sistemas heterogéneos. En
general se recurre a la simplificación de trabajar con cluster's homogéneos (máquinas con software
o hardware semejantes) y no al contrario.
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.

En los S.O.C. cada proceso tiene un espacio de


memoria asignado y un flujo simple de control
de ejecución, pero en un S.O.D. se prefiere
tener múltiples flujos de control compartiendo
un espacio de direccionamiento de recursos,
corriendo en un esquema cuasi paralelo; por
ello es apropiado hacer una implementación
usando hilos y multihilos.

Tanenbaum, A. S. (2008). Sistemas Distribuidos /


Principios y Paradigmas / 2da ed
Hilos en sistemas distribuidos
Una propiedad importante de los hilos es que pueden proporcionar un medio conveniente para permitir
llamadas de bloqueo de sistema sin bloquear todo el proceso en que se ejecuta el hilo, tanto en los
Clientes Multihilos y en los Servidores multihilos, Sirven para esconder la latencia de comunicación a
través de la red.
Un ejemplo común en donde sucede esto es en los navegadores web. En muchos casos, un documento
web consta de un archivo HTML que contiene texto plano junto con una colección de imágenes, iconos,
etc. Para traer cada elemento de un documento web, el navegador tiene que configurar una conexión
TCP/IP, leer los datos de entrada, y pasarlos hacia el componente de visualización. Configurar la conexión,
así como leer los datos de entrada que son inherentes a las operaciones de bloqueo. Al tratar con el
transporte para la comunicación de grandes volúmenes, también tenemos la desventaja de que el tiempo
necesario para completar cada operación podría ser relativamente largo.

Tanenbaum, A. S. (2008). Sistemas Distribuidos / Principios y Paradigmas /


2da ed
La separación entre tener una sola CPU y
ser capaz de pretender que existen más
unidades de
VIRTUALIZACION procesamiento se puede extender también
a otros recursos, ello origina lo que
conocemos como virtualización
de recursos.
El rol de la virtualización en los sistemas distribuidos

En su esencia, la virtualización trata con la extensión o el reemplazo de una


interfaz existente de modo que imite el comportamiento de otro sistema.

Resulta crucial el hecho de que se puede


ofrecer esta interfaz de manera simultánea
a diferentes programas. Como resultado,
ahora es posible tener múltiples y
diferentes sistemas operativos que se
ejecutan de distinto modo y
concurrentemente sobre la misma
plataforma.

Tanenbaum, A. S. (2008). Sistemas Distribuidos / Principios y Paradigmas /


2da ed
CLIENTES
Cliente
Una tarea importante de las máquinas cliente es la de proporcionar los medios necesarios
para que los usuarios interactúen con servidores remotos.
Primero, para cada servicio remoto, la máquina cliente tendrá una contraparte por
separado que puede contactar el servicio sobre una red.
Una segunda solución es proporcionar acceso directo a servicios remotos solamente con la
oferta de una interfaz de usuario adecuada

Tanenbaum, A. S. (2008). Sistemas Distribuidos / Principios y Paradigmas /


2da ed
Servidor
Un servidor es un proceso que implementa un servicio específico en representación de un
conjunto de clientes.

https://www.youtube.com/watch?v=xjJVqfzR-fg

Tanenbaum, A. S. (2008). Sistemas Distribuidos / Principios y Paradigmas /


2da ed
Servidores de clusteres
Visto de manera simple, un servidor de cluster no es otra cosa que una colección de
máquinas conectadas a través de una red, donde cada máquina ejecuta uno o más
servidores. Los servidores de clústeres que consideramos aquí son aquellos en los cuales
las máquinas están conectadas mediante una red de área local, con frecuencia ofreciendo
un gran ancho de banda y latencia muy pequeña.

Tanenbaum, A. S. (2008). Sistemas Distribuidos / Principios y Paradigmas /


2da ed
Hasta aquí, nos hemos preocupado
primordialmente de los sistemas distribuidos en
MIGRACION DE los cuales la comunicación está limitada para el
paso de datos. Sin embargo, existen situaciones
CODIGO en las cuales el paso de programas, a veces
incluso mientras se ejecutan, simplifica el diseño
de un sistema distribuido.
Interceptores
De manera tradicional, la migración de código en sistemas distribuidos se realizó en la
forma de migración de procesos en los cuales todo un proceso se trasladaba de una
máquina a otra, una de las razones ha sido el rendimiento. La idea básica es que se puede
mejorar el rendimiento general del sistema si los procesos se trasladan desde una
máquina muy saturada hacia máquinas ligeramente saturadas.

Tanenbaum, A. S. (2008). Sistemas Distribuidos / Principios y Paradigmas /


2da ed
FIN DE
GRABACIÓN

También podría gustarte