--- Para regresar a mi pagina arechiga.50megs.com solo cierra esta ventana ---
SISTEMAS
DISTRIBUIDOS
Un Sistema Operativo Distribuido es un
conjunto de computadoras autónomas que aparecen ante los usuarios
del sistema como una
única máquina; estos sistemas son un
conjunto de procesadores que no comparten memoria ni reloj , pues
cada uno tiene su propia memoria
y los procesadores se comunican entre
si a través de diversos medios, como canales de alta velocidad o
líneas telefónicas, es decir el usuario percibe el sistema
como si fuera una sola computadora. Los procesadores de un sistema distribuido
pueden variar en tamaño y función e incluyen pequeños
microprocesadores estaciones de trabajo y sistemas de propósito
general. A estos procesadores se los conoce con distintos nombres: Instalaciones,
Nodos, Máquinas, etc. dependiendo del contexto en el que se mencionen.
Por lo general una Instalación(El Server) posee un recurso que otra
instalación(Cliente) desea usar. Los procesadores del sistema se
conectan a través de una red de comunicaciones y que puede configurarse
de varias maneras ya sea total o parcialmente. Por lo tanto podemos decir
que si el sistema se ve como un todo y actúa como un sistema de
tiempo compartido con un único procesador(aunque el sistema este
formado por varios procesadores) pero trabaja como un mono procesador virtual,
entonces podemos decir que estamos frente a un sistema distribuido.
Un S.O.D permite al usuario acceder a los diversos recursos de la red,
ofreciendo un entorno adecuado para compartir los mismos;el acceso a un
recurso compartido hace posible aumentar la velocidad de los cálculos,
ampliar la disponibilidad de datos y mejorar la confiabilidad.Este recurso
compartido puede lograrse con la migración de datos, cálculos
o trabajos.Los
sistemas operativos distribuidos
generalizan el acceso a la red
como una forma de acceder a un
archivo.
Un sistema operativo distribuido contempla varias funciones, entre las
que se encuentran:
En comparación con un sistema centralizado:
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.
Transparencia
(transparency)
· Definición: abstracción que permite al usuario o
al desarrollador desconocer los diferentes componentes del sistema
CONCURRENCIA
La concurrencia comprende un gran número de cuestiones de diseño,
incluyendo la comunicación entre procesos, compartición y
competencia por los recursos, sincronización de la ejecución
de varios procesos y asignación del tiempo de procesador a los procesos.
· Varias aplicaciones: La multiprogramación se creó
para permitir que el tiempo de procesador de la máquina fuese compartido
dinámicamente entre varios trabajos o aplicaciones activas.
PARALELISMO
Existen varios tipos de paralelismo, como son:
- Paralelismo independiente : no existe sincronización explícita
entre los procesos. Cada uno representa una aplicación o
trabajo separado e independiente. Un uso clásico de este tipo
de paralelismo de dan en sistemas de tiempo compartido.
- Paralelismo de grano grueso y muy grueso : existe una sincronización
entre los procesos pero a un nivel muy burdo. Este tipo de situación
se maneja fácilmente con un conjunto de procesos concurrentes ejecutando
en un monoprocesador multiprogramado y puede verse respaldado por
un multiprocesador
con escasos cambios o incluso ninguno
en el software del usuario.
Características
de un sistema Cliente/Servidor
·
Cómo podemos diferenciar entre un sistema C/S y un sistema sencillamente
conectado en red. Todo es muy parecido a las características de
los Sistemas Distribuidos, aunque especializándonos un poco.
Tipos
de Sistemas Cliente/Servidor
· Tipos:
4. Servidores Groupware
5. Servidores de Objetos
6. Servidores Web
"Pesadez" Cliente/Servidor
· Un modelo Cliente/Servidor puede distribuir la carga entre el
C y el S:
§ Mecanismos de comunicación global entre procesos
§ Mecanismos de protección global
§ Intrefaz de llamadas a sistema homogéneas
§ Distribución adecuada de los procesos en el sistema
· Mejor aprovechamiento de los recursos.
· Mayor poder de cómputo a más bajo costo.
· En teoría, mayor confiablidad, si se maneja suficiente
redundancia.
· Crecimiento incremental.
distribuído.
· La separación de componentes en inherente en un sistema
distribuído => acceso a recursos es un problema.
· Tipos de transparencia (ANSA Reference Manual, ISO's Reference
Model for Open Distributed Processing, [ISO RM ODP]:
1. t. de acceso: acceso a objetos locales o remotos de la misma manera.
2. t. de lugar: acceso a objetos sin conocer dónde están.
3. t. de concurrencia: varios
procesos pueden operar concurrentemente
usando objetos de información
compartidos sin
estorbarse.
4. t. de replicación: diferentes réplicas de un mismo objeto
de información sin enterarse a cuál se accede, ni diferencias
entre
ellos.
5. t. de fallo: aislamiento de fallos, de forma que las aplicaciones puedan
completar sus tareas.
6. t. de migración: permite mover los objetos de información
sin afectar a las aplicaciones.
7. t. de rendimiento: redistribución de cargas en el sistema sin
modificación en las aplicaciones.
8. t. de escalabilidad: permite asumir cambios de tamaño del sistema
y aplicaciones sin modificar la estructura del sistema ni
los algoritmos de los programas.
· Las más importantes: t. de acceso y de lugar: TRANSPARENCIA
DE RED.
La
concurrencia puede presentarse en tres contextos diferentes:
· Aplicaciones estructuradas: Como ampliación de los principios
del diseño modular y la programación estructurada, algunas
aplicaciones pueden implementarse eficazmente como un conjunto de procesos
concurrentes.
· Estructura del sistema operativo: Las mismas ventajas de estructuración
son aplicables a los programadores de sistemas y se ha comprobado que algunos
sistemas operativos están implementados como un conjunto de procesos.
-Paralelismo de grano fino : significa un uso del paralelismo mucho más
complejo que el que se consigue con el uso de hilos. Si bien gran parte
del trabajo se realiza en aplicaciones muy paralelas, este es un campo,
hasta el momento, muy especializado y fragmentado, con varias soluciones
diferentes.
.
Servicio
·
el cliente es un consumidor de servicios.
·
el servidor es un proveedor de servicios.
·
el modelo C/S nos da una separación limpia de funcionalidad basada
en la idea de SERVICIO.
.
Recursos compartidos
.
Protocolos asimétricos
· relación de muchos a uno.
· los clientes inician el diálogo, pidiendo un servicio.
· los servidores esperan de forma pasiva.
.
Transparencia de localización
.
"Mix-and-match"
· mezcla de plataformas, SSOO, etc.
.
Comunicación basada en el paso de mensajes.
.
Encapsulamiento de servicios
· petición de servicio = caja negra. El servidor es el especialista,
no el cliente, por lo que no ha de tener conocimiento alguno en el CÓMO,
sino en el QUÉ.
.
Escalabilidad
1. Horizontal: adición/eliminación de clientes, sin impacto.
2. Vertical: migración a servidores más grandes, o a multiservidores.
.
Integridad
1. Servidores de ficheros
· compartición de fichero (documentos, imágenes, BLOBS,
...).
2. Servidores de BBDD
· el servidor es quien procesa la consulta y devuelve los datos
=> el Cliente es ligero (Quest, Paradox), no como el servidor de fichero.
3. Servidores de transacciones
· el cliente invoca "procedimientos remotos" que residen en el servidor
con una base de datos SQL. Esos PRs ejecutan un conjunto de queries SQL
=> por red sólo se pasa un mensaje de petición y otro de
repuesta => On Line Transaction Processing: OLTP.
· se suele utilizar para sistemas críticos (1.3 segundos
de tiempo medio de respuesta).
· requieren: integridad, seguridad.
. TP Lite: basado en procedimientos almacenados.
. TP Heavy: TP Monitors.
1. Gestión de información semi-estructurada (texto, imágenes,
correo, bulletin boards, flujo de trabajo).
2. Ej: Lotus Notes.
· La aplicación C/S se escribe como un conjunto de objetos
comunicantes.
· Los objetos cliente se comunican con los objetos servidores mediante
un ORB (Object Request Broker):
1. el cliente invoca un método sobre un objeto remoto.
2. el ORB localiza la instancia de esa clase.
3. el ORB invoca el método pedido.
4. el ORB devuelve los resultados al objeto cliente.
· Los objetos servidores han de proveer soporte de Concurrencia
y Compartición.
· Ejemplos de OMG CORBA:
5. IBM's SOM 3.0.
6. Sun's NEO.
7. HP's ORBPlus.
8. Iona's ORBIX.
9. Visigenic's Visibroker.
· Aparte: Microsoft's DCOM.
· Idea básica: clientes universales, portables y pequeños
que hablan con servidores pesados: un servidor Web devuelve
documentos cuando un cliente los pide.
· Comunicación C/S mediante un sistema parecido al RPC: protocolo
HTTP.
· Primer paso hacia la red objetual (Object Web).
1. Cliente Pesado: más tradicional: servidores de fichero (ejercicio).
2. Servidor Pesado: groupware, Web, transacciones.
· Los objetos distribuídos dependerán.
· Las dos ideas pueden cooperar: groupware "all-in-one": servidores
de ficheros, transacciones y objetos.