1. Concepto de los Sistemas Distribuidos
Un sistema distribuido es una colección de computadoras
independientes que aparecen ante los usuarios del sistema como una
única computadora.
En esta definición cabe destacar dos aspectos:
1. El hardware. La definición habla de máquinas autónomas, es
decir, que pueden operar sin la supervisión de ninguna otra.
2. El software, que debe conseguir que los usuarios del sistema lo
vean como una máquina central convencional única.
2. Ventajas de los Sistemas Distribuidos
Economía - Compartir recursos
Velocidad - Mayor capacidad de computo
Distribución - Aplicaciones que utilizan máquinas que están separadas
Confiabilidad - Si una máquina no funciona no afecta al resto
Crecimiento por -Se puede añadir incremento de pequeño incremento
Incremento
3. Desventajas de los Sistemas Distribuidos
Software - Complejidad del software
Redes - Problemas causados por la utilización de un medio
físico de comunicación.
Seguridad - El acceso fácil a todos los datos
5. El software es inmaterial ⇒ Más difícil de clasificar que el hardware
6. Sistemas Operativos en Red
Son un ejemplo de Software DA y Hardware DA
Proporcionan servicios remotos de forma relativamente transparente
Ejemplos
1. %> rlogin ceres
2. %> rcp pizarro:/usr/f2 ceres:/home/f2
3. Sistema de ficheros remoto:
7. Sistemas Realmente Distribuidos
Consisten en Software FA sobre Hardware DA
Objetivo: Ocultar al usuario el HW subyacente y percibir este como un máquina
única.
Requisitos
1. Mecanismo PC homogéneo para procesos locales y remotos.
2. Mecanismo unificado de gestión de procesos.
3. Conjunto de llamadas al sistema únicas ⇒ Núcleos idénticos.
4. Cada núcleo gestiona únicamente sus propios recursos (páginas, ...).
5. El sistema de ficheros es único para todas las máquinas.
8. Sistemas Multiprocesador de Tiempo Compartido
Consisten en Software FA sobre Hardware FA
Ejemplo: Sistemas Unix multiprocesador.
Objetivo: Ocultar a las aplicaciones que ejecutan sobre más de un procesador.
Aspectos considerados
- La cola de procesos dispuestos es única para todos los procesadores.
- Influencia de la caché en los cambios de contexto.
9. Aspectos clave en diseño de los S.O.D.
Transparencia, flexibilidad, confiabilidad, prestaciones y escalabilidad.
Transparencia:
Un SOD es transparente cuando es visto por el usuario y el programador como un
sistema convencional de tiempo compartido.
1. Transparencia a la ubicación
Los nombres de los recursos no están ligados a máquinas concretas:
Se prohíbe /pc_1/home/file4
2. Transparencia a la replicación
Los nombres de los ficheros son independientes de si están o no están
replicados y en que máquinas .
10. Aspectos clave en diseño de los S.O.D.
1. Transparencia a la concurrencia
• Un usuario no debe notar otros usuarios en el sistema.
• El acceso a un fichero debe ser independiente de que otros usuarios accedan al
fichero simultáneamente.
2. Transparencia al paralelismo
La más difícil de lograr:
• El compilador y el S.O. detectan el paralelismo intrínseco de la aplicación.
• Asignan los procesadores a las actividades del programa sin el concurso del
programador.
11. Aspectos clave en diseño de los S.O.D.
Flexibilidad Dos escuelas de sistemas operativos:
Sistemas operativos monolíticos
Sistemas operativos microkernel
Los sistemas operativos microkernel son más apropiados para los
S.O.D.
12. Aspectos clave en diseño de los S.O.D.
Confiabilidad
Una de las motivaciones de los S.O.D. es mejorar la confiabilidad global del
sistema.
Aspectos
a) Inconsistencia
Fiabilidad ⇒ Disponibilidad ⇒ Replicación (HW y SW) ⇒ Inconsistencia
Aumenta número de copias ⇒ Aumenta la probabilidad de inconsistencia
b) Seguridad
Crecen los problemas de seguridad en los S.O.D. porque aumenta el
número de mensajes en la red.
13. Aspectos clave en diseño de los S.O.D.
Prestaciones
Los S.O.D. pueden ser lentos
(Enviar un marco Ethernet tarda ≈ 1 ms) ⇒ No se venden
Solución:
Minimizar el número de mensajes en la red. ¿Cómo?
1. Identificando actividades con fuerte cohesión.
2. Estas actividades ejecutan en un máquina única.
14. Aspectos clave en diseño de los S.O.D.
Escalabilidad
• Los actuales sistemas abarcan
≈ cientos de máquinas
¿ Los métodos y algoritmos
⇒ utilizados en los sistemas actuales
• Los actuales sistemas abarcarán escalan adecuadamente ?
≈ cientos de miles de máquinas
Evitar SW centralizado:
1. Ninguna máquina debe tener toda la información sobre todo el sistema
2. Las máquinas toman decisiones basadas en su información local
3. El fallo de una de las máquinas no malogra el algoritmo.
No exige un reloj común.