Unidad 1Los sistemas operativos en ambientes distribuidos

Anuncio
1
Unidad 1 Los sistemas operativos en ambientes distribuidos.
1.1 Sistemas distribuidos
El uso de las computadoras está en una revolución. Desde 1945 hasta cerca de 1985, costaban, por lo
general, miles de dólares. La mayoría de las organizaciones tenían tan sólo un puñado de computadoras y,
por carecer de una forma para conectarlas, éstas operaban, por lo general, en forma independiente.
En la mitad de la década de los 80, dos avances tecnológicos cambian esta situación:
1. El desarrollo de poderosos microprocesadores.- Primero de 8 bits, luego los CPU’s de 16, 32 e
incluso 64 bits, con el poder de cómputo de una computadora grande, por una fracción de su precio.
Hoy, la misma cantidad de poder de cómputo se encuentra contenido en un pequeño microprocesador
de 100 dólares. Si la industria automotriz, se hubiera desarrollado igual, un Rolls-Royce costaría 10
dólares y recorrería 3 millones de millas con un galón de gasolina.
2. La invención de la LAN.- Permite conectar docenas, e incluso cientos de maquinas, pudiendo
transferir pequeñas cantidades de información en un milisegundo. Las WAN’s permiten la conexión
de millones de máquinas en todo el planeta
Hoy es fácil reunir sistemas de cómputos completos con un gran número de CPU’s conectados mediante
una red de alta velocidad conocidos como Sistemas distribuidos en contraste con los centralizados
anteriores (con un sólo cpu).
El único inconveniente es que los SD necesitan un software muy diferente al de los SC, están en una
etapa de surgimiento.
Los SD son una realidad inherente (que por su naturaleza está inseparablemente unido a algo) a la
distribución física de las organizaciones.
Un SD se forma mediante la interconexión de un conjunto de computadoras autónomas, las cuales
soportan el almacenamiento de datos y la ejecución de procesos que interactúan con un fin común.
Definición de SD
• Un sistema de cómputo distribuido es una colección de sistemas de cómputo autónomos (llamados
sitios o nodos) interconectados a través de una red y software de comunicaciones, capaces de
cooperar en la realización de una tarea común.
• Es una colección de computadoras independientes que aparecen ante los usuarios del sistema como
una única computadora.
• Es aquel que se ejecuta como un sistema centralizado, pero que realmente se ejecuta sobre múltiples
e independientes CPU’s, haciéndolo de una forma transparente para los usuarios
Ejemplos:
• Una red de estaciones de trabajo en un departamento de una compañía, donde además de cada
estación personal, podría existir una pila de procesadores en el cuarto de máquinas, que no estén
asignados a usuarios específicos sino que se utilicen de manera dinámica cuando sea necesario, con
un sistema de archivos único, los archivos accesibles a todas las computadoras con el mismo nombre.
Cuando un usuario escriba un comando, el SOD busca el mejor lugar para ejecutarlo (la estación
propia, otra estación o un cpu del cuarto de máquinas).
• Un banco con muchas sucursales por el mundo, cada oficina tiene una computadora maestra para las
cuentas y transacciones locales, la cuál se puede comunicar con cualquier computadora de la red. Las
transacciones hechas se realizan sin importar dónde se encuentre la cuenta o el cliente.
1.1.1 Ventajas y desventajas de los SD con respecto de los SC.
Ventajas
• Economía: es la razón número uno hacia los SD ya que estos sistemas tienen en potencia una
proporción precio/desempeño mucho mejor que la de un SC.
• Velocidad: un SD puede tener mayor poder de cómputo que una mainframe.
• Distribución inherente: otra razón es que ciertas aplicaciones son distribuidas en forma inherente; es
decir, algunas aplicaciones utilizan máquinas que están separadas a cierta distancia.
• Confiabilidad: un SD ofrece mayor confiabilidad: al distribuir la carga de trabajo en muchas
máquinas, la falla de un circuito descompondrá a lo más una máquina y el resto seguirá intacto.
• Crecimiento por incrementos: si se necesita añadir poder de cómputo a la compañía, con un SD, basta
añadir más procesadores al sistema, lo que permite un desarrollo gradual conforme surjan las
necesidades.
Desventajas
• Software: No hay mucha experiencia en el diseño, implantación y uso del software distribuido,
además existe poco software para los sistemas distribuidos en la actualidad.
2
•
•
Redes: Una vez que el sistema llega a depender de la red, la pérdida o saturación de ésta puede negar
algunas de las ventajas que el SD debía conseguir.
Seguridad: si las personas pueden tener acceso a los datos en todo el sistema, entonces también
pueden tener acceso a datos con los que no tienen nada que ver.
1.1.2
Modelo Cliente – Servidor
El modelo Cliente – Servidor es el más utilizado en Sistemas distribuidos, esta aplicación se encuentra
dividida en uno o varios procesos frontales (Cliente o Front – End) y uno o varios procesos dorsales
(Servidor o Back – End)
El servidor ofrece varios servicios a través de la red a todos los procesos clientes que lo soliciten.
Para su funcionamiento no importa el sitio de localización ni del cliente ni del servidor.
El modelo exige al menos la existencia de un mecanismo de comunicación entre los clientes y el servidor.
Los mecanismos más utilizados en la actualidad son:
• Sockets
• RPC’s (llamadas a procedimientos remotos)
A
PI - Application Programming Interface - Programación de la interfaz de una aplicación
1.1.3
Características de Hardware
3
Se han propuesto diversos esquemas de clasificación para los sistemas de cómputo con varios CPU’s,
ninguno de ellos ha tenido un éxito completo ni se ha adoptado de manera amplia. A continuación se
muestra la taxonomía presentada por Flynn (1972) que considera dos características esenciales: el número
de flujo de instrucciones y número de flujos de datos:
• SISD(Single Instruction Single Data): Una computadora con un flujo de instrucciones y uno de datos.
Todas las computadoras tradicionales de un procesador caen dentro de esta categoría.
• SIMD(Single Instruction Multiple Data): Un flujo de Instrucciones y varios flujos de datos. Ordena
procesadores con unidad de instrucción que busquen una instrucción y después instruye a varias
unidades de datos para que la lleven a cabo en paralelo, cada una con sus propios datos. (Útil para
cómputos que repiten cálculos con varios conjuntos de datos. P. ej. Sumar los elementos de varios
vectores independientes). Algunas supercomputadoras son SIMD.
• MISD(Multiple Instruction Single Data): Varias instrucciones y un flujo de datos. Ninguna
computadora conocida se ajusta a este modelo.
• MIMD(Multiple Instruction Multiple Data): Un grupo de computadoras independientes, cada una con
su propio contador de programa y datos. Todos los SD son MIMD.
Las computadoras MIMD se clasifican en dos grupos: aquellas que tienen memoria compartida
(multiprocesadores) y aquellas que no (multicomputadoras). La diferencia es: en un multiprocesador,
existe un espacio de direcciones virtuales, compartido por todos los CPU. P. ej. Si un cpu escribe un 44
en la dirección 1000, cualquier otro cpu que lea su dirección 1000 obtendrá un 44. En una
multicomputadora, cada máquina tiene su propia memoria. Si un cpu escribe un 44 en la dirección 1000 y
otro cpu lee su dirección 1000 no encontrará un 44 porque la escritura del primer cpu no afecta su
memoria. Un ejemplo de Multicomputadora son un grupo de PC’s conectadas en red.
Cada una de estas categorías se puede subdividir, con base en la arquitectura de la red de interconexión:
con bus y con conmutador
• Esquema de bus:
o Existe una sola red, bus, cable u otro medio que conecta todas las máquinas: Ej.: TV por
cable.
 Esquema con conmutador:
o No existe una sola columna vertebral de conexión:
o Hay múltiples conexiones y varios patrones de conexionado.
o Los mensajes de mueven a través de los medios de conexión.
o Se decide explícitamente la conmutación en cada etapa para dirigir el mensaje a lo largo de
uno de los cables de salida.
o Ej.: el sistema telefónico, Internet.
Otro aspecto de la clasificación considera el acoplamiento entre los equipos:
• Sistemas fuertemente acoplados:
o El retraso al enviar un mensaje de una computadora a otra es corto y la tasa de transmisión
es alta.
o Generalmente se utilizan como sistemas paralelos.
• Sistemas débilmente acoplados:
o El retraso de los mensajes entre las máquinas es grande y la tasa de transmisión es baja.
o Generalmente se utilizan como sistemas distribuidos.
Multiprocesadores con Base en Buses
Constan de cierto número de cpu’s conectados a un bus común, junto con un módulo de memoria.
Un bus típico posee al menos:
• 32 líneas de direcciones.
• 32 líneas de datos.
• 32 líneas de control.
Todos operan en paralelo. Para leer una palabra de memoria, el cpu:
• Coloca la dirección de la palabra deseada en las líneas de direcciones del bus.
• Coloca una señal en las líneas de control adecuadas para indicar que desea leer.
• La memoria responde y coloca el valor de la palabra en las líneas de datos para permitir la lectura de
ésta por parte del cpu solicitante.
Para grabar el procedimiento es similar.
4
Sólo existe una memoria, la cual presenta la propiedad de la coherencia:
• Las modificaciones hechas por un cpu se reflejan de inmediato en las subsiguientes lecturas del
mismo o de otro cpu.
El problema de este esquema es que el bus tiende a sobrecargarse y el rendimiento a disminuir
drásticamente; la solución es añadir una memoria caché de alta velocidad entre el cpu y el bus:
•
•
•
o
o
o
El caché guarda las palabras de acceso reciente.
Todas las solicitudes de la memoria pasan a través del caché.
Si la palabra solicitada se encuentra en el caché:
o El caché responde al cpu.
o No se hace solicitud alguna al bus.
• Si el caché es lo bastante grande:
o La “tasa de encuentros” será alta y la cantidad de tráfico en el bus por cada cpu disminuirá
drásticamente.
o Permite incrementar el número de cpu.
Un importante problema debido al uso de cachés es el de la “incoherencia de la memoria”:
• Supongamos que los cpu “A” y “B” leen la misma palabra de memoria en sus respectivos cachés.
• “A” escribe sobre la palabra.
• Cuando “B” lee esa palabra, obtiene un valor anterior y no el valor recién actualizado por “A”.
Una solución:
• Diseñar las caché de tal forma que cuando una palabra sea escrita al caché, también sea escrita a la
memoria.
• A esto se denomina “caché de escritura”.
• No causa tráfico en el bus el uso de “caché para la lectura”.
• Sí causa tráfico en el bus:
El no uso de caché para la lectura.
Toda la escritura.
Además, todos los caché realizan un monitoreo constante del bus:
• Cada vez que un caché observa una escritura a una dirección de memoria presente en él, puede
eliminar ese dato o actualizarlo en el caché con el nuevo valor.
• Estos cachés se denominan “cachés monitores”.
Un diseño con cachés monitores y de escritura es coherente e invisible para el programador, por lo que es
muy utilizado en multiprocesadores basados en buses. Soporta de 32 a 64 cpu’s en un bus
Multiprocesadores con Conmutador
Para superar esta cifra (64 cpu’s) es necesario un
método distinto de conexión entre procesadores (cpu) y
memoria.
Una posibilidad es dividir la memoria en módulos y
conectarlos a los cpu con un “conmutador de cruceta”:
• Cada cpu y cada memoria tiene una conexión que
sale de él.
• En cada intersección está un “conmutador del
punto de cruce” electrónico que el hardware puede
abrir y cerrar:
o Cuando un cpu desea tener acceso a una memoria particular, el conmutador del punto de
cruce que los conecta se cierra momentáneamente.
• La virtud del conmutador de cruceta es que muchos cpu pueden tener acceso a la memoria al mismo
tiempo, aunque no a la misma memoria simultáneamente.
• Lo negativo de este esquema es el alto número de conmutadores:
Para “n” cpu y “n” memorias se necesitan “n” x “n” conmutadores
5
o
El número de conmutadores del esquema anterior puede
resultar prohibitivo. Otros esquemas precisan menos
conmutadores, por ej., la “red omega”:
• Posee conmutadores 2 x 2:
Cada uno tiene 2 entradas y 2 salidas.
o Cada conmutador puede dirigir cualquiera de las
entradas en cualquiera de las salidas.
o Eligiendo los estados adecuados de los
conmutadores, cada cpu podrá tener acceso a
cada memoria.
• Para “n” cpu y “n” memorias se precisan:
o “n” etapas de conmutación.
o Cada etapa tiene log 2 n conmutadores para un total de n log 2 n conmutadores; este número
es menor que “n” x “n” del esquema anterior, pero sigue siendo muy grande para “n” grande
n
log 2 n
Omega n * log 2 n
Cruceta n * n
75
6.22881869
467
5,625
100
6.64385619
664
10,000
125
6.96578428
871
15,625
150
7.22881869
1,084
22,500
10,240
1’048,576
1.024 10
Un problema importante en la red omega es el retraso:
• Ej.: si “n” = 1024 existen según la tabla anterior:
o 10 etapas de conmutación del cpu a la memoria.
o 10 etapas para que la palabra solicitada de la memoria regrese.
o Si el cpu es de 50 mhz, el tiempo de ejecución de una instrucción es de 20 nseg.
o Si una solicitud de la memoria debe recorrer 20 etapas de conmutación (10 de ida y 10 de
regreso) en 20 nseg:
• El tiempo de conmutación debe ser de 1 nseg.
• El multiprocesador de 1024 cpu necesitará 10240 conmutadores de 1 nseg.
• El costo será alto.
Otra posible solución son los esquemas según sistemas jerárquicos:
• Cada cpu tiene asociada cierta memoria local.
• El acceso será muy rápido a la propia memoria local y más lento a la memoria de las demás cpu.
• Esto se denomina esquema o “máquina NUMA” (Acceso No Uniforme a la Memoria):
o Tienen un mejor tiempo promedio de acceso que las máquinas basadas en redes omega.
o La colocación de los programas y datos en memoria es crítica para lograr que la mayoría de
los accesos sean a la memoria local de cada cpu.
La conclusión es clara: Construir un multi-cpu grande, fuertemente acoplado con memoria
compartida es difícil y caro.
6
Multicomputadoras con Base en Buses
Es un esquema sin memoria compartida
Cada cpu tiene una conexión directa con su propia memoria local.
Un problema importante es la forma en que los cpu se comuniquen entre sí.
El tráfico es sólo entre un cpu y otro; el volumen de tráfico será varias veces menor que si se utilizara la
red de interconexión para el tráfico cpu - memoria.
Topológicamente es un esquema similar al del multiprocesador basado en un bus.
Consiste generalmente en una colección de estaciones de trabajo en una LAN (red de área local)
Multicomputadoras con Conmutador
Cada cpu tiene acceso directo y exclusivo a su propia memoria particular
Existen diversas topologías, las más comunes son la retícula y el
hipercubo.
Principales características de las retículas:
• Son fáciles de comprender.
• Se basan en las tarjetas de circuitos impresos.
• Se adecuan a problemas con una naturaleza bidimensional
inherente (teoría de gráficas, visión artificial, etc.)
Las principales características del hipercubo son:
• Es un cubo “n” - dimensional.
• En un hipercubo de dimensión 4:
o Se puede considerar como dos cubos ordinarios, cada
uno de ellos con 8 vértices y 12 aristas.
o Cada vértice es un cpu.
o Cada arista es una conexión entre 2 cpu.
o Se conectan los vértices correspondientes de cada
uno de los cubos.
• En un hipercubo de “n” dimensiones:
o Cada cpu tiene “n” conexiones con otras cpu.
o La complejidad del cableado aumenta en proporción logarítmica con el tamaño.
o Sólo se conectan los procesadores vecinos más cercanos:
• Muchos mensajes deben realizar varios saltos antes de llegar a su destino.
• La trayectoria más grande crece en forma logarítmica con el tamaño:
o En la retícula crece como la raíz cuadrada del número de cpu.
o En la actualidad es posible producir hipercubos de 16,384 cpu.
7
1.1.4 Características de software.
La importancia del software supera frecuentemente a la del hardware. La imagen que un sistema presenta
queda determinada en gran medida por el software del S. O. y no por el hardware.
Los S. O. no se pueden encasillar fácilmente, como el hardware, pero se les puede clasificar en dos tipos:
• Débilmente acoplado.
• Fuertemente acoplado.
El software débilmente acoplado de un SD:
• Permite que las máquinas y usuarios sean independientes entre sí en lo fundamental.
• Facilita que interactúen en cierto grado cuando sea necesario.
• Los equipos individuales se distinguen fácilmente.
• Si la comunicación falla, pueden continuar funcionando en gran parte.
Ej.: Un grupo de pc’s independientes que comparten impresoras y una base de datos a través de una LAN.
Pregunta, si quitamos la red, un usuario, para imprimir tendrá que llevar su archivo en disquete, hasta la
pc que tiene la impresora, seguimos teniendo un SD?
1.1.5 Direccionamiento lógico y físico
El proceso desde que los datos son incorporados a la computadora hasta que se transmiten al medio de
comunicación se llama encapsulación. Estos datos son formateados, segmentados, identificados con el
direccionamiento lógico y físico para finalmente ser enviados al medio. A cada capa del modelo OSI le
corresponde una PDU (Unidad de Datos) teniendo el siguiente orden de encapsulamiento:
DATOS->SEGMENTOS->PAQUETES-> TRAMAS->BITS
APLICACIÓN
PRESENTACIÓN
SESIÓN
TRANSPORTE
RED
ENLACE DE DATOS
FÍSICA
DATOS
SEGMENTOS
PAQUETES
TRAMAS o FRAMES
BITS
Debido a que posiblemente la cantidad de los datos sean demasiados, la capa de transporte desde el
origen, se encarga de segmentarlos para así ser empaquetados debidamente, esta misma capa en el destino
se encargará de reensamblar los datos y colocarlos en forma secuencial, ya que no siempre llegan a su
destino en el orden en que han sido segmentados, asimismo, acorde al protocolo que se esté utilizando
habrá corrección de errores. Estos segmentos son empaquetados (paquetes o datagramas) e identificados
en la capa de red con la dirección lógica o IP correspondiente al origen y destino. Ocurre lo mismo con la
dirección MAC en la capa de enlace de datos formándose las tramas o frames para ser transmitidos a
través de alguna interfaz.
1.2 Concepto y características de los SOR (Sistemas Operativos de Redes)
Una posibilidad es el software débilmente acoplado en hardware débilmente acoplado:
• Es una solución muy utilizada.
• Ej.: una red de estaciones de trabajo conectadas mediante una LAN.
Cada usuario tiene una estación de trabajo para su uso exclusivo:
• Tiene su propio S. O.
• La mayoría de los requerimientos se resuelven localmente.
• Es posible que un usuario se conecte de manera remota con otra estación de trabajo:
o Mediante un comando de “login remoto”.
o Se convierte la propia estación de trabajo del usuario en una terminal remota enlazada con la
máquina remota.
o Los comandos se envían a la máquina remota.
o La salida de la máquina remota se exhibe en la pantalla local.
• Para alternar con otra máquina remota, primero hay que desconectarse de la primera:
o En cualquier instante sólo se puede utilizar una máquina.
8
•
Las redes también disponen de un comando de copiado remoto de archivos de una máquina a otra:
o Requiere que el usuario conozca:
 La posición de todos los archivos.
 El sitio dónde se ejecutan todos los comandos.
Una mejor solución consiste en un sistema de archivos global compartido, accesible desde todas las
estaciones de trabajo, una o varias máquinas soportan al sistema de archivos: Son los “servidores de
archivos”:
• Aceptan solicitudes de los programas de usuarios:
o Los programas se ejecutan en las máquinas no servidoras, llamadas “clientes”.
o Las solicitudes se examinan, se ejecutan y la respuesta se envía de regreso.
•
Generalmente tienen un sistema jerárquico de archivos.
Las estaciones de trabajo pueden importar o montar estos sistemas de archivos:
• Se incrementan sus sistemas de archivos locales.
• Se pueden montar los servidores en lugares diferentes de sus respectivos sistemas de archivos:
o Las rutas de acceso a un determinado archivo pueden ser diferentes para las distintas
estaciones.
o Los distintos clientes tienen un punto de vista distinto del sistema de archivos.
o El nombre de un archivo depende:
 Del lugar desde el cual se tiene acceso a él.
 De la configuración del sistema de archivos.
El S. O. de este tipo de ambiente debe:
• Controlar las estaciones de trabajo en lo individual.
• Controlar a los servidores de archivo.
• Encargarse de la comunicación entre los servidores.
Todas las máquinas pueden ejecutar el mismo S. O., pero esto no es necesario.
Si los clientes y los servidores ejecutan diversos S. O., como mínimo deben coincidir en el formato y
significado de todos los mensajes que podrían intercambiar.
Esquemas como este se denominan “sistema operativo de red”:
• Cada máquina tiene un alto grado de autonomía.
• Existen pocos requisitos a lo largo de todo el sistema.
1.3 Concepto y características del SOD.
Las multicomputadoras son un ejemplo de software fuertemente acoplado en hardware débilmente
acoplado:
• Crean la ilusión de que toda la red de computadoras es un sólo sistema de tiempo compartido, en vez
de una colección de máquinas diversas.
Un SD es aquel que se ejecuta en una colección de máquinas sin memoria compartida, pero que aparece
ante sus usuarios como una sola computadora:
• A esta propiedad se la conoce como la imagen de un único sistema.
También se define un SD como aquel que se ejecuta en una colección de máquinas enlazadas mediante
una red pero que actúan como un uniprocesador virtual.
Algunas de las características de los sistemas distribuidos son las siguientes:
• Debe existir un mecanismo de comunicación global entre los procesos: Cualquier proceso debe poder
comunicarse (intercambiar información) con cualquier otro.
• No tiene que haber:
o Distintos mecanismos en distintas máquinas.
o Distintos mecanismos para la comunicación local o la comunicación remota.
9
•
•
•
Debe existir un esquema global de protección.
La administración de procesos debe ser la misma en todas partes.
Se debe tener una misma interfaz de llamadas al sistema en todas partes: Es normal que se ejecuten
núcleos idénticos en todas las cpu del sistema. Para facilitar las actividades globales. Ej.: Al iniciar
un proceso, los núcleos cooperan para encontrar el mejor lugar para ejecutarlo. Pero cada núcleo
debe controlar sus recursos locales. Ej.: Ya que no hay memoria compartida cada núcleo debe
administrar localmente su memoria, o planificar localmente los procesos.
Sistemas de Multiprocesador con Tiempo Compartido
Corresponde a software fuertemente acoplado en hardware fuertemente acoplado
Los ejemplos más comunes de propósito general son los multiprocesadores:
• Operan como un sistema de tiempo compartido, pero con varias cpu en vez de una.
• Externamente un multiprocesador con 32 cpu’s de 3 mips actúa de manera muy parecida a un solo
cpu de 96 mips; 1 mips: 1’000,000 de instrucciones por segundo.
• Se corresponde con la imagen de un único sistema.
La característica clave es la existencia de una sola cola para ejecución:
• Una lista de todos los procesos en el sistema que están listos para su ejecución.
• La cola de ejecución es una estructura de datos contenida en la memoria compartida.
Los programas de los procesos están en la memoria compartida, también el S. O.
El planificador (de procesos) del S. O. se ejecuta como una “región crítica”, con ello se evita que dos
cpu’s elijan el mismo proceso para su ejecución inmediata.
Cuando un proceso se asigna a un procesador:
• Encuentra que el caché del procesador está ocupado por palabras de memoria que pertenecen a
aquella parte de la memoria compartida que contiene al programa del proceso anterior.
• Luego de un breve lapso se habrán reemplazado por el código y los datos del programa del proceso
asignado a ese procesador.
Ningún cpu tiene memoria local, es decir que todos los programas se almacenan en la memoria global
compartida.
Si todos los cpu están inactivos en espera de e / s y un proceso está listo para su ejecución:
• Es conveniente asignarlo al cpu que se utilizó por última vez (para ese proceso):
• La hipótesis es que ningún otro proceso utilizó ese cpu desde entonces.
Si un proceso se bloquea en espera de e / s en un multiprocesador, el S. O. puede:
• Suspenderlo.
• Dejarlo en “espera ocupada”:
o
Es aplicable cuando la mayoría de la e / s se realiza en menos tiempo del que tarda un
cambio entre los procesos.
o
El proceso conserva su procesador por algunos milisegundos en espera de que la e / s
finalice:

Si se agota el tiempo de espera y no ha finalizado la e / s, se realiza una
conmutación de procesos.
Generalmente se dispondrá de un sistema de archivos tradicional, con un único caché:
• Globalmente considerado es similar al sistema de archivos de un único procesador.
10
La comparación de las tres principales formas de organizar “n” cpu’s se puede resumir en la siguiente
tabla:
A continuación se analiza en forma breve algunos de los aspectos claves del diseño con los que deben
trabajar las personas que piensan construir un sistema operativo distribuido:
• Transparencia.- Diseñar el sistema de forma que todas las personas piensen que la colección de
máquinas es tan sólo un sistema de tiempo compartido, de un procesador, a la manera antigua.
La transparencia se puede lograr en dos niveles distintos: Usuarios y programas.
Los distintos tipos de transparencia en un SD son:
o
Transparencia de localización: los usuarios no pueden indicar la localización de los
recursos.
o
Transparencia de migración: los recursos se pueden mover a voluntad sin cambiar sus
nombres.
o
Transparencia de réplica: los usuarios no pueden indicar el número de copias existentes.
o
Transparencia de concurrencia: varios usuarios pueden compartir recursos de manera
automática.
o
Transparencia de paralelismo: las actividades pueden ocurrir en paralelo sin el conocimiento
de los usuarios.
• Flexibilidad.- El diseño de un SD debe hacerse con la idea de facilitar los cambios futuros.
• Confiabilidad.- Uno de los objetivos originales de la construcción de sistemas distribuidos fue el
hacerlos más confiables que los sistemas con un procesador. La idea es que si una máquina falla,
alguna otra máquina se encargue del trabajo.
Un aspecto importante dentro de la confiabilidad es la disponibilidad que se refiere a la fracción de
tiempo en que se puede utilizar el sistema.
Otro aspecto de la confiabilidad general es la seguridad. Los archivos y otros recursos deben ser
protegidos contra el uso no autorizado.
También otro aspecto de la confiabilidad es la tolerancia de fallas. Los sistemas distribuidos se deben
diseñar de forma que escondan las fallas; es decir, ocultarlo a los usuarios.
• Desempeño.- Cuando se ejecuta una aplicación en un SD, no debe parecer peor que su ejecución en
un procesador. Se pueden utilizar diversas métricas de desempeño. El tiempo de respuesta es una,
pero también lo son el rendimiento, uso del sistema y cantidad consumida de la capacidad de la red.
• Escalabilidad.- Diseñar un SD que pueda escalar hacia sistemas más grandes en un futuro.
Descargar