Está en la página 1de 48

Procesos y

archivos
distribuidos

Mtro. Erick Ibarra Cruz

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 (migracin de procesos)

Capacidad global de procesamiento disponible para:

Servicio a mltiples usuarios

Ejecucin paralela de una aplicacin

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 porttiles (redes mviles: GSM, WAP y ...)

Minicomputadores.

Supercomputadores.

Multiprocesadores con memoria compartida o no.

Servidores especializados (de almacenamiento, de impresin, ...).

Sistemas empotrados.

Fomentada por los siguientes factores:

Extensibilidad de los sistemas distribuidos.

Especializacin de los servidores.

Ventajas de los Sistemas


Distribuidos

Economa: Buena relacin rendimiento/coste

Ley de Grosch (obsoleta):


Prestaciones = cte x (Precio)2

Alto rendimiento: Procesamiento paralelo.

Soporte de aplicaciones inherentemente distribuidas.

Por ejemplo: empresa distribuida geogrficamente

Capacidad de crecimiento: Escalabilidad.

Fiabilidad y disponibilidad: Tolerancia a (ciertos) fallos.

Carcter abierto y heterogneo:

Estndares de interoperabilidad.

Compartir recursos y datos.

Desventajas de los Sistemas


Distribuidos

Necesidad de un nuevo tipo de software:

Ms complejo.

No hay todava un acuerdo sobre cmo debe ser.

Red de interconexin introduce nuevos problemas:

Prdida de mensajes y saturacin.

Latencia puede provocar que al recibir un dato ya est obsoleto.

La red es un elemento crtico.

Seguridad y confidencialidad

Aplicaciones de los Sistemas


Distribuidos

Servicios Internet: correo, noticias, Web, ... nuevos servicios.

Redes corporativas e intranets.

Procesamiento paralelo:

Procesamiento masivo (solucin a la eficiencia).

Topologa distribuida (problemas de naturaleza distribuida)

Sistemas distribuidos de gestin de bases de datos y


explotacin de los mismos: e.g. Data Warehousing.

Aplicaciones multimedia.

Sistemas industriales distribuidos y aplicaciones de control.

Sistemas distribuidos de tiempo real.

..... < y muchos ms >

Distribucin 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 dbilmente acoplado

Sistema operativo en red:

Software dbilmente acoplado

sobre Hardware dbilmente acoplado

Sistemas Operativos para


SMPs

Arquitecturas de varios procesadores (2 a 8) con memoria


compartida de acceso uniforme (SMP: Simetric Multiprocesors)

Caractersticas:

Ligeras variaciones sobre versiones tradicionales.

Slo hay una copia del sistema operativo.

Concurrencia se traduce en paralelismo real ( tiempo


compartido).

Comercialmente aceptados (Linux, WinNT, Solaris, AIX, ...).

Plantea retos para: la ejecucin del ncleo en varios procesadores


(llamadas al sistema concurrentes) , los mecanismos de
sincronizacin (spin-locks), optimizacin y planificacin (afinidad al
procesador), ...

Sistemas Operativos
Distribuidos (SOD)
Definicin: [Gal00]

Un sistema operativo distribuido es un conjunto de procesadores


interconectados por redes que ocultan dicha caracterstica
mostrando una visin al usuario de uniprocesador virtual.

Caractersticas:

Ejecuta sobre un sistema distribuido haciendo creer a los usuarios


que se trata de un sistema centralizado.

Trasparencia: Debe ocultar factores derivados de la distribucin.

Es fcil de decir pero no de hacer.

Cada sistema alcanza hasta cierto punto esta meta.

Los fracasos pueden generar frustraciones en los usuarios.

Sistemas Operativos
Distribuidos (SOD)
Problemtica:

Cada nodo tiene su copia del sistema operativo: Qu tareas se


realizan localmente y cules son globales?

Cmo lograr exclusin mutua sin memoria compartida?

Cmo tratar los interbloqueos sin un estado global?

Planificacin de procesos: Cada copia del sistema operativo tiene su


cola de planificacin (migracin de procesos).

Cmo crear un rbol de ficheros nico?

Implicaciones de la falta de reloj nico, la presencia de fallos o la


heterogeneidad.

Principal aportacin:

Se han desarrollado nuevos conceptos y planteamientos que se han


podido trasladar a los otros modelos de sistemas distribuidos.

Evolucin de los SOD

Primeros SO de red:

Incluir servicios de red en SO convencional

Ejemplo: UNIX 4BSD (1980)

Paulatina incorporacin de ms funcionalidad:

Primeros SOD:

ONC de Sun (1985): incluye NFS, RPC, NIS

Nuevos SO pero basados en arquitecturas convencionales


(monolticas)
Ejemplo: Sprite de la Universidad de Berkeley (1988)

SOD basados en m-kernel. Ejemplos:

Mach de CMU (1986)

Amoeba diseado por Tanenbaum (1984)

Chorus de INRIA en Francia (1988)

Sistemas Operativos en Red


Definicin: [Cho97]
Red de computadoras dbilmente acopladas en las que no existe
un control externo directo sobre el hardware/software de cada
computadora para la comparticin de recursos.

Caractersticas:

No dan la visin de uniprocesador virtual (mquinas


independientes).

Cada una ejecuta una copia de sistema operativo (distinto).

Sistema operativo convencional + utilidades de red.

Protocolos de comunicacin para intercambio de recursos y acceso


a servicios de alto nivel.

Desde rcp/rlogin hasta Open Network Computing (ONC) de Sun.

Sistemas Cooperativos
Definicin: [Cho97]
Sistemas software orientados a servicios de alto nivel que
requieren el soporte de mecanismos de comunicacin en base a
los cuales los protocolos de comunicaciones de alto nivel se
construyen.

Caractersticas:

Se mantiene el grado de trasparencia sacrificando la visin de


nico sistema. Son sistemas autnomos independientes.

Se construyen en base a middlewares (CORBA, DCE, DCOM, ...)

Los sistemas resultan de la integracin de mltiples 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). Distributed Computing Environment

CORBA (Common Object Request Brocker Architecture) (OMG)


Estndar para objetos distribuidos.

...
Middleware
SO

SO

SO

Hardware

Hardware

Hardware

Objetivos de un Sistema
Distribuido

En general el desarrollo de sistemas distribuidos intenta poner


solucin 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.

Posicin: Se accede a los recursos sin conocer su localizacin.

Migracin: Recursos pueden migrar sin afectar a los usuarios.

Concurrencia: Acceso concurrente no afecta a los usuarios.

Replicacin: La existencia de rplicas 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:Carcter heterogneo no afecta a los usuarios.

Es buena tanta transparencia?

A veces el usuario precisa conocer cmo es el sistema subyacente

Fiabilidad
Fiabilidad como disponibilidad:

Tericamente: OR-lgico de sus componentes.

En ciertos casos: AND-lgico de varios componentes.

Mecanismos: redundancia y evitar componentes crticos.

Tolerancia a fallos: Los componuentes pueden no caerse pero


funcionan de forma errnea.

Fiabilidad como coherencia:

Se dificulta con la redundancia: inconsistencias

La fiabilidad est relacionada con la seguridad (otro objetivo).

Rendimiento
Rendimiento para un servicio multiusuario:

Objetivo: Rendimiento no peor que un sistema centralizado

Rendimiento para la ejecucin paralela de aplicaciones:

Objetivo: Rendimiento proporcional a procesadores empleados

Factores:

Mayor nmero de procesadores

Elementos crticos:

Especialmente la red: Latencia de la comunicacin, uso de caches, ...

Grano de paralelismo (relacin proceso/comunicacin).

Replicacin de elementos/tareas.

Equilibrado de carga.

Capacidad de Crecimiento
Diseo de un sistema distribuido debe evitar cuellos de
botella:

Componentes centralizados

Tablas centralizadas

Algoritmos centralizados

Problemtica agravada por el nmero de elementos:

Ninguna mquina tiene informacin completa del estado del sistema

Las decisiones se basan slo en informacin disponible localmente

El fallo de una mquina 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.

Definicin de responsabilidades:

Sistemas con -kernel:

Comunicacin entre procesos.

Cierta administracin de memoria.

Administracin y planificacin 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 deberan ser pblicos.

Contrario a tecnologa propietaria.

Uso de estndares siempre que sea posible.

Disponibilidad de su cdigo fuente (libremente o no).

Regulacin 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 comunicacin.

Sistemas de ficheros y nombrado distribuido.

Servicios de sincronizacin y coordinacin.

Memoria compartida distribuida.

Gestin de procesos.

Servicio de seguridad.

Estas funcionalidades se plasman en elementos concretos del


sistema: componentes, protocolos, algoritmos, soporte
hardware/software, ...

Evolucin de los Sistemas Operativos

Sistemas Operativos
Centralizados.

Sistemas Operativos
en Red

Sistemas Operativos
Distribuidos

Sistemas Cooperativos

Servicios de Comunicacin

Modelos de interaccin:

Cliente/servidor: (2-niveles, 3-niveles o n-niveles)

Peer-to-peer: Equilibrio de roles.

Intermediarios: Proxy, Dispacher, Caches, ...

Unicast vs Multicast

Fiabilidad.

Sncronos vs Asncronos

Tecnologas de comunicacin:

Paso de mensajes: Berkeley sockets.

Llamada a procedimientos remotos: RPC.

Tecnologas de objetos distribuidos: CORBA, DCOM, EJB

Cdigo mvil: Entornos de agentes.

Consultar: https://www.youtube.com/watch?v=hLI2hGP30ws

Sistemas de Ficheros
Distribuidos
Identificacin, localizacin 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.

Replicacin y coherencia.

Servicios de Sincronizacin y
Coordinacin
Comprende los conceptos de:

Tiempo en entornos distribuidos: Sincronizacin de relojes y relojes


lgicos.

Concurrencia y Paralelismo: Exclusin mutua e interbloqueos.

Algoritmos distribuidos: Eleccin de lder, coordinacin, ...

Transacciones: Propiedades ACID, modelos de commit/rollback.

Afecta a otros servicios:

Nombrado e identificacin.

Seguridad y fiabilidad.

Comunicaciones.

...

Memoria Compartida
Distribuida (DSM)
Hardware:

Memoria fsicamente compartida.

Memoria distribuida (lgicamente compartida).

Acceso uniforme vs acceso no uniforme.

Distributed Shared Memory:

Basada en pginas.

Basada en variables compartidas.

Basada en objetos.

Modelos de consistencia

Gestin de Procesos

Taxonoma de los procesos:

Niveles de granularidad.

Congelacin de procesos (persistencia).

Migracin de procesos (estado/cdigo).

Planificacin de procesos:

Planificacin interna: Procesos y threads.

Planificacin global.

Migracin y equilibrado de carga.

Aprovechamiento de mquinas inactivas.

Servicio de Seguridad
Tipologa de los ataques:

Privacidad y confidencialidad.

Autenticacin (spoofing).

Denegacin de servicio.

Modelos y herramientas de seguridad:

Cifrado: clave pblica (RSA) y privada (DES).

Protocolos de seguridad: IPsec, SSL.

Certificados y firmas digitales: X.509.

Elementos de seguridad: Firewalls.

Entornos seguros: e.g. Kerberos.

Procesos e hilos

Un proceso es una entidad que posee 2 caractersticas


importantes:

Recursos:

Planificacin/Ejecucin:

Bsicamente: un espacio de direcciones


(programas, datos y pila y un PCB), archivos, memoria,
etc. El SOP realiza la funcin de proteccin para evitar
interferencias no deseadas entre procesos en relacin
con los recursos.
El proceso sigue una
ruta de ejecucin. Tiene un PC, un Estado de ejecucin
(Listo, bloqueado, ejecutndose, etc.) y una
prioridad.999).

Procesos e hilos

Estas dos caractersticas son independientes y pueden


ser tratadas como tales por los sistemas de operacin.

En algunos sistemas de operacin se le denomina a la


unidad activa hilo (thread) y a la unidad propietaria de
recursos se le suele denominar proceso o tarea.

Procesos y archivos distribuidos

Unidad 2. 2.1 Hilos


2.2 Comunicacin
2.2.1 Llamado a procedimientos remotos
2.2.2 Paso de mensajes
2.3 Sincronizacin
2.3.1 Relojes
2.3.2 Exclusin mutua
2.4 Sistemas de archivos distribuidos

Procesos y archivos distribuidos

Unidad 2. 2.1 Hilos


2.2 Comunicacin
2.2.1 Llamado a procedimientos remotos
2.2.2 Paso de mensajes
2.3 Sincronizacin
2.3.1 Relojes
2.3.2 Exclusin mutua
2.4 Sistemas de archivos distribuidos

Procesos y archivos distribuidos

Unidad 2. 2.1 Hilos


2.2 Comunicacin
2.2.1 Llamado a procedimientos remotos
2.2.2 Paso de mensajes
2.3 Sincronizacin
2.3.1 Relojes
2.3.2 Exclusin mutua
2.4 Sistemas de archivos distribuidos

Procesos y archivos distribuidos

Unidad 2. 2.1 Hilos


2.2 Comunicacin
2.2.1 Llamado a procedimientos remotos
2.2.2 Paso de mensajes
2.3 Sincronizacin
2.3.1 Relojes
2.3.2 Exclusin mutua
2.4 Sistemas de archivos distribuidos

Procesos y archivos distribuidos

Unidad 2. 2.1 Hilos


2.2 Comunicacin
2.2.1 Llamado a procedimientos remotos
2.2.2 Paso de mensajes
2.3 Sincronizacin
2.3.1 Relojes
2.3.2 Exclusin mutua
2.4 Sistemas de archivos distribuidos

Procesos y archivos distribuidos

Unidad 2. 2.1 Hilos


2.2 Comunicacin
2.2.1 Llamado a procedimientos remotos
2.2.2 Paso de mensajes
2.3 Sincronizacin
2.3.1 Relojes
2.3.2 Exclusin mutua
2.4 Sistemas de archivos distribuidos

Procesos y archivos distribuidos

Unidad 2. 2.1 Hilos


2.2 Comunicacin
2.2.1 Llamado a procedimientos remotos
2.2.2 Paso de mensajes
2.3 Sincronizacin
2.3.1 Relojes
2.3.2 Exclusin mutua
2.4 Sistemas de archivos distribuidos

Procesos y archivos distribuidos

Unidad 2. 2.1 Hilos


2.2 Comunicacin
2.2.1 Llamado a procedimientos remotos
2.2.2 Paso de mensajes
2.3 Sincronizacin
2.3.1 Relojes
2.3.2 Exclusin mutua
2.4 Sistemas de archivos distribuidos

Diseo del ttulo y del contenido con


grfico
6

4
Serie 1
Serie 2
Serie 3

Categora 1

Categora 2

Categora 3

Categora 4

Diseo de dos contenidos con tabla

Primera vieta

Segunda vieta

Tercera vieta

Grupo 1

Grupo 2

Clase 1

82

95

Clase 2

76

88

Clase 3

84

90

Diseo de dos contenidos con


SmartArt

Primera vieta

Segunda vieta

Tercera vieta

Haga clic en el icono para agregar


una imagen

También podría gustarte