Los sistemas distribuidos están basados en las ideas básicas de
transparencia, eficiencia, flexibilidad, escalabilidad y fiabilidad. Sin
embargo estos aspectos son en parte contrarios, y por lo tanto los sistemas
distribuidos han de cumplir en su diseño el compromiso de que todos los puntos
anteriores sean solucionados de manera aceptable.
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.
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.
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.
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 recompilación
del núcleo.
Micronúcleo
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.
Escalabilidad
Un sistema operativo distribuido debería funcionar tanto para una
docena de ordenadores como varios millares. Igualmente, debería no ser
determinante el tipo de red utilizada (LAN o WAN) ni las distancias entre los
equipos, etc.
La escalabilidad propone que cualquier ordenador individual ha de
ser capaz de trabajar independientemente como un sistema distribuido, pero
también debe poder hacerlo conectado a muchas otras máquinas.
Fiabilidad
Una de las ventajas claras que nos ofrece la idea de sistema
distribuido es que el funcionamiento de todo el sistema no debe estar ligado a
ciertas máquinas de la red, sino que cualquier equipo pueda suplir a otro en
caso de que uno se estropee o falle.
Comunicación
La comunicación entre procesos en sistemas con un único procesador
se lleva a cabo mediante el uso de memoria compartida entre los procesos. En
los sistemas distribuidos, al no haber conexión física entre las distintas
memorias de los equipos, la comunicación se realiza mediante la transferencia
de mensajes.