Sistemas Operativos Multiprocesador

 

ejecución de un sistema multiprocesador

27

Se denomina multiprocesador a un computador que cuenta con dos o más microprocesadores (CPUs).

Gracias a esto, el multiprocesador puede ejecutar simultáneamente varios hilos pertenecientes a un mismo proceso o bien a procesos diferentes.

Los ordenadores multiprocesador presentan problemas de diseño que no se encuentran en ordenadores monoprocesador. Estos problemas derivan del hecho de que dos programas pueden ejecutarse simultáneamente y, potencialmente, pueden interferirse entre sí. Concretamente, en lo que se refiere a las lecturas y escrituras en memoria. Existen dos arquitecturas que resuelven estos problemas:

  • La arquitecturaNUMA, donde cada procesador tiene acceso y control exclusivo a una parte de la memoria.
  • La arquitecturaSMP, donde todos los procesadores comparten toda la memoria.

Esta última debe lidiar con el problema de la coherencia de caché. Cada microprocesador cuenta con su propia memoria cache local. De manera que cuando un microprocesador escribe en una dirección de memoria, lo hace únicamente sobre su copia local en caché. Si otro microprocesador tiene almacenada la misma dirección de memoria en su caché, resultará que trabaja con una copia obsoleta del dato almacenado.

Para que un multiprocesador opere correctamente necesita un sistema operativo especialmente diseñado para ello. La mayoría de los sistemas operativos actuales poseen esta capacidad.

28

Causas para usar sistemas operativos

Rendimiento y potencia de calculo

Dedicando múltiples procesadores a la ejecución de una aplicación es posible incrementar la velocidad de ejecución, la interacción entre procesadores se pueden resolver rápidamente.

 

Toleranecia a fallos

La redundancia es una característica natural de los sistemas con múltiples procesadores, esta característica puede usarse para aumentar la disponibilidad de los recursos o hacer labores de verificación.

 

Flexibilidad

Un sistema multiprocesador es capaz de redistribuir de forma dinámica la carga de trabajo de los procesadores en caso de un aumento de procesos e incluso reasignar de forma dinámica los recursos de memoria y dispositivos para aumentar la eficiencia.

 

Especialización funcional

Sabemos que los procesadores están compuestos por una serie de unidades funcionales que se han ido especializando en distintas labores a lo largo del tiempo, tales como la ALU (unidad aritmético lógica), PFU (unidad de punto flotante), MMX (unidad multimedia), de la misma forma los sistemas multiprocesadores aprovechan para dedicar algunos procesadores a labores complejas para así adelantar tiempo en otros procesos de forma paralela.

 

Costo / rendimiento

Los procesador diseñados para servidores resultan algo costosos, razón por la que unir varios procesadores para aumentar el rendimiento y la capacidad de calculo resulta en una alternativa económica para obtener un rendimiento elevado.

Con lo cual se produce la siguiente clasificación:

  • SISD: Sistemas monoprocesador.
  • SIMD: Sistemas vectoriales en los que una instrucción puede operar sobre diferentes datos en diferentes procesadores.
  • – En este esquema multiples instrucciones operan sobre un mismo dato.
  • – Estos incluyen a la mayoría de los multiprocesadores

Los multiprocesadores del modelo MIMD pueden ser clasificados a su vez en:

  • Fuertemente acoplados.- Cuando existe memoria global
  • Débilmente acoplados.- Cuando en lugar de memoria global se usa memoria privada

Una memoria global indica que todos los procesadores acceden a una misma memoria común, mientras que la memoria privada indica que cada procesador posee su propia memoria y que ninguno de los procesadores  tiene acceso a la memoria de otro procesador.

SISTEMAS OPERATIVOS DISTRIBUIDOS

29

 

Un sistema operativo distribuido es la unión lógica de un grupo de sistemas operativos sobre una colección de nodos computacionales independientes, conectados en red, comunicándose y físicamente separados. [1] Cada nodo contiene de forma individual un subconjunto específico de los programas que componen el sistema operativo distribuido. Cada subconjunto es una combinación de dos proveedores de servicios distintos. [2] El primero es un núcleo ubicuo mínimo o micro núcleo, que controla el hardware del nodo. El segundo es una colección de componente de administración del sistema de alto nivel que coordinan las actividades individuales y colaborativas del nodo. Estos componentes son una abstracción de las funciones del micro núcleo y dan soporte a las aplicaciones de usuario. [3]

El micro núcleo y las componentes de administración trabajan en conjunto. Ambos dan soporte al objetivo del sistema el cual es integrar múltiples recursos y capacidad de procesamiento en un sistema eficiente y estable. [4] Esta integración sin fisuras de nodos individuales en un sistema global es conocido como transparencia, o sistema de imagen única; haciendo referencias a la ilusión que se le brinda a los usuarios de que el sistema global luce como una entidad computacional única.
Un sistema operativo distribuido provee las funcionalidades esenciales requeridas por un sistema distribuido, agregando atributos y configuraciones para dar soporte a los requerimientos adicionales, tales como aumento de escala y disponibilidad. Desde el punto de vista del usuario el SO funciona de forma similar a un Sistema Operativo monolítico de un solo nodo. O sea que, aunque está compuesto por múltiples nodos, para los usuarios y aplicaciones luce como un solo nodo.

Separando las funcionalidades mínimas a nivel de sistema de los servicios modulares adicionales a nivel de usuario provee “una separación de mecanismos y políticas”. Mecanismos y políticas pueden ser interpretados de la siguiente manera “cómo algo se hace” contra “por qué algo se hace” respectivamente. Esta separación incrementa la escalabilidad y la flexibilidad.

https://www.youtube.com/watch?v=0LVgwzXrErk

SISTEMAS OPERATIVOS DE RED

30

Un sistema operativo de red, también llamado NOS (del inglés, Network Operating System), es un software que permite la interconexión de ordenadores para poder acceder a los servicios yrecursoshardware y software, creando redes de computadoras. Al igual que un equipo no puede trabajar sin un sistema operativo, una red de equipos no puede funcionar sin un sistema operativo de red. Consiste en un software que posibilita la comunicación de un sistema informático con otros equipos en el ámbito de una red.

Características

Las características genéricas de un sistema operativo de red son:

  • Conecta todos los equipos y recursos de la red.
  • Gestión de usuarios centralizada.
  • Proporciona seguridad, controlando el acceso a los datos y recursos. Debe validar los accesos (claves,certificadossistemas biométricos, etc.) y ver aplicar las políticas de seguridad.
  • Coordina las funciones de red, incluso con las propias del equipo.
  • Comparte recursos (lleva a cabo la coordinación y los privilegios a la hora de compartir). Por tanto, mejora notablemente la utilización de los recursos.
  • Permite monitorizar y gestionar la red y sus componentes.

 

Entorno de los sistemas operativos en red

Componentes de los sistemas operativos de red habituales son:

  • Servidores: Son equipos con sistemas operativos en red que proporcionan recursos a los clientes, haciéndolos accesibles a los equipos de la red, sea a otros servidores o, habitualmente, a clientes.
  • Clientes: Son equipos con un sistema operativo monopuesto conectados para empezar a trabajar en red. A diferencia de los servidores, no comparten sus recursos.
  • Dominios: Es una agrupación lógica de equipos, que permite realizar una gestión centralizada, es decir, desde una ubicación se controla los servicios administrativos del dominio. Los recursos los gestiona el servidor principal. Uno de los protocolos habituales para la formación de dominios esLDAP.

Dependiendo del sistema operativo, se puede dar el caso que en un determinado dominio un equipo sea servidor de ciertos recursos y cliente de otros.

https://www.youtube.com/watch?v=s_lAKfJyFIo

SISTEMAS OPERATIVO BASADO EN MEDDLEWARE

31

Middleware o lógica de intercambio de información entre aplicaciones («interlogical») es un software que asiste a una aplicación para interactuar o comunicarse con otras aplicaciones, o paquetes de programas, redes, hardware y/o sistemas operativos. Éste simplifica el trabajo de los programadores en la compleja tarea de generar las conexiones y sincronizaciones que son necesarias en los sistemas distribuidos. De esta forma, se provee una solución que mejora la calidad de servicio, así como la seguridad, el envío de mensajes, la actualización del directorio de servicio, etc.1

Funciona como una capa de abstracción de software distribuida, que se sitúa entre las capas de aplicaciones y las capas inferiores (sistema operativo y red). El middleware abstrae de la complejidad y heterogeneidad de las redes de comunicaciones subyacentes, así como de los sistemas operativos y lenguajes de programación, proporcionando una API para la fácil programación y manejo de aplicaciones distribuidas. Dependiendo del problema a resolver y de las funciones necesarias, serán útiles diferentes tipos de servicios de middleware. Por lo general el middleware del lado cliente está implementado por el Sistema Operativo, el cual posee las bibliotecas que ejecutan todas las funcionalidades para la comunicación a través de la red.

Deja un comentario