--- Para regresar a mi pagina arechiga.50megs.com solo cierra esta ventana ---

SISTEMAS OPERATIVOS   II

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:
            § 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

    En comparación con un sistema centralizado:
            · 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.
 

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

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.
La concurrencia puede presentarse en tres contextos diferentes:

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

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

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

Tipos de Sistemas Cliente/Servidor
    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.

    · Tipos:
        . TP Lite: basado en procedimientos almacenados.
        . TP Heavy: TP Monitors.

    4. Servidores Groupware
        1. Gestión de información semi-estructurada (texto, imágenes, correo, bulletin boards, flujo de trabajo).
        2. Ej: Lotus Notes.

    5. Servidores de Objetos
        · 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.

    6. Servidores Web
        · 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).

    "Pesadez" Cliente/Servidor

        · Un modelo Cliente/Servidor puede distribuir la carga entre el C y el S:
            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.