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