KELA Presentacion Costa Rica 2024 - evento Protégeles
Sistemas Operativos Distribuidos
1. Alumno:
Víctor Guipe: 27.136.361.
Republica Bolivariana deVenezuela.
Ministerio del Poder Popular para la Educación.
I.U.P ¨Santiago Mariño¨.
Sede Barcelona.
Ing. Sistemas.
Sistemas Operativos II.
Barcelona, Marzo de 2018.
Profesora:
AmeliaVásquez.
2. Desde el inicio de la era de la computadora moderna (1945), hasta cerca de (1985), solo se
conocía la computación centralizada. A partir de la mitad de la década de los
ochentas aparecen dos avances tecnológicos fundamentales:
• Desarrollo de microprocesadores poderosos y económicos con arquitecturas de 8, 16,
32 y 64 bits.
• Desarrollo de redes de área local (LAN) de alta velocidad, con posibilidad de conectar
cientos de máquinas a velocidades de transferencia de millones de bits por segundo
(mb/seg).
Aparecen los sistemas distribuidos, en contraste con los sistemas centralizados. Los
sistemas distribuidos necesitan un software distinto al de los sistemas centralizados.
Los S. O. para sistemas distribuidos han tenido importantes desarrollos pero todavía
existe un largo camino por recorrer.
Los usuarios pueden acceder a una gran variedad de recursos computacionales:
• De hardware y de software.
• Distribuidos entre un gran número de sistemas computacionales conectados.
Introducción
3. Un sistema operativo distribuido es la unión lógica de un grupo de sistemas
operativos sobre una colección de nodos computacionales independientes, conectados
en red, comunicándose y físicamente separados.
Sistemas Operativos Distribuidos.
Cada nodo contiene de forma individual
un subconjunto específico de los
programas que componen el sistema
operativo distribuido. Cada subconjunto
es una combinación de dos proveedores
de servicios distintos. El primero es
un núcleo ubicuo mínimo o micro
núcleo, que controla el hardware del
nodo.
El segundo es una colección de componente de administración del sistema de alto nivel que
coordinan las actividades individuales y colaborativas del nodo. Estos componentes son una
abstracción de las funciones del micro núcleo y dan soporte a las aplicaciones de usuario.
4. Entre los sistemas operativos distribuidos se encuentran los siguientes:
1. Amoeba.
2. Mach.
3. Chorus.
4. Clouds.
5. Plan9.
6. Mosix.
7. OpenMosix.
Sistemas Operativos Distribuidos.
5. Amoeba
Sistema Operativo Distribuido.
Es un sistema operativo distribuido de investigación, basado en una arquitectura
de micronúcleo. Fue desarrollado por Andrew S. Tanenbaum y otros en la Universidad Libre
de Ámsterdam. El objetivo del proyecto Amoeba era construir un sistema de tiempo
compartido que hiciera que una red entera de computadores pareciera a los ojos de un
usuario como una máquina única.
Los servicios suministrados por el núcleo
incluyen threads, segmentos de memoria,
mecanismos de IPC (RPCs y mensajes) y E/S .
Existen versiones para varias plataformas,
incluyendo i386, Sun-3 y SPARC.
El lenguaje de programación Python fue
originalmente desarrollado para esta plataforma.
6. Mach
Mach es un núcleo de sistema operativo desarrollado en la Carnegie Mellon
University (CMU) para soportar la investigación de sistemas operativos,
principalmente computación distribuida y paralela.
Mach se desarrolló con la premisa de que todos los sistemas operativos
modernos comparten una serie de características en común, o son deseadas
si es que no las tienen aún.
Chorus
Chorus es un micro kernel embebido de tiempo real típicamente usado en
ambientes de aplicaciones distribuidas dedicadas de bajo costo, que
necesitan un mínimo de funcionalidad y un mínimo uso de memoria, tal
como líneas de tarjetas de crédito, teléfonos portables, y dispositivos de
mano. Pero también se encuentra en otras aplicaciones embebidas como
impresoras, autómatas, etc. es un sistema operativo altamente escalable y
de implementación confiable, tanto así que se ha establecido entre los
proveedores superiores de telecomunicaciones.
Sistema Operativo Distribuido.
7. Cloud
Los sistemas operativos en la nube son más flexibles y tolerantes a fallos que
sus predecesores. Se trata de dos ventajas que tienen que ver con
las características de virtualización y distribución que caracterizan la nube.
La nube ya no es el futuro de los sistemas operativos empresariales, sino el
presente. Los servicios que se ofrecen en la nube son las nuevas aplicaciones
que los proveedores de la nube desarrollan para sus clientes. Windows y
Sistema Operativo Distribuido.
MacOS son ya la generación anterior y los
sistemas operativos en la nube de
proveedores como Amazon, Microsoft o
Google ofrecen ya los interfaces para
computación, almacenamiento de datos y
trabajo en red que estos servicios
requieren.
8. Plan 9
Sistema Operativo Distribuido.
Plan 9 from Bell Labs o simplemente Plan 9 es
un sistema operativo distribuido, usado principalmente
como vehículo de investigación.
Fue desarrollado como el sucesor en investigación del
sistema UNIX por el Computing Sciences Research
Center de los Laboratorios Bell entre mitad de los años
80 y 2002.
Plan 9 es conocido especialmente por representar todos
las interfaces del sistema, incluyendo aquellos utilizados
para redes y comunicación con el usuario, a través
del sistema de archivos en lugar de sistemas
especializados.
9. Mosix
Es un paquete de software que mejora el kernel de Linux con capacidades de
computación de clusters. El kernel mejorado permite cualquier cluster de
estaciones de trabajo y servidores X86/Pentium/AMD trabajar
coordinadamente como parte de un sólo sistema. MOSIX es una extensión
del kernel de Linux que permite ejecutar aplicaciones “normales” (no
paralelizadas) en un Cluster. Una de las posibilidades de MOSIX es la
“migración de procesos”, que permite migrar procesos de nodo en nodo. Una
Sistema Operativo Distribuido.
de las características de MOSIX es que, a
diferencia de otros clusters, no es necesario
modificar las aplicaciones ni tampoco utilizar
librerías especiales. De hecho, tampoco es
necesario asignar “a mano” los procesos a los
diferentes nodos que componen el cluster.
10. Openmosix
OpenMosix es un parche (patch) para el kernel de linux que proporciona
compatibilidad completa con el estardard de Linux para plataformas IA32.
Actualmente se está trabajando para portarlo a IA64.
El algoritmo interno de balanceo de carga migra, transparentemente para el
usuario, los procesos entre los nodos del cluster. La principal ventaja es una
mejor compartición de recursos entre nodos, así como un mejor
aprovechamiento de los mismos.
El cluster escoge por sí mismo la utilización óptima de los recursos que son
necesarios en cada momento, y de forma automática.
Esta característica de migración transparente hace que el cluster funcione a
todos los efectos como un gran sistema SMP (Symmetric Multi Processing)
con varios procesadores disponibles. Su estabilidad ha sido ampliamente
probada aunque todavía se está trabajando en diversas líneas para aumentar
su eficiencia.
Sistema Operativo Distribuido.
11. Un sistema distribuido que pretenda ofrecer una visión de sistema
único deberá cumplir las propiedades que se presentan a continuación.
• Transparencia
• Escalabilidad
• Fiabilidad y tolerancia a fallos
• Consistencia
• Concurrencia
Características de los Sistemas
Distribuidos.
12. Transparencia
El concepto de transparencia de un Sistema operativo distribuido va ligado a la
idea de que todo el sistema funcione de forma similar en todos los puntos de
la red, debido a esto queda como labor del sistema operativo coordinar el
mecanismo que logre la unificación de todos los sistemas y recursos
totalmente transparente para el usuario o aplicación.
El que el sistema disponga de varios procesadores debe lograr un mayor
rendimiento del sistema, pero el sistema operativo debe controlar que tanto
los usuarios como los programadores vean el núcleo del sistema distribuido
como un único procesador, Es decir que la programación y la ejecución de los
programas y tareas sean exactamente iguales que las de los sistemas
operativos normales en aspectos visuales y de programación, pero mas
rápidos y eficientes por la distribución de la tareas.
Características de los Sistemas
Distribuidos.
13. Escalabilidad
Un sistema operativo distribuido debería funcionar tanto para una docena de
computadoras como para mil en una sola red, el tipo de red utilizada no debe
de ser un problema ni su topología (LAN o WAN) (TOKEN RING o ETHERNET)
y mucho menos la distancia entre los equipos. Sin embargo todo esto influye,
Aunque estos puntos serian muy deseables, pude que la solución valida para
unas cuantas computadoras no sean aplicables como para mil. Del mismo
modo el tipo de red condiciona grandemente el rendimiento del sistema y
puede que lo funcione para un tipo de red requiera modificaciones para otro.
Los sistemas operativos distribuidos necesitan de grandes estándares para
trabajar y sobre todo de ajustes a las necesidades principales de cada red y
sus usuarios. Este concepto propone que cualquier computador debe
funcionar perfectamente como un sistema operativo distribuido, pero de la
misma forma debe de formar parte y trabajar como más equipos no importan
la cantidad o los recursos que estos le puedan proporcionar.
Características de los Sistemas
Distribuidos.
14. Fiabilidad y tolerancia a fallos
La fiabilidad de un sistema puede definirse como su capacidad para realizar
correctamente y en todo momento las funciones para las que se ha diseñado. La
fiabilidad se concreta en dos aspectos:
• Disponibilidad. Es la fracción de tiempo que el sistema está operativo. El
principal parámetro para medir la disponibilidad es el tiempo medio entre
fallos (MTBF), pero hay que considerar también el tiempo de reparación. La
disponibilidad se puede incrementar de dos formas: (a) utilizando
componentes de mayor calidad, y/o (b) con un diseño basado en la replicación
de componentes que permita al sistema seguir operando aún cuando
alguno(s) de ellos falle(n). Ambas alternativas incrementan el coste del
sistema;
• Tolerancia a fallos. La tolerancia a fallos expresa la capacidad del sistema para
seguir operando correctamente ante el fallo de alguno de sus componentes,
enmascarando el fallo al usuario o a la aplicación. Por lo tanto, la tolerancia a
fallos implica (1)detectar el fallo, y (2) continuar el servicio, todo ello de forma
transparente para la aplicación (transparencia de fallos).
Características de los Sistemas
Distribuidos.
15. Consistencia
La distribución de recursos introduce importantes beneficios. Por una parte,
contribuye al incremento del rendimiento a través del paralelismo y promoviendo el
acceso a copias locales del recurso (disminuyendo los costes de comunicación). Por
otra, como se acaba de ver, la replicación aumenta la disponibilidad, siendo la base
para proporcionar tolerancia a fallos. No obstante, distribuir recursos acarrea algunos
problemas. Por una parte, la red de interconexión es una nueva fuente de fallos.
Además, la seguridad del sistema es más vulnerable ante accesos no permitidos. Pero
el problema de mayor complejidad es el de gestión del estado global para evitar
situaciones de inconsistencia entre los componentes del sistema. Este es un aspecto
fundamental en el diseño del sistema distribuido, por lo que lo comentaremos a
continuación.
Características de los Sistemas
Distribuidos.
16. Concurrencia
Cuando existen varios procesos en una única maquina decimos que se están
ejecutando concurrentemente. Si el ordenador esta equipado con un único procesador
central, la concurrencia tiene lugar entrelazando la ejecución de los distintos
procesos. Si la computadora tiene N procesadores, entonces se pueden estar
ejecutando estrictamente a la vez hasta N procesos.
En los sistemas distribuidos hay muchas maquinas, cada una con uno o mas
procesadores centrales. Es decir, si hay M ordenadores en un sistema distribuido con
un procesador central cada una entonces hasta M procesos estar ejecutándose en
paralelo.
En un sistema distribuido que esta basado en el modelo de compartición de recursos,
la posibilidad de ejecución paralela ocurre por dos razones:
• Muchos usuarios interactúan simultáneamente con programas de aplicación.
• Muchos procesos servidores se ejecutan concurrentemente, cada uno
respondiendo a diferentes peticiones de los procesos clientes.
Características de los Sistemas
Distribuidos.
17. Gestión de memoria
Una de las principales características de un sistema distribuido es la ausencia de una
memoria común. Esto hace que la comunicación y sincronización en este tipo de
sistemas tenga que hacerse mediante el intercambio de mensajes. La mayoría de los
sistemas distribuidos actuales siguen este modelo, con cada computadora gestionando
su memoria virtual. Sin embargo, hay propuestas que intentan mejorar este esquema.
Estas propuestas son:
• Utilización de paginadores externos.
• Memoria compartida distribuida.
Características de los Sistemas
Distribuidos.
La utilización de paginadores externos se basa en almacenar el espacio de intercambio (swap) en
servidores de archivos distribuidos y en el empleo de paginadores externos, que son procesos que se
encargan de tratar los fallos de página que
ocurren en una computadora. El empleo de
paginadores externos permite disponer de un
sistema con una gran cantidad de espacio para
paginación, liberando a las computadoras de
reservar espacio para la paginación.
18. Es un conjunto bien conocido de reglas y formatos que se utilizan para la
comunicación entre procesos que realizan una determinada tarea. Se requieren dos
partes:
• Especificación de la secuencia de mensajes que se han de intercambiar.
• Especificación del formato de los datos en los mensajes.
Un protocolo permite que componentes heterogéneos de sistemas distribuidos
puedan desarrollarse independientemente, y por medio de módulos de software que
componen el protocolo, haya una comunicación transparente entre ambos
componentes. Es conveniente mencionar que estos componentes del protocolo
deben estar tanto en el receptor como en el emisor.
Protocolos de comunicación
19. Ejemplos de protocolos usados en los sistemas distribuidos:
• IP: Protocolo de Internet.- Protocolo de la capa de Red, que permite definir la
unidad básica de transferencia de datos y se encarga del direccionamiento de la
información, para que llegue a su destino en la red.
• TCP: Protocolo de Control de Transmisión.- Protocolo de la capa de Transporte,
que permite dividir y ordenar la información a transportar en paquetes de menor
tamaño para su transporte y recepción.
• HTTP: Protocolo de Transferencia de Hipertexto.- Protocolo de la capa de
aplicación, que permite el servicio de transferencia de páginas de hipertexto
entre el cliente WEB y los servidores.
• SMTP: Protocolo de Transferencia de Correo Simple.- Protocolo de la capa de
aplicación, que permite el envío de correo electrónico por la red.
• POP3: Protocolo de Oficina de Correo.- Protocolo de la capa de aplicación, que
permite la gestión de correos en Internet, es decir, le permite a una estación de
trabajo recuperar los correos que están almacenados en el servidor.
Protocolos de comunicación
20. Ventajas
• Mayor confiabilidad.
• Al distribuir la carga de trabajo en muchas máquinas, la falla de una de ellas no
afectara a las demás.
• Si una máquina se descompone; Sobrevive el sistema como un todo.
• Podrían añadirse procesadores al sistema, permitiendo un desarrollo gradual según
las necesidades.
• Se pueden compartir recursos, como programas y periféricos, muy costosos.
Ejemplo: Impresora Láser, dispositivos de almacenamiento masivo, etc.
• Al compartir recursos, satisfacen las necesidades de muchos usuarios a la vez.
Ejemplo: Sistemas de reservas de aerolíneas.
• Se logra una mejor comunicación entre las personas. Ejemplo: el correo
electrónico. Tienen mayor flexibilidad, la carga de trabajo se puede distribuir entre
diferentes computadoras.
Ventajas y Desventajas
21. Desventajas
• El principal problema es el software, el diseño, implantación y uso del software
distribuido, pues presenta numerosos inconvenientes.
• Debido a que la tecnología de los sistemas distribuidos aún está siendo explorada,
no se tiene la experiencia suficiente en el diseño, implantación y uso del software
distribuido.
• Otro problema encontrado es el de las redes de comunicación, debido a que éstas
llegan a perder mensajes, por lo que es necesario un software especial para
controlar mensajes. Un detalle más encontrado en las redes es la saturación que
puede sufrir la red.
• Otra de las desventajas de los sistemas distribuidos es la vulnerabilidad que puede
sufrir la información que puede llegar a estar disponible para un gran número de
usuarios del sistema.
Ventajas y Desventajas
22. Sistemas operativos de Red:
• Posibilita la comunicación
de un sistema informático
con otros equipos en el
ámbito de una red.
• Controla todos los servicios
ofrecidos.
• Funciona en un ambiente
Cliente-Servidor.
• Controla la Red.
• Brinda Seguridad.
• Si se cae el servidor se cae
la red.
Comparación
Sistemas operativos distribuidos:
• Los sistemas operativos
distribuidos están basados en las
ideas básicas de transparencia,
eficiencia, flexibilidad,
escalabilidad y fiabilidad.
• El sistema operativo se
encuentra distribuido por toda la
red. Por lo tanto no hay un único
servidor sino que todos son
Servidores.
• Mayor velocidad y eficiencia.
• Al no haber un solo servidor, en
caso de que falle, siempre hay
otros que lo respalden.
• Controla la red.
• Brinda seguridad.
• El costo es elevado y requiere
equipos especializados.
23. Un acceso remoto es poder acceder desde una computadora a un recurso
ubicado físicamente en otra computadora que se encuentra geográficamente
en otro lugar, a través de una red local o externa (como Internet).
En el acceso remoto se ven implicados protocolos (En informática, un
protocolo es un conjunto de reglas usadas por computadoras para
comunicarse unas con otras a través de una red por medio de intercambio de
mensajes), y programas en ambas computadoras que permitan recibir/enviar
los datos necesarios. Además deben contar con un fuerte sistema de
seguridad (tanto la red, como los protocolos y los programas).
Acceso a archivos Remoto.
24. • Escritorio remoto / Remote desktop / Terminal Server Client / RDC
• VNC
• Teamviewer / Log me In
• FTP
• VPN
Métodos de acceso remoto.
25. • Se asume que las transacciones van a completar sin afectarse entre si, y de esta
manera continuar sin lockear los recursos que afectan.
• Cada transacción mantiene un registro de los archivos escritors y los leidos. En el
momento de hacer commit, se verifica con todas las demás transacciones para
ver si alguno de los archivos fue modificado desde el inicio de la transacción. Si
fue asi, hace ABORT. Sino, COMMIT.
• Las validaciones de todas las transacciones tiene lugar durante la primer fase del
protocolo 2 phase commit.
• Por este esquema, no existen los deadlocks.
• Brinda paralelismo máximo ya que no hay que esperar nada.
• Funciona bien en la practica.
• Su única desventaja es que a veces falla (la probabilidad de fallas crece al crecer
la carga de las operaciones) y la transacción debe ejecutarse de nuevo.
Control de concurrencia
26. Los sistemas distribuidos abarcan una cantidad de aspectos considerables, sistemas
operativos, comunicaciones, modelos de programación, etc, lo que hace que sus
beneficios se pueden traducir en complejidades al momento de su implantación.
Existen ciertos aspectos que requieren cuidado especial ya que pueden pasar de ser
una ventaja a una desventaja, por ejemplo, el manejo de fallos, el control de la
concurrencia, etc. Es importante señalar que muchas tecnologías están en constante
desarrollo y maduración, esto requiere de un estudio a profundidad de los factores
que intervienen en cada aspecto de los sistemas distribuidos antes de apostar por
alguna tecnología en especial. Es claro que la evolución constante en la tecnología
sigue impulsando y estableciendo nuevos retos en el desarrollo de los sistemas
distribuidos situación que se ve casi imposible de revertir.
Conclusión