Arquitectura de Sistemas Centralizados
Arquitectura de Sistemas Centralizados
Arquitectura de Sistemas Centralizados
Centralizados
Único computador (caro y de gran potencia) con terminales
alfanuméricos directamente conectados.
Entornos de empresa:
Soporte multiusuario
Uso de mainframes o minicomputadores
Entornos científicos:
Ejecución eficiente de aplicaciones
Uso de supercomputadores
Uso ocasional de la red:
Transferir ficheros o logins remotos
Interfaz de usuario poco amigable
Interfaces gráficas gastan muchos recursos
Arquitectura de Sistemas
Distribuidos
Conjunto de procesadores conectados por una red
Cada usuario tiene capacidad de procesamiento local
que permite interfaces de usuario sofisticadas.
Uso intensivo de la red para compartir recursos:
dispositivos
datos
procesadores (migración de procesos)
Capacidad global de procesamiento disponible para:
Servicio a múltiples usuarios
Ejecución paralela de una aplicación
Sistemas
Operaiv
os
Distribui
dos
1
Evolución de los Sistemas
Sistemas Operativos
Operativos
Sistema Objetivos
Centralizados.
Gestión de recursos,
Sistema Operativo
“Máquina extendida”,
Sistemas Operativos en Red Centralizado
(Virtualidad)
Sistemas Cooperativos
Vista única de varias
Sistema Operativo
computadoras
Distribuido
(Transparencia)
• Hardware. Usuarios
• Núcleo (kernel). Aplicaciones
• Servicios del sistema.
Servicios
• Programas de aplicación.
Kernel
• Usuarios.
Hardware
Responsabilidades del Kernel
Servicios Kernels Monolíticos:
Muchas funcionalidades dentro del kernel:
Kernel
planificador, gestión de memoria, drivers,...
Computadora
m-Kernels:
Se sacan funcionalidades del kernel. Sólo quedan: Servicios
(i) comunicación entre procesos, (ii) administración m-Kernel
de memoria, (iii) administración y planificación de
Computadora
bajo nivel y (iv) entrada/salida de bajo nivel
Servicios Distribuidos:
Servicios Estructura de sistema distribuido. Dependiendo
del nivel se habla de: Sistema Operativo
m-Kernel m-Kernel m-Kernel
Distribuido, Sistema en Red o (Cooperativo).
Heterogeneidad de un Sistema Distribuido
Características:
“Ligeras” variaciones sobre versiones tradicionales.
Sólo hay una copia del sistema operativo.
Concurrencia se traduce en paralelismo real ( tiempo
compartido).
Comercialmente aceptados (Linux, WinNT, Solaris, AIX, ...).
Plantea retos para: la ejecución del núcleo en varios
procesadores (llamadas al sistema concurrentes) , los
mecanismos de sincronización (spin-locks), optimización y
planificación (afinidad al procesador), ...
Sistemas Operativos
Distribuidos (SOD)
Definición: [Gal00]
Un sistema operativo distribuido es un conjunto de
procesadores interconectados por redes que ocultan dicha
característica mostrando una visión al usuario de
“uniprocesador virtual”.
Características:
Ejecuta sobre un sistema distribuido haciendo creer a los
usuarios que se trata de un sistema centralizado.
Trasparencia: Debe ocultar factores derivados de la
distribución.
Es fácil de decir pero no de hacer.
Cada sistema alcanza hasta cierto punto esta meta.
Los fracasos pueden generar frustraciones en los usuarios.
Sistemas
Operati
vos
Distribui
os
11
Sistemas Operativos
Distribuidos (SOD)
Problemática:
Cada nodo tiene su copia del sistema operativo: ¿Qué tareas se
realizan localmente y cuáles son globales?
¿Cómo lograr exclusión mutua sin memoria compartida?
¿Cómo tratar los interbloqueos sin un estado global?
Planificación de procesos: Cada copia del sistema operativo
tiene su cola de planificación (migración de procesos).
¿Cómo crear un árbol de ficheros único?
Implicaciones de la falta de reloj único, la presencia de fallos
o la heterogeneidad.
Principal aportación:
Se han desarrollado nuevos conceptos y planteamientos que se
han podido trasladar a los otros modelos de sistemas
distribuidos.
Sistemas Operativos en Red
Definición: [Cho97]
Red de computadoras débilmente acopladas en las que no
existe un control externo directo sobre el hardware/software
de cada computadora para la compartición de recursos.
Características:
No dan la visión de uniprocesador virtual (máquinas
independientes).
Cada una ejecuta una copia de sistema operativo (distinto).
Sistema operativo convencional + utilidades de red.
Protocolos de comunicación para intercambio de recursos y
acceso a servicios de alto nivel.
Desde rcp/rlogin hasta Open Network Computing (ONC) de
Sun.
Sistemas Cooperativos
Definición: [Cho97]
Sistemas software orientados a servicios de alto nivel que
requieren el soporte de mecanismos de comunicación en base
a los cuales los protocolos de comunicaciones de alto nivel se
construyen.
Características:
Se mantiene el grado de trasparencia sacrificando la visión de
único sistema. Son sistemas autónomos independientes.
Se construyen en base a middlewares (CORBA, DCE, DCOM, ...)
Los sistemas resultan de la integración de múltiples servicios
proporcionados por diferentes elementos de la red.
Middleware
Middleware:
Capa de software que ejecuta sobre el sistema operativo local ofreciendo unos
servicios distribuidos estandarizados.
Sistema abierto independiente del fabricante.
No depende del hardware y sistema operativo subyacente.
Ejemplos:
DCE (Open Group).
CORBA (OMG).
...
Middleware
SO SO SO
Factores:
Mayor número de procesadores
Elementos críticos:
Especialmente la red: Latencia de la comunicación, uso de caches, ...
Definición de responsabilidades:
Sistemas con m-kernel:
Comunicación entre procesos.
Cierta administración de memoria.
Administración y planificación de procesos (limitada y de bajo
nivel).
Entrada/salida de bajo nivel.
Modelos de interacción:
Cliente/servidor: (2-niveles, 3-niveles o n-niveles)
Peer-to-peer: Equilibrio de roles.
Intermediarios: Proxy, Dispacher, Caches, ...
Unicast vs Multicast
Fiabilidad.
Síncronos vs Asíncronos
Tecnologías de comunicación:
Paso de mensajes: Berkeley sockets.
Llamada a procedimientos remotos: RPC.
Tecnologías de objetos distribuidos: CORBA, DCOM, EJB
Código móvil: Entornos de agentes.
Sistemas de Ficheros
Distribuidos
Identificación, localización y acceso a elementos del entorno
distribuido.
Comprende:
Sistemas de ficheros distribuidos (SFD): NFS, AFS.
Servicios de nombres: DNS, COS-Naming (CORBA).
Servicios de directorio: X.500, LDAP, JNDI.
Cuestiones:
Arquitectura de los servicios.
Almacenamiento intermedio: caching.
Replicación y coherencia.
Servicios de Sincronización y Coordinación
Modelos de consistencia
Gestión de Procesos
Planificación de procesos:
Planificación interna: Procesos y threads.
Planificación global.
Migración y equilibrado de carga.
Aprovechamiento de máquinas inactivas.
Servicio de Seguridad