Está en la página 1de 11

Sistemas Operativos Distribuidos

Definición. Un sistema distribuido es una colección de computadoras


independientes que aparecen ante los usuarios del sistema como una única
computadora.
Esta definición tiene dos aspectos:
1. El hardware: las máquinas son autónomas.
2. El software: los usuarios piensan que el sistema es como una única
computadora.
Aplicaciones:
- Una red de computadoras con una pila de procesadores
- Una aerolínea
- Fábrica de robots
- Un banco con sucursales
- Internet
- Multimedia y conferencias
Sistemas operativos distribuidos
- Amoeba
- Mach
- Chorus
- Clouds
- Plan9
- Mosix
- OpenMosix
Clasificación de los sistemas operativos:
Se clasifican los sistemas cliente servidor de acuerdo al nivel de abstracción
del servicio que se ofrece. Se distinguen tres componentes básicos de
software:
a) Interacción con el usuario
b) Lógica de Aplicación
c) Repositorio de datos
 Representación distribuida: La interacción con el usuario se realiza
básicamente en el servidor: El cliente hace de pasarela, de sistema de
acceso a los elementos hardware pantalla y teclado.
 Representación remota: Los datos se envían sin formatear, y es el cliente
el responsable de formatear los datos y realizar las acciones de
interacción con el usuario. En este caso, la aplicación y la base de datos
se encuentran en el servidor
 Lógica distribuida: En el cliente se llevan a cabo la interacción con el
usuario y la parte más trivial de la lógica de la aplicación. En este caso,
se llevan a cabo controles básicos de rango de campos, campos
obligatorios, etc., mientras que el grueso de la lógica permanece en el
servidor.

Ventajas de los Sistemas Distribuidos


 Economía. Los microprocesadores ofrecen mejor proporción
precio/rendimiento que los mainframes, pues se pueden reunir un gran
número de CPU’s baratos en un mismo sistema y dado el avance
tecnológico de estos, se puede dar un mejor rendimiento que un solo
mainframe.
 Velocidad. Un sistema distribuido puede tener mayor poder de cómputo
que un mainframe.
 Distribución inherente. Algunas aplicaciones utilizan máquinas que están
separadas a cierta distancia. Por ejemplo, trabajo cooperativo apoyado
por computadora, juegos cooperativos apoyados por computadora.
 Confiabilidad. Si una máquina se descompone, el sistema puede
sobrevivir como un todo.
 Crecimiento por incrementos. Se puede añadir poder de cómputo en
pequeños incrementos

Ventajas de los sistemas distribuidos con respecto a las computadoras


personales aisladas.
 Datos compartidos. Permiten que varios usuarios tengan acceso a una
base de datos común.
 Dispositivos compartidos. Permiten que varios usuarios compartan
periféricos caros como scanners o impresoras a color.
 Comunicación. Facilita la comunicación de persona a persona; por
ejemplo, mediante correo electrónico, FAX, chats, foros, etc.
 Flexibilidad. Difunde la carga de trabajo entre las máquinas disponibles
en la forma más eficaz en cuanto a costos.
Desventajas de los Sistemas Distribuidos
La principal desventaja de estos sistemas es la complejidad que implica
su creación. La Economía, la Velocidad y la Distribución de máquinas no
tienen problemas de implantación porque son inherentes a los sistemas
distribuidos.

Confiabilidad (alta disponibilidad). Se puede conseguir alta disponibilidad


pues al tener varios nodos independientes, hay menos posibilidades de
que caigan todos a la vez. Para esto hay que implantar los mecanismos
necesarios para que cuando una máquina caiga, se sigan dando todos los
servicios. Esto nos lleva a la necesidad de actualizar todas las réplicas de
un servicio. También se tiene que disponer de los mecanismos adecuados
para que el nodo que ve el fallo del servidor busque los servidores
alternativos en busca de la información que necesita. Además también se
debe disponer de los mecanismos necesarios para que los nodos que han
caido, cuando vuelvan a conectarse puedan continuar con su trabajo
normalmente.

Escalabilidad. Al incrementarse el número de nodos aumentan las


comunicaciones, por lo tanto, se debe diseñar un sistema lo más
escalable posible. Por ejemplo, elegir una comunicación todos contra
todos no es una solución escalable.

Conceptos de Hardware

Sistemas fuertemente acoplados. El retraso que se experimenta el enviar


un mensaje de una computadora a otra es corto y la tasa de transmisión
de los datos (número de bits por segundo que se pueden transferir) es
alta.

Sistema débilmente acoplado. El retraso es grande y la tasa de


transmisión es baja.
Los sistemas fuertemente acoplados tienden a utilizarse más como
sistemas paralelos.
Los sistemas débilmente acoplados tienden a utilizarse como sistemas
distribuidos.

Clasificación de Flynn (1972).


Considera dos características el número de flujos de instrucciones y el
número de flujos de datos.
SISD (single instruction, single data) Computadoras personales.
SIMD (single instruction, multiple data)
MISD (multiple instruction, single data)
MIMD (multiple instruction, multiple data) Todos los sistemas distribuidos son
MIMD.
Las computadoras MIMD se divide en Multiprocesadores y
Multicomputadoras.
Multiprocesadores. Existen dos categorías de computadoras paralelas.
Estos modelos físicos se diferencian en el hecho de tener memoria
compartida o distribuida.
Multiprocesadores de memoria compartida.
Existen tres modelos que se diferencian en como la memoria y los periféricos
se comparten o distribuyen.
- UMA (uniform memory access)
- NUMA (no uniform memory access)
- COMA (cache-only memory access)
- El modelo UMA
La memoria se comparte uniformemente entre los procesadores. Todos
tienen igual tiempo de acceso a todas las palabras de memoria. Cada
memoria puede tener una caché privada. Los periféricos también se
comparten en la misma forma. Se les denomina sistemas fuertemente
acoplados. Para coordinar los eventos paralelos, la sincronización e
intercomunicación entre procesos se utilizan variables en la memoria común.
Cuando todos los procesadores tienen igual acceso a todos los periféricos el
sistema se denomina simétrico (MP).
En un multiprocesador asimétrico solo uno o un subconjunto de los
procesadores tienen la capacidad ejecutiva. El procesador ejecutivo o
maestro ejecuta el sistema operativo y maneja la E/S.
- El modelo NUMA

La memoria está físicamente distribuida entre todos los procesadores, se


llaman memorias locales. Es más rápido acceder un dato en la memoria
local, para acceder información en una memoria remota existe una
demora debida a la red de interconexión (BBN TC-2000 Butterfly).

Además de estas memorias distribuidas se puede agregar memoria


globalmente accesible por todos los procesadores. En este caso existen
tres patrones de acceso a memoria:
- el más rápido es acceder a memoria local
- un poco más lento es acceder la memoria global
- y por último el más lento de todos es acceder la memoria remota de otro
procesador.
- El modelo COMA

El modelo COMA utiliza solo memoria de tipo caché (ej. KSR-1 de Kendall
Square Research). Son un caso particular de la NUMA en el cual la
memoria distribuida se convierte en memorias caché. No existen
jerarquías de memoria en cada nodo procesador. Todas las caches
forman un espacio de direccionamiento global. El acceso a una cache
remota se facilita a través de los directorios distribuidos de cache los
cuales en ciertas arquitecturas pueden estructurarse en forma jerárquica.
Una de las mayores desventajas que poseen estos multiprocesadores es
la falta de escalabilidad debido a la centralización de la memoria
compartida.

Multicomputadoras

Consisten de múltiples computadoras llamadas a menudo nodos


interconectados por una red de paso de mensajes. Cada nodo es un
sistema autónomo con su procesador, su memoria y a veces periféricos
de E/S.
La red de paso de mensajes provee un mecanismo de comunicación
punto a punto. Todas las memorias locales con privadas y son solo
accesibles por el conjunto de procesadores locales del nodo, por esta
razón se las denomina máquinas NORMA

Tipos de red

Las redes de computadoras pueden ser divididas en dos clases:

Redes de área local (LAN)


Mensajes de alta velocidad
Los nodos se encuentran repartidos en un solo edificio o campus.
Son apropiadas para sistemas distribuidos, aunque algunas aplicaciones
multimedia necesitan un mayor ancho de banda

Redes de área amplia (WAN)


Mensajes a baja velocidad
Las computadoras se encuentran separadas a grandes distancias
Las computadoras que con interconectadas por una WAN son llamadas
computadoras host, estas pueden estar ubicadas en diferentes ciudades,
países o continentes
Es necesario el ruteo de paquetes
El tiempo de transmisión depende de la ruta
Una tercera clase son las redes de área metropolitana (MAN)
Utilizan cable de fibra óptica
Los nodos se encuentran ubicados en una misma ciudad, y se transmite
video, voz y otros datos a una distancia de alrededor de 50km
El rango de transferencia de datos es similar a B-ISDN , utilizan ATM
como técnica de switcheo
Con B-ISDN y ATM, se pueden trabajar sistemas distribuidos en redes
WAN.

Protocolo
Conjunto de reglas y formatos usados para la comunicación entre
procesos para desempeñar una tarea.
Un protocolo tiene dos partes importantes:
1. Una especificación de la secuencia de mensajes que debe ser
intercambiado

2. Una especificación del formato de datos de los mensajes.

Conceptos de Software

En un sistema distribuido el software es más importantes que el hardware,


pues la imagen y la forma d pensar de los usuarios la determina el
software del sistema operativo. Es posible distinguir dos tipos de sistemas
operativos para multiprocesadores o multicomputadoras:

• Software débilmente acoplado. Permite que las máquinas y los usuarios


en un sistema distribuido sean independientes entre sí en lo fundamental,
pero que interactúen cuando sea necesario.

• Software fuertemente acoplado. Las máquinas interactúan entre sí (y los


usuarios) para llevar a cabo las tareas en forma conjunta.

Una mejora es tener un sistema de archivos global accesible desde todas


las estaciones de trabajo (compartido), utilizando los llamados servidores
de archivos.
Estos utilizan un sistema jerárquico de archivos (directorio raíz,
subdirectorio y archivos). Las estaciones de trabajo pueden importar o
montar estos sistemas de archivos. Por lo tanto cada cliente tiene un
punto de vista distinto del sistema de archivos.
El sistema en el que cada máquina tiene un alto grado de autonomía y
existen pocos requisitos a lo largo de todo el sistema, se llama sistema
operativo de red.
Sistemas realmente distribuidos

Software fuertemente acoplado en hardware débilmente acoplado


(multicomputadoras).

Objetivos:

• Hacer creer a los usuarios que toda la red de computadoras es un


sistema de tiempo compartido, a esta propiedad algunos autores le llaman
la imagen de único sistema

Algunos otros autores dicen que un sistema distribuido es aquel que se


ejecuta en un conjunto de máquinas enlazadas mediante una red pero
que actúan como un uniprocesador virtual.
Conclusión. Los usuarios no deben darse cuenta de la existencia de varios
CPU en el sistema.

Características de los sistemas distribuidos

Algunas de las características de los Sistemas Distribuidos son:


• Recursos compartidos. Discos, impresoras, archivos, bases de datos y
otros objetos.
• Manejador de recursos. Denota un módulo de software que maneja un
conjunto de recursos de un tipo particular. Incluye provisión de nombres,
maneja direcciones y coordina los accesos concurrentes.

Los usuarios de recursos se comunican con el manejador de recursos


para accesar los recursos compartidos del sistema.

Para realizar la comunicación se puede emplear alguno de los siguientes


modelos.
Modelo cliente-servidor. El más comúnmente usado. Los servidores
actúan como manejadores de recursos.
Modelo basado en objetos. Cada recurso compartido es un objeto, los
cuales pueden ser movidos de cualquier lugar en la red sin cambiar sus
identidades.
• Mecanismo de comunicación global entre procesos
• “Openness”(Abierto). En un sistema distribuido el “openness” es
determinado por el grado en el cual nuevos servicios de recursos pueden
ser añadidos sin interrumpir o duplicar los servicios existentes.

La publicación de documentos acerca del sistema es la clave de esta


característica.

Los sistemas que son diseñados para soportar recursos compartidos que
pueden ser expansibles en hardware y software son llamados sistemas
distribuidos abiertos.
Características de los sistemas distribuidos abiertos.
- Sus interfaces son publicadas
- Están provistos de un mecanismo de comunicación entre procesos
uniforme e interfaces públicas para acceso a recursos compartidos.
- Puede ser construido con hardware y software heterogéneo.
• Esquema global de protección
• Concurrencia. Ejecución de varios procesos al mismo tiempo.
• Escalabilidad. Un sistema distribuido debe operar efectiva y
eficientemente a diferentes escalas. El sistema y las aplicaciones del
software no deben cambiar cuando la escala del sistema se incrementa
(memoria, procesadores, canales de E/S)
• Misma administración de procesos
• La misma apariencia del sistema de archivos en todas partes
• Sistema de archivos global
• Cada núcleo debe controlar sus propios recursos locales.

Sistemas de Multiprocesador con tiempo compartido

Es software y hardware fuertemente acoplado. Por ejemplo, los


multiprocesadores que operan como un sistema de tiempo compartido,
estos utilizan una cola de ejecución. El despachador utiliza exclusión
mutua mediante semáforos, monitores, etc., para evitar que dos CPU
elijan el mismo proceso para su ejecución.

Aspectos del diseño

Transparencia.

La transparencia es uno de los aspectos de diseño más importantes


dentro de los sistemas distribuidos, pero también uno de los más
complejos.
La transparencia puede darse en dos niveles:
• Hacia los usuarios
• Hacia los programas

Es más fácil lograr la transparencia dirigida a los usuarios mediante una


interfaz con comandos que, aunque se ejecuten en otra máquina o hagan
uso de varias máquinas, los usuarios no se dan cuenta; que lograr la
transparencia para los programas, pues para accesar a archivos remotos
por ejemplo deben establecer una conexión, y esto ya no es transparente.

Existen distintos tipos de transparencia en un sistema distribuido.


Transparencia de localización. Los usuarios no pueden indicar la
localización de los recursos.
Transparencia de migración. Los recursos se pueden mover a voluntad
sin cambiar sus nombres.
Transparencia de réplica. Los usuarios no pueden indicar el número de
copias existentes.
Transparencia de concurrencia. Varios usuarios pueden compartir
recursos de manera automática.
Transparencia de paralelismo. Las actividades pueden ocurrir en
paralelo sin el conocimiento de los usuarios.
Transparencia en fallas. Si falla un nodo, el usuario no debe darse
cuenta y el sistema debe seguir trabajando.
Transparencia de escalamiento. Se pueden agregar nodos o software y
el sistema debe permanecer activo.
Transparencia de acceso. El acceso a los recursos debe realizarse de
la misma forma en cualquier lugar.

Flexibilidad

Existen dos tipos de estructuras de los sistemas distribuidos.


- Los que utilizan núcleo monolítico en cada máquina, es decir, cada
máquina debe ejecutar un núcleo tradicional que proporcione la mayoría
de los servicios.
- Los que utilizan un micronúcleo, es decir, el núcleo proporciona lo menos
posible y el grueso de los servicios del sistema operativo se obtienen a
partir de servidores a nivel de usuario.

La mayoría de los sistemas distribuidos diseñados a partir de cero utilizan


micronúcleo y servidores. El micronúcleo proporciona cuatro servicios
mínimos.
1. Un mecanismo de comunicación entre procesos
2. Cierta administración de la memoria
3. Una cantidad limitada de planificación y administración de procesos de
bajo nivel
4. Entrada/Salida de bajo nivel

Todos los demás servicios se implantan a manera de servidores a nivel


de usuario. Debido a esto es fácil implantar, depurar, e instalar o modificar
ciertos servicios; esto no puede hacerse en un núcleo monolítico. Esto es
lo que da flexibilidad al micronúcleo.

Ventaja del núcleo monolítico. Rendimiento (es más rápido), aunque en la


práctica esta ventaja ya no existe. (Sprite- núcleo monolítico, Amoeba-
micronúcleo)

Confiabilidad

Este aspecto fue uno de los objetivos originales en la construcción de


sistemas distribuidos, la idea es que, si alguna máquina falla, alguna otra
máquina se encargue del trabajo. Pero llevar a cabo esto en la práctica
es muy difícil.
Existen varios aspectos dentro de la confiabilidad.
• La disponibilidad se refiere a la fracción de tiempo en que se puede
usar el sistema. Esta se mejora si en el diseño no se exige el
funcionamiento simultáneo de un número sustancia de componentes
críticos o mediante la redundancia en el software y en el hardware.
• Seguridad. Los archivos y otros recursos deben ser protegidos contra
el uso no autorizado.
• Tolerancia a fallas. Que el sistema pueda recuperarse de las fallas sin
que el usuario se dé cuenta

También podría gustarte