Este documento describe los sistemas operativos distribuidos. Explica que estos sistemas operativos administran recursos compartidos en varios nodos de computadora conectados en red. También describe las características clave como la separación funcional, la distribución inherente, la confiabilidad y la escalabilidad. Finalmente, discute métodos para el acceso remoto a archivos entre nodos en un sistema operativo distribuido.
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
Sistemas Operativos Distribuidos
1. Republica Bolivariana de Venezuela
Ministerio del Poder Popular para la Educación Universitaria
Instituto Universitario Politécnico Santiago Mariño
Escuela de Sistemas
Materia: Sistemas Operativos II
Sistemas Operativos
Distribuidos
Alumno:
Nelson Guanipa
C.I: 25.993.940
2. Introducción
los S.O tienen un propósito y área de enfoque para el cual son diseñados,
siendo el S.O Distribuido dirigido al entorno de procesamiento masivo de
datos y cantidad de memoria y procesos compartidos.
Esta conformado de manera que pueda atender a las necesidades de
rendimiento y herramientas que se requieran en su área, un S.O Distribuido
se encarga de administrar recursos de manera compartida y fraccionada en
diversos puntos, pero sin perder rendimiento ni exactitud en el proceso
3. Sistemas Operativos Distribuidos
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, 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. El micro núcleo y las componentes de administración trabajan en conjunto.
Ambos dan soporte al objetivo del sistema el cual es integrar múltiples
recursos y capacidad de procesamiento en un sistema eficiente y estable. Esta
integración sin fisuras de nodos individuales en un sistema global es conocido
como transparencia, o sistema de imagen única; haciendo referencias a la
ilusión que se le brinda a los usuarios de que el sistema global luce como una
entidad computacional única.
Este tipo de Sistema Operativo provee las funcionalidades esenciales
requeridas por un sistema distribuido, agregando atributos y configuraciones
para dar soporte a los requerimientos adicionales, tales como aumento de
escala y disponibilidad. Desde el punto de vista del usuario el SO funciona de
forma similar a un Sistema Operativo monolítico de un solo nodo. O sea que,
aunque está compuesto por múltiples nodos, para los usuarios y aplicaciones
luce como un solo nodo.
Separando las funcionalidades mínimas a nivel de sistema de los servicios
modulares adicionales a nivel de usuario provee “una separación de
mecanismos y políticas”. Mecanismos y políticas pueden ser interpretados de
la siguiente manera “cómo algo se hace” contra “por qué algo se hace”
respectivamente. Esta separación incrementa la escalabilidad y la flexibilidad
5. Características
• Separación Funcional. esto significa que las fronteras del software y del hardware
para la funcionalidad y servicios proporcionados, dependen de la capacidad y el
propósito de cada entidad del sistema.
• Distribución Inherente: Las entidades como la información, personas y sistemas
están distribuidos de forma natural o implícita. Por ejemplo si diferente
información es creada y mantenida por personas diferentes. Esta información
podría ser generada, almacenada, analizada y usada por distintos sub-sistemas o
aplicaciones que bien pudieran no estar al tanto de la existencia de otras
entidades en el sistema.
• Confiabilidad. Es la preservación a largo plazo y respaldo (espejeo) en diferentes
lugares estratégicamente localizados.
• Escalabilidad. La posibilidad de agregar más recursos para incrementar el
desempeño (performance) y la disponibilidad.
• Economía. El compartir recursos entre muchas entidades ayuda a reducir el costo
de propiedad.
6. • Como consecuencia de estas características, un sistema distribuido puede
operar de manera concurrente y posiblemente autónoma. Las tareas
pueden ser ejecutadas de manera independiente y las acciones son
coordinadas en etapas bien definidas mediante el intercambio de
mensajes. Adicionalmente las entidades serán heterogéneas y los fallos
son particulares. Generalmente no hay una entidad o proceso que tenga
conocimiento del estado general del sistema.
7. Redes e Interconexión
Suele tener una estructura basada en nodos de procesos autónomos que
comparten datos y gestionan memoria.
Puede tener una interconexión centralizada denominada “Host” o una
configuración de Cliente-Servidor
• Procesamiento central (Host).
Uno de los primeros modelos de
ordenadores interconectados, llamados
centralizados, donde todo el procesamiento
de la organización se llevaba a cabo en una
sola computadora, normalmente un
Mainframe, y los usuarios empleaban
sencillos ordenadores personales
Grafico sobre Interconexión de un Sistema Distribuido
8. • Grupo de Servidores.
Otro modelo que entró a competir con el anterior, también un tanto
centralizado, son un grupo de ordenadores actuando como servidores,
normalmente de archivos o de impresión, poco inteligentes para un número
de Minicomputadores que hacen el procesamiento conectados a una red de
área local
• La Computación Cliente Servidor.
Este modelo, que predomina en la actualidad, permite descentralizar el
procesamiento y recursos, sobre todo,
de cada uno de los servicios y de la
visualización de la Interfaz Gráfica
de Usuario. Esto hace que ciertos
servidores estén dedicados solo a una
aplicación determinada y por lo tanto
ejecutarla en forma eficiente
9. Protocolos de Comunicación
Son 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.
10. Los protocolos mas comunes usados en un Sistema Distribuido son:
• 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.
11. • 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.
12. Gestión de Memoria
En un sistema distribuido la ausencia de una memoria común genera que la
comunicación y sincronización en este tipo de sistemas tenga que hacerse
mediante el intercambio de mensajes
Esto tiene como consecuencia que la memoria resulte compartida o
distribuida, es decir utilizando protocolos de mensajes para distribuir los
datos a las memorias de las distintas computadoras.
Teniendo en cuenta que para poder ejecutar un programa es necesario que
éste, junto con sus datos, resida en memoria principal.
La distribución de los datos, normalmente
páginas, se puede hacer replicando páginas
en distintas computadoras o migrando
páginas de una computadora a otra.
13. El empleo de replicación conlleva a la existencia de múltiples copias de una
página, con los posibles problemas de coherencia que ello puede plantear.
La migración, en cambio, se basa en no permitir la existencia de múltiples
copias.
Cuando un proceso requiere acceso a una página (se habrá producido un fallo
de página en la computadora en la que ejecuta), el sistema' de memoria
compartida distribuida se encargará de transferir la página del lugar en el que
se encuentre (en esta computadora la página se marcará como no presente)
hasta la computadora que provocó el fallo.
Este enfoque elimina los posibles problemas de coherencia en el acceso a
datos compartidos, pero el rendimiento del sistema puede degradarse en
caso de accesos muy frecuentes por parte de diferentes procesos a una
misma página, puesto que ésta estará transfiriéndose constantemente de una
máquina a otra.
14. Ventajas y Desventajas
Ventajas
• Mucho más barato añadir servidores y clientes, que adquirir equipos de
mayor potencia de cómputo
• el trabajo en conjunto. Por ejemplo: en una fábrica de ensamblado, los
robots tienen sus CPUs diferentes y realizan acciones en conjunto,
dirigidos por un sistema distribuido.
• tienen una mayor confiabilidad. Al estar distribuida la carga de trabajo en
muchas máquinas la falla de una de ellas no afecta el trabajo individual de
las demás, el sistema sobrevive como un todo
• Capacidad de crecimiento incremental. Se pueden añadir procesadores al
sistema incrementando su potencia en forma gradual según sus
necesidades.
15. Desventajas
• Software: No hay mucha experiencia en el diseño,
implantación y uso del software distribuido, además
existen pocos productos de software para los sistemas distribuidos. No obstante
más compacto y disperso, tiene una responsabilidad hasta cierto punto crítica; es
complejo en términos de su diseño, implantación y uso por lo tanto el software
presenta numerosos inconvenientes, como posibles cuellos de botella, tiempos de
propagación, rendimientos decrecientes, necesidad de sincronización o
disponibilidad del servicio.
• Redes: Una vez que el sistema llega a depender de la red, la pérdida o
saturación de ésta puede negar algunas de las ventajas que el S.O.D. debía
conseguir.
En general al juzgar y entender los S.O.D. debemos seguir los lineamientos de las
leyes informáticas sobre Cuellos de Botella, Gasto Mínimo de Recursos, Balance
Costo/Complejidad y la Ley de Rendimientos Decrecientes; aunque se supone que
se mejoran estas debilidades de los S.O. centralizados, no se pueden soslayar
totalmente.
16. Sistemas Operativos de Red y
Distribuidos
Es un componente software de una computadora que tiene como objetivo
coordinar y manejar las actividades de los recursos del ordenador en una red
de equipos. Consiste en un software que posibilita la comunicación de un
sistema informático con otros equipos en el ámbito de una red
Estos sistemas, si bien han demostrado su utilidad, tienen su limite de
potencia asociado a los cuellos de botella, los tiempos de espera y el
troughput del kernel, de ahí que no se puede esperar obtener alto
rendimiento sin hacer cambios a la arquitectura. La necesidad de
implementar S.O.D. nace de la dificultad de obtener e implantar equipos de
súper-cómputo, ya que ni siquiera existe una medida que defina dónde
terminan las especificaciones de uno y terminan las de otro. En general los
requerimientos de conexiones múltiples de usuarios o módulos, y la
necesidad de procesar una gran cantidad de operaciones dan lugar a la
creación del modelo de S.O.D.
17. Un Sistema Operativo distribuido, es sólo una mejora del concepto original. Pero
en lugar de un humano haciendo el trabajo, el S.O es lo suficientemente
inteligente como para saber qué equipos están sobrecargados y cuáles están
inactivos. Entonces poder equilibrar las tareas disponibles para que cada equipo
en el grupo comparta la misma carga. Esto es bueno para maximizar la utilidad de
cada equipo
Aunque La aparición del sistema operativo de red es el resultado directo de la
necesidad de reducir los costos y controlar cada equipo en el sistema a pesar de el
inmenso costo en equipos con gran potencia de procesos y una configuracion mas
complicada. El S.O de red no reside en cada equipo, el cliente sólo tiene suficiente
software, para arrancar el hardware y ponerse en contacto con el servidor. Todas
las operaciones posteriores se realizan en el servidor y es la única función del
cliente, el transmitir la entrada y salida, entre el servidor y el usuario. Esto es muy
eficaz en el control del software instalado, ya que los clientes no tienen la
capacidad de agregar o quitar programas. Una red OS requiere una cantidad
mínima de hardware por parte del cliente, aunque el servidor debe ser capaz de
manejar las demandas de varios usuarios. Esto significa, que no tendría que
actualizar a los clientes siempre que se mantenga el servidor actualizado
18. Dependiendo de las necesidades y recursos de la empresa, un sistema
operativo distribuido o de red podría ser interesante de evaluar. Cada uno
tiene sus propias ventajas y desventajas, que se deben de tomar en
consideración. Un sistema operativo distribuido, podría costar un poco más
que uno de red, pero un OS de red, no puede manejar programas intensivos
de computación, debido al estrés que pone en el servidor.
19. Acceso a Archivos Remotos
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
Es un proceso mediante el cual se accede a un banco de memoria donde se
alojan archivos, dicho banco esta compartido y distribuido en varios nodos
dentro del sistema, su acceso ocurre mediante la metodología de Cliente-
Servidor, este proceso suele ser usado en las redes de internet o en redes de
área local (LAN) dentro de un edificio o conjunto de departamentos dentro de
una empresa.
Su traslado de el servidor al cliente esta encriptado y asegurado, para evitar
corrupción en los datos o intercepción no deseada ocasionando perdida en el
proceso y como resultado una decadencia en el sistema
20. Métodos Acceso Remoto
En el proceso se ven implicados protocolos y programas en ambas computadoras
que permitan recibir/enviar los datos necesarios. Además deben contar con un
fuerte sistema de seguridad, Remotamente se puede acceder prácticamente a
cualquier recurso que ofrece una o más computadoras. Se pueden acceder a
archivos, dispositivos periféricos (como impresoras), configuraciones, etc. Por
ejemplo, se puede acceder a un servidor de forma remota para configurarlo,
controlar el estado de sus servicios, transferir archivos, etc.
Los métodos mas comunes son:
• Escritorio remoto / Remote desktop / Terminal Server Client / RDC
Mediante este software preinstalado en Windows, un equipo puede ser controlado
mediante LAN o WAN usando un cliente de escritorio remoto de Windows. Si se
conecta usando una cuenta de usuario que está siendo usada en el equipo destino, se
cierra la sesión para dar paso al cliente remoto.
21. • VNC (Virtual Network Computing)
Esta solución requiere de una instalación servidor en la máquina destino, y
otra instalación cliente en la máquina desde la que se va a controlar. Hay
múltiples programas que sirven a este fin, y la mayoría tienen un cliente
gratuito, mientras que el servidor es de pago.
• FTP (File transfer Protocol)
FTP o SFTP (Secure FTP). Al igual que en otros casos, no deja de ser un
servicio (protocolo) de comunicaciones que tiene que atender un equipo, así
que se trata de instalar (si no trae de serie, como los sistemas server actuales)
el servicio, y emplear en la máquina desde la que se va a controlar el software
cliente. Mediante este protocolo se accede a un directorio exclusivo del
servidor para transferencia de archivos (no es posible controlar el servidor).
22. • VPN (Virtual Prívate Network)
La VPN como tal, es un medio para unir dos redes a través de WAN, sirve
(entre otros muchos casos) controlar o acceder a una máquina remota.
La VPN es la más complicada de las mencionadas para configurar, ya que
tiene diversas maneras de hacerlo. hay quienes directamente lo configuran
sobre el servidor. La máquina cliente puede (o no) necesitar un software
cliente (normalmente gratuito) o instalar un certificado para poder
conectarse. En cualquier caso el objetivo es el de conectarse a una red
remota, de manera bastante segura, dando amplia posibilidades de acciones,
puesto que equivale a estar físicamente en la otra red, por lo que se tiene
acceso a todo lo que se haya permitido.
23. Control de Concurrencia
En el campo informático, el termino concurrencia se refiere a la capacidad de
los Sistemas de Administración de Base de Datos, de permitir que múltiples
procesos sean ejecutados al mismo tiempo, y que también puedan
interactuar entre sí.
Los procesos concurrentes pueden ser ejecutados realmente de forma
simultánea, sólo cuando cada uno es ejecutado en diferentes procesadores.
En cambio, la concurrencia es simulada si sólo existe un procesador
encargado de ejecutar todos los procesos, simulando la concurrencia,
ocupándose de forma alternada de uno y otro proceso a muy pequeños
intervalos de tiempo. De esta manera simula que se están ejecutando a la
vez.
Algunos casos de concurrencia, pueden ser:
● La multiprogramación: ya que el tiempo del procesador es compartido
dinámicamente por varios procesos.
● Las aplicaciones estructuradas: donde la programación estructurada se
implementa como un conjunto de procesos concurrentes.
24. También se tiene que la misma estructura recién mencionada es utilizada en
el diseño de los sistemas operativos, los cuales se implementan como un
conjunto de procesos. Debido a que los procesos concurrentes en un sistema
pueden interactuar entre otros también en ejecución, el número de caminos
de ejecución puede ser extremadamente grande, resultando en un
comportamiento sumamente complejo. Las dificultades asociadas a la
concurrencia han sido pensadas para el desarrollo de lenguajes de
programación y conceptos que permitan hacer la concurrencia más
manejable
25. Conclusión
Los S.O Distribuidos resultan bastante amplios en cuestión de configuración y
programación, su estructura también resulta compleja y critica al momento de
procesar datos y acceder a la memoria. Dicho sistema a pesar de estar
compuesto por nodos individuales que comparten datos actúa como si de un
sistema monolítico se tratara.
A diferencia de un S.O de Red que se compone por una configuración mucho mas
amplia y limitada en potencia, que da a entender que esta compuesta por
múltiples puntos de procesos donde se guarda información para luego ser citada
por el usuario. El S.O distribuido goza de una potencia de proceso mucho mayor
y concurrencia menos severa, por lo cual es mas tolerante a los cuellos de botella
y perdidas de rendimiento.
Siendo su implementación algo de estudio según las necesidades, se puede decir
que un S.O Distribuido es una herramienta con mucha capacidad que solo vale la
pena cuando se puede manejar el enorme costo de su configuración y se
necesita procesar una cantidad critica de datos de manera masiva