1. Luis Carlos Lozano CI 22840519 1
Sistemas Operativos
Distribuidos
Sistemas Operativos II
2. Luis Carlos Lozano CI 228405192
Introducción
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 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.
3. Luis Carlos Lozano CI 228405193
Sistemas Operativos Distribuidos
Los sistemas operativos distribuidos desempeñan las mismas funciones que un
sistema operativo normal, pero con la diferencia de trabajar en un entorno distribuido.
Su Misión principal consiste en facilitar el acceso y la gestión de los recursos
distribuidos en la red.
En un sistema operativo distribuido los usuarios pueden acceder a recursos
remotos de la misma manera en que lo hacen para los recursos locales. Permiten
distribuir trabajos, tareas o procesos, entre un conjunto de procesadores. Puede ser
que este conjunto de procesadores esté en un equipo o en diferentes, lo cual es
transparente para el usuario.
Los sistemas distribuidos deben de ser muy confiables y estables ya que si un
componente del sistema se descompone otro componente debe de ser capaz de
reemplazarlo inmediatamente y no afectar los procesos del sistema.
Entre los diferentes Sistemas Operativos distribuidos que existen tenemos los
siguientes: Sprite, Solaris-MC, Mach, Chorus, Spring, Amoeba, Taos, etc.
4. Luis Carlos Lozano CI 228405194
Características
Los sistemas operativos distribuidos están basados en las ideas
básicas:
Transparencia
Eficiencia
Flexibilidad
Escalabilidad
Existen dos esquemas básicos: Los Fuertemente Acoplados y
los débiles. Un sistema fuertemente acoplado es aquel que
comparte la memoria y un reloj global, cuyos tiempos de acceso
son similares para todos los procesadores. En un sistema
débilmente acoplado los procesadores no comparten ni memoria
ni reloj, ya que cada uno cuenta con su memoria local.
5. Luis Carlos Lozano CI 228405195
Transparencia
El concepto de transparencia de un sistema distribuido va ligado a la idea
de que todo el sistema funcione de forma similar en todos los puntos de la
red, independientemente de la posición del usuario. Queda como labor del
sistema operativo el establecer los mecanismos que oculten la naturaleza
distribuida del sistema y que permitan trabajar a los usuarios como si de un
único equipo se tratara.
En un sistema transparente, las diferentes copias de un archivo deben
aparecer al usuario como un único archivo. Queda como labor del sistema
operativo el controlar las copias, actualizarlas en caso de modificación y en
general, la unicidad de los recursos y el control de la concurrencia.
El que el sistema disponga de varios procesadores debe lograr un
mayor rendimiento del sistema, pero el sistema operativo debe controlar
que tanto los usuario como los programadores vean el núcleo del sistema
distribuido como un único procesador. El paralelismo es otro punto clave
que debe controlar el sistema operativo, que debe distribuir las tareas entre
los distintos procesadores como en un sistema multiprocesador, pero con la
dificultad añadida de que ésta tarea hay que realizarla a través de varios
ordenadores.
6. Luis Carlos Lozano CI 228405196
Eficiencia
La idea base de los sistemas distribuidos es la de obtener sistemas mucho
más rápidos que los ordenadores actuales. Es en este punto cuando nos
encontramos de nuevo con el paralelismo.
Para lograr un sistema eficiente hay que descartar la idea de ejecutar un
programa en un único procesador de todo el sistema, y pensar en distribuir
las tareas a los procesadores libres más rápidos en cada momento.
La idea de que un procesador vaya a realizar una tarea de forma rápida
es bastante compleja, y depende de muchos aspectos concretos, como la
propia velocidad del procesador, pero también la localidad del procesador,
los datos, los dispositivos, etc. Se han de evitar situaciones como enviar un
trabajo de impresión a un ordenador que no tenga conectada una impresora
de forma local.
7. Luis Carlos Lozano CI 228405197
Flexibilidad
Un proyecto en desarrollo como el diseño de un sistema operativo
distribuido debe estar abierto a cambios y actualizaciones que mejoren el
funcionamiento del sistema. Esta necesidad ha provocado una
diferenciación entre las dos diferentes arquitecturas del núcleo del sistema
operativo: el núcleo monolítico y el micronúcleo.
Las diferencias entre ambos son los servicios que ofrece el núcleo del
sistema operativo. Mientras el núcleo monolítico ofrece todas las funciones
básicas del sistema integradas en el núcleo, el micronúcleo incorpora
solamente las fundamentales, que incluyen únicamente el control de los
procesos y la comunicación entre ellos y la memoria. El resto de servicios
se cargan dinámicamente a partir de servidores en el nivel de usuario.
8. Luis Carlos Lozano CI 228405198
Núcleo Monolítico
Como ejemplo de sistema operativo de núcleo monolítico está UNIX. Estos
sistemas tienen un núcleo grande y complejo, que engloba todos los
servicios del sistema. Está programado de forma no modular, y tiene un
rendimiento mayor que un micronúcleo. Sin embargo, cualquier cambio a
realizar en cualquier servicio requiere la parada de todo el sistema y la
recopilación del núcleo.
9. Luis Carlos Lozano CI 228405199
Micronucleo
La arquitectura de micronúcleo ofrece la alternativa al núcleo monolítico.
Se basa en una programación altamente modular, y tiene un tamaño mucho
menor que el núcleo monolítico. Como consecuencia, el refinamiento y el
control de errores son más rápidos y sencillos. Además, la actualización de
los servicios es más sencilla y ágil, ya que sólo es necesaria la recopilación
del servicio y no de todo el núcleo. Como contraprestación, el rendimiento
se ve afectado negativamente.
En la actualidad la mayoría de sistemas operativos distribuidos en
desarrollo tienden a un diseño de micronúcleo. Los núcleos tienden a
contener menos errores y a ser más fáciles de implementar y de corregir. El
sistema pierde ligeramente en rendimiento, pero a cambio consigue un gran
aumento de la flexibilidad.
10. Luis Carlos Lozano CI 2284051910
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, puede 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.
11. Luis Carlos Lozano CI 2284051911
Tipos de SOD - Sprite
Este sistema operativo tiene la apariencia para los programadores de un
sistema único, ya que la distribución se produce dentro del propio núcleo y
de este modo, Sprite nos da la impresión de estar trabajando sobre un
típico sistema UNIX.
Las ideas al comienzo del trabajo con Sprite, eran las de crear un sistema
que trabajara de forma "consciente" en red, y que al mismo tiempo lo
hiciera de forma transparente para el usuario. El área primaria de trabajo
fue la construcción de un nuevo sistema de archivos en red el cual hiciera
uso de caché local del lado del cliente para mejorar el desempeño.
Sprite no era un sistema microkernel, y sufrió el mismo abanico de
problemas que otros sistemas Unix en términos de complejidad de
desarrollo, convirtiéndose cada vez más difícil de desarrollas mientras más
funcionalidad era añadida. En los 1990s, estaba sufriendo, y el pequeño
equipo que respaldaba el proyecto, simplemente no fue capaz de
mantenerse al día con los cambios rápidos en Unix que estaban
sucediendo en ese tiempo. El proyecto fue cerrado lentamente en 1994
12. Luis Carlos Lozano CI 2284051912
Tipos de SOD - Solaris-MC
Solaris es un sistema operativo de tipo Unix desarrollado desde 1992 inicialmente
por Sun Microsystems y actualmente propiedad de Oracle Corporation tras la
adquisición de Sun por parte de esta. Sucesor de SunOS, es un sistema certificado
oficialmente como versión de UNIX. Funciona en arquitecturas SPARC y x86 para
servidores y estaciones de trabajo.
Para Bob Young, fundador de ACC Corporation en 1993 y comprador de Red Hat
en 1995,1 en ese momento Solaris funcionaba mejor que Linux y sirvió de inspiración
en tomar los buenos aspectos de ello y agregarle la posibilidad a los usuarios de
personalizarlo por medio del suministro del código fuente.23
Utilizando Solaris 10 los usuarios disponen de un servicio de actualizaciones que les
permitirá estar al día con las innovaciones y el entorno del nuevo ambiente operativo.
Se asegura las aplicaciones escritas en versiones previas de Solaris pueden correr
en Solaris 10 extendiendo la cobertura de compatibilidad hasta la versión de Solaris
2.6 la cual es una garantía sin precedentes en más de 7 años de lanzamiento de
sistemas operativos en la industria. Además es capaz de correr la mayoría de las
aplicaciones para GNU/Linux de forma nativa.
13. Luis Carlos Lozano CI 2284051913
Tipos de SOD - Mach
Mach es un proyecto de diseño de sistemas operativos iniciado en la Universidad
Carnegie Mellon con el objetivo de desarrollar un micronúcleo. 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. El proyecto en CMU se ejecutó desde 1985 hasta 1994.
El desarrollador líder en el proyecto Mach, Richard F. Rashid, ha estado
trabajando en Microsoft desde 1991 en las varias posiciones a nivel superior en la
división de la investigación de Microsoft, Microsoft Research. El Windows NT de
Microsoft, precursor del Windows XP, comenzó con un modelo basado en un
micronúcleo similar al de Mach. Otro de los desarrolladores originales de Mach, Avie
Tevanian, fue antes jefe de software en NeXT y hasta mayo del 2006 fue Director de
la Oficina de Tecnología de Software en Apple.
A finales del siglo XX se ha pensado que el Mach asumiría lentamente el control
del universo entero de sistemas operativos, pero esto no ha sucedido. Quizás la
razón más grande del fracaso de Mach puede ser la "holgazanería": a todos les
parecía que era el trabajo de otro entregar la biblioteca basada en el SO, y no lo hizo
nadie.
14. Luis Carlos Lozano CI 2284051914
Servicios de Comunicación
Los servicios de comunicación son los típicos servicios de red, pero en el
caso de los sistemas operativos distribuidos son mas especializados en
ciertas áreas.
Los sistemas operativos distribuidos utilizan un concepto de
interconexión llamado Multicast (Comunicación en Grupo) que le permite a
todos los computadores del sistema trabajar como un solo elemento de la
red.
Toda la coordinación de los SOD son sincronizados por medio de
SOCKETS lo cuales son paso de mensajes por la red que le permiten a los
sistemas verificar cual es el equipo que esta disponible o simplemente el
estado de un equipo actual. Los SOCKETS también son utilizados para la
actualización del reloj.
15. Luis Carlos Lozano CI 2284051915
Modelos de Consistencia
La duplicidad de los bloques compartidos aumenta el rendimiento, pero
produce un problema de consistencia entre las diferentes copias de la
página en caso de una escritura. Si con cada escritura es necesario
actualizar todas las copias, el envío de las páginas por la red provoca que
el tiempo de espera aumente demasiado, convirtiendo este método en
impracticable.
Para solucionar este problema se proponen diferentes modelos de
consistencia, que establezcan un nivel aceptable de acercamiento tanto a la
consistencia como al rendimiento. Nombramos algunos modelos de
consistencia, del más fuerte al más débil: consistencia estricta, secuencial,
causal, PRAM, del procesador, débil, de liberación y de entrada.
16. Luis Carlos Lozano CI 2284051916
El reloj
La sincronización del reloj no tiene que ser exacta y bastara con que sea
aproximadamente igual en todos los ordenadores. Hay que tener en cuenta
eso si. El modo de actualizar la hora de un reloj es particular. Es
fundamenta no retrasar nunca la hora, aunque el reloj adelante. En vez de
eso, hay que atrasar la actualizaron del reloj. Frenarlo. Hasta que alcance la
hora aproximada. Existen diferentes algoritmos de actualizan de la hora.
El Reloj es únicamente uno de los tantos problemas de sincronización
que existen en los sistemas operativos distribuidos.
17. Luis Carlos Lozano CI 2284051917
Modelos de acceso
Debido a la complejidad del acceso a los archivos a través de todo el
sistema distribuido, surgen dos modelos para el acceso a los archivos: el
modelo carga/descarga, y el modelo de acceso remoto. El primer modelo
simplifica el acceso permitiendo únicamente las operaciones de cargar y
descargar un archivo.
El acceso a cualquier parte del archivo implica solicitar y guardar una
copia local del archivo completo, y sólo se puede escribir de forma remota
el archivo completo. Este método sería especialmente ineficaz a la hora de
realizar pequeñas modificaciones en archivos muy grandes, como podrían
ser bases de datos. El modelo de acceso remoto es mucho más complejo,
y permite todas las operaciones típicas de un sistema de archivos local.
18. Luis Carlos Lozano CI 2284051918
Sistema Operativo Distribuido
Vs
Sistema Distribuido
Existe una diferencia vital entre los sistemas operativos distribuidos y los
sistemas distribuidos. Podríamos llamar a un Sistema Distribuido una
capacidad del Sistema operativo Distribuido, es decir: Un sistema
distribuido es la relación que existe entre una computadora independiente y
un servidor de archivos o dispositivos compartidos. Cada computadora
ejecuta sus programas en su memoria propia haciendo uso de su único
microprocesador y memoria, este no comparte memoria ni asigna tareas a
otros procesadores de la red.
Sin embargo, un Sistema operativo distribuido tiene acceso a todos los
dispositivos compartidos de la red incluyendo procesadores y memoria
RAM.
19. Luis Carlos Lozano CI 2284051919
Servicios de Seguridad
Los servicios de seguridad de un SOD van ligados a permisos de
acceso tanto a los datos compartidos como a los recursos. Los recursos de
memoria por ejemplo, son asignados permisos a la cantidad de memoria
compartida siguiendo las necesidades físicas de cada computadora.
Ejemplo: Una computadora de 128 MB RAM, la cual trabaja mucho es
muy probable que en vez de poder compartir memoria requiera de memoria
compartida de otras computadoras. Debido a esto, el DSM (Distribuid
Shared Memory o Memoria Distribuida Compartida) es Deshabilitado para
que no se disponga de recursos libres de este computador.
20. Luis Carlos Lozano CI 2284051920
Desventajas de los SOD
Por muy maravillosos que nos puedan pareces los sistemas operativos
distribuidos, también tienen sus desventajas. La sincronización del sistema
es una tarea ardua de la cual nunca se descansa y la estandarización del
sistema es un tanto complicada y limitante.
Debido a que no todos los sistemas operativos son de de carácter
distribuido enlazar los distintos tipos de sistemas operativos es un poco
complicado.
El interés de hacer el SOD lo mas transparente posible lo hace muy
complicado en su programación y el lograr que el sistema operativo no
tenga problemas para que no cause problemas a otros equipos que le
asignaron tareas es un poco dificultoso.
21. Luis Carlos Lozano CI 2284051921
Conclusión
Los sistemas distribuidos están en la formación de un nuevo kernel
(núcleo) universal que soporte distribución para que este pueda ser
aplicado a todos los sistemas operativos sin importar su plataforma.
El sistema operativo distribuido es usado a menudo como sub sistemas
operativos utilizando sus ventajas como por ejemplo el sistema de clusters
para almacenamiento. Creemos que si podemos encontrar sub soluciones a
la distribución que sean ventajosas, deberíamos de incursionar el futuro de
la informática a la distribución total.
22. Luis Carlos Lozano CI 2284051922
Webgrafia
https://html.rincondelvago.com/sistemas-operativos-distribuidos_2.html
https://es.wikipedia.org/wiki/Sistema_operativo_distribuido
https://www.monografias.com/trabajos6/sidi/sidi.shtml
https://es.wikipedia.org/wiki/Sprite_%28sistema_operativo%29
https://es.wikipedia.org/wiki/Solaris_%28sistema_operativo%29
https://es.wikipedia.org/wiki/Mach_%28n%C3%BAcleo%29