Академический Документы
Профессиональный Документы
Культура Документы
3
1.1. INTRODUCCIÓN A LOS SISTEMAS DISTRIBUIDOS. ........................................................................................................ 3
1.2. ESTRUCTURA DE UN SISTEMA OPERATIVO DISTRIBUIDO. .............................................................................................. 3
1.2.1. Funciones. .............................................................................................................................................. 3
1.2.2. Características de un sistema operativo distribuido. ............................................................................. 3
1.3. TIPOS DE SISTEMAS OPERATIVOS DISTRIBUIDOS. ........................................................................................................ 5
2. SISTEMA OPERATIVOS MULTIPROCESADOR. .................................................................................................. 5
2.1. CONCEPTO Y ARQUITECTURA DE UN SISTEMA OPERATIVO MULTIPROCESADOR. ................................................................ 5
2.1.1. Clasificación. .......................................................................................................................................... 6
2.1.2. Interconexión de los procesadores. ....................................................................................................... 7
2.2. GESTIÓN DEL PROCESADOR................................................................................................................................... 7
2.2.1. Asignación de procesadores. ................................................................................................................. 7
2.2.2. Planificación del procesador. ................................................................................................................. 7
2.3. SINCRONIZACIÓN Y GESTIÓN DE LA MEMORIA. .......................................................................................................... 8
2.3.1. Algoritmos de sincronización................................................................................................................. 8
3. COMPONENTES DE UN SISTEMA OPERATIVO DISTRIBUIDO. .......................................................................... 9
3.1. INTRODUCCIÓN. ................................................................................................................................................. 9
3.2. ARQUITECTURA CLIENTE SERVIDOR......................................................................................................................... 9
3.2.1. Arquitectura cliente servidor de 3 niveles. ............................................................................................ 9
3.2.2. Comunicaciones en una arquitectura cliente servidor de 3 niveles. .................................................... 10
3.2.3. Difusión de la información................................................................................................................... 12
3.2.4. Modelo de comunicación en un mismo grupo..................................................................................... 13
3.3. FUNCIONES EN ARQUITECTURAS DISTRIBUIDAS. ...................................................................................................... 13
3.3.1. SERVICIO DE NOMBRES ....................................................................................................................... 14
3.3.2. Migración de procesos. ....................................................................................................................... 14
3.3.3. Ejecución remota de procesos. ............................................................................................................ 15
4. SERVICIOS DE TIEMPO. .................................................................................................................................16
4.1. EL TIEMPO EN LOS SISTEMAS OPERATIVOS DISTRIBUIDOS. .......................................................................................... 16
4.2. SISTEMAS BASADOS EN RELOJES FÍSICOS. ............................................................................................................... 16
4.2.1. ALGORITMO DE CRISTIAN .............................................................................................................. 17
4.2.2. ALGORITMO DE BERKELEY ............................................................................................................ 17
4.2.3. PROTOCOLO DE TIEMPO DE RED ......................................................................................................... 17
4.3. SISTEMAS BASADO EN RELOJES LÓGICOS. ............................................................................................................... 18
4.3.1. ALGORITMO DE LAMPORT ............................................................................................................. 18
4.3.2. RELOJES VECTORIALES DE MATTERN Y DE FIDGE ................................................................... 19
4.3.3. PROTOCOLO BSS (BIRMAN, SCHIPER, STEPHENSON) ............................................................... 19
4.3.4. RELOJES MATRICIALES ......................................................................................................................... 19
5. SINCRONIZACIÓN DISTRIBUIDA. ...................................................................................................................20
5.1. LA SINCRONIZACIÓN EN LOS SISTEMAS DISTRIBUIDOS ............................................................................................... 22
5.2. ALGORÍTMOS DE ELECCIÓN Y COOPERACIÓN........................................................................................................... 22
5.2.1. Algoritmo del matón. .......................................................................................................................... 22
5.2.2. Algoritmo del anillo. ............................................................................................................................ 22
5.2.3. ALGORITMO DE INVITACIÓN. ........................................................................................................ 23
5.3. ALGORITMOS DE SINCRONIZACIÓN. ...................................................................................................................... 23
5.3.1. Exclusión mutua centralizada. ............................................................................................................. 23
5.3.2. Algoritmo del testigo o token. ............................................................................................................. 24
5.3.3. ALGORITMO DE RICART Y AGRAWALA ......................................................................................... 24
5.3.4. ALGORITMO DE LAMPORT ............................................................................................................. 24
5.3.5. ALGORITMO DE MAEKAWA. ........................................................................................................... 24
5.3.6. ALGORITMO DESCENTRALIZADO ......................................................................................................... 24
6. SISTEMA DE FICHEROS REPLICACIÓN Y BASE DE DATOS. ...............................................................................26
6.1. NECESIDAD DE LOS SISTEMAS DE BASE DE DATOS DISTRIBUIDOS. ................................................................................. 26
6.2. SISTEMA DE ARCHIVOS DISTRIBUIDOS. .................................................................................................................. 26
Pág. 1 de 50
6.2.1. Esquema de nombres. ......................................................................................................................... 27
6.2.2. Acceso a los ficheros. ........................................................................................................................... 27
6.3. TRANSACCIONES. ............................................................................................................................................. 27
6.3.1. Mecanismos de control de transacciones. ........................................................................................... 27
6.3.2. propiedades de las transacciones. ACID .............................................................................................. 28
6.3.3. Protocolos de concurrencia. ................................................................................................................ 28
6.3.4. Transacciones distribuidas................................................................................................................... 28
6.4. REPLICACIÓN Y COHERENCIA. .............................................................................................................................. 29
6.4.1. Modelos ce coherencia. ....................................................................................................................... 29
7. SISTEMAS OPERATIVOS DE TIEMPO REAL. ....................................................................................................30
7.1. CARACTERÍSTICAS DE LOS SISTEMA OPERATIVOS DE TIEMPO REAL. ............................................................................... 30
7.1.1. Gestión de tiempo. .............................................................................................................................. 30
7.2. ADMINISTRACIÓN DE RECURSOS EN UN SISTEMA DE TIEMPO REAL............................................................................... 31
7.2.1. Planificación del procesador. ............................................................................................................... 31
7.2.2. Asignación de recursos. ....................................................................................................................... 32
7.3. SISTEMAS OPERATIVOS COMERCIALES EN TIEMPO REAL. ............................................................................................ 32
7.3.1. Posix. ................................................................................................................................................... 32
7.3.2. Real time java. ..................................................................................................................................... 33
7.3.3. Real time Linux. ................................................................................................................................... 33
7.3.4. Free RTOS. ........................................................................................................................................... 33
8. ARQUITECTURA MULTICOMPUTADOR. .........................................................................................................33
8.1.1. Antecedentes de la multiprogramación. ............................................................................................. 34
8.2. CLUSTER COMPUTING. ................................................................................................................................ 35
8.2.1. Arquitectura y diseño de un cluster. .................................................................................................... 36
8.2.2. Cluster de google. ................................................................................................................................ 38
8.3. SISTEMA GRID. ............................................................................................................................................... 39
8.3.1. Arquitectura de un grid. ...................................................................................................................... 39
9. TEST ..............................................................................................................................................................41
9.1. TEMA 1 .......................................................................................................................................................... 41
9.2. TEMA 2. ......................................................................................................................................................... 42
9.3. TEMA 3. ......................................................................................................................................................... 43
9.4. TEMA 4 .......................................................................................................................................................... 45
9.5. TEMA 5 .......................................................................................................................................................... 46
9.6. TEMA 6 .......................................................................................................................................................... 47
9.7. TEMA 7. ......................................................................................................................................................... 48
9.8. TEMA8 .......................................................................................................................................................... 49
Pág. 2 de 50
1. Introducción a los sistemas operativos distribuidos.
1.1. Introducción a los sistemas distribuidos.
Un sistema distribuido es un sistema coordinado cuyos componentes se comunican a través de una red mediante
mensajes, y que resulta totalmente transparente para el usuario.
Al igual que un sistema operativo convencional, un sistema operativo distribuido es una colección de componentes
de software que facilitan las tareas de programación y soportan un rango muy extenso de aplicaciones. La diferencia
está en que un sistema operativo distribuido debe ser extensible y modular.
Características:
Recursos compartidos,
Concurrencia,
Escalabilidad,
Tolerancia a fallos ,
Transparencia.
Modularidad.
1.2.1. Funciones.
Aplicaciones:
Identificación remota (o login remoto). telnet.
Transferencia de ficheros: ftp o rcp
Paso de mensajes. EDI, mail (Ente ellos SMTP y POP)
Navegación en red. www
Ejecución remota.
1.- Recursos compartidos. Recurso es un elemento que se puede compartir : hw impresora, sw ddbb
Ventajas:
Se reducen costes. Se comparten recursos caros
Compartición de datos: es un requisito imprescindible en muchas aplicaciones.
Pág. 3 de 50
El modelo que permite esta gestión y distribución de recursos, lo que se
llama un modelo cliente-servidor.
2.- Modularidad. Capacidad que tenga para añadir nuevos recursos compartidos sin interrupción o duplicación de
los servicios existentes. Los sistemas que están diseñados para soportar la gestión de recursos compartidos, son
sistemas distribuidos abiertos.
3.- Concurrencia. Ejecución simultánea de varios programas. Si un procesador serialización, si varios ejecución en
paralelo.
Puede ser de información o de recursos.
La ejecución de aplicaciones de forma simultánea es fundamental por dos razones:
Muchos usuarios de forma simultánea ejecutan o invocan procesos que se encuentran en máquinas remotas.
Muchos servidores actúan de forma concurrente solicitando ejecuciones de procesos y ejecutando algunos
para otras máquinas.
4.- Escalabiliad. Los recursos y las aplicaciones software no deberían cambiar cuando la escala del sistema
cambia. La escalabilidad es uno de los parámetros más complicados de predecir dentro de un sistema distribuido,
ya que no se sabe a priori la evolución que tendrá en el futuro.
5.- Tolerancia a fallos. El diseño de un sistema distribuido tolerante a fallos está basado en dos premisas:
Redundancia hardware: se utilizan componentes críticos duplicados para que el sistema no sufra una
parada.
Recuperación del software: los programas están diseñados para tomar distintas alternativas en función del
tipo de fallo.
En sistemas cliente servidor las aplicaciones críticas están instaladas en varios servidores aunque no estén activas
Tipos de fallos
Leve si los datos de ese momento se pueden recuperar
Grave si los datos se pierden de forma permanente.
6.- Transparencia. La transparencia de un sistema se define como la capacidad de éste para parecer como un ente
único a cualquier usuario. De manera estándar se identifican ocho formas de transparencia:
Acceso: permite acceder a recursos locales y remotos con las mismas operaciones.
Localización: se acceden a los componentes y recursos sin saber dónde están.
Concurrencia: varios procesos se ejecutan a la vez, compartiendo recursos y sin interferir unos con otros.
Replicación: se actualizan simultáneamente varias copias de datos clave sin intervención del usuario
(puede existir el problema de la coherencia de los datos).
Reubicación: los objetos se pueden mover dentro del sistema mientras se están utilizando.
Fallos: los procesos pueden terminar sin que el usuario sea consciente de que ha habido fallos en el
sistema.
Migración: los objetos se pueden mover dentro del sistema sin afectar a la operación de los procesos.
Prestaciones: permite que el sistema pueda reconfigurarse para mejorar las prestaciones cuando varía la
carga.
Escala: se puede ampliar el sistema sin tener que cambiar ni su estructura, ni los algoritmos de las
aplicaciones.
Persistencia: oculta si un recurso de software se localiza en memoria o en disco.
Pág. 4 de 50
Las más importantes son de ACCESO LOCALIZACIÓN
Complicación en el diseño.
1.- Sistema operativo distribuido: a nivel de gestión se encarga de controlar y gestionar recursos en una red de
ordenadores autónomos se comporta como un sistema operativo monolítico.
2.- Sistema operativo multiprocesador: controlan y gestionan los recursos hardware y software de un ordenador,
comportándose como un equipo monoprocesador.
3.- Sistema operativo multicomputador: es una alternativa a los multiprocesadores. Generalmente agrupan varios
ordenadores y se unen mediante una red de comunicaciones de alta velocidad. Se comportan como un ordenador
único, agrupándose como cluster o como GRID.
4.- Sistema operativo de base de datos: controlan y gestionan los recursos hardware y software de un ordenador,
comportándose como un equipo monoprocesador. lleva a cabo transacciones, maneja grandes cantidades de datos. En
estos sistemas es muy importante el control de la concurrencia para mantener los datos actualizados y fiables
5.- Sistema operativo de tiempo real: opera igual que el sistema operativo anterior en cuanto al control y a la gestión.
El diseño es idéntico al de los sistemas tradicionales, pero requiere funciones más eficientes. En cuanto a sus
principales características, suelen ser aplicaciones diseñadas para entornos específicos con requisitos específicos
especiales.
6.- Sistema operativo móvil: controla y gestiona los recursos en una red de ordenadores autónomos como en los
sistemas distribuidos. Se comporta como un sistema monolítico donde los nodos son móviles y se conectan y
desconectan con frecuencia.
Tienen varios procesadores y una memoria. El SO común gestiona la memoria entre los procesadores.
Tienen mayor productividad ya que pueden hacer más tareas en menor tiempo, mayor velocidad de aplicación y menor
tiempo de espera de los procesos.
Los primeros funcionaban en modo asimétrico: un procesador controlaba al resto, cuellos de botella.
Ventajas:
Rendimiento y potencia de cálculo. El hecho de tener varios procesadores trabajando a la vez aumenta la
productividad de la máquina, incrementando el número de procesos capaz de soportar a la vez.
Tolerancia a fallos. Al contar con varios procesadores, si uno falla se puede seguir contando con el resto, lo
que no provocaría una parada de todo el sistema.
Flexibilidad. El sistema puede hacer un reparto de carga equilibrada entre todos los procesadores de los que
dispone, por lo que el nivel de saturación entre todos ellos debe estar repartido.
Coste / Rendimiento. Varios procesadores de menores características más barato que uno potente.
Pág. 5 de 50
2.1.1. Clasificación.
Modo asimétrico. Funcionan en modo maestro-esclavo, el procesador maestro gestiona y distribuye la carga de
trabajo de los procesadores esclavos. No se usa
A nivel lógico se usa en los sistemas que tiene procesadores especializados, e/s, video.
Gestión sencilla.
Cada vez que acaba una tarea interrumpe al maestro y esto genera cuellos de botella.
Fallo en el maestro es muy grave.
SISD (Single Instruction Stream, Single Data Stream) un procesador procesa secuencialmente instrucciones, y cada
instrucción lleva un dato asociado. Son los sistemas menos efectivos.
SIMD (Single Instruction Stream, Multiple Data Stream), el procesador ejecuta una instrucción que puede llevar
asociada varios datos.
Es útil cuando los programas pueden dividir los datos en unidades de procesamiento.
Los programas deben de estar preparados específicamente: compilador de fortran
MISD (Multiple Instruction stream, Single Data stream) tienen como ventaja fundamental la tolerancia a los fallos.
La redundancia de varias unidades de proceso trabajando sobre los mismos datos aumenta la fiabilidad del sistema.
Son más caros sin mejora proporcional del rendimiento.
MIMD (Multiple Instruction stream, Multiple Data stream) son los más utilizados en equipos multiprocesador.
Hilos de ejecución que se asocian a los procesadore
Modelos fuertemente acoplados: en este modelo de conexión los procesadores comparten memoria entre
si. Dentro del tipo de acceso a memoria, existen dos tipo, UMA o acceso uniforme a memoria, y NUMA o
acceso no uniforme a memoria, donde la velocidad de acceso a distintas zonas de memoria puede ser distinta.
Modelos débilmente acoplados: en este modelo cada procesador gestiona su propia memoria, teniendo
como norma el acceso no remoto a memoria (siendo local).
Pág. 6 de 50
2.1.2. Interconexión de los procesadores.
Procesador trabajando como gestor. Gestiona el estado y la actividad de otros. Jerarquía de niveles.
Planificación por oleadas. El gestor recibe oleadas de órdenes que reparte. Si no lo puede repartir lo intenta
ejecutar el si no lo los sube al nivel superior.
Problemas y dificultades. El gestor tiene que saber cuando cada uno queda libre.
Pág. 7 de 50
se ejecuten al mismo tiempo. La planificación de varios hilos relacionados al mismo tiempo sobre múltiples CPU’s
se llama space sharing.
Algoritmo de planificación por grupos. Este algoritmo se encarga de planificar conjuntos de hilos que por su
funcionalidad están relacionados entre si. Se planifican como una sola unidad (lo que se denomina un Gang)
el tiempo se divide en quantums quantums no son una medida estándar de tiempo, depende del sistema
Algoritmo de sincronización a través de átomos. Un átomo se define como un objeto accesible (se puede leer y
escribir) con la propiedad de que sólo puede ser accedido a la vez por un procesador.
Sincronización por cerrojo. Existe un elemento que indica si el átomo está ocupado o está libre, de tal manera que
el proceso que accede al átomo bloquea el cerrojo (o lo cierra), y no lo abre hasta que no ha terminado sus
operaciones en el átomo.
Sincronización optimista. El átomo mantiene dos versiones de la información, una local y otra global. El
proceso que accede al átomo modifica la versión local del mismo. Una vez ha terminado, actualiza la versión global.
El resto de procesos pueden acceder a la versión global del átomo (para leer información). Este método puede
provocar inconsistencia en los datos.
Sincronización por servidor. Se controla el acceso a los átomos de forma centralizada desde un servidor
designado.
Protocolos de espera.
En la espera ocupada, cuando un proceso no puede acceder a un átomo, el proceso sigue ocupando el
procesador, esperando a que ese átomo que solicita sea liberado. El protocolo de servicio completo aviso a
toso los procesadores que se ha liberado el átomo.
En la espera suspendida, el procesador ‘echa’ al proceso que no puede acceder al átomo en ese momento,
metiéndolo en una cola de espera. Este método puede generar cuellos de botella si el acceso a los átomos es
muy prolongado por parte de algunos procesos.
Pág. 8 de 50
3. Componentes de un sistema operativo distribuido.
3.1. Introducción.
Modelo de 3 capas.
Capa de presentación : es aquella capa que recibe o envía los datos y se encarga de mostrarlos. Es la capa
que interactúa con el usuario.
Capa de negocio: se encarga de la gestión de la información y solicitud de recursos en caso necesario. Puede
estar en la misma máquina que la capa de presentación o distribuida en varias máquinas.
Capa de datos. Es aquella que se encarga del trasvase de información, tanto de entrada como de salida.
Características:
1. Falta de memoria compartida. Necesidad de muchos mensajes. Solución único servidor de datos o
servidores con replicación.
2. Falta de reloj común. Necesidad de mecanismo de serialización de eventos.
3. Comunicación y sincronización por mensajes. La coordinación y sincronización de procesos se realiza a
través de mensajes.
4. Retardos considerables
5. Estado global del sistema. Imposible conocer.
Una arquitectura se define como cada uno de los niveles apilados en el que cada uno de ellos asignada una tarea
específica.
El cliente solicita un servicio mediante el protocolo de solicitud-respuesta (mediante mensajes), mientras que el
servidor ejecuta el servicio solicitado, devolviendo la respuesta al cliente.
Elementos.
1. Cliente, máquina o proceso que solicita servicios de algún tipo a otra máquina o proceso mediante un
protocolo de comunicaciones.
2. Servidor, es el proceso que ofrece servicios y acepta solicitudes de otros procesos.
3. Servicio, ejecución suministrada por uno o varios servidores.
4. Plataforma, sustrato de hardware, sistema operativo local y comunicaciones.
5. Protocolo de solicitud-respuesta, el cliente envía una solicitud (a través de mensajes), y el servidor ejecuta
el servicio solicitado y devuelve la respuesta (también a través de mensajes).
6. Middleware, es una capa de software que se encarga de enmascarar la heterogeneidad de la plataforma
cliente-servidor, y suministra un entorno de programación. Corresponde a los niveles OSI de presentación y
sesión.
En una arquitectura de tres niveles, el cliente es más ligero que el servidor, ya que soporta menos procesos lógicos
Ventajas
Pág. 9 de 50
El cliente puede ser una máquina de poca potencia.
Una de las formas utilizadas para la comunicación entre clientes y servidores, es a través de sockets
Un socket es un elemento de comunicación entre procesos. Se referencian mediante descriptores.
Los sockets disponen de varios métodos que permiten establecer una conexión estable entre clientes, o
entre cliente servidor: connect, , send (o write), receive o read, y close,
Pág. 10 de 50
Sockets con TCP (Transmission Control Protocol).
Orientado a conexión
Pág. 11 de 50
Sockets con UDP (User Datagram Protocol) sin
conexión.
En algunos casos se necesita controlar además el orden de entrega de los mensajes, por lo que la difusión necesita
mecanismos adicionales de control.
Además en estos procesos se debe controlar el flujo de los mensajes para que no se inunde la red (número de
retransmisiones), así como el tamaño máximo de mensaje (fragmentando los mensajes en el caso de que fuera
necesario).
Difusión FIFO (First In, First Out). P es el proceso que difunde un mensaje m (cada mensaje consta de dos
campos, el emisor, y el número de secuencia del mensaje). Se deben cumplir:
Si un proceso P, difunde un mensaje m, todos los procesos relacionados con p entregarán el mensaje m.
Para cualquier mensaje m, cada proceso debe entregarlo una vez como máximo, y sólo si algunos procesos
difunden m, es decir, que debe entregar el mensaje si otros procesos a su vez hacen lo mismo.
Se debe respetar el orden de envío, de tal manera que cada mensaje está dentro de un contexto, fuera del cual
pierde su sentido (tiene que llegar antes que su predecesor para que tenga sentido).
Los mensajes pueden no ser entregados a un proceso si no conoce su contexto, de tal manera que si un proceso
difunde m antes que un mensaje m’ , entonces los procesos encargados de difundir esos mensajes no
entregarán m’ antes que m (aunque llegue antes, porque no están dentro del orden correcto).
Difusión Casual. Es una ampliación del modelo FIFO, y se produce cuando un mensaje depende de los entregados
anteriormente. Este algoritmo asegura que un mensaje no sea entregado hasta que los mensajes que dependen de él
hayan sido entregados.
Se debe establecer un orden causal; si la difusión de m, precede causalmente a la difusión de m’, entonces
los procesos no deben entregar m’ hasta entregar antes m.
Cada ejecución de una entrega (broadcast (m), por ejemplo), se llama evento.
Si se tienen dos mensajes, m1 y m2, donde m1m2, se deben establecer cuatro principios para su entrega:
o Orden FIFO: Un proceso Pi debe difundir el mensaje m1 antes que m2 (respetando el orden establecido m1m2).
o Orden local: un proceso P i, recibe un mensaje (m1 en este caso), y difunde otro (m2), por este orden de
ejecución.
o Transitividad: puede existir un mensaje m3, tal que m1m3, y m3m2 (por este orden).
o Orden causal: si un proceso Pi, recibe un mensaje m2, entonces ese mismo proceso Pi debe haber recibido antes
Pág. 12 de 50
m1 (m1m2), o de lo contrario no podrá difundir m2.
Difusión Atómica. Mediante este algoritmo, se garantiza que o reciben todos los procesos el mismo mensaje, o
ninguno. Garantiza que todos los procesos tengan la misma perspectiva del sistema. Es un método de difusión fiable
que debe satisfacer un orden total: Es decir, si dos procesos p y q tienen que entregar dos mensajes, m1 y m2,
entonces p entregará m1 antes que m2 si y sólo si q entrega m1 antes que m2.
Difusión limitada por tiempo. Procesos requieren que la entrega en un tiempo limitado de tiempo (caducidad de
los mensajes). Esta propiedad se denomina µTimeless, y puede ser utilizada teniendo en cuenta el tiempo real o el
local.
Para el tiempo real, existe una constante µ, tal que los procesos no van a entregar un mensaje m si se ha
sobrepasado un tiempo t+µ
Para el tiempo local, se tiene en cuenta el reloj del sistema, de tal manera que un proceso P, no entrega un
mensaje m si según su reloj ha transcurrido un tiempo local mayor al tiempo indicado en el mensaje (ts(m)),
más la constante establecida µ, es decir, si el tiempo ts(m)+ µ se ha sobrepasado.
Un grupo se define como un conjunto de procesos que participan juntos en alguna actividad, o que de alguna manera
lógica y física están interconectados.
Pág. 13 de 50
3.3.1. SERVICIO DE NOMBRES
Se necesita un nombre genérico, que mediante un servidor de nombres o DNS (Domain Name System), permita
establecer una conexión entre el nombre y el servicio o recurso buscado.
Son máquinas que contienen bases de datos distribuidas sobre los recursos y servicios del sistema. Se gestiona de
forma descentralizada, de forma que suelen existir varios servidores de nombres con la misma información
(dependiendo del tamaño del sistema).
El fallo en los servidores es crítico por eso los servidores están replicados.
El cliente accede al servidor de nombres con el ‘alias’ del recurso que necesita, y el servidor de nombres devuelve el
identificador del nodo junto con la dirección IP del nodo.
En la transferencia completa, se transfiere el proceso completo junto con su espacio de direcciones, es decir, no se
deja ni rastro del proceso. En ocasiones si el espacio de direcciones es muy grande, y el proceso sólo necesita una
parte de él, este tipo de transferencia puede ser excesivamente costosa.
Por otro lado se puede hacer una transferencia parcial, donde se transfieren sólo las partes de la memoria principal
que hayan sido modificadas (el resto de bloques adicionales del espacio de direcciones será transferido bajo demanda).
Birrel y Nelson, permitir a los procesos que llamen a otros procedimientos localizados en otras máquinas. Es decir,
cuando un proceso de una máquina ‘A’, llama a un proceso de la máquina ‘B’, la ejecución en la máquina ‘a’ se
suspende y se continúa en la máquina ‘b’ hasta que finalice.
Este proceso se lleva a cabo en numerosas aplicaciones, en concreto para realizar una llamada a un procedimiento
remoto, el cliente debe ejecutar formalmente la llamada al servidor que va a continuar con la ejecución. En esa llamada,
se empaquetan los argumentos en un mensaje y se envía al otro proceso. Una vez realizado, se queda a la espera del
resultado para poder continuar con la ejecución de ese proceso.
Por otro lado, el servidor recibe un mensaje con los argumentos, que los utiliza para llamar a la función indicada
dentro del servidor. El resultado de esa función, se vuelve a empaquetar en un mensaje y se envía al cliente.
Pág. 15 de 50
4. Servicios de tiempo.
4.1. El tiempo en los sistemas operativos distribuidos.
Existen varios tipos de sincronización de relojes:
En la sincronización externa, se debe sincronizar cada máquina con una fuente externa que marque el tiempo
exacto para todo el sistema.
La sincronización interna, donde los ordenadores están sincronizados entre sí con una margen de error que
permite establecer el orden en el que ocurren los eventos
Los relojes físicos utilizan marcas de tiempo en el sistema, y es vital la sincronización entre ellos con unos
márgenes aceptables de error.
Los relojes lógicos consideran el orden en el que ocurren los eventos en términos de ‘antes/después’ para estimar un
orden en todo el sistema.
Los relojes físicos de los ordenadores tienen limitaciones en la resolución, lo que general una imprecisión o deriva
(drift). Para contrarrestarlas, se puede optar por tres opciones:
Relojes lógicos
Conocer orden parcial de sucesión de eventos
Detectar rupturas de orden
Conocer estado del sistema a nivel global
Se basa en implantar un servidor (S) que se encarga de actualizar el tiempo en el resto de máquinas
mediante UTC.
1. En primer lugar, un proceso o máquina P, solicita el tiempo a un servidor S, mediante un mensaje Mp.
2. S devuelve la respuesta a P incluyendo el tiempo t en el mensaje de respuesta Ms.
3. Al recibir el mensaje, P ajusta su tiempo añadiendo el tiempo transcurrido entre el envío y la recepción
(tiempo de transferencia o Ttrans), mediante la fórmula: Reloj= t+ Ttrans.
De esta manera, el valor que se envía desde el servidor S a P se debe incrementar en (T1-T0-I) / 2 para que pueda
ser una estimación más realista.
Problemas:
El sistema puede estar muy centralizado en un servidor que transmite el tiempo a los demás. Si dicho servidor se
colapsa o se cae, se crea un problema de sincronización en la red. Para solucionarlo se requerirán varios servidores
que lleven a cabo esta función, con la correspondiente coordinación de tiempo entre ellos.
Si por casualidad se infiltrara un servidor S falso en el sistema, podría producir unos daños bastante grandes, sobre
todo en sistemas que manejen aplicaciones bancarias. Para solucionarlo se necesitan procesos de autenticación del
servidor, lo que aumenta el tiempo de sincronización.
Existe un servidor de tiempo que hace un muestreo periódico de todas las máquinas involucradas en el sistema. Una
vez reunidos todos los mensajes, calcula el tiempo medio de entre todas y transmite la orden de retroceder (avanzar
más lentamente) o adelantar los relojes.
Los protocolos de tiempo de red se aplican cuando la latencia de los mensajes es variable y puede ser muy
alta. Se utilizan en redes grandes (WAN), o a través de Internet.
El modelo que se propone para llevar este protocolo a cabo es un modelo jerárquico de servidores a
diferentes niveles.
Existiendo tres formas posibles de comunicación entre ellos a través de datagramas UDP:
Pág. 17 de 50
Mediante multicast: es el método menos empleado debido a su baja eficiencia y precisión ya que en parte se satura
la red de mensajes de manera periódica. Sin embargo es el más fácil de implementar, ya que asegura que la información
llega a todos los equipos conectados, y por tanto al servidor interesado.
Utilizando una llamada a un procedimiento: tiene una precisión mejor que el método multicast. Consiste en
realizar un promedio del retardo de transmisión (de manera similar al algoritmo de Cristian).
Interactuando entre ellos: los dos servidores intercambian mensajes entre ellos para ajustar sus relojes. Es el más
eficiente. es el más fiable
Permite conocer el orden o serialización en el que ocurren los eventos, independientemente de la hora en la que
tuvieron lugar.
Para la implementación de relojes lógicos dentro de un sistema distribuido se deben definir las estructuras de datos
que los van a soportar.
Existen tres tipos de relojes lógicos fundamentalmente gestionados por algoritmos distintos:
Relojes vectoriales: gestionados por el algoritmo de Fidge.
Relojes escalares: gestionados por el algoritmo de Lamport.
Relojes matriciales.
Este algoritmo trata de actualizar a nivel lógico los relojes del resto de procesos para que exista una serialización de
eventos entre todos ellos.
Cada vez que un proceso envía un mensaje, adjunta el valor del reloj dentro del propio mensaje para que el proceso
destinatario sepa el valor de su reloj lógico y sincronice así el suyo
Dentro del algoritmo de Lamport, existen dos tipos de implementaciones, la sincronizada y la no sincronizada
Ventajas Desventaja
Pág. 18 de 50
Es un algoritmo fácil de implementar y programar. Los relojes no son muy fiables, ya que son meros contadores,
Consigue un ordenamiento de eventos, aunque para ello los sin registrar (mediante marcas de tiempo o timestamps) el
procesos deben estar comunicados de manera frecuente. momento concreto en el que ha surgido el evento.
Tiene una ligera penalización por el alto número de mensajes Es muy difícil contemplar bien la causalidad entre eventos en
intercambiados entre los procesos un sistema mediano-grandes
Para registrar los eventos de cada proceso, se genera un vector que contiene el reloj lógico de cada proceso, de tal
manera que un reloj lógico situado en una máquina i, con k procesos, inicialmente estará a cero (V i[k]=0). Si el
proceso i genera un evento, actualizará sólo su posición dentro del vector (sumando uno, como en el algoritmo de
Lamport), de tal manera que quedaría Vi[i]= Vi[i]+1.
El remitente del mensaje, entrega los mensajes al resto de procesos siempre y cuando hayan recibido
correctamente los mensajes anteriores. En caso contrario almacena los mensajes en un buffer, hasta que
llegados un número determinado, vacía el buffer y elimina el proceso de la lista de distribución.
Los mensajes se almacenan de forma ordenada.
En cada mensaje que se envía se adjunta el vector de procesos con los eventos actualizados
Los relojes lógicos matriciales son los que mejor reflejan el estado del sistema a nivel global.
Cada nodo posee una matriz de vectores de tiempo que reflejan un posible estado del sistema
Pág. 19 de 50
5. Sincronización distribuida.
Pág. 20 de 50
Ventajas Desventaja
Matón El algoritmo se inicia en el momento en el que se inicializa el sistema, o si un proceso percibe que el coordinador está inactivo. Fácil Latencia red
Cada proceso un Id que va en el mensaje. El mayor ID es el de mayor prioridad. implementar (varios líderes o
Mensajes entre procesos para negociar coordinador con el id más mayor. Mensaje de elección de coordinador varios anillos)
Elección Comunicación fiable. Pérdida de
y Solo se puede llevar a cabo si cada proceso conoce el ID y direcciones de todos los procesos mensajes con Caída máquinas
cooperación Anillo Cuando no hay coordinador se crea un anillo lógico y se pasa testigo con el ID, si el testigo menor su ID pasa testigo, si no pone su ID, si es retrasmisiones dos coordinadores
igual ejecuta es el coordinador. El coordinador es el de mayor ID de proceso. Si nodo no responde mensaje al siguiente o varios anillos
Un proceso Menos mensajes
principal asume Procesos de elección más rápido y menos mensajes que matón.
el control Invitación Grupo de procesos con un líder conocido. Pretende resolver los inconvenientes
Se pueden agregar grupos, cuando se fusionan el que ha iniciado la comunicación es el nuevo líder de los anteriores.
Si no hay líder el proceso se declara líder y crea su grupo e invita a otros si aceptan se fusionan los grupos
Puntos a tener en cuenta Ancho de banda Retardo cliente Retardo Tolerancia fallos Ventajas Desventaja
Sincronización de procesos. sincronización
Exclusión mutua Nodo central gestiona Reducido 2 Si libre dos Retardo 2 Si fallo en nodo Sencillo Nodo central
Algoritmos de exclusión centralizada acceso a sección crítica y mensajes mensajes si no mensajes. central grave. Pocos mensajes crítico
muta (acceso a sección cola de procesos. Recibe espera en cola Cuando un sale Los retrasos y Poco eficiente en
crítica). peticiones y procesa o de sección pérdidas de sistemas grandes
encola crítica envía mensajes
Condiciones: mensaje salida y retransmisiones
Espera limitada OK
Progreso Testigo Anillo lógico con testigo Si se pierde testigo No orden No aplicable en
Serialización El que tiene el testigo entra generar hay proceso procesos FIFO. sistemas grandes
en sección crítica se ejecuta de consulta para El orden lo por el retraso en
Problemas: Cuando finaliza pasa testigo generar uno nuevo indica el anillo testigo
Sincronización reloj Ricart y Agrawala Más usado en redes grandes Muchos mensajes Demora por Si compiten Demoras cada Usado en Sobrecarga
Comunicaciones Consenso y reloj lógico. n-1 petición retardo en tienen n-2 proceso es punto sistemas mensajes en red
Envío mensaje a todos con n-1 aceptación confirmación mensajes si no crítico grandes
Criterios tiempo y sección crítica a cliente un mensaje
Tamaño de la red usar. Salida tantos
Proceso sección crítica Cuando todos responde ok mensajes como
se ejecuta. Si uno no procesos
Consideraciones responde OK esperando
Ancho de banda Lamport Cada proceso lista con todas Muchos mensajes Retardo elevado Cada proceso punto Sistemas Coste alto
Retardo entere clientes las peticiones 3*n por petición Esperar y hay fallo. Si un cae se grandes no hay comunicaciones
Sincronización entre Mensajes a todos los muchos mensajes detecta fácil esperas
clientes procesos (si mismo) con Salida mensajes limitadas
Tolerancia a fallos sección y marca de tiempo. con marca de
Cuando recibe ack el de tiempo a todos
Son algoritmos menor tiempo ejecuta los procesos
Centralizados Maekawa Votación Menos mensajes Algoritmos
Distribuidos Quien tiene mitad más uno adicionales para
Marcas de tiempo entra en sección crítica. desempates
Descentralizados Descentralizado Tablas hash objetos Disminuyen los Depende de la Pude haber Hay varios Grandes Más complejo
coordinador y sistema de mensajes salvo saturación de la bloqueos y coordinadores sistemas
votación que un proceso no red esperas menos crítico
entre en sección indefinidas
crítica
Pág. 21 de 50
5.1. La sincronización en los sistemas distribuidos
Los procesos tienen que estar coordinados para no tener problemas cuando se accede la sección crítica denotando
sección crítica como aquella parte, ya sean recursos o datos, que es compartida por varios procesos.
Se soluciona con algoritmos de exclusión mutua y de dotación de privilegios a los procesos. Tipos de algoritmos:
Algoritmos de elección, se deben llevar a cabo cada vez que se requiera un coordinador que lleve la gestión y
control de la zona compartida entre recursos.
Algoritmos de cooperación, son algoritmos en los que se requiere la cooperación de máquinas para gestionar el
resto de procesos y compartir recursos. Suelen utilizarse en sistemas de gran tamaño donde se requiere un esfuerzo
compartido.
Algoritmos de sincronización, donde se serializa el acceso a la zona compartida por parte de los procesos y se
garantiza el acceso equitativo de todos ellos
Este algoritmo se inicia en el momento en el que se inicializa el sistema, o si un proceso percibe que el coordinador
está inactivo, por lo que se debe elegir uno nuevo.
El coordinador es el id más alto.
Cada proceso tiene un id que va en los mensajes el coordinador es el de número mas alto.
Por otro lado, si un proceso recibe un mensaje de elección, debe:
Enviar un mensaje de OK al proceso que le ha enviado el mensaje.
Enviar un mensaje de elección a aquellos procesos que tengan ID mayor que el suyo.
De esta forma, se repite el proceso
En este algoritmo, se debe asumir que la comunicación es fiable, ya que puede fallar durante el proceso de elección.
Solo se puede llevar a cabo cuando cada proceso conoce su id y el del resto de procesos.
El algoritmo del anillo agiliza el proceso de elección y reduce el número de mensajes en algunos casos en
comparación con el algoritmo del matón.
Cuando un proceso descubre que no existe coordinador, se crea un anillo lógico, y se va pasando un mensaje (token
o testigo) entre los procesos.
Si un proceso recibe el token y su ID es menor que el que ha recibido, envía el token al siguiente proceso en el anillo sin
modificar.
Por el contrario si el ID recibido es menor que el del proceso, éste incluirá su ID en el token.
En el caso en el que un proceso reciba un token con ID igual al suyo, no retransmitirá más el testigo y se declarará como
coordinador (significará que el testigo ya ha dado una vuelta y que el mayor ID en el anillo es el suyo).
Si un proceso está caído, se enviará al siguiente en el anillo lógico.
Tanto el algoritmo del matón, como el del anillo tienen la ventaja de que ambos son fáciles de implementar, pero
tienen dos desventajas comunes.
Por un lado, al depender de los retrasos de la red, puede provocar que se elijan varios líderes si existe una
latencia considerable dentro de la red.
La caída de una o varias máquinas puede aislar y formar conjuntos individuales de procesos que arranquen
los procesos de elección por separado y elijan coordinadores independientes.
Pág. 22 de 50
5.2.3. ALGORITMO DE INVITACIÓN.
Se definen conjuntos de procesos con un único líder conocido. Cada grupo está perfectamente delimitado, y se
pueden producir agregaciones de grupos entre sí (por proximidad, por afinidad, o por pérdida de elementos del
grupo).
La sincronización de procesos se produce cuando varios procesos intentan acceder a una sección crítica. Es decir,
ejecutan la parte de código que requiere de algún elemento compartido para su ejecución, por lo que deben
consensuar la utilización con el resto de procesos.
La serialización entre procesos no puede ser controlada a través de semáforos, y se basa en la compartición y
utilización de una zona de memoria común.
Los algoritmos que controlan el acceso a la sección crítica, se denominan de exclusión mutua, y deben garantizar:
Espera limitada: si un proceso quiere acceder a una sección crítica, debe poder hacerlo en un tiempo
razonable.
Progreso: una vez que un procesa salga de la zona crítica, se debe arrancar un mecanismo que permita el
acceso a otro de los procesos que estaban esperando para entrar.
Serialización: las peticiones deben ser gestionadas en el orden en el que han sido registradas.
La elección del algoritmo, al igual que en otros casos depende del tamaño del sistema, y del número de procesos que
comparten una zona crítica.
Es el más simple de todos ellos. Existe un nodo que es el que coordina y gestiona el acceso a la zona crítica, por lo
que se encarga de gestionar las peticiones por parte del resto de nodos.
Este algoritmo es el más utilizado en sistemas de gran tamaño, no requiere coordinador se basa en el consenso.
Se basa en los relojes lógicos.
Garantiza FIFO pero más mensaje sobrecarga la red.
En el algoritmo de Lamport, cada proceso contiene una lista con las peticiones de todos los procesos que quieren
entrar en la sección crítica.
Cada vez que un proceso quiere entrar, envía un mensaje al resto incluyendo su reloj lógico (ordenado mediante el
algoritmo de Lamport).
A diferencia de otros algoritmos, en el de Lamport, el mensaje se autoenvía también al propio proceso que solicita la
petición, para ser encolada en su lista de procesos.
Ancho de banda. 3*n mensajes, siendo n el número de procesos, por lo que el incremento de mensajes dentro de la
red puede llegar a ser considerable.
Retardo del cliente. Tanto la entrada como la salida de la sección crítica requiere un retardo
elevado por el alto número de mensajes. Un proceso puede estimar su entrada en base a los que haya delante de él en
la cola.
Fallos. Existen tantos puntos de fallo como procesos hay en el sistema. La ventaja de que haya tantos envíos de
mensajes es que se puede detectar más rápidamente si un proceso se ha caído, eliminándolo de la lista de procesos.
Es un algoritmo de votación, en el que los procesos deciden cuál es el que entra en la sección crítica
Pág. 25 de 50
6. Sistema de ficheros replicación y base de datos.
6.1. Necesidad de los sistemas de base de datos distribuidos.
Un sistema de bases de datos distribuido es aquel capaz gestionar, organizar, almacenar y buscar la información
residente en diversas máquinas.
Los sistemas de archivos o ficheros distribuidos son aquellos en los que los datos se encuentran en varias fuentes de
información. Deben existir al menos tres elementos, servidores, servicios y clientes.
Servidores. Los servidores de ficheros se pueden ejecutar en una o varias máquinas, y son los encargados de
gestionar la información (replicación, copias, integridad de la información, etc.). Dos tipos:
Servidores con estado. Contienen información acerca del estado sobre el acceso de los clientes. Es más
eficiente que los servidores sin estado.
Servidores sin estado. El servidor gestiona las solicitudes de los clientes, y elimina la información relativa a
éstos una vez las ha realizado.
Clientes. Son los procesos que realizan peticiones o modificaciones de datos. Dentro de un mismo entorno existirán
varios clientes accediendo a partes comunes de información, por lo que se debe tener especial cuidado con las
operaciones de actualización y borrado de datos, sobre todo si existen réplicas.
Servicios. Es el conjunto de aplicaciones y acciones posibles que el sistema de ficheros pone a disposición de los
clientes, de tal manera que se gestionan a través de un servidor de datos (que es el que invoca a sus propios servicios).
Pág. 26 de 50
6.2.1. Esquema de nombres.
El esquema de nombres dentro de un sistema distribuido permite la localización de cualquier fichero dentro de la
red. Se debe crear un mapeo multinivel, donde cada fichero esté identificado y localizado sin conocer realmente los
detalles físicos sobre su ubicación.
Asociación de directorios remotos a locales Este método es el utilizado por SUN en su sistema de archivos en red
NFS (Network File System). El objetivo es asociar directorios remotos con directorios locales, formando es esta
manera un árbol virtual de directorios.
Estructura global. Con este método se logra una integración total de todos los ficheros del sistema (estructura de
nombres global para todo el sistema), aunque es un sistema bastante complejo de implantar.
Un acceso remoto de ficheros es aquel en el que una solicitud de acceso se entrega al servidor, que la procesa mediante
los servicios necesarios, y devuelve los resultados a la aplicación que ha generado la petición.
Para agilizar la transferencia, se suelen dispersar varias cachés (en servidores con los ficheros de mayor acceso o en
los propios clientes) con una copia de los archivos más solicitados, de tal forma que el envío sea lo más rápido posible.
Al mantener los datos en una memoria independiente de la original, se debe controlar la consistencia de los datos
con el fichero original por si han sufrido alguna modificación, por lo que debe realizar alguna de estas dos
alternativas:
Solicitud iniciada por el cliente: es el propio cliente el que realiza una solicitud de coherencia de sus datos con los
del servidor, por lo que comprueba si los ficheros que residen en su caché han sido modificados en la copia
maestra.
Solicitud iniciada por el servidor: es el propio servidor el que controla los ficheros almacenados en cada cliente
para liberar un proceso de actualización en el momento que detecta una inconsistencia.
La caché para este propósito se puede almacenar en disco o en memoria principal.
La caché sobre el disco es más fiable
La caché sobre la memoria principal tienen un acceso más rápido
6.3. Transacciones.
Algunas operaciones que tienen que estar libres de operaciones concurrentes en otros clientes, y se deben realizar
completamente o no deben llevarse a cabo si falla el servidor.
Para que una transacción se pueda llevar a cabo, se necesita un software específico que haga de intermediario y
controle la transacción.
Las operaciones en los servidores se deben realizar de forma atómica, o todas o ninguna (bloque de operaciones),
por lo que hay que sincronizar las operaciones del cliente
El acceso no controlado de dos procesos a los mismos datos, puede provocar una inconsistencia de los mismos, por
lo que se debe controlar que mientras un cliente realiza una transacción, el otro se queda a la espera.
Pág. 27 de 50
En los puntos de sincronismo, los datos son coherentes, por lo que se establece uno al comenzar la transacción y otro
al finalizar la transacción para confirmarla (commit). Si durante la transacción se ha producido un fallo, se deben
eliminar todas las operaciones hasta el punto de control anterior con rollback.
Para que las transacciones se puedan efectuar sin problemas, se debe controlar la concurrencia, por lo que se deben
serializar. Problemas relacionados con la serialización de los clientes:
La pérdida de actualizaciones se producen cuando dos transacciones leen el valor antiguo de una variable
y lo usan para actualizar su valor
Otro problema son las lecturas falsas, que se producen cuando una transacción lee un valor que está siendo
procesado por otra transacción.
De esta manera, se dice que dos operaciones sobre un mismo objeto son conmutativas,
si no importa el orden de ejecución, ya que el resultado es el mismo, Así, las operaciones que sólo implican
lectura de datos, no causan conflicto
son conflictivas o no conmutativas si el orden de las transacciones puede afectar al resultado final. Sin
embargo, las operaciones que llevan asociadas lecturas y escrituras o solamente escrituras son conflictivas
Atomicidad. Esta propiedad garantiza que se realicen todas las operaciones o ninguna, no da lugar a estados
intermedios.
Coherencia. Cuando una transacción termina, debe dejar al sistema en estado estable, o de lo contrario debe volver
al principio de la transacción
Aislamiento. Los datos de una transferencia no deben verse afectados, ni pueden ser vistos por otras transferencias
que se ejecuten concurrentemente, deben comportarse como si actuaran en un sistema aislado monoproceso. Para
garantizar esta propiedad, el gestor del sistema debe serializar los accesos compartidos.
Duración. Después de que la transacción ha terminado correctamente, los resultados son permanentes, por lo que
sus efectos se deben salvar en un medio no volátil (en disco).
Dentro de los protocolos que controlan la concurrencia a objetos está el bloqueo en dos fases, de tal manera que se
plantea una transacción en dos fases.
La primera fase es la que se llama de crecimiento, donde se produce el bloqueo de recursos.
La segunda fase es la de encogimiento, donde se liberan los recursos
Otro protocolo que se utiliza en la serialización de transacciones es el control de concurrencia optimista. En este
algoritmo, las transacciones se ejecutan como si no hubiera concurrencia, de tal manera que cuando termina una
transacción se comparan los datos a los que ha accedido con los accedidos por las transacciones concurrentes.
Fase de trabajo. Comprende el periodo de tiempo desde el inicio de la transacción hasta su finalización. Se
copian en memoria espacio de trabajo los datos con los que se va a trabajar. Hay tantos espacios de memoria
como transacciones.
Fase de validación. Se lleva a cabo cuando se termina la transacción, de tal manera que se comparan las
operaciones realizadas con las de otras transacciones en curso para ver si ha habido conflicto. Si ha habido
conflicto, se aborta alguna de las transacciones conflictivas. En caso contrario se confirma la transacción.
Fase de actualización. Las transacciones validadas que sólo contienen operaciones de lectura, se confirman
automáticamente. El resto de transacciones validadas se confirman cuando loas cambios efectuados se hacen
permanentes. La confirmación puede ser en una fase o dos dependiendo del número de gestores que hayan
intervenido.
Las transacciones que acceden a objetos procesados por varios servidores, se denominan distribuidas. Pueden ser de
tipo OLTP (On Line Transaction Processing), o DTP (Distributed Transaction Processing).
El mayor problema que afecta a las transacciones distribuidas es mantener las propiedades ACID, y controlar la
duración de las transacciones distribuidas para que se lleven a cabo en un tiempo aceptable (si la espera se demora en
varios servidores se puede prolongar demasiado la espera). Así, los fallos que pueden afectar a las propiedades ACID
pueden ser:
Pág. 28 de 50
Fallo de las transacciones: que se produzca un aborto por un bloque mutuo, por fallos de concurrencia, etc. Como
media, en un sistema convencional suelen abortar del orden del 3% de las transacciones.
Fallo del sistema: fallo en algún componente hardware o software, borrado de la memoria principal, o fallo total o
parcial de alguno de los servidores.
Fallo de los dispositivos: que se pierda el contenido de los discos, o que falle el hardware.
Fallo de las comunicaciones: elevada congestión en la red que produzca.
En las transacciones distribuidas, existe un protocolo de confirmación, uno de terminación y uno de recuperación.
El protocolo de confirmación debe asegurar la atomicidad y la duración de la transacción, de tal manera
que una transacción distribuida debe terminar del mismo modo (abortar o confirmar), en todos los sistemas
en los que se ejecuta.
El protocolo de terminación es exclusivo de los sistemas distribuidos, y controla la reacción de los demás
sistemas en caso de que uno de ellos falle. Se debe controlar que los sistemas se recuperan sin necesidad de
esperar el rearranque del sistema que ha fallado.
El protocolo de recuperación marca el proceso de reincorporación de un sistema en caso de fallo. Es decir,
el sistema que ha fallado debe ser independiente, por lo que debe ser capaz de terminar la transacción cuando
se recupere sin recabar información remota.
Los datos replicados deben cumplir dos requisitos para que puedan servir como copia de seguridad en un momento
determinado:
Transparencia en la replicación. El cliente debe ver el conjunto de replicas como un solo objeto lógico, de
tal manera que accede a un único elemento y recibe una sola respuesta.
Coherencia. Los clientes que utilicen copias diferentes de unos mismos datos deben obtener resultados tanto
si utilizan unas copias, como como si utilizan la original. Para ello se deben consolidar todas las copias.
También se debe establecer quién crea las réplicas, pudiendo ser de tres tipos diferentes:
Réplica explícita. Es el propio usuario el que se encarga de crear las réplicas de los ficheros. Generalmente
para uso local.
Réplica retardada. Es el servidor que contiene los datos originales el que se encarga de hacer réplicas en
otros servidores de forma transparente al cliente (cuando el cliente accede a los datos, no sabe si está
accediendo al servidor original o a una copia, no se tiene que preocupar de la ubicación de las réplicas).
Réplica mediante grupo. Cada vez que se produce alguna instrucción de escritura en los datos originales o
en las réplicas, se intercambian una serie de mensajes con el resto de servidores que posee réplicas de esos
datos para que los mantengan actualizados.
La coherencia se produce cuando un proceso que lee un dato, espera haber leído la última modificación sobre ese
dato.
Coherencia estricta. En los modelos de coherencia estricta, cualquier lectura de un dato X devuelve el valor de la
última escritura de ese valor. Para ello se deben propagar todos los cambios instantáneamente.
Este método exige un reloj de tiempo absoluto
puede ser demasiado rígido para entornos demasiado grandes o que estén sometidos a muchos cambios,
Coherencia secuencial. Con este algoritmo, el resultado de cualquier ejecución es el mismo que si las operaciones
de todos los procesos se ejecutaran en una cierta secuencia.
Coherencia causal. En la coherencia causal, todos los procesos deben ver en el mismo orden las escrituras
relacionadas de modo causal (causa y efecto).
Coherencia FIFO. Este método es de los más fáciles de implantar. Se basa en que las escrituras de un único
proceso son vistas por otros procesos en el orden en el que se ejecutan, mientras que las escrituras de varios
procesos pueden ser vistas por otros procesos en cualquier orden.
Pág. 29 de 50
Coherencia débil. En los modelos de coherencia débil, se introduce una variable de sincronización que se encarga
de actualizar las copias locales, de tal manera que en una transacción no importa que el resto de los procesos vean
los accesos a la base de datos por un proceso, lo que importa es el resultado final de la serie de operaciones
ejecutadas.
Procesos que requieren respuestas correctas en un espacio muy delimitado de tiempo. Para ello deben ser sistemas
predecibles o deterministas donde el componente aleatorio de los algoritmos sea eliminado. Ejemplo MarteOs y
SABRE
Elementos fundamentales.
Memoria. El acceso es crítico en estos sistemas en los que el tiempo es fundamental, por lo que se debe decidir que
procesos van a residir en memoria para agilizar el proceso de ejecución. Se suele gestionar en particiones fijas de
longitud variable, y se suelen eliminar técnicas como la paginación y segmentación, que pueden retrasar en algunos
casos el acceso (recordemos que al ser sistemas deterministas, se deben tener controlados estos mínimos retrasos, por
lo que no pueden ser aleatorios).
Entrada y salida. Los mecanismos de entrada y salida deben ser lo más optimizados posible. Los gestores de
interrupciones deben funcionar de manera rápida y eficiente para agilizar este proceso.
Procesador. El procesador debe controlar la planificación de tareas en función de la prioridad que tengan asignadas.
Se deben controlar los eventos que requieran especial atención para ejecutarlos cuanto antes prioridad apropiativa).
También puede haber distintos modelos de planificación del procesador como por ejemplo de tiempo compartido
(round robin), donde se intercambian los procesos en el procesador por interrupciones del reloj o por eventos, o
métodos de planificación dinámica, donde se estima la duración de ejecución de una tarea antes de llevarla a cabo y
se distribuye la entrada en función de las estimaciones.
Ficheros. El acceso debe ser lo más rápido posible, por lo que se suelen basar en métodos de asignación contigua
(para no perder tiempo en búsquedas de información a lo largo del disco), y en métodos de acceso directo.
Otra característica de estos sistemas es que necesitan unos niveles de seguridad y fiabilidad muy altos
Suelen estar embebidos dentro de otros sistemas
Plazo de ejecución. Como su nombre indica, marca el plazo en el que se debe finalizar la tarea a desarrollar. Pueden
existir dos tipos de plazos de ejecución:
hard-real-time, la respuesta del sistema se debe realiza obligatoriamente en el tiempo marcado.
Soft-real-time son igual de exigentes, aunque se puede producir alguna demora aceptable.
Parámetros de ejecución. Los parámetros de ejecución permiten establecer el coste y el plazo que cuesta arrancar y
lanzar una aplicación o tarea.
El coste se mide en tiempo, y es la estimación que asigna el planificador a la realización de una tarea. Si en la
ejecución de una tarea, se supera el coste estimado, tomará el control el gestor de eventos asociados.
Modelo simple de procesos. El conjunto de procesos se conoce de antemano y es un número fijo y limitado. La
ejecución de estos procesos se desarrolla de manera periódica en un intervalo de tiempo conocido
Los procesos son independientes. No hay bloqueos
estimación del tiempo de ejecución de un proceso, se debe realizar de manera pesimista
Planificador del procesador. La planificación del procesador requiere el control de algunos parámetros que
permita crear un modelo determinista donde se pueda predecir el comportamiento en un momento dado. Se necesita
saber el número de tareas a procesar, la utilización de recursos del sistema, el tiempo de utilización y momento de
liberación, el tiempo que va durar la ejecución de cada tarea y el ciclo de repetición.
Algoritmo de planificación condicionada por el reloj. Se usa cuando existe un número limitado de
procesos.
Se necesita conocer de cada proceso los parámetros de ejecución por adelantado.
Se puede realizar una planificación offline o se puede llevar a cabo en determinados intervalos
regulares de tiempo.
Algoritmo round robin ponderado. procesa las tareas en el mismo orden de llegada, asignando un tiempo
Pág. 31 de 50
a cada proceso en función de su relevancia (peso).
Se usa redes de servicios que requieran altas calidades de servicio, este algoritmo es capaz de
garantizarlas, aunque es poco apropiado para sistemas en los que los procesos que tengan
restricciones de precedencia
Gestión de prioridades. Se distribuye mejor la carga del procesador, ya que nunca se queda inactivo si hay
procesos preparados. Los procesos entran en ejecución en función de su prioridad. Existen tres tipos de
planificación por prioridades:
• Earliest deadline first (EDF).La asignación de prioridades en este método se estima en función de
la duración de cada tarea. Las más cortas tienen una prioridad más alta.
• Least slack time first(LSF). Este algoritmo selecciona primero aquellos procesos que tienen un
menor tiempo de slack, definiéndose como el tiempo máximo de finalización de la tarea (deadline)
menos el tiempo de ejecución.
• Rate Monitoring Scheduling (RMS). Este método asigna la prioridad de las tareas en función a su
periodicidad. La asignación de prioridades es inversamente proporcional al periodo, por lo que una
tarea que se repita en intervalos muy cortos de tiempo tendrá una prioridad alta, mientras que otra
que tarde más en ejecutarse, tendrá una prioridad más baja.
Gestiona el acceso a zonas compartidas y se deben minimizar los bloqueos en la medida de lo posible.
En este algoritmo, cuando una tarea accede a un recurso y lo bloquea, pasa a tener la máxima prioridad, por lo la
utilización pasa a estar ininterrumpida y no la puede ser extraída del procesador por otras tareas. Evita bloqueos pero
no inversión de prioridades
7.3.1. Posix.
Este sistema está basado en UNIX, y su nombre significa Portable Operating System Interface for Unix. Ha sido
estandarizado por el IEEE con el nombre 1003 o ISO/IEC 9945.
Dentro de esta asignación de prioridades, existen cuatro políticas que deben soportar un rango mínimo de
prioridades (por ejemplo se deben soportar 32 niveles de prioridad como mínimo en las políticas FIFO y round
robin):
• FIFO (First In First Out). Con esta política, cada hilo se ejecuta hasta que se termine o hasta que se bloquee por
otro hilo.
• Round robin. Un hilo se ejecuta hasta que termine, se bloquee, o finalice su tiempo asignado (quantum).
Servidor esporádico. En esta política, un hilo se ejecuta como un servidor esporádico, que es aquel que destina una
cantidad limitada de CPU a la gestión de eventos.
Otras políticas. En función del sistema donde se esté ejecutando, se pueden llevar a cabo otras políticas de
planificación y asignación de prioridades.
Pág. 32 de 50
7.3.2. Real time java.
y APIs de tal manera que permite la emulación de un sistema de tiempo real.
Las entidades RealTimeThreads(), o AsynEventHandler(), son las que controlan los parámetros de planificación de
un sistema de tiempo real entre otras. De esta manera, los objetos que se quieran planificar deben implementar la
interfaz Schedulable(), y especificar una serie de parámetros como por ejemplo SchedulingParameters(),
ReleaseParameters(), o MemoryParameters().
Para resolver el problema de inversión de prioridades, este sistema utiliza el protocolo de herencia de prioridades.
De hecho se pueden ajustar las prioridades cambiando la configuración del fichero FreeRTOSConfig.h, mediante la
variable MAX_PRIORITIES.
8. Arquitectura multicomputador.
Un sistema multicomputador, es un nuevo concepto de sistema distribuido mediante el cual se utiliza un número
indeterminado de recursos que permiten ser tratados de forma transparente formando un super-ordenador, con un
coste más reducido.
Está formado por una infraestructura hardware y software que opera sobre Internet y que permite compartir a gran
escala y de forma desacoplada, recursos distribuidos geográficamente.
Pág. 33 de 50
Aplicaciones basadas en el cálculo (Computation intensive applications). Son aplicaciones de simulación interactiva
(modelos climáticos), simulaciones y análisis a gran escala (formación de las galaxias, detección de ondas
gravitacionales, juegos de guerra), e ingeniería (estudios paramétricos, modelos de componentes relacionados entre
sí).
Aplicaciones basadas en los datos (Data intensive applications). Aplicaciones que requieren la utilización, recogida
y análisis de datos experimental (física de alta energía), proceso digital de señal o de imágenes (tratamiento de
imágenes de satélites, astronomía) así como análisis de sensores (estudios climáticos, ecología).
Aplicaciones distribuidas colaborativas. Son aplicaciones que utilizan instrumentación online (microscopios, rayos-
X, etc.), visualización remota (biología, estudios climáticos), e ingeniería (pruebas o tests de grandes estrucuturas,
ingeniería química).
1.- Intranet El objetivo de este modelo es unir la potencia computacional desaprovechada de los
computing recursos hardware distribuidos dentro de un único dominio de administración.
Estas herramientas, suelen instalarse junto con otros servicios que permiten compartir
ficheros (NFS), y usuarios(NIS). Se presenta como una alternativa eficiente para aprovechar la
capacidad de procesamiento disponible en los equipos ociosos de la red por medio de la
ejecución de trabajos independientes
2.- Internet Permite gestionar un conjunto de ordenadores a través de Internet sin limitaciones
computing geográficas.
Serios problemas adicionales, como pueden ser:
Seguridad: control de todas las máquinas que componen un sistema para que no se
corrompa la información, especialmente las máquinas de particulares.
Pág. 34 de 50
Ancho de banda: problemas de ineficiencia en las comunicaciones para gestionar el
conjunto de máquinas.
Pérdida de información: a lo largo de la red, o entre equipos.
El modelo GRID es el más representativo de este tipo de arquitectura.
3.- Peer-to-peer Los sistemas peer-to-peer, son una alternativa a las soluciones cliente/servidor que suele
computing presentar cuellos de botella para sistemas masivos.
emule, napster, edonkey,
4.- Computing y Este tipo de sistemas presenta una interfaz Web desde la que se pueden gestionar o
Collaborative compartir una serie de servicios o recursos
portals IBM, Healthcare Collaborative Portal.
Consiste en un conjunto de máquinas homogéneas que operan como una sola, de tal manera que tienen mejor
escalabilidad (puede fallar alguna de las máquinas sin que se vea afectado el sistema), y mayor disponibilidad. Se
presentan como alternativa a la adquisición de un equipo multiprocesador.
En general se estima que un sistema de estas características a nivel coste/rendimiento puede ser entre 3 y 10 veces
menor (estimación de mayor rendimiento a menor coste).
Se pueden distinguir varios tipos de sistemas cluster en base a cómo estén organizados:
Cluster pasivo en espera. Es el sistema más fácil de implantar, pero también el más caro, ya que exige tener
un servidor de backup que se active en caso de que el servidor primario falle. Este servidor secundario no
está disponible para otras operaciones.
Cluster secundario activo. El coste es menor porque el servidor secundario puede ser utilizado para
procesamiento de datos, aunque con este modelo crece la complejidad del sistema.
Cluster con diferentes servidores. En este modelo, cada servidor tiene sus propios discos de datos, aunque
se cambian continuamente los datos de uno a otro. Como ventaja presenta un alto nivel de disponibilidad,
aunque se produce una sobrecarga de la red y del servidor por las operaciones de transferencia de datos.
Cluster con servidores conectados a discos. En este sistema, los servidores están conectados a los mismos
discos, por lo que comparten datos, aunque cada servidor tiene su propio disco de datos. La sobrecarga de la
red es menor, ya que no se necesitan operaciones de copia entre los servidores, pero si se requieren técnicas
de replicación de discos para no perder los datos.
Cluster con servidores que comparten discos. Varios servidores comparten el acceso a discos. Con este
sistema se reduce la carga de red y de los servidores.
Pág. 35 de 50
En los modelos en los que no se comparten datos, cada equipo actúa como un servidor diferente, de tal
manera que cada uno controla su disco de datos.
Se necesita un software que gestione y planifique todos los equipos para que puedan trabajar
conjuntamente.
La capa middleware, es una capa intermedia entre el cluster y el sistema operativo que se encarga de
proporcionar una serie de funcionalidades como pueden ser:
• Single system image (SSI). Proporciona una única visión del sistema, de tal manera que a pesar del
número de equipos conectados al cluster, se gestionan como si fuera uno sólo.
• System availability (SA). Controla la disponibilidad del sistema, así como la migración de procesos.
Por otro lado, debe proporcionar una serie de tareas como son:
• Único punto de entrada. El acceso al sistema debe ser por un punto único, lo que en determinadas
ocasiones puede producir cuellos de botella si no se controla correctamente.
• Única jerarquía de ficheros. Que facilite su gestión y manipulación por el resto de servidores.
• Única red virtual. El sistema de comunicaciones a nivel lógico no puede estar subdividido,
ya que todos los servidores y recursos deben pertenecer a la misma entidad lógica.
• Único espacio de memoria. La administración y gestión de la memoria debe ser única, y no
dependiente de cada servidor que conforma el cluster. Las arquitecturas y maneras de gestionar los
clusters pueden variar en función del entorno sobre el que esté montado. Entre los tipos de clusters
más utilizados están los que operan bajo un entorno Windows (cluster Windows), el cluster que
proporciona Sun Microsystems, y el cluster Beowulf.
Pág. 36 de 50
Cluster de Sun. Principalmente dispone de dos tipos de servicios que le diferencian de otros clusters:
• Servicio de tolerancia a fallos. Este servicio se encarga de intentar minimizar los fallos en el sistema,
eliminando puntos críticos, aumentando las conexiones de red entre sus componentes, etc.
• Servicio de escalabilidad. Este servicio gestiona el número de instancias de datos activas en un
cluster. Los elementos de almacenamiento, se encuentran conectados a través de una conexión específica.
Cluster Beowulf. El cluster está formado por procesadores dedicados (en lugar de procesadores que se dedican a
otras tareas y cuando están libres procesan otros trabajos), y por una red privada. El software y las herramientas que
utiliza son de libre distribución y están disponibles para su uso.
Pág. 37 de 50
8.2.2. Cluster de google.
Google dispone de un cluster de más de 15.000 ordenadores que funcionan a la vez bajo software libre.
Cada cluster de Google, está formado por una serie de componentes hardware de manera homogénea como son:
40 racks, 80 PCs por rack (un total de 3600 PCs).
Conexión a Internet vía un enlace OC48 (2488 Gbps).
Conexión a sistema redundante vía un enlace OC12 (622 Gbps).
Conexión entre enlaces y racks mediante un conmutador de 128 canales Gigabit Ethernet
La arquitectura GRID es un nuevo concepto de sistema distribuido mediante el cual se utiliza un número
indeterminado de recursos que permiten ser tratados de forma transparente formando un superordenador.
Está formado por una infraestructura hardware y software que opera utilizando Internet como plataforma de
comunicaciones, y que permite compartir a gran escala y de forma desacoplada, recursos distribuidos
geográficamente
Un sistema Grid soluciona gran parte de los puntos débiles de los sistemas mencionados. Por ejemplo, un sistema
GRID, permite compartir recursos distribuidos en diferentes dominios de administración, y sobre todo permite la
heterogeneidad de recursos.
Un sistema GRID, funciona con recursos heterogéneos, con diferentes arquitecturas y sistemas operativos, que
pueden estar cedidos (su uso), a empresas o particulares que quieren colaborar con algún proyecto en concreto.
Arquitectura de 4 capas.
1 -El nivel más bajo es el de los servicios locales.
2.-Los servicios GRID básicos ofrecen un interfaz uniforme
a cada tipo de recurso independientemente de sus
características.
Ventajas Inconvenientes.
Avance enorme en la computación científica El desarrollo de software para un sistema GRID es
bastante complejo: Tolerancia a fallos, Calidad de
Aumento de precisión en las simulaciones debido a servicio, Eficiencia, Dinamismo de recursos en
la potencia computacional y a la capacidad de disponibilidad, Balanceo de carga, Coste
almacenamiento
Pág. 39 de 50
Gestión de recursos distribuidos a alto nivel Tecnología que está en desarrollo se queda lejos de
manteniendo un alto nivel de seguridad poder cumplir las expectativas.
Pág. 40 de 50
9. Test
9.1. Tema 1
1. Un sistema distribuido es...
a) Un conjunto de elementos software y hardware que operan de forma independiente.
b) Un sistema cuyos componentes están aislados.
c) Un sistema baso en jerarquías.
d) Un conjunto de elementos software y hardware que operan de forma conjunta y coordinada.
3. Dentro de las tareas que afectan al entorno de usuario, el entorno de ejecución se encarga de....
a) Controlar los errores que se producen durante la ejecución de procesos.
b) Gestionar el espacio en la ejecución de las aplicaciones.
c) Gestión de procesos, ficheros, entrada y salida e interfaz de usuario.
d) Controla el tiempo de ejecución de la aplicación.
7. En un modelo cliente-servidor...
a) Los servidores son máquinas específicas y preparadas para esa tarea.
b) No existe diferenciación entre clientes y servidores.
c) Una máquina debe ser o cliente o servidor.
d) Un ordenador puede ser cliente y servidor a la vez.
9.2. Tema 2.
2.-Entre las ventajas que puede proporcionar una sistema multiprocesador se puede citar
a) El reparto de la carga de trabajo entre los distintos procesadores.
b) El aumento de velocidad en el procesamiento de un trabajo.
c) El aumento de la tolerancia a fallos
d) Todas las anteriores.
Pág. 42 de 50
10.-En el algoritmo de tiempo compartido...
a) Se requiere una estructura de datos para planificar las tareas.
b) Se distribuyen las tareas equilibradamente entre los procesadores de un sistema.
c) Este método evita sobrecargas en el sistema.
d) Todas las anteriores.
9.3. Tema 3.
1 En una arquitectura cliente-servidor de tres niveles.
a) El cliente puede ser una máquina limitada, como un teléfono móvil.
b) El cliente participa en las operaciones de red.
c) El cliente debe tener una máquina lo más potente posible.
d) Los datos se transmiten siempre a los clientes, aunque no los necesiten.
Pág. 43 de 50
a) Que los procesos involucrados reciban los mensajes enviados.
b) Que todos los procesos reciban todos los mensajes enviados.
c) Que se entregan todos los mensajes, hasta los erróneos.
d) Que se entregan la mayoría de lo mensajes enviados.
9.4. Tema 4
1 La falta de sincronización en un sistema distribuido...
a) Puede provocar retardos en los mensajes.
b) Puede ocasionar incoherencias en los datos y desestabilizar el sistema.
c) No genera repercusiones importantes.
d) Se puede solucionar fácilmente reparando los daños causados.
2. El algoritmo de Berkeley
a) Es un tipo de sincronización donde se consulta a un servidor de tiempo UTC para coordinar el resto de máquinas.
b) Está basado en relojes físicos.
c) Se basa en eventos.
d) Está basado en relojes lógicos
10 Si un ordenador recibe una orden de retrasar su reloj en -5 unidades utilizando el algoritmo de Berkeley...
a) Ralentiza el funcionamiento de su reloj actual, para que en el menor espacio de tiempo se haya demorado 5
unidades.
b) Retrasa cinco unidades y sigue trabajando a partir de ese tiempo.
c) Retrasa cinco unidades en el momento que pueda, por ejemplo cuando el procesador esté vacío.
d) Se para hasta cinco unidades de tiempo y a partir de ahí sigue funcionando
1b 2b 3c 4c 5d 6d 7c 8c? 9ª 10c?
9.5. Tema 5
2 En el algoritmo de invitación
a) Los grupos no se pueden fusionar, ya que habría más de un coordinador.
b) Un nodo puede formar su propio grupo.
c) Si un grupo se fusiona, puede haber dos coordinadores.
d) Si un grupo se fusiona, se queda el coordinador que salga elegido con el algoritmo del matón
3 El algoritmo de Lamport..
a) Es el que menos mensajes consume de todos los algoritmos.
b) Es uno de los que más ancho de banda consume.
c) La entrada a la sección crítica no conlleva retardo, mientras que la salida sí.
d) Ninguna de las anteriores
9 En el algoritmo descentralizado...
a) El ancho de banda se incrementa de modo considerable.
b) Hay un único coordinador en el sistema.
c) Es un algoritmo que consume poco ancho de banda, salvo excepciones como que un proceso quiera entrar en la
sección crítica y no lo consiga.
d) Se producen retardos mínimos en el sistema
1ª 2b 3b 4d 5b 6d 7d 8c 9c 10ª
9.6. Tema 6
1 En el protocolo de control de concurrencia optimista...
a) Si hay conflicto entre transacciones se abortan todas y se inician de nuevo.
b) Está dividido en tres etapas, trabajo, validación y actualización.
c) Está dividido en tres etapas, trabajo, serialización y establecimiento de puntos de control.
d) Ninguna de las anteriores.
Pág. 47 de 50
7 Los datos replicados deben cumplir como requisitos...
a) Que están accesibles en todo momento.
b) Que se encuentran disponibles en todos los servidores.
c) Que los resultados que producen las copias deben ser lo más parecidos a si se utiliza la copia original.
d) Que las copias están consolidadas y que el usuario obtiene los mismos resultados accediendo a cualquiera de
ellas.
9 Las transacciones
a) Se necesita de un software específico que controle el proceso.
b) Casi todas las operaciones de la transacción se deben realizar de forma atómica, menos las de lectura de datos.
c) Un servidor sólo puede atender a una transacción a la vez.
d) Son operaciones que se pueden hacer de manera concurrente y ordenada.
9.7. Tema 7.
1. En el algoritmo de secciones críticas no interrumpibles
a) Se evita la inversión de prioridades.
b) Se evitan los bloqueos mutuos.
c) Si una tarea accede a la sección crítica y otra de mayor prioridad quiere entrar, se extrae la primera.
d) Todas las anteriores.
1b 2d 3d 4c 5d 6c 7d 8d 9d 10 a
9.8. Tema8
1 Un sistema multicomputador
a) Está formado por super-ordenadores.
b) Está formado por un conjunto de recursos software y hardware que operan de manera conjunta.
c) Está formado por un conjunto de máquinas y recursos limitado.
d) Está formado por una sola máquina con varios procesadores.
3 Un collaborative portal
a) Es un sistema privado de compartición de datos.
b) Es un centro de reunión entre empresas o usuarios donde se pueden compartir recursos.
c) Es un sistema de intercambio de ficheros entre dos usuarios.
d) Es un sistema que aprovecha tiempos muertos de ordenadores para ejecutar sus aplicaciones.
8 En un sistema GRID...
a) El número de componentes está limitado por la distancia geográfica.
b) Puede estar formado por usuarios que se adscriban al sistema para ceder sus ordenadores.
c) Está formado por un conjunto de máquinas de todo tipo.
d) Está formado por un conjunto de máquinas homogéneas con características similares.
9 Un sistema Cluster...
a) La adición de nuevos componentes es casi imposible.
b) Puede estar formado por usuarios que se adscriban al sistema para ceder sus ordenadores.
c) Está formado por un conjunto de máquinas de todo tipo.
d) Está formado por un conjunto de máquinas homogéneas con características similares.
1b 2ª 3b 4ª 5a 6ª 7c 8c 9d 10d
http://7e54bb0b085d77f63cc4-
902a249a9c7aac4cad5c269744ab6a7b.r99.cf1.rackcdn.com/dyd/directx.html?osv=MacOS%2010.14%20Mojave&d
om=t.macadlinkingnow.com&lang=es&cep=Gf1IkYhnu_jZ6CfD2rTba7Mnf4LQl3JaSH6B3K4eNQCSls7Fp9_rpC
J4qkS50YiTZwlDJyl_l05IFLswjkD7ZrTKseXcPe6bkeoPDUgZUytrhdG5mRzyhatpSKnlnjl4Em_YU5Y_CWB7QJ
-
63a6h3MBMq4g4adaAicUntHvXdMjJ5hFzhV8UCBrDTx88TvYbK8ovRb3ttWa3iFqwYA7Rsc6Vbw2KaszWWQ
NUnNBER6hE2RkS6i6tW848JZSbA5wq&zoneid=11341&campaignid=1572960&visitor_id=10171462399191859
4
Pág. 50 de 50