Arquitectura de Sistemas Centralizados

Descargar como ppt, pdf o txt
Descargar como ppt, pdf o txt
Está en la página 1de 32

Arquitectura de Sistemas

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 Operativos Sistema Operativo Compartición de recursos,


Distribuidos en Red (Interoperabilidad)

Sistemas Cooperativos
Vista única de varias
 Sistema Operativo
computadoras
Distribuido
(Transparencia)

Sistema Trabajo cooperativo,


Cooperativa (Autonomía)
Capas de un Sistema
Operativo
La visión esquemática de un sistema operativo comprende los siguientes niveles:

• 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

Un sistema distribuido puede estar formado por multitud de elementos


conectados por redes LAN o WAN:
 Terminales X y Estaciones Java (Network Computer).
 PCs y estaciones de trabajo.
 Sistemas portátiles (redes móviles: GSM, WAP y ...)
 Minicomputadores.
 Supercomputadores.
 Multiprocesadores con memoria compartida o no.
 Servidores especializados (de almacenamiento, de impresión, ...).
 Sistemas empotrados.
Fomentada por los siguientes factores:
 Extensibilidad de los sistemas distribuidos.
 Especialización de los servidores.
Ventajas de los Sistemas
Distribuidos
 Economía: Buena relación rendimiento/coste
 Ley de Grosch (obsoleta):
Prestaciones = cte x (Precio)2

 Alto rendimiento: Procesamiento paralelo.


 Soporte de aplicaciones inherentemente distribuidas.
 Por ejemplo: empresa distribuida geográficamente
 Capacidad de crecimiento: Escalabilidad.
 Fiabilidad y disponibilidad: Tolerancia a (ciertos) fallos.
 Carácter abierto y heterogéneo:
 Estándares de interoperabilidad.
 Compartir recursos y datos.
Desventajas de los Sistemas
Distribuidos
 Necesidad de un nuevo tipo de software:
 Más complejo.
 No hay todavía un acuerdo sobre cómo debe ser.
 Red de interconexión introduce nuevos problemas:
 Pérdida de mensajes y saturación.
 Latencia puede provocar que al recibir un dato ya esté
obsoleto.
 La red es un elemento crítico.
 Seguridad y confidencialidad
Aplicaciones de los Sistemas
Distribuidos
 Servicios Internet: correo, noticias, Web, ... nuevos
servicios.
 Redes corporativas e intranets.
 Procesamiento paralelo:
 Procesamiento masivo (solución a la eficiencia).
 Topología distribuida (problemas de naturaleza distribuida)
 Sistemas distribuidos de gestión de bases de datos y
explotación de los mismos: e.j. Data Warehousing.
 Aplicaciones multimedia.
 Sistemas industriales distribuidos y aplicaciones de control.
 Sistemas distribuidos de tiempo real.
 ..... < y muchos más >
Distribución de los Sistemas
Operativos
 Sistemas operativos para multiprocesadores con
memoria compartida (SMP):
 Software fuertemente acoplado
 sobre Hardware fuertemente acoplado
 Sistema operativo distribuido (SOD):
 Software fuertemente acoplado
 sobre Hardware débilmente acoplado
 Sistema operativo en red:
 Software débilmente acoplado
 sobre Hardware débilmente acoplado
Sistemas
Operaiv
os
Distribui
dos
9
Sistemas Operativos para
SMPs
Arquitecturas de varios procesadores (2 a 8) con memoria
compartida de acceso uniforme (SMP: Simetric Multiprocesors)

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

Hardware Hardware Hardware


Objetivos de un Sistema
Distribuido
En general el desarrollo de sistemas distribuidos intenta
poner solución a los siguientes objetivos:
 Transparencia.
 Fiabilidad.
 Rendimiento.
 Capacidad de crecimiento.
 Flexibilidad.
 Seguridad.

Sistemas operativos distribuidos, sistemas en red y sistemas


cooperativos requieren diferentes facetas de estos
objetivos.
Transparencia

Existen varios perfiles de trasparencia:


 Acceso: Manera de acceder a recurso local igual que a remoto.
 Posición: Se accede a los recursos sin conocer su localización.
 Migración: Recursos pueden migrar sin afectar a los usuarios.
 Concurrencia: Acceso concurrente no afecta a los usuarios.
 Replicación: La existencia de réplicas no afecta a los usuarios.
 Fallos: La ocurrencia de fallos no afecta a los usuarios.
 Crecimiento: El crecimiento del sistema no afecta a los usuarios.
 Heterogeneidad:Carácter heterogéneo no afecta a los usuarios.

¿Es buena tanta transparencia?


 A veces el usuario precisa conocer cómo es el sistema subyacente
Fiabilidad

Fiabilidad como disponibilidad:


 Teóricamente: OR-lógico de sus componentes.
 En ciertos casos: AND-lógico de varios componentes.
 Mecanismos: redundancia y evitar componentes críticos.
 Tolerancia a fallos: Los componuentes pueden no caerse
pero funcionan de forma errónea.
Fiabilidad como coherencia:
 Se dificulta con la redundancia: inconsistencias

La fiabilidad está relacionada con la seguridad (otro


objetivo).
Sistemas
Operati
vos
Distribui
dos
18
Rendimiento

Rendimiento para un servicio multiusuario:


 Objetivo: Rendimiento no peor que un sistema centralizado
Rendimiento para la ejecución paralela de aplicaciones:
 Objetivo: Rendimiento proporcional a procesadores empleados

Factores:
 Mayor número de procesadores
 Elementos críticos:
 Especialmente la red: Latencia de la comunicación, uso de caches, ...

 Grano de paralelismo (relación proceso/comunicación).


 Replicación de elementos/tareas.
 Equilibrado de carga.
Capacidad de Crecimiento

Diseño de un sistema distribuido debe evitar “cuellos de


botella”:
 Componentes centralizados
 Tablas centralizadas
 Algoritmos centralizados

Problemática agravada por el número de elementos:


 Ninguna máquina tiene información completa del estado del
sistema
 Las decisiones se basan sólo en información disponible
localmente
 El fallo de una máquina no debe invalidar el algoritmo
 No debe asumir la existencia de un reloj global
Flexibilidad

Capacidad para ampliarlo o extenderlo con nuevas


funcionalidades de forma sencilla.

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.

 El resto, servicios a nivel de usuario.


Flexibilidad

Un elemento fundamental de la flexibilidad son los


sistemas abiertos.

El desarrollo de estos sistemas requiere:


 Sus interfaces y protocolos deberían ser públicos.
 Contrario a ”tecnología propietaria”.
 Uso de estándares siempre que sea posible.
 Disponibilidad de su código fuente (libremente o no).
 Regulación por parte de un colectivo (usuarios u
organizaciones) y no por particulares (fabricantes).
Componentes de un Sistema
Distribuido
El desarrollo de un sistema distribuido complejo requiere el
uso de las siguientes funciones y servicios:
 Servicios de comunicación.
 Sistemas de ficheros y nombrado distribuido.
 Servicios de sincronización y coordinación.
 Memoria compartida distribuida.
 Gestión de procesos.
 Servicio de seguridad.

Estas funcionalidades se plasman en elementos concretos del


sistema: componentes, protocolos, algoritmos, soporte
hardware/software, ...
Sistemas
Operaiv
os
Distribui
dos
23
Servicios de Comunicación

 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

Comprende los conceptos de:


 Tiempo en entornos distribuidos: Sincronización de relojes y
relojes lógicos.
 Concurrencia y Paralelismo: Exclusión mutua e interbloqueos.
 Algoritmos distribuidos: Elección de líder, coordinación, ...
 Transacciones: Propiedades ACID, modelos de
commit/rollback.

Afecta a otros servicios:


 Nombrado e identificación.
 Seguridad y fiabilidad.
 Comunicaciones.
 ...
Memoria Compartida
Distribuida (DSM)
Hardware:
 Memoria físicamente compartida.
 Memoria distribuida (lógicamente compartida).
 Acceso uniforme vs acceso no uniforme.

Distributed Shared Memory:


 Basada en páginas.
 Basada en variables compartidas.
 Basada en objetos.

Modelos de consistencia
Gestión de Procesos

 Taxonomía de los procesos:


 Niveles de granularidad.
 Congelación de procesos (persistencia).
 Migración de procesos (estado/código).

 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

Tipología de los ataques:


 Privacidad y confidencialidad.
 Autenticación (spoofing).
 Denegación de servicio.

Modelos y herramientas de seguridad:


 Cifrado: clave pública (RSA) y privada (DES).
 Protocolos de seguridad: IPsec, SSL.
 Certificados y firmas digitales: X.509.
 Elementos de seguridad: Firewalls.

Entornos seguros: e.g. Kerberos.


Notación

La asignatura tiene dos partes:


 Parte de la asignatura dependiente de “ciertas“ tecnologías:
 API de sockets.
 RPCs.
 CORBA.
 DCOM.
 Java: RMI, EJB y Jini.
 Parte de la asignatura independiente de tecnologías:
 Conceptos.
 Técnicas.
 Algoritmos.
 Estrategias de diseño.
Sistemas
Operati
vos
Distribui
dos
30
Notación y Formalismos

 Objetivo de la notación: No atar ninguna solución a una


tecnología concreta.

 Notaciones y formalismos usados:


 Pseudocódigo: Algoritmos y ejemplos.
 Objetos: Escenarios de interacción, patrones distribuidos.
 Formalismos matemáticos: Seguridad, sincronización.
 Metodologías y arquitecturas: Nomenclatura y semántica.

 Se optará por el más apropiado en cada caso.


 No debe ser un impedimento para entender el concepto.

También podría gustarte