Documentos de Académico
Documentos de Profesional
Documentos de Cultura
La composición principal de un hardware que utiliza un NOS incluye varios ordenadores, impresora y dos
servidores, uno de ellos para archivos con una red local que los conecta entre sí.
La función del NOS es proporcionar servicios y características básicas de red que soporten múltiples
solicitudes de entrada simultáneamente para entornos multiusuarios.
¿Qué componentes forman un sistema operativo de red?
El sistema operativo de red está diseñado por componentes esenciales que permiten el funcionamiento del
mismo.
Clientes: Se tratan de ordenadores que cuentan con un sistema operativo mono compuesto que tiene
acceso a conectarse a un servidor, por lo que, lo clientes son los equipos usados para hacer obtener los
diferentes recursos que ofrece una red.
Servidores: Son los ordenadores que alojan el sistema operativo de red y que permiten su administración.
Los servidores cuentan con todos los recursos necesarios para utilizar, gestionar y compartir él NOS con
otros clientes o incluso con otros servidores
Dominios: Se trata del término empleado para referirse a la gestión de los diferentes equipos conectados a
una red y que al mismo tiempo están validados para ser gestionados de forma centralizada.
Existen dos tipos básicos de sistemas operativos de red, él NOS peer-to-peer y él NOS cliente/servidor:
-Los sistemas operativos de red peer-to-peer permiten a los usuarios compartir recursos de red guardados
en una ubicación de red común y accesible.
-Los sistemas operativos de red cliente/servidor proporcionan a los usuarios acceso a los recursos a través
de un servidor.
Los sistemas operativos de red pueden clasificarse de diferentes formas, pero lo más común es clasificarlo
según el sistema operativo de base:
Windows: Los de tipo desarrollados por Microsoft, se caracterizan por ofrecer a sus usuarios una buena
interoperabilidad con otros tipos de NOS. Ofreciendo también una diversidad de servicios como
administración de equipos de impresión, mensajería, establecimiento de dominios y protocolos de
seguridad.
Apple: Los softwares desarrollados por Apple ofrecen una diversidad de servicios, aunque algo más
limitados en su interopera labilidad en redes mixtas.
UNIX: Son los distintos softwares desarrollados para Linux, en especial para las distribuciones de Ubuntu y
Debian. Ofrecen un ecosistema de desarrollo de software libre, permiten una buena cantidad de servicios
tanto para clientes como para servidores.
NetWare: Desarrollado por Novell, su principal ventaja es que mantienen un buen acceso a base de datos
de archivos, ofreciendo seguridad y estabilidad.
Ventajas
Desventajas
El rendimiento de las computadoras autónomas puede no ser tan bueno cuando se comparten
algunos recursos.
No existe una gestión centralizada.
Es menos seguro.
No tiene funcionalidades de respaldo.
No hay un sistema de almacenamiento centralizado.
Sistema operativo distribuido
Un sistema distribuido es un conjunto de programas
informáticos que utilizan recursos computacionales en
varios nodos de cálculo distintos para lograr un objetivo
compartido común. Este tipo de sistemas, también
denominados "computación distribuida" o "bases de
datos distribuidas", usan nodos distintos para
comunicarse y sincronizarse a través de una red común.
El desarrollo de un sistema distribuido complejo requiere el uso de las siguientes funciones y servicios:
Servicios de comunicación.
Sistemas de archivos.
Servicio de nombres.
Servicios de sincronización y coordinación.
Memoria compartida distribuida.
Gestión de procesos.
Servicio de seguridad.
El sistema operativo distribuido está diseñado por componentes esenciales que permiten el
funcionamiento del mismo:
Recursos compartidos: los sistemas distribuidos pueden compartir hardware, software o datos.
Escalabilidad: la capacidad computacional y de procesamiento puede escalarse hacia arriba según sea
necesario cuando se añaden máquinas adicionales.
Transparencia: un nodo puede acceder a otros nodos del sistema y comunicarse con ellos.
Puede ser que este conjunto de procesadores este en un equipo o en diferentes, en este caso es
trasparente para el usuario, existen dos esquemas básicos:
Sistemas fuertemente acoplados: Comparte la memoria y un reloj global, cuyos tiempos de acceso son
similares para todos los procesadores.
Sistema débilmente acoplado: Los procesadores no comparten ni memoria ni reloj, ya que cada uno
cuenta con su memoria local.
Entre los diferentes sistemas operativos distribuidos que existen tenemos los siguientes Sprite, Solaris-MC,
Mach, Chorus, Spring, Anoeba, Taos, etc.
Un sistema distribuido es un entorno informático que abarca múltiples dispositivos, coordinando sus
esfuerzos para completar un trabajo de forma mucho más eficiente que si fuera con un solo dispositivo.
Una de las ventajas de los sistemas distribuidos es la economía, pues es mucho más barato, añadir
servidores y clientes cuando se requiere aumentar la potencia de procesamiento.
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 a las demás, el sistema sobrevive como un todo.
Capacidad de crecimiento incremental. Se puede añadir procesadores al sistema incrementando su
potencia en forma gradual según sus necesidades. Con respecto a PCs Independientes:
Se pueden compartir recursos, como programas y periféricos, muy costosos. Ejemplo: Impresora
Láser, dispositivos de almacenamiento masivo, etc. 1. 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 ordenadores.
Desventajas
Una de las ventajas de los sistemas distribuidos es la economía, pues es mucho más barato, añadir
servidores y clientes cuando se requiere aumentar la potencia de procesamiento.
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 a las demás, el sistema sobrevive como un todo.
Capacidad de crecimiento incremental. Se puede añadir procesadores al sistema incrementando su
potencia en forma gradual según sus necesidades. Con respecto a PCs Independientes:
Se pueden compartir recursos, como programas y periféricos, muy costosos. Ejemplo: Impresora
Láser, dispositivos de almacenamiento masivo, etc. 1. 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 ordenadores.
Sistema operativo de multiprocesamiento
El multiprocesamiento no es algo nuevo. Hace muchos años,
los PC asignaban tareas específicas a procesadores concretos
(como las unidades de procesamiento gráfico, o GPU). En los
sistemas embebidos, también era habitual contar con más
de un procesador (por lo general diferentes) y que cada uno
se encargase de la función para la que estaba mejor
adaptado.
Procesador 0
Procesador 1
Memoria de datos
Unidad de Multiprocesamiento (UMP)
Estos elementos estarían conectados por una serie de buses y las respectivas puertas lógicas, multiplexores,
etc. que permitan el correcto funcionamiento.
MP de nada compartido: Los procesadores no comparten nada (cada uno tiene su propia memoria,
memorias caché y discos), pero están interconectados. Este tipo de proceso muliprocessing también se
denomina clúster puro.
MP de discos compartidos: Las ventajas de los discos compartidos son que se conserva parte de un modelo
de programación familiar (los datos de disco son direccionables y coherentes, la memoria no) y la alta
disponibilidad es mucho más fácil que con los sistemas de memoria compartida. Las desventajas son una
escalabilidad limitada debido a cuellos de botella en el acceso físico y lógico a los datos compartidos.
Clúster de memoria compartida: Todos los procesadores de un clúster de memoria compartida tienen sus
propios recursos (memoria principal, discos, E/S) y cada procesador ejecuta una copia del sistema
operativo.
MP de memoria compartida: Todos los procesadores están estrechamente acoplados dentro de la misma
caja con un bus de alta velocidad o un conmutador. Los procesadores comparten la misma memoria global,
discos y dispositivos de E/S. Solo una copia del sistema operativo se ejecuta en todos los procesadores, y el
sistema operativo debe estar diseñado para explotar esta arquitectura (sistema operativo multihebra).
Gracias a esto, el multiprocesador puede ejecutar simultáneamente varios hilos pertenecientes a un mismo
proceso o bien a procesos diferentes.
Los ordenadores multiprocesadores presentan problemas de diseño que no se encuentran en ordenadores
monoprocesador. Estos problemas derivan del hecho de que dos programas pueden ejecutarse
simultáneamente y, potencialmente, pueden interferirse entre sí. Concretamente, en lo que se refiere a las
lecturas y escrituras en memoria. Existen dos arquitecturas que resuelven estos problemas:
La arquitectura NUMA, donde cada procesador tiene acceso y control exclusivo a una parte de la memoria.
La arquitectura SMP, donde todos los procesadores comparten toda la memoria. Esta última debe lidiar con
el problema de la coherencia de caché. Cada microprocesador cuenta con su propia memoria cache local.
De manera que cuando un microprocesador escribe en una dirección de memoria, lo hace únicamente
sobre su copia local en caché. Si otro microprocesador tiene almacenada la misma dirección de memoria en
su caché, resultará que trabaja con una copia obsoleta del dato almacenado.
Para que un multiprocesador opere correctamente necesita un sistema operativo especialmente diseñado
para ello. La mayoría de los sistemas operativos actuales poseen esta capacidad.
Ventajas
Este Tipo de sistemas Tienden a ser más eficientes porque las tareas tanto del sistema operativo
como de los usuarios pueden ser distribuidas en forma balanceada a todos los procesadores.
Transparencia
Es una característica de los sistemas distribuidos para ocultar al usuario la manera en que el sistema
funciona o está construido, de tal forma que el usuario tenga la sensación de que todo el sistema
está trabajando en una sola máquina local.
La transparencia desde el punto de vista de los programas significa diseñar la interfaz de llamadas al
sistema de modo que no sea visible la existencia de varios procesadores.
Flexibilidad
La flexibilidad es un aspecto crítico en el diseño de sistemas distribuidos, ya que estos sistemas deben ser
capaces de adaptarse a cambios en los requisitos, la carga de trabajo y las condiciones de operación. Aquí
hay varios aspectos del diseño de sistemas distribuidos relacionados con la flexibilidad:
Tolerancia a fallos: La flexibilidad en la tolerancia a fallos es esencial. Los sistemas distribuidos deben
ser capaces de detectar y recuperarse de fallos de manera transparente, ya sea en hardware o
software, para mantener la disponibilidad y la integridad de los datos.
Interoperabilidad: La flexibilidad en la interoperabilidad es esencial para que los sistemas distribuidos
puedan funcionar en entornos heterogéneos con diferentes tecnologías y plataformas. Deben
poder comunicarse con otros sistemas y servicios utilizando estándares y protocolos abiertos.
Modularidad: Diseñar sistemas distribuidos en módulos o componentes independientes facilita la
flexibilidad en la actualización o sustitución de componentes específicos sin afectar al sistema en su
conjunto. El modularidad también facilita la adaptación a nuevas funcionalidades o requisitos.
Confiabilidad
Un importante objetivo de los sistemas distribuidos es que, si una máquina falla, alguna otra debe
encargarse del trabajo.
La confiabilidad global teórica del sistema podría ser el “or” booleano de la confiabilidad de los
componentes; ejemplo:
Se dispone de 5 servidores de archivos, cada uno con una probabilidad de 0,95 de funcionar en un
instante dado.
- La probabilidad de falla simultánea de los 5 es (0,05)5 = 0,000006.
- La probabilidad de que al menos uno esté disponible es 0,999994.
La confiabilidad práctica se ve disminuida ya que muchas veces se requiere que ciertos servidores estén en
servicio simultáneamente para que el todo funcione, debido a ello algunos sistemas tienen una
disponibilidad más relacionada con el “and” booleano de las componentes que con el “or” booleano.
Otro aspecto de la confiabilidad general es la seguridad, lo que significa que los archivos y otros recursos
deben ser protegidos contra el uso no autorizado.
Un aspecto también relacionado con la confiabilidad es la tolerancia a fallas, según la cual las fallas se
deben ocultar brindando una recuperación transparente para el usuario, aunque haya cierta degradación
de la performance.
Desempeño
Cuando se ejecuta una aplicación en un sistema distribuido no debe parecer peor que su ejecución en un
único procesador, pero esto es difícil de lograr.
Tiempo de respuesta.
Rendimiento (número de trabajos por hora).
Uso del sistema y cantidad consumida de la capacidad de la red.
El problema se complica por el hecho de que la comunicación entre equipos es lenta comparada con:
La velocidad de proceso.
La velocidad de la comunicación dentro de un mismo procesador.
Escalabilidad
La tendencia indica que el tamaño de los sistemas distribuidos es hacia cientos de miles y aun decenas de
millones de usuarios conectados.
Existen cuellos de botella potenciales que se debe intentar evitar en los sistemas distribuidos de gran
escala:
Componentes centralizados:
- Ej.: un solo servidor de correo para todos los usuarios.
Tablas centralizadas:
- Ej.: un único directorio telefónico en línea.
Algoritmos centralizados:
- Ej.: realización de un ruteo con base en la información completa.
Se deben utilizar algoritmos descentralizados con las siguientes características:
- Ninguna máquina tiene la información completa acerca del estado del sistema.
- Las máquinas toman decisiones solo en base a la información disponible de manera local.
- El fallo de una máquina no arruina el algoritmo.
- No existe una hipótesis implícita de la existencia de un reloj global.
Repartición de la carga
Se debe analizar con qué equipos cuenta el sistema y los diferentes recursos de cómputo en cada uno de
ellos, como capacidad de disco, velocidad de la red, etc. Los tipos de arquitectura a usar pueden ser:
• Servidores-estación de trabajo.
• Pila de procesadores.
• Multiprocesadores con memoria compartida.
• Multiprocesadores con memoria distribuida.
Mantenimiento de consistencia
Verificar que todos los conceptos involucrados con el sistema operativo, al operar en un esquema
distribuido, sigan realizándose de manera correcta.
• Modificación.
• Caché.
• Falla.
• Replicación.
• Interfaz de usuario.
• Reloj.
Consistencia de cache:
Consistencia de fallo:
Consistencia de reloj:
Funcionalidad
Implica que el sistema distribuido a implementar funcione de acuerdo con las metas trazadas y que
permita hacer más eficiente el trabajo que antes se hacía usando un sistema centralizado.
Dicho esto, el sistema operativo actúa como intermediario entre el hardware, las funciones de
entrada, salida y la asignación de memoria en cada caso de uso. Como consecuencia, el sistema
operativo administra los siguientes dispositivos: Entrada: estos incluyen el teclado, el mouse y la
cámara.
Seguridad
Es importante considerar todos los factores de riesgo a que se expone la información en un ambiente
distribuido, por ello se deben de implementar los mecanismos de seguridad que permitan proteger
esta información.
Arquitectura:
Cliente-Servidor: Los sistemas distribuidos se dividen en dos componentes principales: clientes que
solicitan servicios y servidores que proporcionan esos servicios.
Peer-to-Peer (P2P): Los nodos en la red tienen roles equivalentes y pueden actuar como clientes y
servidores al mismo tiempo. No hay una distinción clara entre clientes y servidores.
Comunicación:
Comunicación Síncrona: Las comunicaciones entre los nodos ocurren en tiempo real y esperan una
respuesta inmediata.
Sistemas Descentralizados: Varios nodos pueden gestionar la coherencia de los datos en diferentes
partes del sistema.
Escalabilidad:
Escalabilidad Vertical: Se añaden recursos (como CPU o RAM) a un solo nodo para mejorar el
rendimiento.
Escalabilidad Horizontal: Se añaden nodos adicionales al sistema para distribuir la carga y mejorar el
rendimiento.
Tolerancia a Fallos:
Sistemas Tolera Fallos: Los sistemas están diseñados para resistir fallos individuales sin interrupción
del servicio.
Sistemas No Tolerantes a Fallos: Los fallos individuales pueden causar la interrupción del servicio.
Seguridad:
Modelo de Programación:
Modelo de Programación Paralela: Los desarrolladores escriben código para ejecutarse en paralelo
en múltiples nodos.
1.- Sistemas con software débilmente acoplado en hardware débilmente acoplado. Ejemplo: Sistema
operativo de red, como es el caso de NFS (Network File System - Sistema de archivo de red).
2.- Sistemas con software fuertemente acoplado en hardware fuertemente acoplado. Ejemplo: Sistemas
operativos de multiprocesador (sistemas paralelos).
3.-Sistemas con software fuertemente acoplado en hardware débilmente acoplado. Ejemplo: Sistemas
realmente distribuidos (imagen de sistema único).
20 Sistemas distribuidos Un caso de los sistemas distribuidos con software y hardware débilmente
acoplado son los sistemas operativos de red. Algunas prestaciones de estos sistemas son:
BIBLIGRAFIA:
http://dccd.cua.uam.mx/libros/archivos/03IXStream_sistemas_distribuidos.pdf
https://es.slideshare.net/ItatyVivar1/unidad-1-tema-1-pptx
https://www.studocu.com/en-gb/document/university-of-nottingham/gem-alimentary-system/
03ixstream-sistemas-distribuidos/14198571
https://es.scribd.com/document/423668487/Introduccion-a-Los-Sistemas-Distribuidos
https://www.atlassian.com/es/microservices/microservices-architecture/distributed-architecture
https://www.ilimit.com/blog/importancia-arquitectura-distribuida/
https://www.geocities.ws/nancy_aguas/ad.html