You are on page 1of 7

Universidad Autónoma De Nuevo León

Facultad De Ciencias Físico Matemáticas

Licenciatura en Ciencias Computacionales

Sistemas Embebidos.
Investigación: Kernel RT

Joel Abiram Barrera Loera 1542932


Introducción
En la actualidad el avance de la tecnología ha permitido una miniaturización en los dispositivos
electrónicos y un incremento en la capacidad de procesamiento de estos dispositivos. Estos
dispositivos se encuentran en general empotrados (embebidos) dentro de aplicaciones tales
como teléfonos celulares, PALM’s, computadoras industriales, robots, satélites, automóviles y ´
también en distintos aparatos electro-domésticos.
La mayoría de estos dispositivos contiene un procesador y un pequeño sistema operativo
empotrado el cual es ˜ capaz de controlar todo el hardware de manera eficiente. Debido a la
naturaleza de estos dispositivos embebidos, en ocasiones se les demanda no solo un correcto y
eficiente funcionamiento sino también un estricto cumplimiento de requerimientos temporales. A
estos sistemas se les conoce como sistemas de tiempo real embebidos.
En un sistema de tiempo real el principal componente lo constituye el sistema operativo o Kernel.
Un sistema operativo de tiempo real se ejecuta por lo general sobre una plataforma embebida
(que puede ser un microcontrolador, un DSP o cualquier procesador convencional). Este sistema
operativo debe ser capaz de controlar todos los recursos de hardware de la plataforma que se
encuentra y también de administrar ´ todos los tiempos de ejecución de las tareas de tiempo real.
Normalmente este sistema operativo no maneja discos, memoria cache, DMA o complejos
sistemas de redes de comunicaciones, debido a que su ejecución debe ser predecible. Las
tareas de tiempo real son procedimientos secuenciales que se ejecutan en forma concurrente
con otras tareas del sistema
Las tareas periódicas se ejecutan a intervalos regulares, mientras que las tareas aperiódicas ´
no tienen un tiempo de arribo conocido, se ejecutan por un solo periodo de ejecución, y cuando
arriban ´ deben de cumplir con sus plazos de respuesta. Una tarea de tiempo real que controla
procesos críticos (en los cuales no se permite la pérdida de su plazo de res- ´ puesta) se le
conoce como tarea critica. A las tareas acríticas se les exige terminar lo más pronto posible ´ su
ejecución, pero como no es crítico pueden llegar a perder algunos de sus plazos de respuesta.
LOS KERNELS RT
El problema de los kernel normales es que las tareas no se pueden interrumpir en cualquier sitio,
hay que esperar a que lleguen a ciertos puntos de ejecución donde ya se pueden detener para
conmutar a otra. Esto introduce lo que llamamos latencia.
Por ponerlo de una forma simplificada, los kernels realtime permiten interrumpir las tareas en
más cantidad de sitios que los kernel normales. Pueden hacer, por así decirlo, rodajas más finas
de tiempo, así que la tarea actual será desalojada más rápidamente y nuestra tarea prioritaria
podrá acceder antes a la CPU. Por lo tanto la latencia será más baja.
Digamos que un kernel rt nos permite dejar una gamba a medio pelar si lo que se necesita en
ese momento, urgentemente, es ponerse a deshuesar una aceituna lo antes posible, mientras
que en un kernel normal habría que terminar de pelar la gamba.
Además de hacer rodajas más finas, los kernels rt tienen un sistema de prioridades mucho más
estricto, donde las tareas prioritarias pegan hachazos inmisericordes a las demás —
preempting— para hacerse con el control de la CPU, ralentizando los demás programas lo que
sea necesario para cumplir con sus requisitos.
Análisis de Planificabilidad para Sistemas
de Tiempo Real
La función de un algoritmo de planificación es determinar un orden de ejecución para un conjunto
de tareas. Los algoritmos de planificación tienen asociados ´ un análisis de planificabilidad que
permite verificar si el conjunto de tareas es factible (si ninguna tarea pierde sus plazos de
respuesta). Un sistema en tiempo real se considera factible si, en función del algoritmo de
planificación elegido, es capaz de satisfacer todos los tiempos de respuesta de las tareas.
Una forma para determinar que el algoritmo de planificación elegido asegura el cumplimiento de
los plazos, es realizando un análisis de planificabilidad. Un tipo de análisis consiste en un cálculo
de los tiempos de respuesta del peor caso para ´ cada una de las tareas que conforman el
sistema. Si los tiempos de respuesta para el peor caso son siempre menores que los plazos de
respuesta asociados a las mismas, quiere decir que el sistema es panificable en cualquier
condición.
Las características del modelo de las tareas planteadas originalmente para los algoritmos de
planificación Rate Monotonic y EDF [5] son las siguientes:
1. Un conjunto de tareas T está compuesto por ´ n tareas {τ1 . . . τi . . . τn}. Cada τi está definida
de acuerdo a los parámetros: ´ Di = Plazo, Pi = Periodo y Ci = Tiempo de ejecución (ejecutado
sin ´ interrupción). ´
2. Ci ≤ Di = Pi, es decir, las tareas tienen tiempos de ejecución menores que su plazo, y su
plazo es ´ igual a su periodo.
1. El tiempo de ejecución de cada tarea (´ Ci) es constante. Siempre se ejecuta a la misma
velocidad.
3. Todas las tareas son periódicas. ´
4. No existen relaciones de precedencia entre las tareas.
5. No se permite la comunicación ni la sincronización entre tareas.
6. No se considera el acceso a recursos compartidos por parte de las tareas.
7. El tiempo de ejecución del cambio de contexto y ´ de las primitivas es despreciable.
8. Todos los procesos se ejecutan en un solo procesado.
Rutinas de servicio (ISR)
La rutina de servicio es un programa que la CPU debe ejecutar como respuesta a una
determinada petición de interrupción de su tarea actual, ya sea por parte de un dispositivo
mediante una señal en una línea IRQ (hardware interrupt), o por una instrucción INT (código
propio de microprocesador) que genere un programa (software interrupt).

Con los números de dirección de comienzo de cada rutina de servicio en la memoria


(denominados vectores de interrupción) se crea una tabla en los primeros 1024 kilobytes de
la memoria RAM (Interrupt Vector Table) cada vez que el computador arranca. La tabla tiene
256 direcciones de memoria, identificadas del 0 al 255. Cada vector ocupa 4 bytes.

Algunas rutinas de servicio se suministran en la porción de memoria ROM del BIOS. Otras
forman parte del DOS y son copiadas en la memoria RAM cuando el computador arranca. El
papel de la memoria ROM-BIOS es proporcionar los servicios fundamentales que se
necesitan para que se puedan realizar las operaciones básicas del computador.

Sus servicios, al igual que los del sistema operativo, se llama mediante la combinación de
dos números: el de la interrupción (que indica cuál ha sido el dispositivo o programa que ha
solicitado un servicio) y el de servicio (que indica cuál es la tarea específica que se debe
realizar).

Conmutación de tareas
 Expira el tiempo de ejecución asignado por el procesador a la tarea N
 El procesador almacena en memoria el estado de máquina (contexto) de la tarea N.
 El procesador carga desde memoria el contexto de la tarea N+1 tal como lo había
almacenado originalmente.
 El procesador reasume la ejecución de la tarea N+1.
 Expira el tiempo de ejecución asignado por el procesador a la tarea N+1 y así
sucesivamente, hasta volver a la tarea N.

Manejo de Tareas
 Tarea: Es una unidad de trabajo que un procesador puede despachar, ejecutar, y
detener a voluntad, bajo la forma de:
− La instancia de un programa (o, expresado en términos del Sistema
Operativo, proceso).
− Un handler de interrupción.
− Un servicio del kernel (Núcleo del Sistema Operativo).
Espacio de ejecución: Es el conjunto de segmentos de código, datos, y pila que componen la
tarea. En un sistema operativo que utilice los mecanismos de protección del procesador se
requiere un segmento de pila por cada nivel de privilegio.
Comunicación entre tareas de tiempo real
Interacción entre tareas

 En la mayoría de los sistemas de interés práctico las tareas interaccionan


mediante – datos comunes (protegidos) – mensajes
 En todos estos casos puede ocurrir que una tarea tenga que esperar un suceso
de otra menos prioritaria
 Esta situación se denomina bloqueo bloqueo, y produce una inversión de prioridad
inversión de prioridad indeseable
 La inversión de prioridad no se puede eliminar completamente, pero es posible
limitar su duración.

Herencia de prioridad
 Una forma de reducir la duración de los bloqueos es variar dinámicamente la prioridad de
las tareas

 Cuando una tarea está bloqueando a otra más prioritaria, hereda la prioridad de ésta

 La prioridad dinámica de una tarea es el máximo de


– su prioridad básica
– las prioridades de todas las tareas bloqueadas por ella

 La herencia de prioridad es transitiva.

Duración máxima del bloqueo


 Con el protocolo de herencia de prioridad, una tarea se pude bloquear como máximo
– una vez por cada recurso.
– una vez por cada tarea de prioridad inferior.
Protocolos de techo de prioridad
 El techo de prioridad techo de prioridad (ceiling priority) de un recurso es la máxima
prioridad de las tareas que lo usan
 El protocolo del techo de prioridad (CPP, ceiling priority protocol) consiste en :
– la prioridad dinámica de una tarea es el máximo de su prioridad básica y las
prioridades de las tareas a las que bloquea
– una tarea sólo puede usar un recurso si su prioridad dinámica es mayor que el
techo de todos los recursos en uso por otras tareas.

¿Cuándo es importante un kernel RT?


En dos casos:
1) Cuando necesitamos latencias muy bajas, es decir, reacciones muy rápidas de la
máquina. El ejemplo más claro es la ejecución de instrumentos virtuales, donde necesitas
que al pulsar una tecla de un teclado MIDI el instrumento suene inmediatamente.

2) Cuando necesitamos prioridades muy estrictas, es decir, que nuestra tarea de alta
prioridad no se interrumpa por nada del mundo —a no ser en el caso catastrófico de que
la CPU esté tan sobrecargada que se supere el 100% de utilización—.

You might also like