FANDOM



Sistemas Operativos Distribuidos

“Un sistema Distribuido es una colección de computadores independientes que aparecen ante los usuarios del sistema como un único computador” (Tanenbaum, Andrew S.)

Como podemos ver, la diferencia fundamental entre los sistemas en red y los sistemas distribuidos es la transparencia. En el sistema distribuido, la composición y estructura de la red le pasa desapercibida al usuario, es decir, ni la ve ni le importa. Solamente le importan los recursos disponibles o, a veces, simplemente el tipo de los recursos disponibles, sin tener en cuenta en qué máquina están realmente ubicados.

Un sistema distribuido puede verse como un sistema formado por varios computadores haciendo algo conjuntamente y presenta tres características:

Compuesto por múltiples computadores; hay interconexión entre ellos y tienen un estado compartido.

Pero la construcción de un sistema distribuido que se comporte según esperan los usuarios, va a requerir considerar otro conjunto de características que se pueden resumir en estas dos: Consistencia y Transparencia.

La consistencia es una necesidad imperativa, pues sin ella, simplemente es que el sistema no funciona. La transparencia, caracteriza especialmente a los sistemas distribuidos, su ausencia no impide que el sistema funcione; no obstante, es una característica deseable, de tal manera que cuanto más transparente sea un sistema distribuido, más lo podemos considerar como tal.

Otras Características de los sistemas distribuidos son:

Compartición de Recursos, Sistema Abierto, Escalabilidad, Tolerancia a fallos y Seguridad.

Sistemas Operativos Multiprocesador

Los multiprocesadores son sistemas MIMD (Multiple Instuction, Multiple Data), basados en varios procesadores funcionando de forma paralela e independiente. La principal característica de los multiprocesadores es que la memoria está compartida, es decir, todos los procesadores comparten el mismo espacio de direccionamiento.

Generalmente estos sistemas trabajan de dos formas: Simétrica o Asimétricamente.

Asimétrica: cuando se trabaja de manera asimétrica, el sistema operativo selecciona a uno de los procesadores el cual jugará el papel de procesador maestro y servirá como pivote para distribuir la carga a los demás procesadores, que reciben el nombre de esclavos.

Desventajas: El maestro puede ser un cuello de botella en el rendimiento y todo depende de él: si falla, falla todo.

Simétrica: cuando se trabaja de manera simétrica, los procesos o partes de ellos (threads) son enviados indistintamente a cual quiera de los procesadores disponibles, teniendo, teóricamente, una mejor distribución y equilibrio en la carga de trabajo bajo este esquema.

Un Sistema Multiprocesador Simétrico (SMP) es un computador con las siguientes características:

Tiene dos o más procesadores similares de capacidades comparables, los procesadores comparten la memoria principal y la E/S, todos los procesadores comparten los dispositivos de E/S, pero pueden hacerlo bien a través de los mismos canales, todos los procesadores pueden desempeñar las mismas funciones (de ahí el término simétrico), el sistema está controlado por un sistema operativo que posibilita la interacción entre los procesadores y sus programas.

Ventajas:

Prestaciones, Escalado, Disponibilidad, Crecimiento Incremental.

Los sistemas SMP poseen una característica muy atractiva, y es que la existencia de varios procesadores es transparente al usuario. Es el sistema operativo el que posibilita la sincronización entre los procesadores, y la planificación de los hilos o de los procesos, puesto que es el responsable de asignarlos a los distintos procesadores.

Los procesadores pueden comunicarse entre ellos a través de la memoria (mensajes e información de estados almacenados en áreas comunes). También pueden intercambiar directamente señales. La memoria se organiza frecuentemente de manera que se pueden realizar accesos simultáneos a bloques independientes. En algunas configuraciones, cada CPU puede tener también su memoria principal privada y canales I/O además de los recursos compartidos.

La organización de un sistema multiprocesador puede clasificarse de la siguiente forma:

• Tiempo compartido o Bus Común.

• Memoria Multipuerto.

• Unidad de Control Central.

En los sistemas multiprocesador actuales, una organización esencial para conseguir unas prestaciones razonables es disponer de uno o dos niveles de caché asociados a cada procesador.

Esto, no obstante, origina un problema, conocido como el problema de la ‘coherencia de caché’.

La esencia del problema es la posibilidad de que existan varias copias del mismo dato simultáneamente en diferentes cachés. En este caso, si los procesadores actualizan sus copias, puede producirse una visión inconsistente de la memoria.

Cuando se utilizan cachés, existen dos políticas de escritura usuales:

· Post-escritura (Write back): Las operaciones de escritura se realizan usualmente sólo en la caché. La memoria principal sólo se actualiza cuando la línea de caché correspondiente se reemplaza.

Escritura directa (Write through): Todas las operaciones de escritura se realizan en memoria principal a la vez que en la caché, asegurándose así de que el contenido de la memoria principal siempre es válido.

Algunos Sistemas Operativos Distribuidos

Amoeba

Amoeba es un nuevo sistema operativo distribuido de propósito general diseñado para un entorno compuesto por un gran número de equipos. Se trata de un proyecto de investigación en curso

MACH

Mach es un sistema operativo desarrollado en la Carnegie Mellon University para apoyar la investigación de los sistemas operativos, distribuidos principalmente y la computación paralela.

Solaris MC

Solaris MC es una extensión del núcleo de Solaris para operar en clúster. Este sistema incorpora ideas procedentes de Spring, aunque mantiene la estructura de núcleo monolítico no adaptable que presenta UNIX.

CHORUS

El sistema operativo ChorusOS es un sistema operativo altamente escalable y de implementación confiable, tanto así que se ha establecido entre los proveedores superiores de telecomunicaciones.

Algunos Sistemas Operativos Multiprocesador

DEBIAN GNU LINUX

Debian Linux es un sistema operativo libre, desarrollado por más de mil voluntarios alrededor del mundo, que colaboran a través de Internet.

Mac Os x

OS X es un sistema operativo desarrollado y comercializado por Apple Inc. que ha sido incluido en su gama de computadoras Macintosh desde 2002.

Windows Vista

Windows Vista incluye varias mejoras en el área de procesos y subprocesos entre las que se incluyen el uso del contador de ciclos de CPU, para una asignación más justa de CPU, y el nuevo Servicio programador de aplicaciones multimedia (MMCSS) que ayuda a las aplicaciones de medios a proporcionar una reproducción libre de errores.

Análisis Detallado Ameoba os

Amoeba ha sido desarrollado con varias ideas en mente. La primera es que las computadoras son rápidamente cada vez más baratas y más rápidas. En una década hemos pasado de muchas personas compartiendo una computadora a cada persona que tenga su propia computadora. Como los ordenadores siguen un precio más bajo, debería ser posible para que cada persona tenga muchas computadoras disponibles para uso individual. Esto ya es el caso en cierta medida.

Lo segundo se refiere al uso generalizado y aumentar el rendimiento de las redes informáticas.

La necesidad de un mecanismo de comunicación uniforme entre equipos que son tanto a red local o en una red de área amplia es ya evidente para muchas aplicaciones.

Lo que se necesita es la habilidad de tratar con hardware físicamente distribuidos durante el uso de lógica de software centralizado.

Amoeba permite la conexión de un gran número de ordenadores, tanto en redes locales y de área extensa, de una manera coherente que es fácil de usar y entender.

La arquitectura Amoeba consta de cuatro componentes principales. Primero son las estaciones de trabajo, uno por usuario, en el que los usuarios pueden llevar a cabo la edición y otras tareas que requieren una respuesta interactiva rápida.En segundo lugar están los procesadores de servidor: un grupo de CPU que se puede asignar dinámicamente como es necesario, se utiliza, y luego regresa al pool. Esto hace que sea posible para aprovechar el paralelismo dentro de un trabajo. En tercer lugar están los servidores especializados, como los servidores de directorio, servidores de archivos, servidores de arranque y varios otros servidores con funciones especializadas. Cuarta son las puertas de enlace, que se utilizan para conectar los sistemas Amoeba en diferentes sitios y países diferentes en un sistema único, uniforme.

La creación de un proceso en Amoeba es diferente de UNIX. El modelo UNIX de crear un proceso hijo mediante la clonación de los padres .no es apropiado en un sistema distribuido debido a la sobrecarga potencial de crear primero una copia en algún lugar y casi inmediatamente después reemplazar la copia con un nuevo programa (EXEC). En cambio, en Amoeba es posible crear un nuevo proceso en un procesador específico con la imagen de memoria previsto de partida desde el principio. Los niños, pueden, a su vez, crear sus propios hijos, que conduce a un árbol de procesos.

El modelo de memoria Amoeba es simple y eficiente. Un proceso de espacio de direcciones se compone de uno o más segmentos mapeadas a direcciones virtuales especificadas por el usuario. Cuando un proceso se está ejecutando, todos sus segmentos están en la memoria. No hay intercambio o paginación en presente, así en Amoeba sólo pueden ejecutar programas que caben en la memoria física.

Amoeba es un sistema paralelo. Esto significa que un solo puesto de trabajo o programa puede usar varios procesadores para ganar velocidad.

Análisis Detallado Debian GNU/Linux

Debian o Proyecto Debian es una comunidad conformada por desarrolladores y usuarios, que mantiene un sistema operativo GNU basado en software libre. El sistema se encuentra precompilado, empaquetado y en un formato deb para múltiples arquitecturas de computador y para varios núcleos.

Nació como una apuesta por separar en sus versiones el software libre del software no libre. El modelo de desarrollo del proyecto es ajeno a motivos empresariales o comerciales, siendo llevado adelante por los propios usuarios, aunque cuenta con el apoyo de varias empresas en forma de infraestructuras.

La primera adaptación del sistema Debian, siendo también la más desarrollada, es Debian GNU/Linux, basada en el núcleo Linux, y como siempre utilizando herramientas de GNU.

El núcleo de un sistema GNU/Linux consta de varias partes importantes: gestión de procesos, gestión de memoria, controladores para dispositivos de hardware, controladores para sistemas de archivos, gestión de la red, y otras partes varias.

Probablemente las partes más importantes del núcleo (nada funcionaría sin ellas) son la gestión de memoria y la gestión de procesos. El gestor de memoria se encarga de asignar áreas de memoria y de espacio de intercambio a los procesos, partes del núcleo, y también al buffer caché. El gestor de procesos crea nuevos procesos e implementa la multitarea (intercambiando los procesos activos en el procesador).

Linux, como se sabe, es un sistema operativo multitarea y multiusuario. Esto quiere decir que múltiples procesos pueden operar simultáneamente sin interferirse unos con los otros. Cada proceso tiene la "ilusión" que es el único proceso en el sistema y que tiene acceso exclusivo a todos los servicios del sistema operativo.

La gestión de memoria del núcleo se realiza en base a los marcos de página de la memoria principal. Su función básica es asignar y liberar marcos para los distintos usos.

Los fundamentos de la reserva de memoria en Linux son los mecánismos de reservas de páginas ya usados para le gestión de memoria virtual de usuario.