Sei sulla pagina 1di 53

UNIVERSIDAD RMULO GALLEGOS REA DE SISTEMAS FACULTAD DE INGENIERIA EN INFORMTICA ASIGNATURA: SISTEMAS DISTRIBUIDOS

Prof. Caleb Betancourt

SISTEMAS DISTRIBUIDOS GUIA 1

Sistemas Distribuidos
Temario de la Materia.
Temas y Definiciones: 1.- Sistemas Distribuidos. 1.1.- Introduccin, definicin, caractersticas, ventajas y desventajas. 1.2.- Factores que han impedido el desarrollo de los SD. 1.3.- Categoras de los SD. 2.- Sistemas Operativos Distribuidos. 2.1.- Definicin, caractersticas. 2.2.- Complejidad y aspectos que intervienen en el diseo de un SOD. 2.2.1.- Conocimiento Global, Caractersticas. 2.2.2.- Nomenclatura, Caractersticas. 2.2.3.- Escalabilidad. 2.2.4.- Complejidad, nivel binario, nivel de ejecucin, nivel de protocolo. 2.2.5.- Sincronizacin de Procesos, caractersticas. 2.2.6.- Seguridad. 2.2.7.- Estructuracin. 3.- Modelos Cliente-Servidor. 3.0.- Definicin.

3.1.- Arquitecturas, beneficios, Arquitecturas Cliente-Servidor de 2 y 3 capas. 3.2.- Cliente, definicin, caractersticas, funciones. 3.3.- Servidor, Definicin, tipos, funciones. 3.4.- Redes de comunicacin, Caractersticas. 3.5.- Clasificacin de los Sistemas Cliente-Servidor. 3.6.- Arquitecturas en los SD. 3.6.1.- Representacin Distribuida. 3.6.2.- Representacin Remota. 3.6.3.- Lgica Distribuida. 3.6.4.- Gestin Remota de Datos. 3.6.5.- Base de Datos Distribuida. 3.6.7.- Cliente Servidor a Tres Niveles. 4.- Servicios de un Sistema de Archivos. 4.1.- Servicios de archivos y directorios. 5.- Interface de un Servicio de Archivos. 5.1.- Modelo Carga-Descarga. 5.2.- Modelo de Acceso Remoto. 6.- Procesamiento de Transacciones. 6.1.- Motivos del uso de transacciones, definicin. 7.- Llamadas a Procedimientos Remotos (RPC). 8.- Protocolos de Comunicacin. 8.1.- Definicin e Importancia.

9.- Middleware. 9.1.- Definicin, Tipos, Caractersticas. 10.- Sincronizacin de Sistemas Distribuidos. 10.1.- Reloj, Algoritmos. 10.2.- Exclusin Mutua, Algoritmos no basados en paso de mensajes y basados en paso de mensajes. 10.3.- Eleccin. 10.4.- Bloqueos de Sistemas Distribuidos. 11.- Seguridad. 11.1.- Seguridad externa e interna, vigilancia, verificacin de amenazas, criptografa, utilidad. 12.- Grid.

Sistemas Distribuidos
Definicin: Coleccin de elementos de cmputo autnomo que se

encuentran fsicamente separados y no comparten una memoria comn, se comunican entre s a travs del intercambio de mensajes utilizando un medio de comunicacin. "Sistemas cuyos componentes hardware y software, que estn en ordenadores conectados en red, se comunican y coordinan sus acciones mediante el paso de mensajes, para el logro de un objetivo. Se establece la comunicacin mediante un protocolo prefijado por un esquema cliente-servidor". CARACTERSTICAS CLAVE DE LOS SISTEMAS DISTRIBUIDOS
.- Cada elemento de cmputo tiene su propia memoria y su propio Sistema Operativo. .- Control de recursos locales y remotos. .- Sistemas Abiertos (Facilidades de cambio y crecimiento). .- Plataforma no estndar (Unix, NT, Intel, RISC, Etc.). .- Medios de comunicacin (Redes, Protocolos, Dispositivos, Etc.). .- Capacidad de Procesamiento en paralelo. .- Dispersin y parcialidad.

Comparticin de Recursos El trmino 'recurso' es bastante abstracto, pero es el que mejor caracteriza el abanico de entidades que pueden compartirse en un sistema distribuido. El abanico se extiende desde componentes

hardware como discos e impresoras hasta elementos software como ficheros, ventanas, bases de datos y otros objetos de datos. La idea de comparticin de recursos no es nueva ni aparece en el marco de los sistemas distribuidos. Los sistemas multiusuario clsicos desde siempre han provisto comparticin de recursos entre sus usuarios. Sin embargo, los recursos de una computadora multiusuario se comparten de manera natural entre todos sus usuarios. Por el contrario, los usuarios de estaciones de trabajo monousuario o computadoras personales dentro de un sistema distribuido no obtienen automticamente los beneficios de la comparticin de recursos. Los recursos en un sistema distribuido estn fsicamente encapsulados en una de las computadoras y slo pueden ser accedidos por otras computadoras mediante las comunicaciones (la red). Para que la comparticin de recursos sea efectiva, sta debe ser manejada por un programa que ofrezca un interfaz de comunicacin permitiendo que el recurso sea accedido, manipulado y actualizado de una manera fiable y consistente. Surge el trmino genrico de gestor de recursos. Un gestor de recursos es un mdulo software que maneja un conjunto de recursos de un tipo en particular. Cada tipo de recurso requiere algunas polticas y mtodos especficos junto con requisitos comunes para todos ellos. stos incluyen la provisin de un esquema de nombres para cada clase de recurso, permitir que los recursos individuales sean accedidos desde cualquier localizacin; la traslacin de nombre de recurso a direcciones de comunicacin y la coordinacin de los accesos concurrentes que cambian el estado de los recursos compartidos para mantener la consistencia. Un sistema distribuido puede verse de manera abstracta como un conjunto de gestores de recursos y un conjunto de programas que usan los recursos. Los usuarios de los recursos se comunican con los gestores

de los recursos para acceder a los recursos compartidos del sistema. Esta perspectiva nos lleva a dos modelos de sistemas distribuidos: el modelo cliente-servidor y el modelo basado en objetos. Apertura (opennesss) Un sistema informtico es abierto si el sistema puede ser extendido de diversas maneras. Un sistema puede ser abierto o cerrado con respecto a extensiones hardware (aadir perifricos, memoria o interfaces de comunicacin, etc.) o con respecto a las extensiones software (aadir caractersticas al sistema operativo, protocolos de comunicacin y servicios de comparticin de recursos, etc.). La apertura de los sistemas distribuidos se determina primariamente por el grado hacia el que nuevos servicios de comparticin de recursos se pueden aadir sin perjudicar ni duplicar a los ya existentes. Bsicamente caractersticas: * Los interfaces software clave del sistema estn claramente los sistemas distribuidos cumplen una serie de

especificados y se ponen a disposicin de los desarrolladores. En una palabra, los interfaces se hacen pblicos. * Los sistemas distribuidos abiertos se basan en la provisin de un mecanismo uniforme de comunicacin entre procesos e interfaces publicados para acceder a recursos compartidos. * Los sistemas distribuidos abiertos pueden construirse a partir de hardware y software heterogneo, posiblemente proveniente de vendedores diferentes. Pero la conformidad de cada componente con el estndar publicado debe ser cuidadosamente comprobada y certificada si se quiere evitar tener problemas de integracin. Concurrencia

Cuando existen varios procesos en una nica mquina se dice que se estn ejecutando concurrentemente. Si el ordenador est equipado con un nico procesador central, la concurrencia tiene lugar entrelazando la ejecucin de los distintos procesos. Si la computadora tiene N procesadores, entonces se pueden estar ejecutando estrictamente a la vez hasta N procesos. En los sistemas distribuidos hay muchas mquinas, cada una con uno o ms procesadores centrales. Es decir, si hay M ordenadores en un sistema distribuido con un procesador central cada una entonces tendr hasta M procesos ejecutndose en paralelo. En un sistema distribuido que est basado en el modelo de comparticin de recursos, la posibilidad de ejecucin paralela ocurre por dos razones: - Muchos usuarios interactan simultneamente con programas de aplicacin. - Muchos procesos servidores se ejecutan concurrentemente, cada uno respondiendo a diferentes peticiones de los procesos clientes. El caso (1) es menos conflictivo, ya que normalmente las aplicaciones de interaccin se ejecutan aisladamente en la estacin de trabajo del usuario y no entran en conflicto con las aplicaciones ejecutadas en las estaciones de trabajo de otros usuarios. El caso (2) surge debido a la existencia de uno o ms procesos servidores para cada tipo de recurso. Estos procesos se ejecutan en distintas mquinas, de manera que se estn ejecutando en paralelo diversos servidores, junto con diversos programas de aplicacin. Las peticiones para acceder a los recursos de un servidor dado pueden ser encoladas en el servidor y ser procesadas secuencialmente o bien pueden ser procesadas varias concurrentemente por mltiples instancias del proceso gestor de recursos. Cuando esto ocurre los procesos

servidores deben sincronizar sus acciones para asegurarse de que no existen conflictos. La sincronizacin debe ser cuidadosamente planeada para asegurar que no se pierden los beneficios de la concurrencia. Escalabilidad Los sistemas distribuidos operan de manera efectiva y eficiente a muchas escalas diferentes. La escala ms pequea consiste en dos estaciones de trabajo y un servidor de ficheros, mientras que un sistema distribuido construido alrededor de una red de rea local simple podra contener varios cientos de estaciones de trabajo, varios servidores de ficheros, servidores de impresin y otros servidores de propsito especfico. A menudo se conectan varias redes de rea local para formar internetworks, y stas podran contener muchos miles de ordenadores que forman un nico sistema distribuido, permitiendo que los recursos sean compartidos entre todos ellos. Tanto el software de sistema como el de aplicacin no deberan cambiar cuando la escala del sistema se incrementa. La necesidad de escalabilidad no es slo un problema de prestaciones de red o de hardware, sino que esta ntimamente ligada con todos los aspectos del diseo de los sistemas distribuidos. El diseo del sistema debe reconocer explcitamente la necesidad de escalabilidad o de lo contrario aparecern serias limitaciones. La demanda de escalabilidad en los sistemas distribuidos ha conducido a una filosofa de diseo en que cualquier recurso simple -hardware o software- puede extenderse para proporcionar servicio a tantos usuarios como se quiera. Esto es, si la demanda de un recurso crece, debera ser posible extender el sistema para dar el servicio. Por ejemplo, la frecuencia con la que se accede a los ficheros crece cuando se incrementa el nmero de usuarios y estaciones de trabajo en un sistema distribuido. Entonces, debe ser posible aadir ordenadores servidores

para evitar el cuello de botella que se producira si un solo servidor de ficheros tuviera que manejar todas las peticiones de acceso a los ficheros. En este caso el sistema deber estar diseado de manera que permita trabajar con ficheros replicados en distintos servidores, con las consideraciones de consistencias que ello conlleva. Cuando el tamao y complejidad de las redes de ordenadores crece, es un objetivo primordial disear software de sistema distribuido que seguir siendo eficiente y til con esas nuevas configuraciones de la red. Resumiendo, el trabajo necesario para procesar una peticin simple para acceder a un recurso compartido debera ser prcticamente independiente del tamao de la red. Las tcnicas necesarias para conseguir estos objetivos incluyen el uso de datos replicados, la tcnica asociada de caching, y el uso de mltiples servidores para manejar ciertas tareas, aprovechando la concurrencia para permitir una mayor productividad. Tolerancia a Fallos Los sistemas informticos a veces fallan. Cuando se producen fallos en el software o en el hardware, los programas podran producir resultados incorrectos o podran pararse antes de terminar la computacin que estaban realizando. El diseo de sistemas tolerantes a fallos se basa en dos cuestiones, complementarias entre s: Redundancia hardware (uso de componentes redundantes) y recuperacin del software (diseo de programas que sean capaces de recuperarse de los fallos). En los sistemas distribuidos la redundancia puede plantearse en un grano mas fino que el hardware, pueden replicarse los servidores individuales que son esenciales para la operacin continuada de aplicaciones crticas.

La recuperacin del software tiene relacin con el diseo de software que sea capaz de recuperar (roll-back) el estado de los datos permanentes antes de que se produjera el fallo. Los sistemas distribuidos tambin proveen un alto grado de

disponibilidad en la vertiente de fallos hardware. La disponibilidad de un sistema es una medida de la proporcin de tiempo que est disponible para su uso. Un fallo simple en una maquina multiusuario resulta en la no disponibilidad del sistema para todos los usuarios. Cuando uno de los componentes de un sistema distribuidos falla, slo se ve afectado el trabajo que estaba realizando el componente averiado. Un usuario podra desplazarse a otra estacin de trabajo; un proceso servidor podra ejecutarse en otra mquina. Transparencia La transparencia se define como la ocultacin al usuario y al programador de aplicaciones de la separacin de los componentes de un sistema distribuido, de manera que el sistema se percibe como un todo, en vez de una coleccin de componentes independientes. La transparencia ejerce una gran influencia en el diseo del software de sistema. Las transparencias definidas son: * Transparencia de Acceso: Permite el acceso a los objetos de informacin remotos de la misma forma que a los objetos de informacin locales. * Transparencia de Localizacin: Permite el acceso a los objetos de informacin sin conocimiento de su localizacin

* Transparencia de Concurrencia: Permite que varios procesos operen concurrentemente utilizando objetos de informacin compartidos y de forma que no exista interferencia entre ellos. * Transparencia de Replicacin: Permite utilizar mltiples instancias de los objetos de informacin para incrementar la fiabilidad y las prestaciones sin que los usuarios o los programas de aplicacin tengan por qu conocer la existencia de las rplicas. * Transparencia de Fallos: Permite a los usuarios y programas de aplicacin completar sus tareas a pesar de la ocurrencia de fallos en el hardware o en el software. * Transparencia de Migracin: Permite el movimiento de objetos de informacin dentro de un sistema sin afectar a los usuarios o a los programas de aplicacin. * Transparencia de Prestaciones: Permite que el sistema sea reconfigurado para mejorar las prestaciones mientras la carga vara. * Transparencia de Escalado: Permite la expansin del sistema y de las aplicaciones sin cambiar la estructura del sistema o los algoritmos de la aplicacin. Las dos ms importantes son las transparencias de acceso y de localizacin; su presencia o ausencia afecta fuertemente a la utilizacin de los recursos distribuidos. A menudo se las denomina a ambas transparencias de red. La transparencia de red provee un grado similar de anonimato en los recursos al que se encuentra en los sistemas centralizados. Ventajas: .- Procesadores ms poderosos y a menos costos

Desarrollo de Estaciones con ms capacidades

Las estaciones satisfacen las necesidades de los usuarios. Uso de nuevas interfaces.

.- Avances en la Tecnologa de Comunicaciones.


Disponibilidad de elementos de Comunicacin. Desarrollo de nuevas tcnicas.

.- Comparticin de Recursos.

Dispositivos (Hardware). Programas (Software).

.- Eficiencia y Flexibilidad.

Respuesta Rpida. Ejecucin Concurrente de procesos (En varias computadoras). Empleo de tcnicas de procesamiento distribuido.

.- Disponibilidad y Confiabilidad.

Sistema poco propenso a fallas (Si un componente no afecta a la disponibilidad del sistema).

Mayores servicios que elevan la funcionalidad (Monitoreo, Telecontrol, Correo Elctrico, Etc.).

.- Crecimiento Modular.

Es inherente al crecimiento. Inclusin rpida de nuevos recursos. Los recursos actuales no afectan.

Desventajas
Requerimientos de mayores controles de procesamiento. Velocidad de propagacin de informacin (Muy lenta a veces).

Servicios de replicacin de datos y servicios con posibilidades de fallas.

Mayores controles de acceso y proceso (Commit). Administracin ms compleja. Costos.

Factores que han impedido el desarrollo de los Sistemas Distribuidos

.- Avances Tecnolgicos. .- Nuevos requerimientos. .- Globalizacin

.- Aspectos Externos (Culturales, Polticos, Econmicos). .- Integracin.

Categoras de los Sistemas Distribuidos .- Modelo de Minicomputadoras.

Varias computadoras que soportan diferentes usuarios cada una y provee acceso a recursos remotos.

Por lo menos un usuario por cada computadora ( CPU < Usuarios ).

.- Modelo de Estacin de Trabajo. Varias estaciones (Por lo general cientos), donde cada usuario cuenta con una estacin de trabajo (ET) y realiza en ella todo su trabajo. Requiere de un Sistema Operativo que soporte funciones de acceso y control remoto.

Un microprocesador por cada usuario ( CPU = Usuarios).

Las estaciones de trabajo cuentan con Interfaces Grficas, CPU potentes y Memorias propias.

.- Modelo microprocesadores en Pooling. Trata de utilizar uno o ms microprocesadores dependiendo de las necesidades de los usuarios. Primero los procesadores completan su tarea y posteriormente regresan a esperar una nueva asignacin.

El nmero de microprocesadores normalmente es mayor a uno por usuario (CPU > Usuarios).

Sistemas Operativos Distribuidos Definicin Extiende el concepto de administracin de recursos e interfaces con el usuario hacia computadoras de memoria compartida para formar un sistema Operativo Distribuido, el cual consiste en varias computadoras autnomas conectadas por una red de comunicaciones. S.O + Administracin de Recursos Remotos + Entorno de Red Caractersticas: .- Para cada uno de los usuarios debe de ser similar al trabajo en el Sistema Centralizado. .- Se ejecuta en mltiples Computadoras. .- Tiene varias copias del mismo Sistema Operativo o de diferentes Sistemas Operativos que proveen los mismos servicios. .- Transparencia (El uso de mltiples procesadores y el acceso remoto debe de ser invisible)

Complejidad y Aspectos que Intervienen en el Diseo de un SOD. Conocimiento Global. Se trata de conocer y actualizar el estado global (global Knowledge) de todos los procesos y recursos del sistema. Caractersticas: 1. Se tiene soluciones mucho ms complejas.
2. No se tiene disponibilidad de una memoria global y un reloj global,

no se pueden predecir los retardos y mensajes. 3. Una sola computadora no puede colectar toda la informacin del sistema distribuido. 4. Un problema que se presenta es determinar tcnicas eficientes para establecer controles amplios en un sistema descentralizado y donde una sola computadora no conoce el estado actual y completo del sistema global. 5. Otro problema significativo se presenta debido a la ausencia de un reloj global y no permite tener formas de ordenar y controlar todos los eventos que ocurren en diferentes tiempos y en diferentes computadoras. Nomenclatura. En ese aspecto se utilizan nombres para referirse a los objetos (Computadoras, impresoras, servicios, archivos y usuarios). Por ejemplo: El servicio de FTP o el servicio de DNS. Caractersticas: 1. En un servidor de nombres se mapea un nombre lgico a una direccin fsica por medio de tablas.

2. En un Sistema Distribuido los directivos pueden ser replicados y almacenados en varios lugares para reducir las posibilidades de fallas e incrementar la disponibilidad del servicio. 3. Se requiere ms capacidad de almacenamiento. 4. Requiere de sincronizacin para actualizar los directorios de cada localizacin. 5. Puede utilizarse particin de directorios en lugar de replicacin, pero es mucho ms complejo. Escalabilidad. Los sistemas crecen con el tiempo y les puede afectar la poca disponibilidad y la degradacin del rendimiento cuando el crecimiento ocurre. Compatibilidad. Se refiere a la interoperabilidad entre los recursos de un sistema. Generalmente existen 3 niveles de compatibilidad aplicados a los sistemas. Nivel binario: Todos los procesadores ejecutan el mismo conjunto de instrucciones binarias, sin embargo los procesadores pueden diferir en rendimiento y su forma de entrada y salida. Ventajas: 1. Es ms fcil el desarrollo de sistemas. 2. No pueden incluirse arquitecturas diferentes de un fabricante o varios. 3. Es raramente soportado por sistemas grandes. Nivel Ejecucin:

Se presenta cuando el mismo cdigo fuente puede ser compilado y ejecutado correctamente en cualquier computadora del sistema. Nivel Protocolo: Es el menos receptivo de todos ya que se obtiene interoperabilidad con el simple requerimiento de los componentes de comunicacin de los sistemas, soportan un conjunto comn de protocolos por ejemplo las computadoras individuales pueden ejecutar diferentes Sistemas y sacrificar su operatibilidad. Sincronizacin de Procesos Es uno de los ms importantes a considerar dentro de los sistemas distribuidos. La sincronizacin es difcil por la falta de una memoria comn al no conocerse las caractersticas de los procesos que se ejecutan. Caractersticas: 1. Un Sistema Operativo Distribuido tiene que sincronizar los procesos que se estn ejecutando en diferentes computadoras cuando estas tratan de accesar concurrentemente un recurso compartido, por ejemplo: un directorio. 2. El recurso compartido debe ser accesado por un proceso a la vez, a esto se le conoce como mutua exclusin. 3. Cuando se tiene acceso concurrentemente a un recurso

compartido por diversas peticiones no coordinadas de usuarios, estas deben de seriabilizarse para asegurar la integridad del recurso. 4. Los procesos deben solicitar recursos locales o remotos y posteriormente liberados en cualquier orden que puede ser no conocido.

5. Si la ausencia de asignacin de recursos de los procesos no se controla se puede presentar un " Dead Lock " (Candado muerto o recurso bloqueado) que degrade al sistema.

Seguridad La seguridad de un sistema es la responsable de la integridad del Sistema Operativo dentro del diseo de un sistema de seguridad se consideren dos aspectos importantes:

Autentificacin: Es el proceso de garantizar que una entidad es quien debe ser.

Autorizacin: Es el proceso de decidir que privilegios tiene una entidad y hacer que solo esos privilegios se encuentren disponibles.

Estructuracin La estructuracin sus de un sistema y que Operativo define como estn el

organizadas

partes

comnmente

especifican

funcionamiento del mismo. En Sistemas Distribuidos Utilizan normalmente los siguientes mtodos tradicionales de estructuracin de un Sistema Operativo.

Ncleo Monoltico: Es el mtodo tradicional de estructurar Sistemas Operativos, esto se lleva a cabo a travs de un gran ncleo monoltico que contiene todas las funciones y servicios provistos por el Sistema Operativo. Existen casos entre los Sistemas Distribuidos donde el uso de un bloque monoltico

grande no es de mucha utilidad para los servicios ofrecidos por el Sistema Operativo (Estaciones sin disco, estaciones con medios locales de almacenamiento, estaciones con procesadores matemticos especficos, etc.).

Ncleo Colectivo: En esta estructura se tiene una coleccin de procesos que son ampliamente independientes unos de otros. Los servicios del Sistema Operativo (Administracin de memoria distribuida, sistemas de archivos distribuidos, sincronizacin distribuida, procesos RPC, administracin de tiempos, etc.) son implementados como procesos independientes. El ncleo del Sistema Operativo (Comnmente llamado Microkernel) soporta la interaccin entre los procesos que proveen los servicios al Sistema Operativo, tambin provee los servicios tpicamente esenciales para cada computadora tal como la administracin de tareas. El microkernel se ejecuta en todas las computadoras del sistema, mientras que los otros procesos pueden o no correr segn se requiera.

Sistema Orientado a Objetos: Estos sistemas son estructurados utilizando el concepto de objetos, donde cada uno de los servicios son implementados como un objeto del sistema y que en trminos de un ambiente de objeto, se le conoce como coleccin. Cada objeto encapsula una estructura de datos y define un conjunto de operaciones para ese objeto, de manera que cada uno de estos objetos corresponden a un tipo definido, por ejemplo: Objetos de procesos, directorios o archivos. Este modelo se puede cambiar con la estructura colectiva y las tcnicas de separacin de funciones y mecanismos.

Modelo Cliente-Servidor Definicin: Sistema donde el cliente es una mquina que solicita un determinado servicio y se denomina servidor a la mquina que lo proporciona. Los servicios pueden ser:

Ejecucin de un determinado programa. Acceso a un determinado banco de informacin. Acceso a un dispositivo de hardware.

Es un elemento primordial, la presencia de un medio fsico de comunicacin entre las mquinas, y depender de la naturaleza de este medio la viabilidad del sistema. Componentes de Software: Se distinguen tres componentes bsicos de software:

Presentacin.- Tiene que ver con la presentacin al usuario de

un conjunto de objetos visuales y llevar a cabo el procesamiento de los datos producidos por el mismo y los devueltos por el servidor.

Lgica

de

aplicacin.-

Esta

capa

es

la

responsable

del

procesamiento de la informacin que tiene lugar en la aplicacin.

Base de datos.- Esta compuesta de los archivos que contienen

los datos de la aplicacin. La mayora de los sistemas distribuidos basados en LAN no utilizan los protocolos de capas completos, s utilizan un subconjunto de toda una pila de protocolos. El modelo OSI no dice nada acerca de la forma de estructurar al sistema distribuido. El modelo cliente - servidor tiene como idea fundamental la estructuracin del S. O. como:

Un grupo de procesos en cooperacin, llamados servidores, que ofrecen servicios a los usuarios.

Un grupo de procesos usuarios llamados clientes.

El modelo cliente - servidor se basa en un protocolo solicitud / respuesta:


Es sencillo y sin conexin. No es complejo y orientado a la conexin como OSI o TCP / IP. El cliente enva un mensaje de solicitud al servidor pidiendo cierto servicio.

El servidor:
o o

Ejecuta el requerimiento. Regresa los datos solicitados o un cdigo de error si no pudo ejecutarlo correctamente.

No se tiene que establecer una conexin sino hasta que sta se utilice.

La pila del protocolo es ms corta y por lo tanto ms eficiente. Si todas las mquinas fuesen idnticas solo se necesitaran tres niveles de protocolos.

Arquitecturas Cliente / Servidor


Una arquitectura es un conjunto de reglas, definiciones, trminos y modelos que se emplean para producir un producto. La arquitectura Cliente/Servidor agrupa conjuntos de elementos que efectan procesos distribuidos y computo cooperativo.

Beneficios: 1. Mejor aprovechamiento de la potencia de cmputo (Reparte el trabajo).

2. Reduce el trfico en la Red. (Viajan requerimientos). 3. Opera bajo sistemas abiertos. 4. Permite el uso de interfaces grficas variadas y verstiles.

continuacin

mostramos

las

arquitecturas

cliente-servidor

ms

popular:

Arquitectura Cliente-Servidor de Dos Capas.- Consiste en una

capa de presentacin y lgica de la aplicacin; y la otra de la base de datos. Normalmente esta arquitectura se utiliza en las siguientes situaciones:
o

Cuando se requiera poco procesamiento de datos

en la organizacin.
o

Cuando se tiene una base de datos centralizada

en un solo servidor.
o

Cuando la base de datos es relativamente

esttica.
o

Cuando se requiere un mantenimiento mnimo.

Arquitectura Cliente-Servidor de Tres Capas- Consiste en una capa de la Presentacin, otra capa de la lgica de la aplicacin y otra capa de la base de datos. Normalmente esta arquitectura se utiliza en las siguientes situaciones:
o

Cuando se requiera mucho procesamiento de datos en la aplicacin.

En aplicaciones donde la funcionalidad este en constante cambio.

Cuando los procesos no estn relativamente muy relacionados con los datos.

Cuando se requiera aislar la tecnologa de la base de datos para que sea fcil de cambiar.

Cuando se requiera separar el cdigo del cliente para que se facilite el mantenimiento.

Esta muy adecuada para utilizarla con la tecnologa orientada a objetos.

Qu es el Cliente? Conjunto de Software y Hardware que invoca los servicios de uno o varios servidores. Caractersticas: 1. El Cliente oculta al Servidor y la Red. 2. Detecta e intercepta peticiones de otras aplicaciones y puede redireccionarlas. 3. Dedicado a la cesin del usuario (Inicia...Termina). 4. El mtodo ms comn por el que se solicitan los servicios es a travs de RPC (Remote Procedure Calls). Funciones Comunes del Cliente: 1. Mantener y procesar todo el dialogo con el usuario. 2. Manejo de pantallas. 3. Mens e interpretacin de comandos. 4. Entrada de datos y validacin. 5. Procesamiento de ayudas. 6. Recuperacin de errores.

Qu es el Servidor? Conjunto de Hardware y Software que responde a los requerimientos de un cliente. Tipos Comunes de Servidores: 1. Servidor de Archivos (FTP, Novell). 2. Servidor de Bases de Datos (SQL, CBASE, ORACLE, INFORMIX). 3. Servidor de Comunicaciones 4. Servidor de Impresin. 5. Servidor de Terminal. 6. Servidor de Aplicaciones (Windows NT, Novell). Funciones Comunes del Servidor: 1. Acceso, almacenamiento y organizacin de datos. 2. Actualizacin de datos almacenados. 3. Administracin de recursos compartidos. 4. Ejecucin de toda la lgica para procesar una transaccin. 5. Procesamiento comn de elementos del servidor (Datos, capacidad de CPU, almacenamiento en disco, capacidad de impresin, manejo de memoria y comunicacin). Red de comunicacin. Es todo aquel conjunto de elementos basados en hardware y software que permite establecer un enlace entre los clientes y los servidores, se clasifican por su tamao LAN, MAN y WAN. Caractersticas de la comunicacin: 1. A travs de este medio, el cliente debe localizar e iniciar la comunicacin con el servidor.

2. No se utiliza la metodologa de comparticin de archivos, ya que todos los accesos a la informacin se llevan a cabo a travs de peticiones por medio de comunicacin. 3. Debido a que los programas de manejo y control de informacin (Archivos y bases de datos solo se envan y reciben los resultados de las operaciones (Trfico igual a Datos ledos o escritos). 4. Debido a la flexibilidad de establecer sesiones con mltiples servidores y manejo de informacin en varias bases de datos (en sitios remotos es requerido el uso de estilos transaccionales y cooperativos).

Clasificacin de los sistemas cliente servidor: A continuacin mostramos la clasificacin de de los sistemas

cliente/servidor de acuerdo al nivel de abstraccin del servicio que ofrecen:


1.

Representacin distribuida.- La interaccin con el usuario

se realiza en el servidor, el cliente hace de pasarela entre el usuario y el servidor.

2.

Representacin Remota.-La lgica de la aplicacin y la

base de datos se encuentran en el servidor. El cliente recibe y formatea los datos para interactuar con el usuario.

3.

Lgica Distribuida.- El cliente se encarga de la interaccin

con el usuario y de algunas funciones triviales de la aplicacin. Por ejemplo controles de rango de campos, campos obligatorios, etc. Mientras que el resto de la aplicacin, junto con la base de datos, estn en el servidor.

4.

Gestin Remota de Datos.- El cliente realiza la interaccin

con el usuario y ejecuta la aplicacin y el servidor es quien maneja los datos.

5.

Base

de

Datos

Distribuidas.-

El

cliente

realiza

la

interaccin con el usuario, ejecuta la aplicacin, debe conocer la topologa de la red, as como la disposicin y ubicacin de los datos. Se delega parte de la gestin de la base de datos al cliente.

6.

Cliente servidor a tres niveles.- El cliente se encarga de

la interaccin con el usuario, el servidor de la lgica de aplicacin y la base de datos puede estar en otro servidor.

Servicios de un Servidor de Archivos Los sistemas de archivos son considerados como uno de los

componentes ms importantes de cualquier Sistema Distribuido. Debe tener conocimiento de cada uno de los sitios disponibles de informacin, de manera que los servicios sean transparentes para cualquier usuario. En Sistemas Distribuidos se utilizan dos tipos de servicios: Servicio de Archivos.- Es una especificacin sobre el tipo de servicios de archivos que el sistema ofrece a los clientes, establece todas aquellas directivas sobre dnde encontrar un archivo. Servicio de Directorios.- Es un proceso que se ejecuta en alguna mquina y ayuda a implantar el servicio de archivos de manera que podamos establecer ligas entre uno o ms grupos de archivos (directorios). Un sistema puede tener uno o varios servidores de archivos

que son transparentes para los clientes ya que no debe de conocer su posicin. Interface de un Servicio de Archivos La Interface de un Servicio de Archivos proporciona toda la informacin necesaria sobre cada archivo individual como pueden ser sus atributos. La funcin ms importante de un servicio de archivos corresponde a su mantenimiento, ya que este servicio se encarga de todas las operaciones disponibles de lectura y escritura como pueden ser crate, read, write, delete. Los usuarios de archivos se pueden dividir en dos tipos: Modelo de Carga y Descarga.- ste slo proporciona dos operaciones principales que son la lectura y escritura del archivo. La operacin consiste en transferir todo un archivo hacia el cliente y todos los movimientos de operacin sobre el archivo, lo realiza el cliente, cuando ha dejado de utilizar el archivo, ste se es regresado hacia el servidor en forma completa. (con todos los cambios realizados actualmente).

Modelo de acceso remoto.- Este tipo de servicios proporciona un gran nmero de operaciones para abrir y cerrar archivos leer y escribir partes de archivos, moverse a travs de un archivo, as como examinar y modificar los atributos de uno o varios archivos.

Procesamiento de Transacciones Motivos del uso de transacciones. Uno de los ingredientes bsicos en todo sistema tolerante a fallas es el mecanismo de transacciones. Una transaccin encierra un nmero de operaciones de forma que todas o ninguna de las operaciones se llevan a cabo. Las transacciones hacen que la recuperacin de errores sea ms fcil, ya que las transacciones slo pueden terminar en uno de dos estados: transaccin resultan completa de gran o transaccin incompleta. simplificar Las la transacciones importancia para

construccin de aplicaciones distribuidas confiables y disponibles en todo momento, particularmente aplicaciones que requieren acceso concurrente a datos compartidos. Los sistemas distribuidos son potencialmente muy fiables debido a la posibilidad de proveer redundancia y autonoma de recursos en diferentes nodos, esto permite detectar y localizar fallas, sin embargo comnmente tenemos varios aspectos que representan problemas para la integridad de los recursos y que a su vez motivan el uso de transacciones: 1. Dificultad para mantener consistencia en los datos. 2. Una misma va de comunicacin no siempre puede ser utilizada para proveer interaccin entre 2 procesos. 3. Requerimientos de procesamiento en paralelo.

4. Manejo interactivo de uno o ms usuarios Definicin. Las transacciones fueron originalmente desarrolladas para ser utilizadas dentro de los sistemas de base de datos, donde se usaba para auxiliar en el mantenimiento de los datos de las aplicaciones y que dependan de la consistencia de la informacin almacenada. Las transacciones son un mecanismo que ayuda a simplificar la construccin de sistemas confiables a travs de procesos que proveen soporte uniforme para invocar y sincronizar operaciones como:

Operaciones de comparticin de datos. Aseguramiento de la seriabilidad de las transacciones con otras. Atomicidad en su comportamiento. Recuperacin de fallas provocadas en red y nodos.

El trmino transaccin describe una secuencia de operaciones con uno o ms recursos (por ejemplo una base de datos) que transforman su estado actual en un nuevo estado de consistencia.

El manejo de transacciones fue desarrollado en el campo de las operaciones financieras donde se tena 3 reglas bsicas:

Consistencia: Obedecer ciertas reglas. Atomicidad: Debe ocurrir completo o abortar. Durabilidad: Una vez iniciada una transaccin y terminada

completamente no puede ser abortada. Dentro del rea de los sistemas computacionales el concepto de transacciones fue inicialmente utilizado para definir la consistencia entre mltiples usuarios de una base de datos. Llamada a un Procedimiento Remoto (RPC) El modelo cliente - servidor es una forma conveniente de estructurar un S. O. distribuido, pero posee una falencia.

El

paradigma

esencial

en

torno

al

que

se

construye

la

comunicacin es la entrada / salida.

Los procedimientos send / receive estn reservados para la realizacin de e / s.

Una opcin distinta fue planteada por Birrel y Nelson:

Permitir

los

programas

que

llamasen

procedimientos

localizados en otras mquinas.

Cuando un proceso en la mquina A llama a un procedimiento en la mquina B:


o o

El proceso que realiza la llamada se suspende. La ejecucin del procedimiento se realiza en B.

La informacin se puede transportar de un lado al otro mediante los parmetros y puede regresar en el resultado del procedimiento.

El programador no se preocupa de una transferencia de mensajes o de la e / s.

A este mtodo se lo denomina llamada a procedimiento remoto o RPC.

El procedimiento que hace la llamada y el que la recibe se ejecutan en mquinas diferentes, es decir que utilizan espacios de direcciones distintos.

PROTOCOLO Definicin: Es un conjunto bien conocido de reglas y formatos que se utilizan para la comunicacin entre procesos que realizan una determinada tarea. Se requieren dos partes:

Especificacin de la secuencia de mensajes que se han de

intercambiar.

Especificacin del formato de los datos en los mensajes.

Un protocolo permite que componentes heterogneos de sistemas distribuidos puedan desarrollarse independientemente, y por medio de mdulos de software que componen el protocolo, haya una comunicacin transparente entre ambos componentes. Es conveniente mencionar que estos componentes del protocolo deben estar tanto en el receptor como en el emisor. Middleware Definicin: Capa de software intermedio entre el cliente y el servidor. Es la capa de software que nos permiten gestionar los mecanismos de comunicaciones. Ejemplo si se hace la peticin de una pgina web desde un browser en el cliente, el middleware determina la ubicacin y enva una peticin para dicha pgina. El servidor Web, interpreta la peticin y enva la pgina al software intermedio, quien la dirige al navegador de la mquina cliente que la solicit.

Existen dos tipos:

Software

intermedio

general.

Servicios

generales

que

requieren todos los clientes y servidores, por ejemplo: software para las comunicaciones usando el TCP/IP, software parte del sistema operativo que, por ejemplo, almacena los archivos distribuidos, software de autenticacin, el software intermedio de mensajes de clientes a servidores y viceversa.

Software intermedio de servicios. Software asociado a un

servicio en particular, por ejemplo: software que permite a dos BD conectarse a una red cliente/servidor (ODBC: Conectividad abierta de BD), software de objetos distribuidos, por ejemplo la tecnologa CORBA permite que objetos distribuidos creados en distintos lenguajes coexistan en una misma red (intercambien mensajes), software intermedio para software de grupo, software intermedio asociado a productos de seguridad especficas (Conexiones Seguras: Sockets), etc. Caractersticas:

Independiza el servicio de su implantacin, del sistema operativo y

de los protocolos de comunicaciones.


Permite la convivencia de distintos servicios en un mismo sistema. Permite la transparencia en el sistema. Modelo tradicional: Monitor de teleproceso o CICS, Tuxedo, Encina. Modelo OO: CORBA.

Sincronizacin de Sistemas Distribuidos Un sistema distribuido debe permitir el apropiado uso de los recursos, debe encargarse de un buen desempeo y de la consistencia de los datos, adems de mantener seguras todas estas operaciones.

El trmino sincronizacin se define como la forma de forzar un orden parcial o total en cualquier conjunto de eventos, y es usado para hacer referencia a tres problemas distintos pero relacionados entre s: La sincronizacin entre el emisor y el receptor. La especificacin y control de la actividad comn entre procesos cooperativos. La serializacin de accesos concurrentes a objetos compartidos por mltiples procesos. La sincronizacin en sistemas de un nico ordenador no requiere ninguna consideracin en el diseo del sistema operativo, ya que existe un reloj nico que proporciona de forma regular y precisa el tiempo en cada momento. Sin embargo, los sistemas distribuidos tienen un reloj por cada ordenador del sistema, con lo que es fundamental una coordinacin entre todos los relojes para mostrar una hora nica. Los osciladores de cada ordenador son ligeramente diferentes, y como consecuencia todos los relojes sufren un desfase y deben ser sincronizados continuamente. La sincronizacin no es trivial, porque se realiza a travs de mensajes por la red, cuyo tiempo de envo puede ser variable y depender de muchos factores, como la distancia, la velocidad de transmisin o la propia saturacin de la red, etc. El reloj La sincronizacin no tiene por qu ser exacta, y bastar con que sea aproximadamente igual en todos los ordenadores. Hay que tener en cuenta, eso s, el modo de actualizar la hora de un reloj en particular. Es fundamental no retrasar nunca la hora, aunque el reloj este adelantado. En vez de eso, hay que ralentizar la actualizacin del reloj, frenarlo, hasta que alcance la hora aproximadamente. Existen diferentes

algoritmos de actualizacin de la hora, tres de ellos se exponen brevemente a continuacin. Algoritmo de Lamport: Tras el intento de sincronizar todos los relojes, surge la idea de que no es necesario que todos los relojes tengan la misma hora exacta, sino que simplemente mantengan una relacin estable de forma que se mantenga la relacin de qu suceso ocurri antes que otro suceso cualquiera. Este algoritmo se encarga exclusivamente de mantener el orden en que se suceden los procesos. En cada mensaje que se enva a otro ordenador se incluye la hora. Si el receptor del mensaje tiene una hora anterior a la indicada en el mensaje, utiliza la hora recibida incrementada en uno para actualizar su propia hora. Algoritmo de Cristian: consiste en disponer de un servidor de tiempo, que reciba la hora exacta. El servidor se encarga de enviar a cada ordenador la hora. Cada ordenador de destino slo tiene que sumarle el tiempo de transporte del mensaje, que se puede calcular de forma aproximada. Algoritmo de Berkeley: la principal desventaja del algoritmo de Cristian es que todo el sistema depende del servidor de tiempo, lo cual no es aceptable en un sistema distribuido fiable. El algoritmo de Berkeley usa la hora de todos los ordenadores para elaborar una media, que se reenva para que cada equipo actualice su propia hora ralentizando el reloj o adoptando la nueva hora, segn el caso. Exclusin mutua La exclusin mutua la podramos definir como una operacin de control que permite la coordinacin de procesos concurrentes, y que

tiene la capacidad de prohibir a los dems procesos realizar una accin cuando un proceso haya obtenido el permiso. Si varios usuarios accedan concurrentemente a un recurso compartido, las acciones que realice el usuario sin que le interese al resto de los usuarios, deben ser instantneo e indivisible. El problema de la exclusin mutua en sistemas distribuidos surge cuando se accede concurrentemente procesamiento. En sistemas de una sola computadora, el estado de un recurso compartido y el estado de un usuario es ms accesible por la existencia de una memoria compartida y se pueden implementar fcilmente soluciones a la exclusin mutua, haciendo uso de variables compartidas como los semforos. Sin embargo, en sistemas distribuidos los recursos compartidos y los usuarios pueden estar distribuidos y no existe una memoria compartida entre ellos; consecuentemente, los enfoques basados en variables compartidas no son aplicables a los sistemas distribuidos, en su lugar; se deben utilizar enfoques basados en el paso de mensajes. El problema de la exclusin mutua resulta ms complejo en los sistemas distribuidos, debido a los retardos impredecibles de los mensajes. Cuando un proceso requiere leer o actualizar ciertas estructuras de datos compartidas, primero entra a una seccin crtica (SC) para lograr la exclusin mutua asegurndose que ningn otro proceso utilice las mismas estructuras al mismo tiempo. Se han propuesto varios algoritmos para lograr exclusin mutua en sistemas distribuidos, los cuales tienden a diferenciarse por su topologa y la cantidad de informacin mantenida en los nodos de procesamiento. Los algoritmos pueden agruparse dentro de los dos siguientes grupos:

recursos

compartidos

por

varios

nodos

de

Algoritmos

no

basados

en

paso

de

mensajes.

Estos

algoritmos requieren dos o ms rondas sucesivas de mensajes

entre los nodos. Se basan en una aseveracin porque un nodo puede entrar a su seccin crtica de procesamiento (SC) cuando una aseveracin en sus variables se vuelve verdadera. Se forza la exclusin mutua porque la aseveracin es verdadera en un slo nodo en un determinado momento.

Algoritmos algoritmos,

basados un Token

en nico

paso

de

mensajes. llamado

En

estos de

(tambin

mensaje

privilegio) se comparte en todos los nodos. Se permite que un nodo entre a su seccin crtica (SC) si posee al Token y lo mantiene hasta que termine la ejecucin de su SC. Estos algoritmos de exclusin mutua tienen el objetivo de garantizar que slo una peticin pueda entrar a la seccin crtica de un nodo y se deben de considerar las siguientes caractersticas:

Los nodos no deben esperar indefinidamente a mensajes que probablemente no llegarn (interbloqueo distribuido).

Cada nodo debe tener un tiempo finito para la ejecucin de una seccin crtica.

Las peticiones deben ejecutarse en el orden en que se hicieron, o el orden en que arribaron al sistema.

Un algoritmo es tolerante a fallas si al momento de la recuperacin cuando ocurra una, ste pueda continuar con su funcin.

El funcionamiento de los algoritmos de exclusin mutua puede expresarse por las siguientes medidas:

El nmero de mensajes necesarios para una SC. El retardo de sincronizacin, que representa el tiempo requerido despus de que un nodo termina su SC y antes de que otro nodo inicie una SC.

El tiempo de respuesta. Es el intervalo de tiempo que una solicitud espera para que se ejecute una SC, despus del envo del mensaje de solicitud.

La ejecucin en el sistema, que es la razn a la que el sistema ejecuta la peticin para la SC.

Eleccin (coordinador) Son los algoritmos para la eleccin de un proceso coordinador, iniciador, secuenciador, etc. El objetivo de un algoritmo de eleccin es garantizar que iniciada una eleccin sta concluya con el acuerdo de todos los procesos con respecto a la identidad del nuevo coordinador. 1.-) El Algoritmo del Granduln o de Garca-Molina Un proceso P inicia una eleccin cuando observa que el coordinador ya no responde a las solicitudes. P realiza una eleccin de la siguiente manera:

Enva un mensaje eleccin a los dems procesos con un nmero mayor.

Si nadie responde asume que gana la eleccin y se convierte en el nuevo coordinador.

Si un proceso con un nmero mayor responde, toma el control y el trabajo de P termina.

Un proceso puede recibir en cualquier momento un mensaje eleccin de otros procesos con un nmero menor:

Enva de regreso un mensaje o.k. al emisor para indicar que est vivo y que tomar el control.

Realiza una eleccin salvo que ya est haciendo alguna.

En cierto momento todos los procesos han declinado ante uno de ellos, que ser el nuevo coordinador, que enva un mensaje coordinador a todos los procesos para anunciarlo. Si un proceso inactivo se activa realiza una eleccin:

Si l tiene el nmero ms alto ser el nuevo coordinador:


o

Siempre gana el proceso que posee el nmero mayor, de ah el nombre algoritmo del granduln.

2.-) Un Algoritmo de Anillo Se supone que los procesos tienen un orden fsico o lgico, es decir que cada proceso conoce a su sucesor. Cuando algn proceso observa que el coordinador no funciona:

Construye un mensaje eleccin con su propio nmero de proceso. Enva el mensaje a su sucesor. Si el sucesor est inactivo:
o

El emisor va hacia el siguiente nmero del anillo o al siguiente de ste.

o o

Contina hasta localizar un proceso en ejecucin. En cada paso, al emisor aade su propio nmero de proceso a la lista en el mensaje.

En cierto momento el mensaje regresa al proceso que lo inici:


o

El proceso lo reconoce al recibir un mensaje con su propio nmero de proceso.

El mensaje de eleccin se transforma en mensaje coordinador y circula nuevamente:


o

Informa a los dems procesos:

Quin es el coordinador, es decir, el miembro de la lista con el nmero mayor.

Quines son los miembros del nuevo anillo.

Concluida la ronda de informacin el mensaje coordinador se elimina y continan los procesos.

Bloqueo de Sistemas Distribuidos Son peores que los bloqueos en sistemas monoprocesador:

Son ms difciles de evitar, prevenir, detectar y solucionar. Toda la informacin relevante est dispersa en muchas mquinas.

Son especialmente crticos en sistemas de bases de datos distribuidos. Las estrategias usuales para el manejo de los bloqueos son:

Algoritmo del avestruz:


o

Ignorar el problema.

Deteccin:
o

Permitir que ocurran los bloqueos, detectarlos e intentar recuperarse de ellos.

Prevencin:
o

Hacer que los bloqueos sean imposibles desde el punto de vista estructural.

Evitarlos:
o

Evitar los bloqueos mediante la asignacin cuidadosa de los recursos.

El algoritmo del avestruz merece las mismas consideraciones que en el caso de mono-procesador.

En los sistemas distribuidos resulta muy difcil implantar algoritmos para evitar los bloqueos:

Se requiere saber de antemano la proporcin de cada recurso que necesitar cada proceso.

Es muy difcil disponer de esta informacin en forma prctica.

Las tcnicas ms aplicables para el anlisis de los bloqueos en sistemas distribuidos son:
A. B.

Deteccin. Prevencin.

A.-) Deteccin Distribuida de Bloqueos Cuando se detecta un bloqueo en un S. O. convencional se resuelve eliminando uno o ms procesos Cuando se detecta un bloqueo en un sistema basado en transacciones atmicas se resuelve abortando una o ms transacciones:

El sistema restaura el estado que tena antes de iniciar la transaccin.

La transaccin puede volver a comenzar.

Las consecuencias de la eliminacin de un proceso son mucho menos severas si se utilizan las transacciones que en caso de que no se utilicen. B.-) Prevencin Distribuida de Bloqueos La prevencin consiste en el diseo cuidadoso del sistema para que los bloqueos sean imposibles estructuralmente: Entre las distintas tcnicas se incluye:

Permitir a los procesos que solo conserven un recurso a la vez.

Exigir a los procesos que soliciten todos sus recursos desde un principio.

Hacer que todos los procesos liberen todos sus recursos cuando soliciten uno nuevo.

En un sistema distribuido con tiempo global y transacciones atmicas:

Se puede asociar a cada transaccin una marca de tiempo global al momento de su inicio.

No pueden haber parejas de transacciones con igual marca de tiempo asociada.

La idea es que cuando un proceso est a punto de bloquearse en espera de un recurso que est utilizando otro proceso:

Se verifica cul de ellos tiene la marca de tiempo mayor (es ms joven).

Se puede permitir la espera solo si el proceso en estado de espera tiene una marca inferior (ms viejo) que el otro.

Al seguir cualquier cadena de procesos en espera:


Las marcas aparecen en forma creciente. Los ciclos son imposibles.

Otra posibilidad es permitir la espera de procesos solo si el proceso que espera tiene una marca mayor (es ms joven) que el otro proceso; las marcas aparecen en la cadena en forma descendente. Es ms sabio dar prioridad a los procesos ms viejos:

Se ha invertido tiempo de proceso en ellos. Probablemente conservan ms recursos.

Comparticin de datos y transacciones

Es comn que en un ambiente multiusuario se comparta la misma informacin y recursos. Es una regla organizar la informacin de una forma lgica, que una mantenga base datos a es la informacin si consistente. sta describe Informalmente, "correcta",

correctamente a los objetos y procesos externos por los que fue modelada. En un sistema distribuido resulta imperante la administracin de las bases de datos para mantener su consistencia y que los usuarios obtengan los datos correctos. Los sistemas de bases de datos usan una nocin muy general de lo que es la correctitud, basndose en el orden de la ejecucin de transacciones, ejecucin en serie de una copia y en un pequeo conjunto de constantes conocidas como constantes de integridad. Ejecucin en serie de una copia: Una base de datos es un conjunto lgico de partidas (items) de datos que soportan las operaciones bsicas de lectura y escritura. Una transaccin es una operacin que ejecuta operaciones de lectura y escritura en las partidas de datos, y slo puede terminar de dos formas: exitosa (commit) o inconclusa (abortar), teniendo adems resultados subsecuentes como desplegado de informacin. Una transaccin ejecutada exitosamente transforma el estado de una base de datos inicial correcta, a otro estado correcto. Las transacciones interactan entre ellas indirectamente leyendo y escribiendo los mismos registros o partidas. Se dice que dos operaciones sobre el mismo item entran en conflicto si una de ellas es una escritura, y las operaciones conflictivas son de cuidado porque el orden de su ejecucin va a afectar el estado final de la base de datos. Una tcnica para el control de concurrencias es el bloqueo estricto de dos fases, que consiste en que antes de ejecutar una escritura, la transaccin debe obtener un bloqueo exclusivo sobre la partida o registro que va a modificar; antes de efectuar una lectura, la transaccin debe tener al menos un bloqueo compartido.

Constantes de integrida: las constantes de integridad son una forma de agregar criterios para asegurar que los datos son correctos. Las constantes de integridad van desde constantes simples (por ejemplo, el balance de una cuenta de cheques no debe ser negativa) hasta constantes que relacionan los valores de muchas partidas (items). Se asumir que la verificacin de las constantes de integridad, ser una parte del trabajo de las transacciones. En una base de datos duplicada, el valor de cada partida se almacena en una o ms partidas, que son referenciadas como copias de x. Cada operacin de lectura y escritura ejecutadas por una transaccin sobre alguna partida debe ser direccionada (mapeada) por el sistema de bases de datos a las correspondientes operaciones sobre las copias, es decir; el direccionamiento debe asegurarse de que la ejecucin concurrente de transacciones sobre informacin duplicada, es equivalente a la ejecucin serial de informacin no duplicada, una propiedad conocida como serializabilidad de una copia. Operaciones particionadas: ahora consideremos el procesamiento de transacciones en una red particionada, donde la conectividad del sistema se rompe por fallas o cadas de comunicacin anticipadas. Tomemos por ejemplo que dos sitios en la misma particin pueden comunicarse, y existe una base de datos completamente duplicada y existe una copia de cada partida en todo el sistema, y se usa el criterio de serializabilidad de una copia para asegurar la correctitud de los datos. Mientras el sistema se mantiene participando, cada particin debe determinar qu transacciones puede ejecutar sin violar el criterio de verificacin. Desde este punto de vista, cada particin debe mantener la correctitud de la parte de la base de datos almacenada en cada uno de los servidores o sitios de ella, y cada particin debe asegurarse de que sus acciones no entren en conflicto con las acciones

de otras particiones, para mantener correctos los datos almacenados en todas las particiones. El verdadero problema surgido con las fallas de particin, es asegurar la serializabilidad de una copia a lo largo de todas las particiones, ya que no es suficiente aplicar un algoritmo de control de rplica que sea correcto en cada particin y que asegure que la ejecucin de toda la transaccin ser "serializable" de una copia. Adems, el procesamiento de transacciones particionadas tiene que tratar con dos problemas; primero, la base de datos particionada se enfrenta al problema de terminar exitosamente las transacciones que se estn llevando a cabo en el momento de la particin, el problema aqu reside en que los nodos que ejecutan la transaccin se pueden encontrar en diferentes particiones, sin poder comunicar la decisin de terminar o abortar la transaccin. Segundo, cuando se reconectan las particiones, se debe restablecer la consistencia mutua entre dos particiones, es decir; las modificaciones hechas a un objeto en una particin, deben propagarse a sus copias en las otras particiones. Seguridad La evolucin de la computacin y de las comunicaciones en las ltimas dcadas Ha hecho ms accesibles a los sistemas informticos. Ha incrementado los riesgos vinculados a la seguridad. La vulnerabilidad de las comunicaciones de datos es un aspecto clave de la seguridad de los sistemas informticos; la importancia de este aspecto es cada vez mayor en funcin de la proliferacin de las redes de computadoras. La simple seguridad fsica resulta insuficiente ante la posibilidad de acceso mediante equipos remotos conectados. La tendencia es que los sistemas sean ms asequibles y fciles de usar, pero la favorabilidad hacia el usuario puede implicar un aumento de la vulnerabilidad.

Tcnicas Seguridad Externa debe asegurar la instalacin computacional contra intrusos y desastres como incendios e inundaciones. 1. Seguridad Fsica. (proteccin contra desastres (utilizando detector de humo, sensores de calor, detector de movimiento), proteccin contra intrusos (utilizando tarjetas de identificacin, sistemas de huellas digitales, identificador por medio de la voz.) 2. Seguridad Operacional. (Consiste en las diferentes polticas y procedimientos implementados por la administracin de la instalacin computacional. La autorizacin determina qu acceso se permite y a quin. Seguridad Interna trata de los controles incorporados al

hardware y al S. O. para asegurar la confiabilidad, operabilidad y la integridad de los programas y datos Vigilancia La autentificacin de los usuarios (Los sistemas

sofisticados de autentificacin de usuarios resultan muy difciles de evitar por parte de los intrusos. Problema existe si el sistema rechaza a un usuario

legitimo (Un sistema de reconocimiento de voz podra rechazar a un usuario legtimo resfriado. Un sistema de huellas digitales podra rechazar a un usuario legtimo que tenga una cortadura o una quemadura. Verificacin de Amenazas Los usuarios no pueden tener acceso a un recurso

(Solo lo tienen las rutinas del S. O. llamadas programas de vigilancia. El

usuario solicita el acceso al S. O. El S. O. niega o permite el acceso. El acceso lo hace un programa de vigilancia que luego pasa los resultados al programa del usuario. Detectar intentos de penetracin. El uso creciente de las redes de computadoras y

Criptografa

la importancia del trafico cursado hace necesario proteger a los datos La Oficina Nacional de Estndares de EE. UU. (NBS) ha adoptado la norma de cifrado de datos (DES) para la transmisin de informacin federal delicada. La criptografa es el uso de la transformacin de datos para hacerlos incomprensibles a todos, excepto a los usuarios a quienes estn destinados. El problema de la intimidad trata de cmo evitar la obtencin no autorizada de informacin de un canal de comunicaciones. Utilidad La criptografa es especialmente til en los sistemas multiusuario y en las redes de computadoras. Se debe utilizar para proteger a las contraseas, almacenndolas cifradas. Se puede utilizar tambin para proteger todos los datos almacenados en un sistema de computacin; se debe considerar el tiempo de cifrado / descifrado. Firma digital Es un mtodo criptogrfico que asegura la

identidad del remitente. En funcin del tipo de firma, puede, adems, asegurar la integridad del documento.

La Ley de Firma Electrnica, que puede ser diferente en cada pas, define tres tipos de firma:

Simple. Incluye un mtodo de identificar al firmante Avanzada. Adems de identificar al firmante permite garantizar la integridad del documento.

Reconocida. Es la firma avanzada ejecutada con un dispositivo seguro de creacin de firma.

La firma digital de un documento es el resultado de aplicar cierto algoritmo matemtico, denominado funcin hash, a su contenido, y seguidamente aplicar el algoritmo de firma (en el que se emplea una clave privada) al resultado de la operacin anterior, generando la firma electrnica o digital. La funcin hash es un algoritmo matemtico que permite calcular un valor resumen de los datos a ser firmados digitalmente, funciona en una sola direccin, es decir, no es posible a partir del valor resumen calcular los datos originales. Cuando la entrada es un documento, el resultado de la funcin es un nmero que identifica casi unvocamente al texto. Si se adjunta este nmero al texto, el destinatario puede aplicar de nuevo la funcin y comprobar su resultado con el que ha recibido. No obstante esto presenta algunas dificultades para el usuario, para ello se usan software que automatizan tanto la funcin de calcular el valor hash como su verificacin posterior.

Bibliografa
Rojo, O. (2003). Documento en lnea tomado de:
http://www.augcyl.org/?q=glol-intro-sistemas-distribuidos

UNNE. (2008). Documento en lnea tomado de:


http://exa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/SO8.htm#I ntro

Monografa. (2008). Documento en lnea tomado de:


http://www.monografias.com/trabajos16/sistemas-distribuidos/sistemasdistribuidos.shtml

Buades. G (2002). Documento en lnea tomado de:


http://dmi.uib.es/~bbuades/sistdistr/sld001.htm

Fortunecity. (2004). Documento en lnea tomado de:


http://www.fortunecity.es/sopa/chinchulines/812/informacion/noscs.htm I.T.L.P (1999). Documento en lnea tomado de: http://sistemas.itlp.edu.mx/tutoriales/sistsdist1/index.htm

Potrebbero piacerti anche