universidad nacional del nordeste facultad de...

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

Upload: dohuong

Post on 21-Sep-2018

231 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Universidad Nacional del Nordeste Facultad de …exa.unne.edu.ar/informatica/SO/RamosAgustina-TpSO.pdf · software están específicamente diseñados y optimizados para resolver un

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

Page 2: Universidad Nacional del Nordeste Facultad de …exa.unne.edu.ar/informatica/SO/RamosAgustina-TpSO.pdf · software están específicamente diseñados y optimizados para resolver un

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.

Page 3: Universidad Nacional del Nordeste Facultad de …exa.unne.edu.ar/informatica/SO/RamosAgustina-TpSO.pdf · software están específicamente diseñados y optimizados para resolver un

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.

Page 4: Universidad Nacional del Nordeste Facultad de …exa.unne.edu.ar/informatica/SO/RamosAgustina-TpSO.pdf · software están específicamente diseñados y optimizados para resolver un

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

Page 5: Universidad Nacional del Nordeste Facultad de …exa.unne.edu.ar/informatica/SO/RamosAgustina-TpSO.pdf · software están específicamente diseñados y optimizados para resolver un

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

Page 6: Universidad Nacional del Nordeste Facultad de …exa.unne.edu.ar/informatica/SO/RamosAgustina-TpSO.pdf · software están específicamente diseñados y optimizados para resolver un

Índice de Tablas

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

Page 7: Universidad Nacional del Nordeste Facultad de …exa.unne.edu.ar/informatica/SO/RamosAgustina-TpSO.pdf · software están específicamente diseñados y optimizados para resolver un

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]

Page 8: Universidad Nacional del Nordeste Facultad de …exa.unne.edu.ar/informatica/SO/RamosAgustina-TpSO.pdf · software están específicamente diseñados y optimizados para resolver un

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.

Page 9: Universidad Nacional del Nordeste Facultad de …exa.unne.edu.ar/informatica/SO/RamosAgustina-TpSO.pdf · software están específicamente diseñados y optimizados para resolver un

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

Page 10: Universidad Nacional del Nordeste Facultad de …exa.unne.edu.ar/informatica/SO/RamosAgustina-TpSO.pdf · software están específicamente diseñados y optimizados para resolver un

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]

Page 11: Universidad Nacional del Nordeste Facultad de …exa.unne.edu.ar/informatica/SO/RamosAgustina-TpSO.pdf · software están específicamente diseñados y optimizados para resolver un

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.

Page 12: Universidad Nacional del Nordeste Facultad de …exa.unne.edu.ar/informatica/SO/RamosAgustina-TpSO.pdf · software están específicamente diseñados y optimizados para resolver un

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.

Page 13: Universidad Nacional del Nordeste Facultad de …exa.unne.edu.ar/informatica/SO/RamosAgustina-TpSO.pdf · software están específicamente diseñados y optimizados para resolver un

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].

Page 14: Universidad Nacional del Nordeste Facultad de …exa.unne.edu.ar/informatica/SO/RamosAgustina-TpSO.pdf · software están específicamente diseñados y optimizados para resolver un

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.

Page 15: Universidad Nacional del Nordeste Facultad de …exa.unne.edu.ar/informatica/SO/RamosAgustina-TpSO.pdf · software están específicamente diseñados y optimizados para resolver un

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.

Page 16: Universidad Nacional del Nordeste Facultad de …exa.unne.edu.ar/informatica/SO/RamosAgustina-TpSO.pdf · software están específicamente diseñados y optimizados para resolver un

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].

Page 17: Universidad Nacional del Nordeste Facultad de …exa.unne.edu.ar/informatica/SO/RamosAgustina-TpSO.pdf · software están específicamente diseñados y optimizados para resolver un

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.

Page 18: Universidad Nacional del Nordeste Facultad de …exa.unne.edu.ar/informatica/SO/RamosAgustina-TpSO.pdf · software están específicamente diseñados y optimizados para resolver un

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.

Page 19: Universidad Nacional del Nordeste Facultad de …exa.unne.edu.ar/informatica/SO/RamosAgustina-TpSO.pdf · software están específicamente diseñados y optimizados para resolver un

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.

Page 20: Universidad Nacional del Nordeste Facultad de …exa.unne.edu.ar/informatica/SO/RamosAgustina-TpSO.pdf · software están específicamente diseñados y optimizados para resolver un

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.

Page 21: Universidad Nacional del Nordeste Facultad de …exa.unne.edu.ar/informatica/SO/RamosAgustina-TpSO.pdf · software están específicamente diseñados y optimizados para resolver un

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]

Page 22: Universidad Nacional del Nordeste Facultad de …exa.unne.edu.ar/informatica/SO/RamosAgustina-TpSO.pdf · software están específicamente diseñados y optimizados para resolver un

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.

Page 23: Universidad Nacional del Nordeste Facultad de …exa.unne.edu.ar/informatica/SO/RamosAgustina-TpSO.pdf · software están específicamente diseñados y optimizados para resolver un
Page 24: Universidad Nacional del Nordeste Facultad de …exa.unne.edu.ar/informatica/SO/RamosAgustina-TpSO.pdf · software están específicamente diseñados y optimizados para resolver un

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.

Page 25: Universidad Nacional del Nordeste Facultad de …exa.unne.edu.ar/informatica/SO/RamosAgustina-TpSO.pdf · software están específicamente diseñados y optimizados para resolver un

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.

Page 26: Universidad Nacional del Nordeste Facultad de …exa.unne.edu.ar/informatica/SO/RamosAgustina-TpSO.pdf · software están específicamente diseñados y optimizados para resolver un

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

Page 27: Universidad Nacional del Nordeste Facultad de …exa.unne.edu.ar/informatica/SO/RamosAgustina-TpSO.pdf · software están específicamente diseñados y optimizados para resolver un