Aspectos del Diseño

La comparación de las tres principales formas de organizar “n” CPU se puede resumir en la Tabla 7.2:

Comparación de tres formas distintas de organizar n cpu.

Los aspectos claves en el diseño de S. O. distribuidos son:


 

Transparencia

Un aspecto muy importante es la forma de lograr la imagen de un único sistema.

Los usuarios deben percibir que la colección de máquinas conectadas son un sistema de tiempo compartido de un solo procesador:

Desde el punto de vista de los usuarios, la transparencia se logra cuando:

La transparencia desde el punto de vista de los programas significa diseñar la interfaz de llamadas al sistema de modo que no sea visible la existencia de varios procesadores.

No es transparente un sistema donde el acceso a los archivos remotos se realice mediante:

Existen distintos tipos de transparencia en un sistema distribuido:


 

Flexibilidad

La flexibilidad es de fundamental importancia.

Esquema de núcleo monolítico y de micronúcleo.

Existen dos escuelas de pensamiento en cuanto a la estructura de los sistemas distribuidos (ver Figura 7.10).

El núcleo monolítico es el S. O. centralizado aumentado con:

Con núcleo monolítico:

El micronúcleo es más flexible y proporciona solo cuatro servicios mínimos:

Contrariamente al núcleo monolítico, el micronúcleo no proporciona el sistema de archivos, el sistema de directorios, toda la administración de procesos o gran parte del manejo de las llamadas al sistema.

El objetivo es mantener el micronúcleo pequeño.

Todos los demás servicios del S. O. se implementan generalmente como servidores a nivel usuario:

Una importante ventaja de este método es su alta modularidad:


 

Confiabilidad

Un importante objetivo de los sistemas distribuidos es que si una máquina falla, alguna otra debe encargarse del trabajo.

La confiabilidad global teórica del sistema podría ser el “or” booleano de la confiabilidad de los componentes; ejemplo:

La confiabilidad práctica se ve disminuida ya que muchas veces se requiere que ciertos servidores estén en servicio simultáneamente para que el todo funcione, debido a ello algunos sistemas tienen una disponibilidad más relacionada con el “and” booleano de las componentes que con el “or” booleano.

Un aspecto de la confiabilidad es la disponibilidad, que se refiere a la fracción de tiempo en que se puede utilizar el sistema.

La disponibilidad se mejora mediante:

Los datos no deben perderse o mezclarse y si los archivos se almacenan de manera redundante en varios servidores, todas las copias deben ser consistentes.

Otro aspecto de la confiabilidad general es la seguridad, lo que significa que los archivos y otros recursos deben ser protegidos contra el uso no autorizado.

Un aspecto también relacionado con la confiabilidad es la tolerancia a fallas, según la cual las fallas se deben ocultar brindando una recuperación transparente para el usuario, aunque haya cierta degradación de la performance.

 

Desempeño

Cuando se ejecuta una aplicación en un sistema distribuido no debe parecer peor que su ejecución en un único procesador, pero esto es difícil de lograr.

Algunas métricas del desempeño son:

El problema se complica por el hecho de que la comunicación entre equipos es lenta comparada con:

Se requiere el uso de protocolos de comunicaciones en los extremos (procesadores) que intervienen en la comunicación, con lo que se incrementa el consumo de ciclos de procesador.

Para optimizar el desempeño frecuentemente hay que:

También se debe prestar atención al tamaño de grano de todos los cálculos:


 

Escalabilidad

La tendencia indica que el tamaño de los sistemas distribuidos es hacia cientos de miles y aun decenas de millones de usuarios conectados.

Existen cuellos de botella potenciales que se debe intentar evitar en los sistemas distribuidos de gran escala:

Se deben utilizar algoritmos descentralizados con las siguientes características:

 

Hosted by www.Geocities.ws

1