PDF de programación - Procesos en Sistemas Distribuidos

Imágen de pdf Procesos en Sistemas Distribuidos

Procesos en Sistemas Distribuidosgráfica de visualizaciones

Publicado el 15 de Mayo del 2019
205 visualizaciones desde el 15 de Mayo del 2019
568,8 KB
58 paginas
Creado hace 1a (13/05/2018)
Sistemas de Operación II

Procesos en Sistemas Distribuidos

Prof. Yudith Cardinale

Abril-Julio 2018

Contenido

● Hilos en Sistemas Distribuidos
● Clientes
● Servidores
● Migración
● Anexo: Virtualización

2

Procesos e hilos

● 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.

3

Procesos e hilos

● 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.

4

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

5

Procesos e hilos

● Para que la comunicación 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 operación.

● Los cambios de contexto de procesos son más

costosos. Implican salvar el contexto del proceso,
cambio de modo (trap al sistema de operación,
etc), otro cambio de modo, restaurar contexto del
nuevo proceso

6

Procesos e hilos

● Implementaciones de hilos:
● Threads a nivel de usuario.

● Threads a nivel de kernel

● Enfoque combinado, procesos Livianos

7

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.

● Concentrémonos en la arquitectura Cliente-

Servidor.

8

Clientes Multihilos

● Sirven para esconder la latencia de

comunicación a través de la red.

● Ejemplo 1: Navegadores WEB

● En muchos casos una página WEB consiste de un

texto plano con múltiples figuras.

● Con frecuencia el navegador, establece la conexión
con el servidor, recupera y comienza a desplegar la
página HTML (incluso se permite al usuario el
desplazamiento dentro de la página) mientras el
navegador continua recuperando otros archivos que
conforman la página.

9

Clientes Multihilos

● Ejemplo 1: Navegadores WEB

● Desarrollar navegadores multihilos simplifica este

hecho de forma considerable. Tan pronto como
llega la página principal se pueden activar hilos que
se encarguen de recuperar las demás partes. Cada
hilo establece su propia conexión con el servidor.

● Mientras tanto el usuario advierte el retardo en las
imágenes pero puede ir explorando el documento

10

Clientes Multihilos

● Si el servidor está saturado o es lento no se

observarán mejoras notables en el rendimiento.

● Ejemplo 2: Servidores WEB Replicados

● En muchos casos los servidores se replican en

distintas máquinas y cada servidor proporciona el
mismo conjunto de documentos WEB. Están
localizados en el mismo sitio y se conocen por el
mismo nombre.

11

Clientes Multihilos

● Ejemplo 2: Servidores WEB Replicados

● Cuando entra una petición para una página WEB

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

● Cuando se usan clientes multihilos cada conexión
puede ir a una réplica diferente del mismo servidor.
En este caso los distintos archivos se transmiten en
paralelo asegurando que la página WEB completa
se despliega en un tiempo más corto

12

Servidores Multihilos

● El principal uso de la tecnología multihilos está

del lado del servidor.

● Básicamente buscan mejorar el desempeño

(aún en servidores monoprocesador) y la forma
cómo se estructura el servidor.

● Ejm: por lo general un servidor de archivos

espera una petición de entrada para una
operación de archivo, posteriormente ejecuta la
petición (operación bloqueante al disco) y luego
envía la respuesta de regreso.

13

Servidores Multihilos

● Alternativas:

● Modelo Servidor/Trabajador: Las peticiones son

enviadas por los clientes hasta el servidor. Después
de examinar la petición el hilo servidor elige un hilo
trabajador sin utilizar y le encarga la petición.

Hilo servidor

peticiones

Petición del cliente

Hilos trabajadores

14

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 ejecución.

● Cómo 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 petición. Mientras espera por el disco el
servidor está ocioso y no procesa otra petición. Se procesan menos
peticiones por segundo (throughput).

● Con los hilos se gana un rendimiento considerable. Cada hilo

se programa secuencialmente en forma tradicional

15

Servidores Multihilos

● Supongamos que los hilos no están disponibles, pero los

diseñadores del sistema consideran inaceptable el rendimiento
debido al uso de un solo hilo y operaciones bloqueantes.

● Sol: uso de operaciones no bloqueantes (asíncronas).
● Cuando llega una petición se examina. Si se puede satisfacer
desde el cache bien. Si no, se envía un mensaje al disco (no
bloqueante). Se registra el estado de la petición actual en una tabla
y se va al siguiente mensaje. El siguiente mensaje puede ser una
petición para otro trabajo o una respuesta del disco relacionada con
una operación previa. En este último caso se recupera la
información relevante de la tabla y junto con los datos solicitados,
se envía al cliente.

● En este caso la programación del servidor es más difícil y se

necesita que el sistema de operación provea llamadas asíncronas.
16

Cliente/Servidor

● Cuando la plataforma es una red de

computadoras, las aplicaciones se distribuyen
sobre la red para sacar partido del paralelismo
● Un modelo básico para estas plataformas es

estructurar las aplicaciones en dos tipos de
componentes: clientes y servidores.

● Los clientes hacen la parte de interacción con
usuario o solicitante de servicio, el servidor se
ocupa de la parte de procesamiento (más
pesada)

17

Protocolo TCP/IP

● Conjunto (pila) de protocolos que permiten la

interconexión de máquinas en red

● Basado en dos protocolos:

● IP (Internetworking Protocol). Provee una abstracción
de la ubicación. Cada máquina es identificada por una
dirección única IP

● TCP (Transmission Control Protocol). Ofrece servicio

de conexión proceso a proceso en máquinas diferentes,
a través de la noción de puerto

● Una dirección es típicamente un par (IP, puerto

TCP)

18

Cliente/Servidor

Cliente/Servidor con protocolos de

interacción ad-hoc

19

Cliente/Servidor

Cliente/Servidor con protocolo de

interacción genérico

20

Clientes

● Pueden aportar o no algún nivel de procesamiento:
● Clientes específicos por cada servicio remoto pueden

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

● Clientes livianos. Sólo ofrecen la interfaz al usuario,

todo el análisis y procesamiento (incluso el manejo de
ventanas) se hace remotamente

● Ocultan al usuario ubicación de servidor,

protocolos de interacción, si la consulta implica
acceder a varios servidores, etc.

21

Ej. Cliente oculta replicación

22

Localización de servicio

23

Servidores

● Un servidor es un proceso que implementa un
servicio, a través de una dirección específica
en la red

● Típicamente, el servidor se asigna a un puerto
TCP en una máquina. El servicio se accede a
través de IP/Puerto. Ej.: puerto 80 (http), correo
(25)

● El cliente accede directamente si conoce la

dirección. En ciertos casos, se puede utilizar
servicios de localización adicionales. Ej: DNS

24

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 información

o no entre cada interacción con el cliente.
● Sin estado requiere que el cliente mantenga la

información necesaria. Ej: interacción http

● Con estado. Ej: servidor de archivos.

25

Tipos de servidores

● Servidores sin estado (“stateless”)

• Cuando un cliente envía una solicitud a un
servidor, éste la lleva a cabo, envía la
respuesta y elimina de sus tablas internas toda
la información relativa a dicha solicitud.
• No guarda información del cliente entre
solicitudes. No mantiene un registro de las
operaciones que van dejando los clientes
• Cada solicitud debe ser autocontenida.

26

Tipos de servidores

● Consecuencias:

● Servidores y clientes son completamente

independientes.

● Se reducen los estados inconsistentes debido a

caídas de clientes y/o servidores

● Posible pérdida de desempeño, ej. Un servidor no

se puede anticipar al comportamiento del cliente.
● “El estado” del servidor no crece con más clientes

27

Tipos de servidores

● Servidores con estado

● Los servidores guardan información del estado de
los clie
  • Links de descarga
http://lwp-l.com/pdf15925

Comentarios de: Procesos en Sistemas Distribuidos (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios
Es necesario revisar y aceptar las políticas de privacidad

Revisar política de publicidad