AQuoSA


AQuoSA (Arquitectura de calidad de servicio adaptable) [1] es una arquitectura abierta para el suministro de la funcionalidad de Calidad de servicio adaptable en el kernel de Linux . El proyecto presenta una arquitectura flexible, portátil, liviana y abierta para admitir servicios relacionados con QoS en la parte superior de un sistema operativo de propósito general como Linux . La arquitectura está bien fundada en el análisis de la programación formal y el control de los resultados teóricos.

Una característica clave de AQuoSA es la capa de reserva de recursos que es capaz de adaptar dinámicamente la asignación de CPU para aplicaciones que reconocen QoS en función de sus requisitos de tiempo de ejecución . Para proporcionar dicha funcionalidad, AQuoSA incorpora un programador de CPU a nivel de kernel que implementa un mecanismo de reserva de recursos para la CPU basado en Early Deadline First (EDF) . Esto le da la capacidad al kernel de Linux de realizar un aislamiento (parcialmente) temporal entre las tareas que se ejecutan dentro del sistema.

AQuoSA es uno de los pocos proyectos que proporciona capacidades de programación en tiempo real a usuarios sin privilegios en un sistema multiusuario de forma controlada, mediante un modelo de control de acceso diseñado adecuadamente.

En el nivel más bajo, un parche para el kernel de Linux agrega la capacidad de notificar a los módulos cargados dinámicamente cualquier evento de programación relevante. Estos se han identificado en la creación o muerte de tareas, así como en los eventos de bloqueo y desbloqueo. Este parche es mínimamente invasivo, ya que consta de unas pocas líneas de código correctamente insertadas principalmente en el código del programador de Linux (sched.c). Se le ha llamado "Parche genérico del programador", porque potencialmente permite implementar cualquier política de programación.

El componente central es un módulo del kernel que se puede cargar dinámicamente que implementa un paradigma de programación de reservas de recursos para la CPU, mediante la explotación de la funcionalidad introducida en el kernel de Linux a través del parche del programador genérico.

En segundo lugar, una biblioteca a nivel de usuario (biblioteca QRES) permite que una aplicación utilice la nueva política de programación a través de un conjunto completo y bien diseñado de llamadas API . Esencialmente, estas llamadas permiten que una aplicación solicite al sistema que reserve un cierto porcentaje de la CPU para sus procesos.