Chorus

 ¿Qué es? Y ¿Para qué se usa?
   Chorus es un micro kernel embebido de tiempo real típicamente usado en ambientes de aplicaciones distribuidas dedicadas de bajo costo, que necesitan un mínimo de funcionalidad y un mínimo uso de memoria, tal como líneas de tarjetas de crédito, teléfonos portables, y dispositivos de mano. Pero también se encuentra en otras aplicaciones embebidas como impresoras, autómatas, etc. es un sistema operativo altamente escalable y de implementación confiable, tanto así que se ha establecido entre los proveedores superiores de telecomunicaciones.

 ·         Administración de la memoria
     Los conceptos principales detrás de la administración de memoria en Chorus son las regiones y los segmentos.

     Una región es un rango adyacente de direcciones virtuales. Todos los bytes de una región tienen las mismas características de protección (por ejemplo, exclusivo para lectura). Las regiones son una propiedad de los procesos y todos los hilos de un proceso ven las mismas regiones.

         Un segmento es una colección adyacente de bytes que reciben el nombre y protección de una posibilidad. Los archivos y las áreas de intercambio son los tipos más comunes de segmentos. Los segmentos se pueden leer o escribir en ellos utilizando llamadas al sistema que proporcionen la posibilidad, el desplazamiento, el número de bytes, el buffer y la dirección de transferencia del segmento.

         Los segmentos asociados son paginados por lo general según la demanda Cuando un proceso hace referencia por vez primera a un segmento recién asociado, ocurre un fallo de página y la página del segmento correspondiente a la dirección de referencia se recupera y se reinicia la instrucción fallida. De esta forma, se puede implantar la memoria virtual ordinaria, y, además, un proceso puede hacer que uno o más archivos sean visibles en su espacio de direcciones virtuales, de modo que tenga un acceso directo a ellos en vez de tener que leerlos o escribir en ellos mediante llamadas al sistema.

    El núcleo soporta segmentos especiales de E/S para al acceso a los registros de E/S de la máquina en máquinas con registros de dispositivos asociados con memoria. Al utilizar estos segmentos, los hilos del núcleo pueden realizar E/S leyendo o escribiendo de manera directa en la memoria.

·         Operaciones de comunicación
         Chorus proporciona dos tipos de operaciones de comunicación: envío asíncrono y RPC. El envío asíncrono permite que un hilo sólo envíe un mensaje a un puerto. No existe garantía de que el mensaje llegue a su destino y no existe una notificación si algo sale mal.

         La otra operación de comunicación es la RPC. Cuando un proceso ejecuta una operación de RPC, se bloquea en forma automática hasta que llega la respuesta o expira el cronómetro de la RPC, en cuyo momento se elimina el bloqueo del emisor. Se garantiza que el mensaje que elimina el bloqueo del emisor es la respuesta a la solicitud.

         Las RPC utilizan una semántica "a lo más una vez”, el sistema garantiza que una RPC regresará un código de error en vez de intentar la ejecución de una operación más de una vez.

      También es posible enviar un mensaje a un grupo de puertos. Se dispone de varias opciones, estas opciones determinan la cantidad de mensajes que se envían y a cuáles puertos.

         Los envíos a grupos de puertos utilizan el envío asíncrono. Los envíos de transmisión (es decir, a todos los miembros) no son controlados por el flujo. Si se requiere un control del flujo, debe ser proporcionado por el usuario

·         Conclusión

         Chorus es un poderoso sistema operativo enfocado a trabajar en maquinas que requieren de una respuesta en tiempo real para realizar determinados trabajos distribuidos; las aplicaciones de Chorus son variadas y de mucha importancia, van desde hacer funcionar maquinaria de línea de producción, impresoras, equipos de mano, etc.

       Chorus es un ejemplo de un sistema operativo extremadamente optimizado y seguro. Provee características sin comparación con otros sistemas operativos, convirtiéndolo en la elección segura en el mercado de los sistemas embebidos distribuidos.