Sistemas operativos distribuidos

SOD   Sistemas operativos distribuidos

Aspectos importantes en el diseño de Sistemas Operativos Distribuidos.
  • Transparencia
  • Flexibilidad
  • Confiabilidad
  • Desempeño
  • Escalabilidad
Transparencia:
Es el aspecto mas importante ya que el diseñador del sistema debe lograr que todas las personas piensen que la colección de máquinas es tan sólo un sistema de tiempo compartido de un procesador. 

Flexibilidad:
Debe tener una interfaz bien definida para cada servicio (comunicación de los procesos, administración de la memoria, etc.) y cada servicio es igual de accesible para todos los clientes.  Además de ser fácil de instalar y depurar nuevos servicios. 

Confiabilidad:
La idea de la confiabilidad es que si una máquina falla, alguna otra máquina se encargue del                   trabajo.
En práctica es contar con varios servidores que sirvan para que todo funciones.
Así mismo los datos no deben perderse, por lo que si los archivos se almacenan en varios servidores, las copias deben de ser consistentes. 

Desempeño:
Puede medirse de varias formas:
  • Tiempo de respuesta.
  • Rendimiento (número de trabajos por hora)
  • Cantidad consumida de la capacidad de la red.
Escalabilidad:
La mayor parte de los sistemas distribuidos están diseñados para trabajar con unos cuantos cientos de CPU.  Es posible que los sistemas futuros tengan mayores ordenes de magnitud y las soluciones que funcionen bien para 200 máquinas fallen de manera total para 200 millones.  En poco tiempo tendremos sistemas distribuidos con decenas de millones de usuarios.  La cuestión es que los métodos que se desarrollan en la actualidad puedan escalarse hacia esos grandes sistemas.
Ejemplos:  Solaris-MC, Amoeba, Spring, Sprit, Taos, Chorus

Sistemas Operativos de Red

SOR Sistemas operativos de red 

Son aquellos sistemas que mantienen a dos o más computadoras unidas a través de algún medio de comunicación, con el objetivo primordial de poder compartir los diferentes recursos y la información del sistema Después de cumplir todos los requerimientos de hardware para instalar una LAN, se necesita instalar un sistema operativo de red (Network Operating System, NOS), que administre y coordine todas las operaciones de dicha red. 

Los sistemas operativos de red tienen una gran variedad de formas y tamaños, debido a que cada organización que los emplea tiene diferentes necesidades. 




Servicios: 
  • Soporte para archivos: Es decir, crear, compartir, almacenar y recuperar archivos. 
  • Comunicaciones: Se refiere a todo lo que se envía a través del cable. 
  • Servicios para el soporte de equipo: Aquí se incluyen todos los servicios especiales como impresiones, respaldos en cinta, detección de virus en la red, etc Ejemplo: Windows NT, Server, UNIX, Linux

Direccionamiento Lógico-Físico

DIRECCIONAMIENTO LOGICO-FISICO EN SISTEMAS DISTRIBUIDOS 

Una dirección generada por la CPU se denomina dirección lógica en cambio a la que es percibida por unidad de memoria se denomina dirección física. 

Los esquemas de vinculación de direcciones durante la compilación y durante la carga dan pie a un entorno en el que las direcciones lógicas y físicas son las mismas. En cambio, la ejecución del esquema de vinculación de direcciones durante la ejecución produce un entorno en el que las direcciones lógicas y físicas difieren. En este caso la dirección lógica suele llamarse dirección virtual.

Direccionamiento lógico y físico. El proceso desde que los datos son incorporados al ordenados hasta que se transmiten al medio se llama encapsulación. Estos datos son formateados, segmentados, identificados con el direccionamiento lógico y físico para finalmente ser enviados al medio. 

Debido a que posiblemente la cantidad de los datos sean demasiados, la capa de transporte desde de origen, se encarga de segmentarlos para así ser empaquetados debidamente, esta misma capa en el destino se encargara de re ensamblar los datos y colocarlos en forma secuencial, ya que no siempre llegan a su destino en el orden en que han sido segmentados, así mismo 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.

Caracteristicas de Software

Caracteristicas de Software de un Sistema Operativo Distribuido

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 los puede clasificar en dos tipos:
  • Débilmente acoplados.
  • Fuertemente acoplados.
El software débilmente acoplado de un sistema distribuido:
  • 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.
Combinando los distintos tipos de hardware distribuido con software distribuido se logran distintas soluciones:
  • No todas interesan desde el punto de vista funcional del usuario:
    • Ej.: un multiprocesador es un multiprocesador:
      • No importa si utiliza un bus con cachés monitores o una red omega.
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:
    • Mediante un comando de “login remoto”.
    • Se convierte la propia estación de trabajo del usuario en una terminal remota enlazada con la máquina remota.
    • Los comandos se envían a la máquina remota.
    • 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:
    • En cualquier instante solo se puede utilizar una máquina.
  • Las redes también disponen de un comando de copiado remoto de archivos de una máquina a otra:
    • Requiere que el usuario conozca:
      • La posición de todos los archivos.
      • El sitio donde 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”.
Los “servidores de archivos”:
  • Aceptan solicitudes de los programas de usuarios:
    • Los programas se ejecutan en las máquinas no servidoras, llamadas “clientes”.
    • 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:
    • Las rutas de acceso a un determinado archivo pueden ser diferentes para las distintas estaciones.
    • Los distintos clientes tienen un punto de vista distinto del sistema de archivos.
    • 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.

Caracteristicas de Hardware

Caracteristicas de Hardware de los Sistemas Distribuidos

Todos los sistemas distribuidos constan de varias cpu, organizadas de diversas formas:
  • La forma de interconectarlas entre sí.
  • Los esquemas de comunicación utilizados.
Existen diversos esquemas de clasificación para los sistemas de cómputos con varias cpu:
  • Uno de los mas conocidos es la “Taxonomía de Flynn”:
    • Considera como características esenciales el número de flujo de instrucciones y el número de flujos de datos.
    • La clasificación incluye equipos SISD, SIMD, MISD y MIMD.
SISD (Single Instruction Single Data: un flujo de instrucciones y un flujo de datos):
  • Poseen un único procesador.
SIMD (Single Instruction Multiple Data: un flujo de instrucciones y varios flujos de datos):
  • Se refiere a ordenar procesadores con una unidad de instrucción que:
    • Busca una instrucción.
    • Instruye a varias unidades de datos para que la lleven a cabo en paralelo, cada una con sus propios datos.
  • Son útiles para los cómputos que repiten los mismos cálculos en varios conjuntos de datos.
MISD (Multiple Instruction Single Data: un flujo de varias instrucciones y un solo flujo de datos):
  • No se presenta en la práctica.
MIMD (Multiple Instruction Multiple Data: un grupo de computadoras independientes, cada una con su propio contador del programa, programa y datos):
  • Todos los sistemas distribuidos son de este tipo.
Un avance sobre la clasificación de Flynn incluye la división de las computadoras MIMD en dos grupos:
  • Multiprocesadores: poseen memoria compartida:
    • Los distintos procesadores comparten el mismo espacio de direcciones virtuales.
  • Multicomputadoras: no poseen memoria compartida:
    • Ej.: grupo de PC conectadas mediante una red.
Cada una de las categorías indicadas se puede clasificar según la arquitectura de la red de interconexión en:
  • Esquema de bus:
    • Existe una sola red, bus, cable u otro medio que conecta todas las máquinas:
      • Ej.: la televisión por cable.
  • Esquema con conmutador:
    • No existe una sola columna vertebral de conexión:
      • Hay múltiples conexiones y varios patrones de conexionado.
      • Los mensajes de mueven a través de los medios de conexión.
      • Se decide explícitamente la conmutación en cada etapa para dirigir el mensaje a lo largo de uno de los cables de salida.
      • Ej.: el sistema mundial telefónico público.
  • Otro aspecto de la clasificación considera el acoplamiento entre los equipos:
  • Sistemas fuertemente acoplados:
    • El retraso al enviar un mensaje de una computadora a otra es corto y la tasa de transmisión es alta.
    • Generalmente se los utiliza como sistemas paralelos.
  • Sistemas débilmente acoplados:
    • El retraso de los mensajes entre las máquinas es grande y la tasa de transmisión es baja.
    • Generalmente se los utiliza como sistemas distribuidos.
Generalmente los multiprocesadores están más fuertemente acoplados que las multicomputadoras.

Ventajas y Desventajas de S.O.D.

Ventajas y Desventajas de los Sistemas Operativos Distribuidos

VENTAJAS DE LOS SISTEMAS DISTRIBUIDOS
Con respecto a Sistemas Centralizados:
  • Una de las ventajas de los sistemas distribuidos es la economía, pues es mucho más barato, añadir servidores y clientes cuando se requiere aumentar la potencia de procesamiento. 
  • El trabajo en conjunto. Por ejemplo: en una fábrica de ensamblado, los robots tienen sus CPUs diferentes y realizan acciones en conjunto, dirigidos por un sistema distribuido. 
  • Tienen una mayor confiabilidad. Al estar distribuida la carga de trabajo en muchas máquinas la falla de una de ellas no afecta a las demás, el sistema sobrevive como un todo. 
  • Capacidad de crecimiento incremental. Se puede añadir procesadores al sistema incrementando su potencia en forma gradual según sus necesidades. Con respecto a PCs Independientes: 
  • Se pueden compartir recursos, como programas y periféricos, muy costosos. Ejemplo: Impresora Láser, dispositivos de almacenamiento masivo, etc. 1. Al compartir recursos, satisfacen las necesidades de muchos usuarios a la vez. Ejemplo: Sistemas de reservas de aerolíneas. 
  • Se logra una mejor comunicación entre las personas. Ejemplo: el correo electrónico. 
  • Tienen mayor flexibilidad, la carga de trabajo se puede distribuir entre diferentes ordenadores. 

DESVENTAJAS DE LOS SISTEMAS DISTRIBUIDOS

  • El principal problema es el software, es el diseño, implantación y uso del software distribuido, pues presenta numerosos inconvenientes. Los principales interrogantes son los siguientes: - ¿Qué tipo de S. O., lenguaje de programación y aplicaciones son adecuados para estos sistemas?. - ¿Cuánto deben saber los usuarios de la distribución?. - ¿Qué tanto debe hacer el sistema y qué tanto deben hacer los usuarios?. La respuesta a estos interrogantes no es uniforme entre los especialistas, pues existe una gran diversidad de criterios y de interpretaciones al respecto. 
  • Otro problema tiene que ver con las redes de comunicación. Por ejemplo: -Perdida de mensajes, saturación en el tráfico, etc. 
  • Un problema que puede surgir al compartir datos es la seguridad de los mismos. En general se considera que las ventajas superan a las desventajas, si estas últimas se administran seriamente.

Sistemas Operativos Distribuidos

Sistemas Distribuidos 

Definición: “Sistemas cuyos componentes hardware y software, que están en ordenadores conectados en red, se comunican y coordinan sus acciones mediante el paso de mensajes, para el logro de un objetivo. Se establece la comunicación mediante un protocolo prefijado por un esquema cliente-servidor”.

Características:
  • Concurrencia.- Esta característica de los sistemas distribuidos permite que los recursos disponibles en la red puedan ser utilizados simultáneamente por los usuarios y/o agentes que interactúan en la red. 
  • Carencia de reloj global.- Las coordinaciones para la transferencia de mensajes entre los diferentes componentes para la realización de una tarea, no tienen una temporización general, esta más bien distribuida a los componentes. 
  • Fallos independientes de los componentes.- Cada componente del sistema puede fallar independientemente, con lo cual los demás pueden continuar ejecutando sus acciones. Esto permite el logro de las tareas con mayor efectividad, pues el sistema en su conjunto continua trabajando.

Evolución: Procesamiento central (Host).- Uno de los primeros modelos de ordenadores interconectados, llamados centralizados, donde todo el procesamiento de la organización se llevaba a cabo en una sola computadora, normalmente un Mainframe, y los usuarios empleaban sencillos ordenadores personales. Los problemas de este modelo son:

  • Cuando la carga de procesamiento aumentaba se tenía que cambiar el hardware del Mainframe, lo cual es más costoso que añadir más computadores personales clientes o servidores que aumenten las capacidades. 
  • El otro problema que surgió son las modernas interfases gráficas de usuario, las cuales podían conllevar a un gran aumento de tráfico en los medios de comunicación y por consiguiente podían colapsar. 

Grupo de Servidores.- Otro modelo que entró a competir con el anterior, también un tanto centralizado, son un grupo de ordenadores actuando como servidores, normalmente de archivos o de impresión, poco inteligentes para un número de Minicomputadores que hacen el procesamiento conectados a una red de área local. Los problemas de este modelo son:

  • Podría generarse una saturación de los medios de comunicación entre los servidores poco inteligentes y los minicomputadores, por ejemplo cuando se solicitan archivos grades por varios clientes a la vez, podían disminuir en gran medida la velocidad de transmisión de información. 

La Computación Cliente Servidor.- Este modelo, que predomina en la actualidad, permite descentralizar el procesamiento y recursos, sobre todo, de cada uno de los servicios y de la visualización de la Interfaz Gráfica de Usuario. Esto hace que ciertos servidores estén dedicados solo a una aplicación determinada y por lo tanto ejecutarla en forma eficiente.