lunes, 6 de febrero de 2017

SISTEMAS OPERATIVOS DISTRIBUIDOS

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.


CARACTERÍSTICAS BÁSICAS


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.



·       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 más rápidos y eficientes por la distribución de la tareas.

·       Eficiencia

La idea base de los sistemas operativos distribuido es la de obtener sistemas mucho más rápidos que los utilizados de procesador único, Y para lograr esto tenemos que olvidar la idea antigua de ejecutar los programas en estos procesadores y pensar en distribuir las tareas a los procesadores libres más rápidos en cada momento.

El concepto global de que un procesador haga todas las tareas y la desarrolle rápido depende de muchos factores concretos: Velocidad, Memoria y tipo de procesamiento, Pero para un sistema operativo distribuido esto es mucho más fácil y eficiente, solo buscara un procesador más rápido y más libre para que desarrolle las tareas y hará un display de los resultados obtenidos.

·       Flexibilidad

La Flexibilidad dentro de sistema operativo distribuido, describe su capacidad para soportar cambios, actualizaciones y mejoras que le permitan irse desarrollando al mismo ritmo de la evolución tecnológica.

Dicha capacidad es una virtud y un conflicto. Una Virtud debido a las grandes necesidades de los sistemas operativos de mejorar después de las primeras versiones y un conflicto que surge entre los sistemas de con Núcleo Monolítico y los sistemas con Micro núcleo las cuales son dos arquitecturas distintas del núcleo del sistema operativo.

·       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 serían muy deseables, pude que la solución válida para unas cuantas computadoras no sea aplicable 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.



COMPLEJIDAD Y ASPECTOS QUE INTERVIENEN EN EL DISEÑO DE UN SISTEMA OPERATIVO DISTRIBUIDO.


CONOCIMIENTO GLOBAL.

Se trata de conocer y actualizar el estado global (global Knowledge) de todos los procesos y recursos del sistema.

·       Características:

1.      Se tiene soluciones mucho más complejas.
2.      No se tiene disponibilidad de una memoria global y un reloj global, no se pueden predecir los retardos y mensajes.
3.      Una sola computadora no puede colectar toda la información del sistema distribuido.
4.      Un problema que se presenta es determinar técnicas eficientes para establecer controles amplios en un sistema descentralizado y donde una sola computadora no conoce el estado actual y completo del sistema global.
5.      Otro problema significativo se presenta debido a la ausencia de un reloj global y no permite tener formas de ordenar y controlar todos los eventos que ocurren en diferentes tiempos y en diferentes computadoras.

NOMENCLATURA.

En ese aspecto se utilizan nombres para referirse a los objetos (Computadoras, impresoras, servicios, archivos y usuarios).

Por ejemplo: El servicio de FTP o el servicio de DNS.

·       Características:

1.      En un servidor de nombres se mapea un nombre lógico a una dirección física por medio de tablas.
2.      En un Sistema Distribuido los directivos pueden ser replicados y almacenados en varios lugares para reducir las posibilidades de fallas e incrementar la disponibilidad del servicio.
3.      Se requiere más capacidad de almacenamiento.
4.      Requiere de sincronización para actualizar los directorios de cada localización.
5.      Puede utilizarse partición de directorios en lugar de replicación, pero es mucho más complejo.


 ESCALABILIDAD.

Los sistemas crecen con el tiempo y les puede afectar la poca disponibilidad y la degradación del rendimiento cuando el crecimiento ocurre.

COMPATIBILIDAD.
Se refiere a la interoperabilidad entre los recursos de un sistema. Generalmente existen 3 niveles de compatibilidad aplicados a los sistemas.

·       Nivel binario:

Todos los procesadores ejecutan el mismo conjunto de instrucciones binarias, sin embargo los procesadores pueden diferir en rendimiento y su forma de entrada y salida.


-       Ventajas:

1.      Es más fácil el desarrollo de sistemas.
2.      No pueden incluirse arquitecturas diferentes de un fabricante o varios.
3.      Es raramente soportado por sistemas grandes.

·       Nivel Ejecución:

Se presenta cuando el mismo código fuente puede ser compilado y ejecutado correctamente en cualquier computadora del sistema.

·       Nivel Protocolo:

Es el menos receptivo de todos ya que se obtiene interoperabilidad con el simple requerimiento de los componentes de comunicación de los sistemas, soportan un conjunto común de protocolos por ejemplo las computadoras individuales pueden ejecutar diferentes Sistemas y sacrificar su operatividad.


SINCRONIZACIÓN DE PROCESOS

Es uno de los más importantes a considerar dentro de los sistemas distribuidos. La sincronización es difícil por la falta de una memoria común al no conocerse las características de los procesos que se ejecutan.

·       Características:

1.      Un Sistema Operativo Distribuido tiene que sincronizar los procesos que se están ejecutando en diferentes computadoras cuando estas tratan de accesar concurrentemente un recurso compartido, por ejemplo: un directorio.
2.      El recurso compartido debe ser ingresado por un proceso a la vez, a esto se le conoce como mutua exclusión.
3.      Cuando se tiene acceso concurrentemente a un recurso compartido por diversas peticiones no coordinadas de usuarios, estas deben de seriabilizarse para asegurar la integridad del recurso.
4.      Los procesos deben solicitar recursos locales o remotos y posteriormente liberados en cualquier orden que puede ser no conocido.
5.      Si la ausencia de asignación de recursos de los procesos no se controla se puede presentar un " Dead Lock " (Candado muerto o recurso bloqueado) que degrade al sistema.

http://www.gayatlacomulco.com/tutorials/sistsdist1/dibujo2_1.gif

ADMINISTRACIÓN DE RECURSOS.

Se refiere en hacer que los recursos locales y remotos de una manera efectiva y fácil. Esta localización de recursos debe ser transparente para el usuario.

Los recursos deben estar disponibles de la siguiente manera:


·       Migración de datos:

Los datos son traídos al lugar del sistema donde son necesitados, pueden llegar a ser desde un archivo (local o remoto) o hasta el contenido de una memoria física.

Características:

1. Si un proceso actualiza un conjunto de datos, la localización original debe de ser también actualizada.
2. Se utiliza normalmente sistemas de archivos distribuidos que son componentes que implementan un sistema común de archivos disponibles para todas las computadoras autónomas del sistema. Su objetivo principal es proveer la misma capacidad funcional de acceso a los archivos sin importar su localización dentro de la red. A esto se le conoce como transparencia.
3. Otro de los elementos utilizados para la migración de datos es la administración de memoria compartida distribuida. Provee de un espacio de direccionamiento virtual que es compartido entre todas las computadoras del sistema distribuido. La mayor complejidad de implementar memoria compartida distribuida es el mantener la consistencia de los datos y reducir los retardos en el acceso de los mismos.


·       Migración de Cálculos:

Los cálculos procesados son llevados hacia otra localización y puede ser eficiente bajo ciertas circunstancias, por ejemplo: Cuando se requiere información de un directorio remoto es más eficiente enviar el mensaje solicitando la información necesaria y recibiéndola de regreso.

·       Planeación Distribuida:

Los procesos son transferidos de una computadora a otra dentro del sistema distribuido, esto es que un proceso puede ser ejecutado en una computadora diferente de donde fue originado.

Este proceso de relocalización puede ser deseable si la computadora donde se originó se encuentra sobrecargada o no posee los recursos necesarios.

La planeación distribuida es la responsable de todos los procesos distribuidos que se lleven a cabo entre computadoras sean efectuados con criterio y transparencia para obtener el máximo rendimiento.

SEGURIDAD

La seguridad de un sistema es la responsable de la integridad del Sistema Operativo dentro del diseño de un sistema de seguridad se consideren dos aspectos importantes:

·         Autentificación: Es el proceso de garantizar que una entidad es quien debe ser.
·         Autorización: Es el proceso de decidir que privilegios tiene una entidad y hacer que solo esos privilegios se encuentren disponibles.



ESTRUCTURACIÓN

La estructuración de un sistema Operativo define como están organizadas sus partes y que comúnmente especifican el funcionamiento del mismo.

En Sistemas Distribuidos Utilizan normalmente los siguientes métodos tradicionales de estructuración de un Sistema Operativo.

·         Núcleo Monolítico: Es el método tradicional de estructurar Sistemas Operativos, esto se lleva a cabo a través de un gran núcleo monolítico que contiene todas las funciones y servicios provistos por el Sistema Operativo. Existen casos entre los Sistemas Distribuidos donde el uso de un bloque monolítico grande no es de mucha utilidad para los servicios ofrecidos por el Sistema Operativo (Estaciones sin disco, estaciones con medios locales de almacenamiento, estaciones con procesadores matemáticos específicos, etc.).

·         Núcleo Colectivo: En esta estructura se tiene una colección de procesos que son ampliamente independientes unos de otros. Los servicios del Sistema Operativo (Administración de memoria distribuida, sistemas de archivos distribuidos, sincronización distribuida, procesos RPC, administración de tiempos, etc.) son implementados como procesos independientes. El núcleo del Sistema Operativo (Comúnmente llamado Microkernel ) soporta la interacción entre los procesos que proveen los servicios al Sistema Operativo, también provee los servicios típicamente esenciales para cada computadora tal como la administración de tareas. El microkernel se ejecuta en todas las computadoras del sistema, mientras que los otros procesos pueden o no correr según se requiera.


·         Sistema Orientado a Objetos: Estos sistemas son estructurados utilizando el concepto de objetos, donde cada uno de los servicios son implementados como un objeto del sistema y que en términos de un ambiente de objeto, se le conoce como colección. Cada objeto encapsula una estructura de datos y define un conjunto de operaciones para ese objeto, de manera que cada uno de estos objetos corresponden a un tipo definido, por ejemplo: Objetos de procesos, directorios o archivos. Este modelo se puede cambiar con la estructura colectiva y las técnicas de separación de funciones y mecanismos.

No hay comentarios:

Publicar un comentario