Sei sulla pagina 1di 20

UNIVERSIDAD POLITÉCNICA SALESIANA

Carrera de Ingeniería de Sistemas


Sistemas Distribuidos

PROCESOS
PROCESOS

• Se define como un programa en ejecución.


• Desde la perspectiva de un sistema operativo:
• La administración y la calendarización de los procesos son quizá los
asuntos más importantes.
• En sistemas distribuidos, tenemos que otros temas resultan ser
igualmente o más importantes:
• Hilos
• Virtualización
• Clientes
• Servidores
• Migración de procesos entre diferentes máquinas (sistemas distribuidos
de área amplia).

Mg. Vanessa Jurado Vite – Sistemas Distribuidos


Carrera: Ingeniería de Sistemas
Hilos

• Igual que un proceso, un hilo ejecuta su propio segmento de código,


independientemente de otros hilos
• No se hace ningún intento por lograr un alto grado de transparencia
de concurrencia
• Un sistema de hilos mantiene generalmente sólo un mínimo de
información para permitir que la CPU sea compartida por varios hilos

Mg. Vanessa Jurado Vite – Sistemas Distribuidos


Carrera: Ingeniería de Sistemas
Hilos

• La información que no es estrictamente necesaria para manipular


múltiples hilos es ignorada
• Se deja por completo a los desarrolladores la protección de los datos
en contra de los accesos inapropiados dentro de un proceso único

Mg. Vanessa Jurado Vite – Sistemas Distribuidos


Carrera: Ingeniería de Sistemas
Hilos en Sistemas Distribuidos

• Proporcionan un medio conveniente para permitir llamadas de


bloqueo de sistema sin bloquear todo el proceso en que se ejecuta el
hilo

Mg. Vanessa Jurado Vite – Sistemas Distribuidos


Carrera: Ingeniería de Sistemas
Clientes Multihilos

• En redes de área amplia, los ciclos tienen retrasos de cientos de


milisegundos, o incluso segundos.
• La manera más común de ocultar las latencias de comunicación es
iniciar la comunicación y proceder de inmediato con alguna otra cosa

Mg. Vanessa Jurado Vite – Sistemas Distribuidos


Carrera: Ingeniería de Sistemas
Servidores Multihilos
• El principal uso de la tecnología multihilos está del lado del
servidor
• Consideremos la organización de un servidor de archivos que
ocasionalmente se tiene que bloquear en espera del disco

Mg. Vanessa Jurado Vite – Sistemas Distribuidos


Carrera: Ingeniería de Sistemas
Hilos
• Hacen posible retener la idea de procesos secuenciales que emiten
llamadas de bloqueo de sistema (por ejemplo, un RPC para comunicarse
con el disco) y aún así lograr el paralelismo.
• Las llamadas de bloqueo del sistema vuelven más fácil la programación, y
el paralelismo mejora el rendimiento.
• El servidor de un solo hilo mantiene la facilidad y la simplicidad de las
llamadas de bloqueo del sistema, pero cede algo del rendimiento
• El método de la máquina de estado finito logra un alto rendimiento a
través del paralelismo, pero utiliza llamadas sin bloqueo, por tanto es más
difícil de programar

Mg. Vanessa Jurado Vite – Sistemas Distribuidos


Carrera: Ingeniería de Sistemas
VIRTUALIZACIÓN

• La separación entre tener una sola CPU y ser


capaz de pretender que existen más unidades
de procesamiento se puede extender también
a otros recursos, ello origina lo que
conocemos como virtualización de recursos
• La virtualización trata con la extensión o el
reemplazo de una interfaz existente de modo
que imite el comportamiento de otro sistema

Mg. Vanessa Jurado Vite – Sistemas Distribuidos


Carrera: Ingeniería de Sistemas
Importancia Virtualización

• Software heredado puede ejecutarse sobre el costoso hardware de


una mainframe.
• La virtualización puede aportar las interfaces heredadas hacia nuevas
plataformas, y de esta manera dar paso inmediato a lo más reciente
en cuanto a grandes clases de programas existentes
• La diversidad de plataformas y máquinas se puede reducir si, en
esencia, dejamos que cada aplicación se ejecute en su propia
máquina virtual, posiblemente incluyendo las bibliotecas
relacionadas y el sistema operativo, el cual, a su vez, se ejecute en
una plataforma común proporcionando un alto grado de portabilidad
y flexibilidad

Mg. Vanessa Jurado Vite – Sistemas Distribuidos


Carrera: Ingeniería de Sistemas
Arquitecturas de máquinas virtuales
• Los sistemas de cómputo ofrecen cuatro tipos de interfaz distintos, y en cuatro
niveles diferentes:
• 1. Una interfaz entre el hardware y el software, constituida por instrucciones máquina
que se pueden invocar desde cualquier programa.
• 2. Una interfaz entre el hardware y el software, constituida por instrucciones máquina
que se pueden invocar solamente desde programas privilegiados, tales como los
sistemas operativos.
• 3. Una interfaz que consta de llamadas de sistema como las que ofrece un sistema
operativo.
• 4. Una interfaz que consta de llamadas a bibliotecas, las cuales forman, por lo general, lo
que conocemos como interfaz de programación de aplicaciones (API, por sus siglas en
inglés). En muchos casos, las llamadas de sistema ya mencionadas están ocultas por una
API
• La esencia de la virtualización es imitar el comportamiento de estas interfaces

Mg. Vanessa Jurado Vite – Sistemas Distribuidos


Carrera: Ingeniería de Sistemas
Arquitecturas de máquinas virtuales

• La virtualización puede tener lugar en dos formas diferentes:


1. máquina virtual de proceso, lo cual enfatiza que la virtualización se
implementa esencialmente solamente para un proceso, el emulador tendrá
que imitar el comportamiento de las llamadas de sistema
2. monitor de la máquina virtual, proporciona un sistema que básicamente
se implementa como una capa que cubre por completo al hardware
original, pero que ofrece todo un conjunto de instrucciones del mismo (o
de otro hardware) como una interfaz. 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.

Mg. Vanessa Jurado Vite – Sistemas Distribuidos


Carrera: Ingeniería de Sistemas
Clientes: Interfaces de usuario en red
• Las máquinas cliente proporcionan los medios necesarios para que
los usuarios interactúen con servidores remotos. Existen
básicamente dos maneras soportadas para efectuar esta interacción
1. Para cada servicio remoto, la máquina cliente tendrá una contraparte por
separado que puede contactar el servicio sobre una red (protocolo
específico)

Mg. Vanessa Jurado Vite – Sistemas Distribuidos


Carrera: Ingeniería de Sistemas
Clientes: Interfaces de usuario en red

2. proporcionar acceso directo a servicios remotos solamente con la


oferta de una interfaz de usuario adecuada. En efecto, esto
significa que la máquina cliente sólo se utiliza como terminal sin
necesidad de almacenamiento local(protocolo independiente)

Mg. Vanessa Jurado Vite – Sistemas Distribuidos


Carrera: Ingeniería de Sistemas
SERVIDORES

1.- espera una


petición entrante Donde van las
Proceso que de un cliente peticiones?
implementa un 2.- se asegura de Punto final o
servicio especifico Se
organiza hacer algo con esa llamado puerto
en representación petición Cuando no tiene
de clientes 3.-espera para la puerto se usan
siguiente petición demonios
entrante

Mg. Vanessa Jurado Vite – Sistemas Distribuidos


Carrera: Ingeniería de Sistemas
• Servidor maneja las peticiones y
Servicio
iterativo
devuelve respuesta a los clientes.

• Petición pasa por hilos o procesos.


Servicios
concurrentes
• Termina proceso se genera petición.

Mg. Vanessa Jurado Vite – Sistemas Distribuidos


Carrera: Ingeniería de Sistemas
Tipos de servidores

Existen distintas maneras de organizar servidores:


• Servidor iterativo:
Manipula la petición, la resuelve y si es necesario devuelve la respuesta a dicha petición
del cliente.
• Servidor concurrente:
No manipula, está basado en hilos, lo transmite al hilo y cambia su estado en espera de
otra instrucción.
El hilo manipula la petición y es el responsable de enviar la respuesta de esa petición.
Cuando un cliente realiza un a petición este es enviado a un puerto o punto final, muchos
servicios no requieren de dicho puerto. Aquellos que no utilizan dichos puertos son
considerados dinámicos para aquello debe de usarse un demonio donde el cliente
contacta al demonio, solicita el puerto y contacta al servidor especificado.
• Super-servidor:
Es implementado debido a que un solo servidor no puede atender a tantas peticiones y
eso significaría una gran pérdida de recursos.

Mg. Vanessa Jurado Vite – Sistemas Distribuidos


Carrera: Ingeniería de Sistemas
Servidores de clústeres

• Es una colección de maquinas conectadas a través de una red, donde


cada maquina ejecuta uno o mas servidores estas ofrecen un gran
acho de banda y latencia muy pequeña.

Mg. Vanessa Jurado Vite – Sistemas Distribuidos


Carrera: Ingeniería de Sistemas
Servidores Distribuidos

Conjunto de máquinas que cambian de manera dinámica, y posiblemente


también con más de un punto de acceso, pero que sin embargo, aparecen ante
el mundo como una sola y poderosa máquina.

• Beneficia a los clientes a partir de un servidor fuerte, estable y de alto


rendimiento.

Mg. Vanessa Jurado Vite – Sistemas Distribuidos


Carrera: Ingeniería de Sistemas
Estados en servidores

• Servidor sin estado:


No almacena de los datos con respecto al estado del cliente pero puede
modificar su estado sin necesidad de informar a los clientes. Aunque de
manera momentánea almacena dicha información que considera
relevante para decidir si un documento debe ser replicado y hacia donde
si se llegase a perder esta información no afecta en nada su
funcionamiento a esto también es considerado como un Estado suave.
• Servidor con estados:
Mantiene información de persistentes de sus clientes, es decir que el
servidor necesita eliminar información de forma explicita. La tablas
permite mantener una actualización reciente de la información si esta se
llega a perder se recupera la información tal como estaba antes de
arruinarse a esto también se considera como un proceso de estado de
sesión.

Mg. Vanessa Jurado Vite – Sistemas Distribuidos


Carrera: Ingeniería de Sistemas

Potrebbero piacerti anche