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.