Universidad Nacional del Nordeste Facultad de Ciencias ...embebidos es requerido que el sistema...

27
Universidad Nacional del Nordeste Facultad de Ciencias Exactas y Naturales y Agrimensura Cátedra: Sistemas Operativos Año: 2015 Introducción a los sistemas de tiempo real Alumnos: Ramos María Agustina DNI/LU: 47357

Transcript of Universidad Nacional del Nordeste Facultad de Ciencias ...embebidos es requerido que el sistema...

  • Universidad Nacional del Nordeste

    Facultad de Ciencias Exactas y Naturales y Agrimensura

    Cátedra: Sistemas Operativos

    Año: 2015

    Introducción a los sistemas de tiempo real

    Alumnos: Ramos María Agustina

    DNI/LU: 47357

  • Resumen Sintético

    Los sistemas de computación se encuentran en cualquier parte. Es probable

    que nadie se sorprenda al saber que millones de sistemas de computación son

    producidos y vendidos cada año, como por ejemplo computadores de

    escritorios o computadores personales. Sin embargo, sorprende saber que

    billones de sistemas de computación de propósito específico son construidos y

    vendidos cada año; los sistemas embebidos se encuentran alrededor de

    nuestras vidas, en forma de teléfonos móviles, equipos médicos, sistemas de

    navegación aérea, reproductores MP3, impresoras, automóviles, etc.

    Cada vez que se mira alrededor es posible identificar un dispositivo que

    contiene un microprocesador, y probablemente se ha encontrado un sistema

    embebido. Por estas razones resulta conveniente estudiarlos.

    En este documento se abordarán conceptos pertinentes a sistemas embebidos

    y parte del software que se ejecuta en ellos.

  • Resumen Extendido

    Actualmente, ante los retos que presentan la globalización y la fuerte presión

    de los mercados emergentes, todos los sectores están inmersos en una espiral

    de esfuerzos que les permitan aumentar sus cuotas de competitividad.

    La gran aplicabilidad de los Sistemas Embebidos en cualquier ámbito sectorial,

    así como el valor añadido que aportan los mismos a los productos que los

    contienen, hace que el desarrollo de estos sistemas sea un área estratégica

    preferente para muchas empresas que buscan precisamente este aumento de

    su competitividad.

    Así, los Sistemas Embebidos van a jugar un papel vital en nuestra sociedad y

    se supone revolucionarán los sectores de actividad, como son el sector médico,

    el de medios de transporte o el de automatización industrial, entre otros.

    Un sistema embebido consiste en un sistema de computación cuyo hardware y

    software están específicamente diseñados y optimizados para resolver un

    problema concreto eficientemente. El término "embebido" (también se le

    conoce como “empotrado”) hace referencia al hecho que la electrónica o el

    sistema electrónico de control es una parte integral del sistema en que se

    encuentra. La característica principal que diferencia a los “embebidos” de los

    demás sistemas electrónicos es que, por estar insertados dentro del dispositivo

    que controlan, están sujetos en mayor medida a cumplir requisitos de tamaño,

    fiabilidad, consumo y coste, y su existencia puede no ser aparente.

  • Tabla de contenido

    Capítulo 1 ..................................................................................................................................................... 7

    1. Introducción ...................................................................................................................... 7

    1.2. ¿Qué es un Sistemas Embebido? .......................................................................... 8

    1.3 Algo de Historia ..................................................................................................... 9

    1.4 Sistema Embebido Integrado .............................................................................. 11

    2. Estructura y Componentes de un Sistema Embebido ..................................................... 12

    2.1. Características ..................................................................................................... 12

    2.2. Componentes de un Sistema Embebido ............................................................. 12

    2.3 Hardware de Sistemas Embebidos ...................................................................... 13

    2.4 Software de Sistemas Embebidos ....................................................................... 15

    3. Aplicaciones de un Sistema Embebido ........................................................................... 16

    3.1. Sistemas Operativos Embebidos ......................................................................... 16

    3.2 Vigencia ............................................................................................................... 17

    3.3 ¿Por qué Usar un Sistema Operativo Embebido? ............................................... 17

    3.4 Características .................................................................................................... 17

    3.5 Núcleo (kernel) .................................................................................................... 18

    3.6 Implementación de S.O. en Tiempo Real ............................................................ 18

    3.7 Planificación con Prioridades .............................................................................. 19

    3.8 Kernel Apropiativo .............................................................................................. 19

    3.9 Tiempo de Latencia ............................................................................................. 20

    3.10 Latencia de Interrupción ..................................................................................... 21

    3.11 Latencia de despacho .......................................................................................... 22

    4. Planificación para los Sistemas de Tiempo Real Estrictos ............................................... 24

    4.1 Planificación por Prioridad Monótona en Tasa (Rate-Monitonic Scheduling) .... 24

    4.2 Planificación por Prioridad en Finalización de Plazo ........................................... 24

    4.3 Planificación con Cuota Proporcional ................................................................. 25

    Referencias .................................................................................................................................. 25

  • 7

    Índice de Figuras

    Fig. 1.1: Ejemplos de sistemas embebidos [2] ......................................................................... 7

    Fig. 1.2.1: Un sistema embebido típico [6] ................................................................................ 9

    Fig. 1.3.1 Sistema embebido NASA [7].................................................................................. 10

    Fig. 2.2.1 Estructura de un SRT (sistema de tiempo real) [8] ................................................. 13

    Fig. 2.3.3.1 Ejemplo de Monitoreo con sensores tiempo real [13] .......................................... 15

    Fig. 3.7.1: Lista de procesos listos [19] ................................................................................... 19

    Fig. 3.8.1: Núcleo Kernel [20] ................................................................................................. 20

    Fig. 3.9.1 Tiempo de Latencia [21] .......................................................................................... 21

    Fig.3.10.1 Latencia de Irrupción [22] ....................................................................................... 21

    Fig. 3.11.1 Tiempo de despacho [23]...................................................................................... 22

  • Índice de Tablas

    Tabla. 3.2.1: Ejemplos de sistemas operativos Embebidos vigentes en la actualidad [18] ... 17

  • Capítulo 1

    1. Introducción

    Cualquier sistema en el que el tiempo en el que se produce la salida es significativo,

    es un sistema de tiempo real, es generalmente porque la entrada corresponde a algún

    movimiento en el mundo físico, y la salida está relacionada con dicho movimiento.

    El intervalo entre el tiempo de entrada y el de salida debe ser lo suficientemente para

    una temporalidad aceptable.

    Un sistema de tiempo real es aquel al que se le solicita que reaccione a estímulos del

    entorno (incluyendo el paso de tiempo físico) en intervalos del tiempo dictados por el

    entorno [1].

    Los sistemas embebidos se encuentran disponibles a cada momento de nuestra vida.

    El horno microondas, el auto, el ascensor, el equipo de audio, el avión son controlados

    por computadoras que normalmente no poseen una pantalla, un teclado o disco rígido,

    y no responden a lo que comúnmente denominamos PC (Ver Fig. 1.1).

    Fig. 1.1: Ejemplos de sistemas embebidos [2]

  • 1.2. ¿Qué es un Sistemas Embebido?

    Existen numerosas definiciones de sistemas embebidos, algunas son:

    “Un sistema embebido es cualquier dispositivo que incluye un computador

    programable, pero en sí mismo no es un computador de propósito general” [3].

    “Un sistema embebido es un sistema electrónico que contiene un

    microprocesador o micro controlador; sin embargo, no pensamos en ellos como

    un computador” [4].

    “Las personas usan el término sistema embebido para referirse a cualquier

    sistema de cómputo escondido en algún producto o dispositivo” [5].

    Los sistemas embebidos suelen tener en una de sus partes una computadora con

    características especiales conocida como microcontrolador que viene a ser el cerebro

    del sistema.

    Este no es más que un microprocesador que incluye interfaces de entrada/salida en el

    mismo chip. Normalmente estos sistemas poseen un interfaz externa para efectuar un

    monitoreo del estado y hacer un diagnóstico del sistema.

    Además cabe reseñar que el uso de sistemas embebidos en productos complejos

    implica un desafío de la seguridad en TI para proteger la información contenida en el

    sistema embebido y también la que es transmitida desde y hacia el dispositivo por

    redes privadas o Internet. Por tanto cabe incluir funciones criptográficas, diseño de

    protocolos y consultoría en análisis y verificación así como servicios de pruebas de

    seguridad y evaluaciones específicas para sistemas embebidos.

    Las personas que trabajan en el campo del diseño de sistemas de tiempo real

    distinguen frecuentemente entre sistemas de tiempo real estrictos (hard) y no estrictos

    (soft), los sistemas de tiempo real estrictos son aquéllos en los que es absolutamente

    imperativo que las respuestas se produzcan dentro del tiempo límite especificado.

    Un ejemplo claro de un sistema de tiempo estricto real es el control de tráfico aéreo.

    Los sistemas de tiempo real no estrictos son aquéllos en los que los tiempos de

    respuesta son importantes pero el sistema seguirá funcionando correctamente aunque

    los tiempos límite no se cumplan ocasionalmente Se puede observar en la Fig. 1.2.1

    la configuración típica de un sistema embebido.

  • Fig. 1.2.1: Un sistema embebido típico [6]

    El software que controla las operaciones del sistema puede estar escrito en módulos

    que reflejan la naturaleza física del entorno.

    Normalmente habrá una notación específica que contenga los algoritmos necesarios

    para controlar físicamente los dispositivos, un módulo responsable del registro de los

    cambios de estado del sistema, un módulo para recuperar y presentar dichos cambios,

    y un módulo para interaccionar con el operador.

    1.3 Algo de Historia

    El primer sistema embebido reconocido fue el sistema de guía de Apolo desarrollado

    por el laboratorio de desarrollo del MIT para las misiones Apolo hacia la Luna.

    Cada vuelo hacia este destino, tenía dos de estos sistemas. La función era manejar el

    sistema de guía inercial de los módulos de excursión lunar. En un comienzo fue

    considerado como el elemento que más riesgo presentaba en el proyecto Apolo. Este

    sistema de cómputo fue el primero en utilizar circuitos integrados y utilizaba una

    memoria RAM magnética, con un tamaño de palabra de 16 bits.

    El software fue escrito en el lenguaje ensamblador propio y constituía en el sistema

    operativo básico, pero capaz de soportar hasta ocho tareas simultáneas.

    El primer sistema embebido producido en masa, fue el computador guía del misil

    norteamericano Minuteman II en 1962 (Ver Fig.1.3.1) El principal aspecto de diseño

  • del computador del Minuteman, es que además de estar construido con circuitos

    integrados, permitía reprogramar los algoritmos de guía del misil para la reducción de

    errores, y permitía realizar pruebas sobre el misil ahorrando así el peso de los cables y

    conectores.

    Fig. 1.3.1 Sistema embebido NASA [7]

  • 1.4 Sistema Embebido Integrado

    Se entiende por sistemas embebidos a una combinación de hardware y software de

    computadora, sumado tal vez a algunas piezas mecánicas o de otro tipo, diseñado

    para tener una función específica. Es común el uso de estos dispositivos pero pocos

    se dan cuenta que hay un procesador y un programa ejecutándose que les permite

    funcionar.

    Muchas veces un sistema embebido es un componente de un sistema mucho más

    grande, como por ejemplo los sistemas de frenos o el sistema de inyección de

    combustible, en automóviles actuales son sistemas embebidos.

    Esta combinación de software y hardware puede ser reemplazada en muchos casos

    por un circuito integrado que realice la misma tarea. Pero una de las ventajas de los

    sistemas embebidos es su flexibilidad. Ya que a la hora de realizar alguna

    modificación resulta mucho más sencillo modificar unas líneas de código al software

    del sistema embebido que reemplazar todo el circuito integrado.

  • 2. Estructura y Componentes de un Sistema Embebido

    2.1. Características

    Las principales características de un sistema embebido son el bajo costo y consumo

    de potencia. Dado que muchos sistemas embebidos son concebidos para ser

    producidos en miles o millones de unidades, el costo por unidad es un aspecto

    importante.

    Otras Características:

    Funcionamiento específico. Un sistema embebido usualmente ejecuta un

    programa específico de forma repetitiva.

    Manipulación de números reales.

    Reactivos y tiempo real. Muchos sistemas embebidos deben ser reactivos o

    reaccionar ante cambios en el ambiente, además de realizar algunos cálculos

    en tiempo real sin ningún retraso, es decir, se deben tener resultados en

    tiempos fijos ante cualquier eventualidad.

    Interacción con interfaces de hardware.

    Implementación eficiente y entorno de ejecución a tener en cuenta en la etapa

    de diseño.

    2.2. Componentes de un Sistema Embebido

    Un sistema embebido posee hardware de computador junto con software embebido

    como uno de sus componentes más importantes. Es un sistema computacional

    dedicado para aplicaciones o productos. Puede ser un sistema independiente o parte

    de un sistema mayor, y dado que usualmente su software está embebido en ROM

    (Read Only Memory) no necesita memoria secundaria como un computador.

    Un sistema embebido tiene tres componentes principales:

    Hardware.

    Un software primario o aplicación principal. Este software o aplicación lleva a cabo

    una tarea en particular, o en algunas ocasiones una serie de tareas.

    Un sistema operativo que permite supervisar la(s) aplicación(es), además de

    proveer los mecanismos para la ejecución de procesos. En muchos sistemas

    embebidos es requerido que el sistema operativo posea características de tiempo

    real.

  • En la figura 2.2.1 se encuentra una estructura típica de un SRT conocido como

    sistema en tiempo real:

    Fig.2.2.1 Estructura de un SRT (sistema de tiempo real) [8]

    2.3 Hardware de Sistemas Embebidos

    El término hardware en cualquier sistema se refiere a los componentes físicos que lo

    forman o constituyen; estos componentes permiten realizar un conjunto de tareas al

    ejecutar programas o software.

    Los componentes físicos de un sistema embebido por lo general difieren en algunos

    aspectos de los que conforman un sistema de propósito general, como un computador

    de escritorio en: tamaño, capacidad de cómputo, requerimientos de energía, etc. Por

    esta razón es de gran importancia conocer el funcionamiento del hardware para poder

    desarrollar sistemas embebidos y las aplicaciones que se ejecutarán en él.

    La tecnología de procesadores trata de la arquitectura del núcleo computacional usado

    para implementar las funcionalidades deseadas de un sistema [9]. En particular, un

    microprocesador “es un componente LSI que realiza una gran cantidad de funciones o

    tareas en una sola pieza de circuito integrado” [10].

    El término LSI (Large Scale Integration) se refiere a la tecnología que permite integrar

    varios miles de transistores en un solo circuito integrado. Otra definición de

    microprocesador podría ser “componente LSI que asocia en una sola pieza de circuito

    integrado las funciones de una unidad aritmético-lógica y la unidad de control

    asociada” [10].

  • 2.3.1 Un Procesador de Propósito General o

    Microprocesador

    Es un dispositivo programable adaptable a una gran variedad de aplicaciones. Una

    característica de ellos es que poseen memoria para la ejecución de programas, este

    componente es necesario ya que no se conoce a prioridad cuál programa será

    ejecutado. Otra característica es que poseen un camino de datos genérico,

    conformado por varios registros y una o varias ULAs (Unidad Lógica Aritmética). Todo

    esto hace posible la ejecución de aplicaciones de diversos propósitos [11].

    2.2.2 Procesadores de Propósito Específico

    Un procesador de propósito específico es un circuito digital diseñado para ejecutar

    exactamente un programa. Por ejemplo un codificador/decodificador JPEG, el cual

    ejecuta un programa que comprime y descomprime marcos de video. Un sistema

    embebido frecuentemente utiliza este tipo de procesadores, ya que se ajusta

    completamente a las funcionalidades requeridas. A menudo este tipo de procesadores

    es denominado coprocesador, acelerador y/o periférico [12].

    2.3.3 Sensores

    Un sensor es un dispositivo eléctrico y/o mecánico que convierte magnitudes físicas en

    valores medibles de dicha magnitud. Los sensores van a aportar información tanto del

    entorno como del estado interno del componente que mide [12].

    La señal medida usualmente debe transformarse para poder ser interpretada. Este

    proceso se realiza en tres fases:

    • Un fenómeno físico es captado por un sensor, como consecuencia, muestra en su

    salida una señal eléctrica equivalente al fenómeno captado.

    • La señal eléctrica es modificada por un sistema de acondicionamiento de señal, cuya

    salida es un voltaje que será convertido usando un convertidor analógico/digital (A/D)

    para ser tratado.

    • El convertidor A/D es sensible sólo a rangos limitados de tensiones, frecuentemente

    0 a 5V.

    El convertidor hace que la salida continua se convierta en una salida discreta.

    En sistemas embebidos suelen utilizarse diversos tipos de sensores como por

    ejemplo, sensores de luz, sensores de contacto, sensores de temperatura, etc.

  • Un ejemplo de la nueva tendencia de Smart Cities (Ciudades Inteligentes) con

    sistemas de monitoreo, se muestra en la fig. 2.3.3.1.

    Fig. 2.3.3.1 Ejemplo de Monitoreo con sensores tiempo real [13]

    2.4 Software de Sistemas Embebidos

    En lo que se refiere al software, se tendrán requisitos específicos según la aplicación.

    En general para el diseño de un SE no se dispone de recursos ilimitados sino que la

    cantidad de memoria será escasa, la capacidad de cálculo y dispositivos externos será

    limitada, etc. Se puede hablar de las siguientes necesidades:

    - Trabajo en tiempo real.

    - Optimizar al máximo los recursos disponibles.

    - Disponer de un sistema de desarrollo específico para cada familia de

    microprocesadores empleados.

  • 3. Aplicaciones de un Sistema Embebido

    3.1. Sistemas Operativos Embebidos

    Un sistema operativo es un programa que se ejecuta continuamente en un dispositivo,

    brindando una capa de abstracción para los usuarios facilitándole el uso del

    dispositivo; además de ocultar el hardware del sistema y encargarse de la

    administración de sus recursos [14].

    Un sistema operativo embebido es un sistema operativo que se ejecuta sobre un

    sistema embebido, los cuales han sido descritos previamente. Los sistemas operativos

    embebidos generalmente se ejecutan sobre dispositivos que difieren de un

    computador común, como televisores, hornos microondas, y teléfonos móviles.

    Usualmente tienen algunas características de sistemas de tiempo real, pero a la vez

    tienen restricciones de tamaño, memoria y energía que los hacen especiales.

    Algunas definiciones alternativas de sistemas operativos embebidos se listan a

    continuación:

    • “Algunos sistemas embebidos incluyen un sistema operativo, que se conoce como

    sistema operativo embebido. Este puede ser un sistema de software muy pequeño

    desarrollado específicamente para ser usado con un algún sistema embebido en

    particular, o en ocasiones puede ser una versión reducida de algún sistema operativo

    que se utiliza en una computadora de propósito general” [15].

    • “Un sistema operativo es definido como una capa de software que permite

    multiplexar abstracciones de hardware como: memoria volátil, ciclos de procesador,

    dispositivos de entrada salida, etc., para los programas de aplicación. Un sistema

    operativo embebido debe realizar las operaciones expuestas anteriormente, pero en

    un ambiente donde los programas de aplicaciones poseen numerosas restricciones,

    particularmente en cuanto a consideraciones de tiempo y energía” [16].

    • “Un sistema operativo para un sistema embebido usualmente es diseñado para una

    aplicación específica, y por lo tanto es más estático que un sistema operativo de

    propósito general” [17].

  • 3.2 Vigencia

    En la Tabla 3.2.1 se muestra un resumen de algunos sistemas operativos embebidos

    vigentes en la actualidad, resaltando características de interés.

    Tabla 3.2.1. Ejemplos de Sistemas Operativos Embebidos vigentes en la actualidad [18]

    3.3 ¿Por qué Usar un Sistema Operativo Embebido?

    Porque permite la multitarea y utilizar diferentes soluciones ya desarrolladas

    (dependiendo el sistema a usar) para la solución de problemas, en vez de tener que

    desarrollar heurísticas para cada sistema embebido que se desarrolle. Son robustos y

    personalizables y tienen soporte en la web.

    3. 4 Características

    Algunas características son:

    Fiabilidad y seguridad: Un fallo en un sistema de control puede hacer que el sistema

    controlado se comporte de forma peligrosa o antieconómica. Es importante asegurar

    que si el sistema de control falla lo haga de forma que el sistema controlado quede en

    un estado seguro, hay que tener en cuenta los posibles fallos o excepciones en el

    diseño.

    Eficiencia: Gran parte de los sistemas de control deben responder con gran rapidez a

    los cambios en el sistema controlado.

    Interacción con dispositivos físicos: Los sistemas empotrados interaccionan con su

    entorno mediante diversos tipos de dispositivos que normalmente no son

    convencionales (teclados, impresoras): convertidores A/D y D/A entradas y salidas

    digitales paralelo y serie, (interfaces con sensores, actuadores, periféricos

    especiales). Los componentes del software que controlan el funcionamiento de estos

    dispositivos son, en general, dependientes del sistema concreto.

  • Robustez: Embarcados en sistemas con movimiento o que pueden ser transportados,

    sujetos a vibraciones e incluso impactos (coches, robots, instrumentación portátil). No

    siempre trabajan en condiciones óptimas de temperatura, humedad, y limpieza.

    3.5 Núcleo (kernel)

    El núcleo (o kernel) es el responsable del manejo de los procesos y la comunicación

    entre estas. El servicio fundamental que provee el kernel es el cambio de contextos. El

    uso de un kernel de tiempo real generalmente simplifica el diseño de un sistema al

    permitir que la aplicación sea dividida en múltiples tareas que el kernel maneja.

    Las características de un núcleo de tiempo real son limitadas, porque los sistemas de

    tiempo real normalmente cumplen una única tarea.

    El sistema permite pocas tareas, que generalmente esperan entradas que deben ser

    recibidas de dispositivos de hardware.

    Hay restricciones de espacio para procesadores potentes o memorias grandes.

    Hay limitaciones de costo.

    Existen dos métodos para gestionar los procesos críticos de un sistema operativo, los

    kerneles apropiativos y lo kerneles no apropiativos.

    3.6 Implementación de S.O. en Tiempo Real

    Cuando la CPU queda inactiva, el sistema operativo debe seleccionar uno de los

    procesos que se encuentran en la cola de procesos preparados para ejecución. El

    planificador a corto plazo lleva a cabo esa selección del proceso. El planificador elige

    uno de los procesos que están en memoria preparados para ejecutarse y asigna la

    CPU a uno de ellos.

    Las principales características necesarias para implementar estos sistemas operativos

    son:

    Planificación Apropiativa.

    Kernel Apropiativo.

    Latencia Minimizada.

  • 3.7 Planificación con Prioridades

    La planificación con prioridades está basada en asignar una prioridad a cada tarea y

    decidir en cada momento qué tarea se debe ejecutar en base a la tarea más prioritaria

    que esté pendiente de ejecución. La prioridad de una tarea se expresa normalmente

    por un número entero. Es decir, la mayor prioridad corresponderá al valor 0 y la

    prioridad será menor según aumente su valor. Cuando se hable de una tarea de mayor

    prioridad se querrá decir que su valor es menor, y viceversa, a mayor valor menor será

    la prioridad. En la figura 3.7.1 se puede observar la lista de procesos listos, el

    procesador quita el proceso desposeído y lo coloca al final de la lista de procesos

    listos.

    Fig. 3.7.1: Lista de procesos listos [19].

    3.8 Kernel Apropiativo

    Un kernel apropiativo permite desalojar una tarea que se está ejecutando.

    En los sistemas de tiempo real estrictos es de fundamental importancia utilizar el

    kernel apropiativo (ver Fig.3.8.1).

    El diseño de un kernel apropiativo puede resultar bastante difícil y las aplicaciones

    tradicionales orientadas al usuario, no requieren esos rápidos tiempos de respuesta.

    Sin embargo, para satisfacer los requisitos de temporización de los sistemas de tiempo

    real (en particular de los sistemas de tiempo real estrictos) resulta obligatorio utilizar un

    kernel apropiativo. En caso contrario una tarea de tiempo real podría tener que espera

    un periodo de tiempo arbitrariamente largo, mientras hubiera otra tarea activa en el

    kernel.

    Existen diversas estrategias para hacer que un kernel sea apropiativo. Una de ella

    consiste en insertar puntos de desalojo en las llamadas al sistema de larga duración.

  • En cada punto de desalojo se comprueba si existe la necesidad de ejecutar un

    proceso de alta prioridad. Cuando un proceso de alta prioridad termine de ejecutarse,

    el proceso interrumpido continuará con su llamada al sistema.

    Una segunda estrategia para hacer que un kernel sea apropiativo consiste en utilizar

    mecanismos de sincronización. Con este método, el kernel siempre puede ser

    apropiativo, porque cualquier dato del kernel que se esté actualizando estará protegido

    frente a posibles modificaciones por parte del proceso de alta prioridad.

    Fig. 3.8.1: Núcleo Kernel [20]

    3.9 Tiempo de Latencia

    Denominamos latencia del suceso a la cantidad de tiempo que transcurre desde el

    momento que tiene lugar el suceso hasta el momento en el que se le da servicio.

    Como se puede observar en el Fig. 3.9.1 el tiempo que transcurre entre que un suceso

    ocurre y es atendido.

  • Fig. 3.9.1 Tiempo de Latencia [21]

    3.10 Latencia de Interrupción

    Es el periodo de tiempo que transcurre entre la llegada de una interrupción a la CPU,

    al instante en el comienza a rutina de servicio de dicha interrupción.

    Se debe minimizar la latencia de interrupción.

    Se puede observar en la figura 3.10.1 el funcionamiento del tiempo de interrupción.

    Fig.3.10.1 Latencia de Irrupción [21]

  • 3.11 Latencia de despacho

    Es la cantidad de tiempo requerida para que el despachador de planificación detenga

    un proceso e inicie otro.

    Para minimizar la latencia de despacho se debe tener un kernel apropiativo.

    Se puede observar en la Fig. 3.11.1 un ejemplo representativo del tiempo de

    despacho, que transcurre entre el evento ocurre y el momento que se responde al

    mismo.

    Fig. 3.11.1 Tiempo de despacho [22]

    La fase de conflicto en la latencia de despacho tiene 2 componentes importantes:

    1- El desalojo de cualquier proceso que se esté ejecutando en el kernel.

    2- La liberación por parte de los procesos de baja prioridad de los recursos

    necesarios para el proceso de alta prioridad.

    Se puede afectar a la latencia de despacho cuando un proceso de mayor prioridad

    necesita leer o modificar datos de kernel a los que esté actualmente accediendo un

    proceso de menor prioridad.

    El proceso de menor prioridad tendrá que esperar a que los otros de mayor prioridad

    finalicen con el uso del recurso, de esta forma el proceso de menor prioridad es

    desalojado a favor de otro proceso que tenga una prioridad mayor.

  • 4. Planificación para los Sistemas de Tiempo Real Estrictos

    4.1 . Planificación por Prioridad Monótona en Tasa (Rate-Monitonic Scheduling)

    Es un algoritmo de programación utilizado en los sistemas operativos de tiempo real

    con prioridad estática. Las prioridades estáticas se asignan en función de la duración

    del trabajo. El trabajo más corto tiene mayor prioridad.

    Si se está ejecutando un proceso de menor prioridad y otro de mayor pasa a estar

    disponible para la ejecución, el proceso desaloja al de menor prioridad, a cada tarea

    periódica se le asigna una prioridad en función inversa a su periodo, cuando más corto

    sea el periodo, mayor la prioridad y viceversa.

    4.2 Planificación por Prioridad en Finalización de Plazo

    Es un algoritmo de programación utilizado en sistemas operativos en tiempo real para

    colocar los procesos en una cola de prioridad. Cada vez que un evento de

    programación se produce, se buscara en la cola el proceso más cercano a su fecha

    límite. Este proceso es el siguiente en ser programado para su ejecución.

    Cuando más próximo esté él plazo mayor será la prioridad y cuando más lejano esté el

    plazo, menor será la misma, un proceso ejecutable debe anunciar sus requisitos de

    plazo al sistema.

    Esta planificación no requiere que los procesos sean periódicos, ni que necesiten de

    una cantidad constante de tiempo de CPU por cada ráfaga de ejecución.

    La planificación EDF (Menor tiempo de respuesta primero (Earliest deadline first

    scheduling)) resulta óptima desde un punto de viste teórico, porque permite planificar

    los procesos de forma de poder cumplir los requisitos de plazos de ejecución y la

    utilización de la CPU será del 100%. Sin embargo desde el punto de vista práctico es

    imposible cumplir con la utilización máxima de la CPU debido a los cambios de

    contexto entre procesos y al coste del tratamiento de las interrupciones.

    https://es.wikipedia.org/wiki/Algoritmohttps://es.wikipedia.org/wiki/Sistema_operativohttps://en.wikipedia.org/wiki/Scheduling_algorithmhttps://en.wikipedia.org/wiki/Real-time_operating_systemhttps://en.wikipedia.org/wiki/Priority_queue

  • 4.3 Planificación con Cuota Proporcional

    Este es un algoritmo que funciona asignando T cuotas entre todas las aplicaciones,

    donde cada aplicación puede recibir N cuotas de tiempo garantizando así que las

    aplicaciones tengas N/T del tiempo total del procesador.

  • Referencias

    [1] Randall, GE, Amón, CJ y Owens, TJ .“Estimación tensor Momento utilizando sismogramas

    regionales de un despliegue de red portátil meseta tibetana” Geophysical Research Letters 22.

    (1995).

    [2] Jonathan W. Valvano. “Embedded Microcomputer Systems: Real Time Interfacing”. Third

    Edition”. 2007.

    [3] Wolf, W. “Computers as Components: Principles or Embedded Computing System Design”.

    Second Edition. Morgan Kaufmann. 2008.

    [4] Morton, T. “Embedded Microcontrollers”. Prentice Hall. 2000.

    [5] Simon, D. “And Embedded Software Primer”. Addison-Wesley Professional. 1999.

    [6] Jonathan W. Valvano. “Introducción a los sistemas embebidos”. México, D.F.: Thomson,

    2004.

    [7] Kistler Aerospace Corporation. “K-1_Flight_Experiments_Design_Requirements”. 2002.

    [8] Sistemas operativos en el tiempo real (SORT). Website. Última visita 29/09/2015

    http://www.isa.uniovi.es/docencia/TiempoReal/Recursos/temas/sotr.pdf

    [9] Vahid, F. & Givargis, T. “Embedded System Design”. John Wiley & Sons, Inc. 2002.

    [10] Zazks, R. “Microprocessors: From Chips to Systems”. Sybex Inc. 1981.

    [11] Hallinan, C. “Embedded Linux”. Prentice Hall. 2006.

    [12] Díaz, E. et al. “Introducción al Diseño de Microrobots Móviles”. Universidad de Alcala.

    2006.

    [13] CTO Sofia2. Website. Última Visita 29/09/2015. http://www.indracompany.com/

    [14] Silberschatz, et al. “Operating System Concepts”. Seventh Edition. John Wiley & Sons.

    2005.

    [15] The Linux Information Project (LINFO). “Embedded System Definition”. 2006.

    http://www.linfo.org/embedded_system.html.

    [16] Che-Mou, An operating system architecture for embedded Systems – design and

    implementation: Departament of electrical Engneering. National Taiwan University. 1999.

    [18] CONTEXTO NACIONAL E INTERNACIONAL II. Website. Ultima visita 29/09/2015.

    https://allabutkpop.wordpress.com/sistemas-operativos-de-sistemas-embebidos.

    [19] Lista de procesos listos. Website. Última visita 27/09/2015.

    http://www.angelfire.com/droid/sistemasoperativos/procesador.htm.

    [20] Nucleo Kernel. Website. Última visita 27/09/2015.

    http://hardmante.blogspot.com.ar/2011/04/kernel.html.

    [21] Luis Duran Rodriguez. “El Gran Libro del PC interno: programación de Sistemas de

    hardware a fondo”. Primera Edición. MARCOMBO ALFAOMEGA. 2007.

    [22] Latencia de Despacho. Website. Ultima Visita 26/09/2015.

    https://chsos20141909547.wordpress.com/2014/05/06/latencia-de-despacho

    http://www.isa.uniovi.es/docencia/TiempoReal/Recursos/temas/sotr.pdfhttp://www.linfo.org/embedded_system.htmlhttps://allabutkpop.wordpress.com/sistemas-operativos-de-sistemas-embebidoshttp://www.angelfire.com/droid/sistemasoperativos/procesador.htmhttp://hardmante.blogspot.com.ar/2011/04/kernel.htmlhttps://chsos20141909547.wordpress.com/2014/05/06/latencia-de-despacho