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.

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