"Administración de
Interrupciones en Sistemas Operativos de Tiempo Real"
Luis Eduardo Leyva del Foyo
|
Texto completo de la Tesis
Resumen
Los requerimientos de diseño
de las aplicaciones de tiempo real son radicalmente diferentes de
aquellos de las aplicaciones de propósito general
(cómputo científico y de escritorio en entornos de red).
Esto demanda de sistemas operativos de tiempo real con
características y mecanismos específicos para este
segmento de la computación. En particular, en un sistema
operativo de tiempo real es necesario poder predecir en todo momento
qué actividad está ejecutando el procesador y por cuanto
tiempo lo hace. Con este propósito la comunidad de tiempo real
ha diseñado una arquitectura de software en donde las
actividades a llevar a cabo por las aplicaciones (tareas) se activan
por tiempos determinados y según esquemas de
planificación predecibles. Sin embargo, en los sistemas
operativos de tiempo real actuales, la comunicación entre los
dispositivos externos y el procesador no ha cambiado y se sigue dando a
través de señales emitidas por el hardware (denominadas
interrupciones) que interrumpen a las aplicaciones de forma
impredecible para ejecutar rutinas de servicio de interrupción
(ISR -- “Interrupt Service Routine”). Este mecanismo, diseñado
décadas atrás para los sistemas operativos de
propósito general, introduce grandes dificultades para
satisfacer los requerimientos de predecibilidad temporal y
confiabilidad que demanda el cómputo en tiempo real.
En este trabajo se hace un análisis de las dificultades que
presenta el modelo de manejo de interrupciones actualmente en uso en
los sistemas operativos de tiempo real. Para dar solución a
estas dificultades, se propone un nuevo modelo consistente en una
unificación total de todos los tipos de actividades en el
sistema (ISRs y Tareas) bajo un esquema común de
planificación y sincronización. El análisis de la
factibilidad de este modelo integrado pone de manifiesto bajo
qué circunstancias es superior al modelo tradicional.
Adicionalmente se presenta el diseño de un subsistema de
administración de interrupciones de bajo nivel que soporta el
modelo integrado y que puede ser configurado para usar diferentes modos
de operación sobre las arquitecturas de hardware convencionales.
El modelo ha sido implementado dentro del núcleo de un sistema
operativo experimental desarrollado como parte de este trabajo y que ha
permitido mostrar la viabilidad de su realización; así
como, la obtención de evidencias experimentales de sus ventajas.
Abstract
The design requirements of real-time applications are
radically different from those of general purpose systems. This
difference in turn demands of real-time operating systems
characteristics and specific mechanisms for this computing segment.
Despite this, the mechanisms for handling interruptions of actual
real-time operating systems are not more than adjustments to the
mechanisms designed decades ago for general purpose operating systems.
As a result, real-time operating systems nowadays face great
difficulties to meet the requirements of temporal predictability and
reliability of these applications.
This thesis provides an analysis of the challenges posed by the
interrupt management model currently used in actual real-time operating
systems. To provide a solution to these difficulties, we proposed a new
model which unifies all types of computing activities in the system
(ISRs and tasks) into a joint scheme of scheduling and synchronization.
A feasibility analysis was designed for this integrated model to show
under which circumstances it is superior to the traditional model.
Additionally, in our work we present the low level design of an
interrupt management subsystem that supports the integrated model and
that can be configured to be used under different modes of emulation on
conventional hardware architectures. The model has been implemented on
a custom designed operating system kernel developed as part of our
work, to demonstrate the feasibility of its implementation and to
obtain experimental evidence of its benefits.