Acuosa
Acuosa (Calidad servicio arquitectura adaptativa) [1] es una arquitectura abierta para el aprovisionamiento de adaptación Calidad de servicio funcionalidad en el Kernel de Linux. Las características del proyecto una arquitectura flexible, portable, ligera y abierta para soporte QoS relacionados con servicios en la parte superior de un sistema operativo de uso general como Linux. La arquitectura está bien fundada sobre análisis formal de programación y control de resultados teóricos.
Una característica clave de acuosa es la capa de reserva de recursos que es capaz de adaptarse dinámicamente la CPU asignación de aplicaciones compatibles con QoS basado en sus tiempo de ejecución requisitos. Con el fin de proporcionar dicha funcionalidad, acuosa incrusta un nivel de núcleo CPU Programador implementación de un Reserva de recursos mecanismo para la CPU basada en Lo más temprano posible plazo primero (FED). Esto da la capacidad para el kernel de Linux para realizar (parcialmente) aislamiento temporal entre las tareas que se ejecutan dentro del sistema.
Acuosa es uno de los pocos proyectos que proporciona capacidades de programación en tiempo real a los usuarios sin privilegios en un sistema multiusuario de forma controlada, mediante un modelo de control de acceso correctamente diseñado.
Contenido
- 1 Descripción
- 1.1 Parche para el kernel de Linux
- 1.2 Reservas de recursos
- 1.3 Reservas adaptables
- 1.4 Modelo de Control de acceso acuosa
- 2 Enlaces externos
- 3 Referencias
Descripción
La arquitectura del proyecto puede resumirse del siguiente modo:
Parche para el kernel de Linux
En el nivel más bajo, un parche para el kernel de Linux añade la posibilidad de notificar a los módulos cargados dinámicamente cualquier evento relevante de programación. Estos han sido identificados en la creación o la muerte de las tareas, así como el bloque y desbloquear eventos. Este parche es mínimamente invasiva, que consiste en unas pocas líneas de código insertado correctamente principalmente dentro del código de programador de Linux (sched.c). Ha sido llamada "Genérico Scheduler Patch", porque potencialmente permite implementar cualquier política de programación.
Reservas de recursos
La capa de las reservas de recursos se compone de tres componentes.
El componente principal es una dinámica módulo de núcleo que implementa un recurso reservas paradigma de programación para el CPU, explotando la funcionalidad introducida en el kernel de Linux a través de la genérica Scheduler Patch.
En segundo lugar, una nivel de usuario (QRES biblioteca) permite que una aplicación utilizar la nueva política de programación a través de un sistema completo y bien diseñado de API llamadas. Esencialmente, estas llamadas permiten una solicitud para pedir el sistema de reserva de un determinado porcentaje de la CPU para sus procesos.
En tercer lugar, un componente de nivel de núcleo (el Supervisor) interviene en todas las solicitudes hechas por las aplicaciones a través de la biblioteca QRES, por lo que la suma total de las acciones de CPU solicitadas no viola el condición de planificación del programador (menos de uno, o un poco menos de uno, debido a la sobrecarga). El comportamiento de supervisor es totalmente configurable por el administrador del sistema, así que es posible especificar, en una base por-usuario/por grupo, valores mínimos garantizados y máximos permitidos para las reservas hechas en la CPU.
Con acuosa, aplicaciones pueden utilizar directamente la capa de reserva de recursos, que les permite reservar una fracción de la CPU, así que para ejecutar con las garantías necesarias de programación. Por ejemplo, puede pedir una aplicación multimedia el Sistema operativo para ejecutar la aplicación con la garantía de ser programado por lo menos durante milisegundos Q cada milisegundos P, donde P y Q depende de la naturaleza de la aplicación.
Al registrar una aplicación con la capa de reserva de recursos, es posible especificar una reserva mínima garantizada que el sistema debe garantizar siempre a la aplicación. Basado en las peticiones de reservas mínimas garantizadas, realiza la capa control de la admisión, es decir, permite una nueva aplicación en solamente si, después de la adición de ello, el nuevo conjunto de ejecutar aplicaciones de no superar el límite de saturación de CPU.
Reservas adaptables
Para la típica aplicación multimedia haciendo uso de las tecnologías de compresión alta, puede ser muy difícil, impracticable o inconveniente para ejecutar dichas aplicaciones con una reserva fija en la CPU. De hecho, la reserva más eficiente que debe ser usada puede variar horas extras debido a variar el nivel de compresión que se traduce en diferentes tiempo de descompresión.
Tradicional en tiempo real los sistemas hacen uso de WCET (El peor caso de tiempo de ejecución) las técnicas de análisis con el fin de calcular lo que es el máximo tiempo una instancia de, por ejemplo, puede ejecutar una tarea periódica de la CPU antes de esperar a la próxima instancia de bloqueo.
Dicho análisis es muy difícil en las aplicaciones multimedia complejas de hoy, especialmente cuando se ejecutan en hardware de propósito general como PC estándar, donde tecnologías como cachés de niveles múltiples, tuberías de ejecución de CPU, tampones, varios maestros autobuses en autobús, introducir muchas variables impredecibles para determinar el tiempo necesario para accesos de memoria.
En estos sistemas, es mucho más conveniente afinar un diseño de sistema basado en la carga promedio esperada de la aplicación. De lo contrario, el sistema puede ser significativamente menos utilizados en tiempo de ejecución.
Como ya se mencionó, para ciertas clases de aplicaciones multimedia, como por ejemplo un reproductor de vídeo, es imposible encontrar un valor fijo apropiado para la fracción de CPU requerido por la aplicación en tiempo de ejecución, debido a las fuertes fluctuaciones de la carga dependiendo de los datos reales que se está procesando por la aplicación. Una reserva fija basada en los requerimientos promedio, o ligeramente superior, resultados en los períodos transitorios de mala calidad en tiempo de ejecución (por ejemplo reproducción de la película). Por otra parte, una reserva fija basada en los resultados de carga máxima esperada en una reserva excesiva innecesaria de la CPU para la mayoría de las veces, excepto los períodos en que la carga acerca realmente el máximo valor esperado.
Para estas clases de aplicaciones, es mucho más conveniente utilizar las técnicas de reserva adaptativo, como los proporcionados por la capa de adaptación reserva de acuosa, que realiza un monitoreo continuo en línea de los requerimientos computacionales de los procesos de aplicación, para que se pueda adaptar dinámicamente la reserva hecha en el CPU dependiendo de los datos monitoreados.
La capa de adaptación reserva expone a las aplicaciones una API para el uso de un conjunto de controladores que son de uso muy general dentro de un amplio conjunto de aplicaciones multimedia.
Modelo de Control de acceso acuosa
La mayoría de las variaciones en tiempo real de Linux requieren que los usuarios de las capacidades en tiempo real del sistema operativo modificado para tener privilegios de root en el sistema. Esto es perfectamente aceptable en el contexto de un sistema embebido. Sin embargo, esto es excesivo para sistemas multiusuario donde son características de programación en tiempo real necesario para aplicaciones multimedia o similar. Por lo tanto, acuosa incorpora un modelo de control de acceso dedicado por el sistema que los administradores pueden:
- definir las cuotas de programación en tiempo real a los usuarios individuales o grupos, en cuanto a los valores máximos para el mínimo garantizado de ancho de banda que el sistema operativo puede conceder a usuarios individuales o grupos como un todo;
- controlar cómo los valores de ancho de banda necesario opcional, en exceso a la mínima garantizada de figuras, se distribuye entre los usuarios concurrentes, en situaciones de sobrecarga;
- controlar el máximo de programación de gastos que pueden ser impuestas en el sistema como debido a las reservas en tiempo real creada por usuarios individuales o grupos; por ejemplo, que permite para controlar lo que es el período mínimo que se puede especificar en una reserva en tiempo real.
Más detalles pueden encontrarse en el documento sobre el tema publicado en 2008 de los ACR.[2]
Enlaces externos
- Página de inicio de proyecto acuosa
- SCHED_DEADLINE
Referencias
- ^ Palopoli, Luigi; Cucinotta, Tommaso; Marzario, Luca; Lipari, Giuseppe (abril de 2008). "Acuosa - calidad adaptable de la arquitectura de servicio". Software: Práctica y experiencia. Doi:10.1002/SPE.883.
- ^ Cucinotta, Tommaso (abril de 2008). «Acceso Control adaptativo reservas en sistemas multiusuario». 14 IEEE en tiempo real e incorporada tecnología y aplicaciones Simposio (ACR 2008).