Você está na página 1de 53

PROGRAMACIN EN

TIEMPO REAL
Clase 3

Lectura de variables fsicas


Se utilizan transductores
Son dispositivos que transforman una magnitud fsica tal

como temperatura o presin en una magnitud elctrica


Estos dispositivos se conectan a una computadora digital
a travs de placas capaces de manejar seales digitales
y analgicas y convertirlas a binario (placas conversoras
A/D)
Como hay infinidad de transductores con diferente salida
se utiliza normalizacin para poder utilizar siempre la
misma placa A/D
Una vez que las seales son elctricas pueden ser
transformadas y amplificadas

Ley de Ohm
V=IxR
V es tensin, es una medida de la capacidad de mover

cargas elctricas que posee una fuente de energa con


unidad Volt
I es la intensidad de corriente elctrica, medida en
Amperes (1 coulomb por segundo)
R es la resistencia al pasaje de electrones a travs del
material al que se le aplica V para que circule I.

Seales
Analgico y digital
Una seal estar representada analgicamente

cuando es convertida a otra magnitud que tiene


igual variacin de amplitud en el tiempo,
manteniendo el estado de continuidad de la seal
original.
Una seal estar representada digitalmente
cuando es transformada a nmeros.

Seales analgicas

Frecuencia
Seales compuestas: Fourier

Digitalizacin
Frecuencia de muestreo?

Fourier

Conversor analgico-digital

Calidad de seal
Audicin humana 16 17 KHz hasta 15-20 KHz
Equipos se extiende ms all: mejor calidad
Frecuencia de muestreo (del convertidor) debe ser de

ms del doble que la banda que se pretende utilizar


(teorema de Nyquist en la prctica).
Cantidad de bits:
cantidad de escalones da la resolucin
Resolucin = valor analgico / (2^8)
Ej: Resolucin = 5 V / 256
8 bits:256 (2 exp8)
12 bits: 4096 (placa adq12)
En cd:
16 bits
44110 hz
Grabacin profesional
24 o 32 bits
Frecuencia 48, 96, 192, khz,

Hardware

Sensores y detectores

Un detector tiene 2 estados de salida


Alcanzado un umbral en la variable fsica que mide,
pasa su salida de falso a verdadero, por lo general
con un contacto que se opera
Un sensor da en su salida una seal analgica
elctrica de la seal fsica de su entrada. Se trata de
un transductor.
Normalizacin de seales
Las salidas de los sensores estn normalizadas a
valores de corriente o de tensin varios
Algunas de ellas: +/-5V, +/-10V, 4-20 mA

ADQ12

Placa conversora analgico digital 12 bits


Entradas analgicas y digitales
Salidas digitales
Pacer y timer

Diagrama en bloques

ADQ12: Seccin analgica


MUX: Multiplexor analgico de 16/8 canales (balanceado:8-

desbalanceado:16): toma 1 de 8/16 entradas de acuerdo a la


seleccin en registro CTREG. Balanceado es de mas calidad
PGA: Amplificador de ganancia programable por software de
acuerdo a valor de CTREG. Su ganancia es precisa (amp. de
instrumentacin)
S/H: Etapa de muestreo y retencin: memoriza un valor
instantneo para permitir la lectura de un valor constante
A/D: Conversor analgico a digital (A/D): contador de 12 bits
mas generador de rampa hasta igualar el valor de la muestra.
El valor del contador ser igual al valor de la muestra.
VREF: Tensin de referencia para las comparaciones

ADQ12: Seccin digital


OUTBR es un port de salida de 8bits
Programacin de salida en forma individual, bit a bit

Siete salidas, OUTB0 enmascara entrada de interrupcin In0


Control de bits: se enva a direccin de OUTBR un byte con las caractersticas

siguientes:
b2, b1, b0 sealan uno de los 8 bits de salida, bit 3 el valor colocado en salida
Los restantes mantienen su valor
Los bits 7 a 4 no desempean funcin alguna.

STINR, port de entrada y registro de status:


5 bits de menor peso: ingreso de seales digitales
IN0 tiene capacidad de interrupcin
Los tres bits de mayor peso revelan el estado de salida del conversor A/D, pacer y

contador (Bit 5 End Of Conversion, 1 fin de conversion, 0 en curso)

ADQ12: Seccin digital


CTREG, registro de control para las funciones programables
Modo diferencial:
bits 2 a 0 seleccionan uno entre 8 de los canales analgicos (el bit 3 no cumple

funcin alguna)

Modo desbalanceado
los bits 3 a 0 seleccionan 1 entre 16 canales analgicos

El registro de control es forzado a cero luego de un encendido un

reset del computador (ALT-CTRL-DEL no fuerza un reset)

Registro de control (CTREG)

ADQ12: Seccin digital


Utiliza un INTEL 8253, de tres temporizadores programables de 16

bits y un registro de control


Cada timer cuenta con:
Entrada de disparo G0, G1 y G2
Entrada de reloj CLK0, CLK1 y CLK2
Salida OUT0, OUT1 y OUT2.

Cada timer esta conformado por un contador (CONT0, CONT1 y

CONT2) de 16 bits
Contador se carga (soft) a valor inicial y tras un disparo inicia una
cuenta descendente, al ritmo de seal del reloj
Cuando la cuenta arriba a cero OUTn toma el estado alto
Lectura de los contadores al vuelo o transfiriendo previamente sus
valores a registros internos de la unidad 8253

ADQ12: Seccin digital


Cada timer puede operar en seis modos, seleccionables mediante el

registro de control, COWOR


Segn el modo elegido el disparo ser por software hardware (G0,
G1, G2)
Timer 2 : aplicaciones generales, timers 1 y 0 conforman pacer de 32
bits
Timer 2:
La seal de reloj puede ser interna (15.625KHz, 62.5KHz 250KHz.) externa (se

deja libre puentes de seleccin)


Es posible sensar el estado de la salida OUT2 sobre el bit 7 de STINR

ADQ12: Seccin digital


PACER: Timer 1 y 0 conforman un PACER de 32 bits
Mide tiempos entre 16mseg y 2 horas 23 minutos
Timer 1: divisor de frecuencia programable (modo operacin 3)
Seal de reloj de 500KHz del oscilador interno
OUT1 se conecta a la entrada de reloj del timer cero

Timer 0 podr programarse en los seis modos


Entrada de disparo, G0, controlada por bit 6 del reg. (GTP)
Estado salida: bit 6 de STINR (OUTP)
OUT puede activar interrupcin de PC: IRQ5, 4, 3 2 (XT) IRQ9 (AT)
Interrupcin : flanco ascendente en OUTP
Enmascarada va bit 7 de CTREG (MSKP) PACER, temporizador de precisin, 32

bits. Capacidad de interrupcin.

DX, decodificador de direcciones.


OSCIL, base de tiempo con frecuencias seleccionables

ADQ12: Seccin digital


PACER:
demoras programables en amplio rango de tiempos
Fraccionar el tiempo del procesador entre diversas rutinas (multitask), (usa
interrupciones)
Adquisicin/ generacin de datos mediante subrutinas en background (por
interrupciones)
Medicin de tiempo entre dos eventos
Generar demoras:
Timer 1 en modo 3
Opera como divisor de frecuencia programable
El perodo de la seal de salida (OUT1) ser: (N:cargado en CONT1) multiplicado por el
perodo de la seal de reloj
T(OUT1) = N * 2mSeg (N mnimo: 4. N mximo: 65535)
Timer 0 en modo 1: Se carga CONT0 con valor M
Al dispararse timer 0, OUTP toma estado bajo, en tanto se inicia una cuenta descendente
Cuando llega a cero la salida OUTP toma el estado alto
El intervalo de tiempo que media entre el disparo y el fin de cuenta ser:
T (OUT) = M * T (OUT1) (M mnimo 2 M mximo 65535)
T(OUTP) = M * N * 2mSeg
Se podrn programar intervalos, con resolucin de 4mSeg, comprendidos entre los
valores mnimos y mximos de:
T(OUTP) mnimo = 2 * 4 * 2mSeg = 16mSeg
T(OUTP) mximo = 65535 * 65535 * 2mSeg = 8590 Seg.

ADQ12: Seccin digital


Base de tiempos :
ADQ12-B utiliza oscilador de cristal (4 MHz) y divisor

PACER utiliza 50KHZ


Derivacin de 62.5KHz
CONT2 utiliza 15.625KHz, 62.5KHz 250KHz (seleccin JCK).

INTERRUPCIONES:
Dos alternativas:

va PACER (IRQ5, RIQ4, IRQ3, IRQ2(XT) IRQ9(AT superior))

Entrada IN0: IRQ7, IRQ4, IRQ5

Conversin A/D. Conexin unipolar.


Lenguaje C

Planificacin de procesos - Tareas

Tres tipos de tareas, segn sus caractersticas temporales:

- Tareas peridicas. Ejecutan peridicamente en un periodo constante. Supondremos que


todas las tareas con restricciones temporales son peridicas.
- Tareas espordicas. Tienen plazo de finalizacin estricto, pero se ejecutan espordicamente.
Se tratan como tareas peridicas suponiendo que existe un tmn entre dos activaciones
consecutivas. Este tiempo se tomar como el periodo equivalente de la tarea.
- Tareas aperidicas. No tienen plazo de finalizacin, o si lo tienen, no es de obligado
cumplimiento.

Otra clasificacin de las tareas de TR en base a caractersticas semnticas:


- Tareas crticas. El fallo de una de estas tareas (por no ejecutarse a tiempo) puede ser
catastrfico para el sistema.
- Tareas opcionales. Si se retrasa su ejecucin no afecta a la seguridad del sistema.
Realizan:
- Monitorizacin del sistema
- Tareas de mantenimiento
- Refina el resultado obtenido por tareas crticas
Las tareas opcionales se pueden dividir en dos grupos:
- Opcionales con plazo (hard aperiodic). Disponen de un tiempo de ejecucin recomendado.
- Opcionales sin plazo (soft aperiodic).
Algunas polticas de planificacin tienen en cuenta esta distincin e intentan cumplir los plazos
de las tareas opcionales con plazo, siempre que no haya sobrecarga de tareas crticas o
por el resto de tareas opcionales con plazo.

Parmetros
N: Nmero de tareas en el sistema
Pi: Periodo de activacin
Ci: Tiempo mximo de ejecucin
Di: Plazo mximo de terminacin.
Ri: Tiempo de respuesta mximo. Es el tiempo desde que la tarea se
activa hasta que termina realmente a ejecutarse.
Pri: Prioridad de la tarea (convenio: mayor valor, menor prioridad)
Si: Desfase respecto al momento inicial

Tiempo real crtico y opcional


Tardanza de una tarea: diferencia entre el tiempo de respuesta

y el plazo de ejecucin de una tarea.


ti = Ri Di
Una tarea se ejecuta de forma tarda si su tardanza se hace
positiva. O sea finaliza su ejecucin despus de haber vencido
su plazo de ejecucin.
En los STR opcional un resultado puede ser til, aunque sea
tardo. Pero su utilidad decae.
En tareas de tiempo real crtico la utilidad se hace 0 cuando la
tardanza se hace positiva.
La utilidad se expresara en forma de un valor de la
probabilidad de que el tiempo de respuesta sea menor o igual
a la cota temporal.
Un STR crtico sera aquel en que la probabilidad de que se
cumplan las cotas temporales sea 1.

Tiempo real crtico y opcional


Teniendo en cuenta todos estos criterios, en los sistemas de tiempo
real las restricciones temporales se pueden expresar en varios
trminos, por ejemplo:
1. Restricciones deterministas. Por ejemplo, el resultado que
proporciona una tarea se debe obtener siempre antes de 50 ms.
2. Restricciones probabilsticas. Por ejemplo, la probabilidad de que
el tiempo de respuesta exceda de 50 ms. debe ser inferior a 0.2.
3. Restricciones en trminos de una funcin de utilidad. Por
ejemplo, la utilidad de los resultados que proporciona una tarea debe
ser 0.8 o superior.
Las restricciones temporales crticas raramente se expresan en los dos
ltimos trminos, mientras que las restricciones temporales opcionales
si suelen expresarse en trminos de probabilidad o de utilidad.
Ejemplo: sistema telefnico, tras marcar el nro., la conexin se debe
establecer en un tiempo que no sea excesivo, antes de 10 seg. en el
95% de los casos y antes de 20 seg. en el 99.95% de las llamadas

Tiempo de ejecucin
Tiempo de ejecucin de una tarea variar entre un valor

mximo y un mnimo, dependiendo de


saltos condicionales que se activen
iteraciones en bucles.

Otros factores:
Uso de recursos compartidos (comunicacin, memoria virtual)
Evitar uso de estructuras dinmicas que introducen variacin

en cantidad de memoria utilizada y tiempo para operar con


estas estructuras.
Es comn que slo una parte del sistema requiera
comportamiento temporal estricto, y el resto opcional.
Se puede considerar las tareas de tiempo real crtico, dejando
el tiempo sobrante para el resto de tareas
Se supone que el nmero de tareas de tiempo real crtico en el
sistema es constante y conocido.

Tareas peridicas
Para aumentar determinismo, se supone todas las tareas

peridicas con un periodo de activacin rigurosamente


exacto, o el menor de los posibles
Tambin se pueden considerar como peridicas las
tareas espordicas, siempre que se pueda determinar un
valor mnimo del tiempo entre dos activaciones
consecutivas. Este valor mnimo ser el que se toma
como su periodo.

Factor de utilizacin
Es la fraccin de la CPU que se utiliza en el sistema
N

U
i 1

Ci
Pi

O sea la suma de las fracciones de CPU utilizado por el

total de las tareas.


Es necesario que el factor de utilizacin sea menor o
igual que uno.

Hiperperiodo
Es el mnimo comn mltiplo de los periodo de todas las

tareas
A partir de este valor el sistema se repite, si se determina

que un sistema es planificable en la duracin de un


hiperperiodo, lo ser tambin durante toda la vida del
sistema
Con un nmero elevado de tareas el valor del

hiperperiodo se dispara (en el caso ms desfavorable es


el producto de todos los periodos). Hay que tener en
cuenta que la probabilidad de que dos nmeros elegidos
al azar sean primos es del 60%

Dependencia entre tareas


Precedencia: una tarea no puede continuar hasta que otra la active

explcitamente.
Dependencia en datos: varias tareas utilizan datos que no pueden ser
compartidos (exclusin mutua)
Dependencia temporal relativa: Varias tareas debe finalizar sus trabajos en
un instante que no puede distar ms de una cantidad. El plazo no es absoluto
sino relativo a otra tarea (videoconferencia en la que se quiere que la voz
acompae al movimiento de los labios)
Restricciones de precedencia AND / OR: Es una relacin entre tareas similar
a la restriccin de precedencia, pero cuando una tarea debe esperar a que
finalicen varias predecesoras (AND), o slo alguna de ellas (OR)
Ejecucin condicional: una tarea se ejecuta o no dependiendo del resultado
de otra
Relacin de cauce: Es la relacin tpica del tipo productor / consumidor. El
consumidor debe esperar a tener datos para continuar y el productor debe
detenerse si el medio de comunicacin se colapsa debido a que el productor
enva informacin ms rpido de lo que la lee el consumidor
En el caso de que entre dos tareas exista una relacin de precedencia, se
supone ambas tareas como peridicas independientes con el mismo periodo
igual al de la tarea que precede a la segunda

Parmetros funcionales
Trabajos interrumpibles: pueden ser interrumpidos para ejecutar tareas

ms urgentes. La interrupcin de un trabajo se llama preempcin


(preemption en ingls).
No interrumpibles: ejecutar sin interrupcin desde que comienza hasta que
termina.
Cuando se interrumpe tarea, el sistema debe guardar su estado (cambio
de contexto). En el anlisis se considera nulo el tiempo de cambio de
contexto
Importancia de los trabajos: El planificador para decidir el orden en que se
ejecutan las tareas deber tener en cuenta su importancia a travs de una
prioridad a las tareas
Ejecucin opcional: Si aparece sobrecarga se configuran tareas como
opcionales, que podrn descartarse
Si un trabajo de una tarea opcional se ejecute fuera de plazo, o no se
ejecuta, producir un funcionamiento degradado del sistema, pero seguir
ofreciendo un comportamiento satisfactorio
Los trabajos obligatorios deben ejecutarse completamente dentro de sus
plazos
Se tendr que utilizar un parmetro funcional que indique si un trabajo es
obligatorio u opcional

Planificacin
Trabajos deben ser asignados a procesadores en un orden determinado
Esto lo hace el planificador: decide que trabajos ejecuta cada procesador y en que orden
Planificacin es una asignacin de recursos y tiempo a actividades de forma que se

cumplan determinados requisitos de eficiencia.


Estticos sin tiempo real: minimizar tiempo de ejecucin.
Dinmicos sin tiempo real: minimizar tiempo de respuesta y maximizar uso de recursos.
Sistemas de tiempo real: cumplir los lmites temporales.

5 tareas pueden realizarse de 5!=120 ordenes diferentes


Pero debo elegir una que cumpla restricciones temporales!

En particular, el recurso que se planifica es el uso de procesador/es disponibles


Un planificador debe producir planificaciones vlidas, de forma que satisfagan las

siguientes condiciones:

Cada procesador debe estar asignado como mximo a un solo trabajo en cada instante.
Cada trabajo est asignado como mximo a un solo procesador en cada instante
La cantidad total de tiempo asignada a c/trabajo debe ser igual a su t. de ejecucin mximo o a su actual t.de
ejecucin
Se satisfacen todas las restricciones de precedencia y uso de recursos para acceder a los datos

Con estas condiciones se da por supuesto que un trabajo no se ejecuta en paralelo en

ms de un procesador, o se consideran como trabajos distintos los que se ejecuten en


procesadores distintos, aunque colaboren para realizar una funcin en conjunto

Planificacin

Planificacin
Una planificacin vlida es posible si cada trabajo finaliza antes de su lmite temporal
Un conjunto de tareas es planificable de acuerdo con un algoritmo de planificacin si cuando

utiliza este algoritmo el planificador siempre produce planificaciones posibles


Rendimiento de un algoritmo de planificacin: habilidad de encontrar planificaciones posibles
Algoritmo de planificacin ptimo: siempre produce planificaciones posibles cuando existen en
el conjunto de trabajos dados
Si un planificador ptimo falla al encontrar una planificacin posible, el conjunto de tareas no
puede ser planificada con ningn otro algoritmo de planificacin
Puede ocurrir que un planificador no consiga encontrar una planificacin posible para un
conjunto de tareas porque no exista
Puede ser aceptable que para algunos procesos (opcionales) no se cumplan sus restricciones
temporales (trabajos que finalizan fuera de plazo, o no lleguen a ejecutarse)
En este caso, un planificador elige entre minimizar la tardanza de los trabajos que se ejecutan
fuera de plazo, o minimizar el nmero de tareas que no se ejecutan para que las que lo hacen
si cumplan los plazos
Estos dos criterios son opuestos: completar ms trabajos aumentar la tardanza total y
disminuir la tardanza dejar sin ejecutar ms trabajos
Una medida del rendimiento que tiene en cuenta ambos criterios es la razn de invalidez, que
contempla el total de los trabajos invlidos, los que no se ejecutan y los que no terminan en
plazo
Por lo general, un planificador que admita trabajos opcionales debe minimizar la razn de
invalidez

Planificacin
tareas : sucesin de trabajos que se repiten. Cuando la

tarea comienza a ejecutarse comenzar a ejecutarse su


primer trabajo y, cuando el ltimo trabajo finalice,
terminar la ejecucin de la tarea.
Un mtodo de planificacin tiene dos aspectos:

Algoritmo de planificacin, que determina el orden de


acceso de las tareas a los recursos.
Un mtodo de anlisis que permite calcular el
comportamiento temporal del sistema:
Se pueden comprobar si requisitos temporales estn
garantizados en todos los casos posibles.
En general se estudia el peor comportamiento posible.
Los algoritmos pueden ser estticos y dinmicos.

Planificacin
Planificacin Esttica:

Los requisitos temporales se analizan antes de la ejecucin y


se determina el orden en que estas se ejecutarn.
Minimiza la sobrecarga en tiempo de ejecucin.
Menos flexible.
Planificacin dinmica:
El orden de las tareas se decide durante la ejecucin.
El anlisis tambin se realiza durante la ejecucin.
Prioridades Fijas y Procesos Totalmente Interrumpibles.
La prioridad es un parmetro relacionado con la urgencia o la
importancia de la tarea.
Siempre se ejecuta la tarea lista con mayor prioridad.
Es el algoritmo de mejor comportamiento en SOTR crtico,
sobre todo en sobrecarga.

Planificacin
Modelo de tareas, de mas simple a mas complejo:

El conjunto de tareas es esttico.


Todas las tareas son peridicas
Las tareas son independientes
Los lmites de tiempo de todas las tareas son iguales a su periodo.
El tiempo de ejecucin mximo es conocido.

Ejecutivos cclicos
Si todas las tareas son peridicas, se puede confeccionar un plan de

ejecucin fijo en una tabla.


Los ejecutivos cclicos son la aproximacin ms tradicional a la construccin
de sistemas de tiempo real.
No se utiliza la concurrencia. Las distintas tareas se simulan en un programa
secuencial, sin soporte del lenguaje o sistema operativo.
Se trata de un esquema que se repite cada:
Tm=mcm(Ti) (ciclo principal)
El ciclo principal se divide en ciclos secundarios, con perodo.
Ts | Tm=kTs
En cada ciclo secundario se ejecutan las actividades correspondientes a
determinadas tareas
En el planificador solo consulta tabla y el procesador ejecute las tareas
siempre en el mismo orden.
Se coloca a mano el orden de ejecucin de los trabajos durante un
hiperperiodo fuera del tiempo de ejecucin.

Ejecutivos cclicos
Tabla de llamadas a procedimientos (T

Tarea

0.5

1.5

16

periodo y C tiempo ejecucin peor


caso)
Cada procedimiento representa parte
del cdigo de un proceso
El ciclo principal dura 16ms
Hay 4 ciclos secundarios de 4ms.
Cada 4ms. hay una interrupcin y el
planificador pone en ejecucin la
tarea correspondiente hasta recorrer
la tabla
Ser planificable si la suma de los
tiempos da menor a 16.

Ejecutivos cclicos
El seudo cdigo ser:
Loop
espera_interrupcin;
procedimiento_para_a;
procedimiento_para_b;
procedimiento_para_c;
espera_interrupcin;
procedimiento_para_a;
procedimiento_para_b;
procedimiento_para_d;
espera_interrupcin;
procedimiento_para_a;
procedimiento_para_b;
procedimiento_para_c;
espera_interrupcin;
procedimiento_para_a;
procedimiento_para_b;
End loop;

Ejecutivos cclicos

Los procesos no existen en tiempo de ejecucin: cada ciclo

secundario es una secuencia de llamadas a procedimientos.


Comparten un espacio de direcciones, por lo que pueden
pasar datos entre ellos.
Datos compartidos no necesitan ser protegidos (con un
semforo, por ejemplo), porque es imposible el acceso
concurrente.
Todos los periodos de los procesos deben ser mltiplos del
tiempo del ciclo secundario

Ejecutivos cclicos - Desventajas


Esta ltima propiedad representa uno de los principales inconvenientes del

enfoque del ejecutivo cclico, junto a:


La dificultad para incorporar procesos espordicos.
La dificultad procesos con periodos grandes; el tiempo del ciclo principal es
el mximo periodo acomodable sin planificacin secundaria (un
procedimiento en el ciclo principal que llame a un proceso secundario cada N
ciclos secundarios).
La dificultad a la hora de construir el ejecutivo cclico.
Cualquier proceso con un tiempo de clculo notable podr tener que ser
dividido en un nmero fijo de procedimientos de tamao fijo (lo que podra
romper la estructura del cdigo desde una perspectiva de la ingeniera de
software, y por lo tanto ser propenso a error).
Si puede construirse el ejecutivo cclico, no ser necesario ningn test de
planificabilidad ms.
Sin embargo, en sistemas de alta utilizacin la construccin del ejecutivo es
problemtica. En sistemas peridicos simples el ejecutivo cclico se mantiene
como una estrategia de implementacin apropiada.

Planificadores basados en prioridades


En tiempo de ejecucin se ejecuta la tarea de ms prioridad activa

La asignacin de prioridades puede ser:


Esttica: Prioridad de cada tarea constante durante toda la vida del sistema
que se calcula antes de su ejecucin. Se ejecutan por su prioridad. La
prioridad de un proceso se deriva de sus requisitos de temporizacin, no de
su importancia para el correcto funcionamiento o para la integridad del
sistema.
Dinmica: Las prioridades varan con el tiempo segn unas determinadas
reglas. El planificador puede ser expulsivo (apropiativo , preemtive) o no
expulsivo. Ser expulsivo si una tarea de ms prioridad, al activarse, puede
quitarle la CPU a otra de menor prioridad. Si el planificador es no expulsivo,
cuando una tarea toma la CPU no la deja hasta que termine o la cede
voluntariamente.
En general, los esquemas apropiativos mejoran la reaccin de los procesos

de alta prioridad, y por lo tanto se les prefiere.


En la planificacin por prioridades, las tareas alternarn entre distintos
estados segn el control que tengan de la CPU.

Planificacin con prioridades

Sistema ser planificable (planificacin posible) si cada trabajo finaliza antes de su


lmite temporal
Un conjunto de tareas es planificable de acuerdo con un algoritmo de planificacin si
cuando utiliza este algoritmo el planificador siempre produce planificaciones posibles
La forma que tenemos de medir el rendimiento de un algoritmo de planificacin en
las aplicaciones de tiempo real es por su habilidad de encontrar planificaciones
posibles en una determinada aplicacin cuando estas existen.
Un algoritmo de planificacin es ptimo si utilizando este algoritmo el planificador
siempre produce planificaciones posibles cuando existen en el conjunto de trabajos
dados.
Puede ocurrir que un planificador no consiga encontrar una planificacin posible para
un conjunto de tareas. Tal vez porque esta no exista.
Planificadores con prioridades estticas:
Rate Monotonic (RM).
Deadline Monotonic (DM).
Planificadores con prioridades dinmicas:
Earliest Deadline First (EDF)
Least Laxity First (LLF).

Rate Monotonic
Es un esquema ptimo de asignacin de prioridades (tasa

monotnica)
A cada proceso se le asigna una nica prioridad basada en su
periodo: mayor prioridad para periodos menores
Es ptima porque si un conjunto de procesos puede ser
planificado con un esquema de prioridades esttico (utilizando
una planificacin apropiativa basada en prioridades), entonces
el conjunto dado tambin se puede planificar con un esquema
de planificacin de tasa monotnica.
Prioridad al ms frecuente => Plazo = periodo.
La asignacin de prioridades ms altas a las tareas ms
frecuentes ( perodo mscorto) es ptima entre todas las
asignaciones con prioridades fijas (Liu & Layland,1973).

Deadline Monotonic
Extensin de Rate Monotonic (DM) donde las tareas pueden tener un

plazo relativo menor que superodo.


Idntica a la Rate Monotic, pero ahora los plazos de finalizacin pueden

ser distintos a los periodos (menores o iguales):


Di <=Ti
La asignacin de prioridades se hace en orden inverso al plazo de
finalizacin, de forma que la tarea con plazo de finalizacin ms breve
tenga mayor prioridad.
Prioridad al ms urgente => Plazo periodo.
La asignacin de prioridades ms altas a las tareas ms urgentes (plazo
de respuesta ms corto) es ptima
DM es ptimo, esto es si un algoritmo de planificacin con prioridad
esttico puede planificar un conjunto de tareas con plazos diferentes a
sus periodos, entonces DM tambin planificara este conjunto de tareas.
La factibilidad de un conjunto de tareas con plazo menor a su plazo
puede ser garantizada usando el algoritmo de planificacin RateMonotonic, reduciendo los periodos de las tareas a su plazo relativo.

POSIX 1003.1b
Estndar para introducir caractersticas de tiempo real en UNIX
Las tareas pueden ser peridicas o no.
Las tareas se programan de acuerdo a la prioridad y a la poltica de las

tareas.
La prioridad es esttica.
La poltica puede ser SCHED_RR, SCHED_FIFO o SCHED_OTHERS
Describe cmo el planificador elige una tarea cuando varias tareas
tienen el mismo nivel de prioridad.
Tareas SCHED_RR y SCHED_FIFO debe tener prioridades que
oscilan entre 255 y 1
Nivel de prioridad 0 se reserva para tareas SCHED_OTHERS.
El nivel de prioridad ms alto es 255.
En esta poltica cada tarea tiene una prioridad asignada, y el
planificador elige para ejecutar aquella tarea que tiene mayor prioridad,
de entre los que estn listos para ejecutar.
Cuando hay tareas que tienen el mismo nivel de prioridad el
planificador utiliza una poltica para elegir que tarea ejecutar.

Polticas implementadas
SCHED_FIFO: Este es el nombre de la poltica de planificacin
expulsora con prioridades que usa orden FIFO para determinar
el orden en el que se ejecutan las tareas de la misma prioridad.
SCHED_RR (Round - Robin (turno rotatorio): Este es el nombre
de la poltica de planificacin expulsora con prioridades que usa
un esquema cclico para planificar tareas de la misma prioridad.
Un proceso o hilo se ejecuta hasta que acaba o es bloqueado o
hasta que su quantum de tiempo ha expirado; si un proceso/hilo
es expropiado por un proceso de mayor prioridad, es colocado a
la cabeza de la cola de ejecucin para esa prioridad sin
embargo, si su quantum expira, ser colocado al final.

(SCHED_OTHER) : tiene un comportamiento definido por la


implementacin, que se defini para permitir la compatibilidad
con implementaciones preexistentes

Test de planificabilidad (factor de


utilizacin)
Planificadores con prioridades estticas,
Si se cumple la siguiente condicin, todos los N procesos cumplirn

sus tiempos lmite


Un conjunto de n tareas ser planificable bajo el Rate-Monotonic si
se cumple:

La sumatoria calcula el factor de utilizacin


El test es suficiente pero no necesario. Si un conjunto de procesos

pasa el test, entonces cumplir todos los tiempos lmite; si lo falla,


puede o no fallar en tiempo de ejecucin.
Slo aporta una respuesta del tipo s/no. No da ninguna indicacin
sobre los tiempos de respuesta de los procesos.

Planificadores con prioridades dinmicas.


Earliest Deadline First (EDF)
Asignar en cada instante la prioridad ms alta al proceso cuyo

plazo de respuesta est ms. Se asignan las prioridades


dando preferencia a las tareas con plazo de finalizacin ms
prximo.
La prioridad de una tarea se calcula en tiempo de ejecucin.
La prioridad de una tarea puede cambiar a lo largo de su
ejecucin y en diferentes activaciones.
Prioridades dinmicas
Earliest Deadline First es un mtodo de planificacin ptimo bajo
las siguientes restricciones:
Tareas independientes
Planificacin expulsiva
Sistemas monoprocesador

Least Laxity First (LLF)


Se asignan las prioridades dando preferencia a las tareas

con menor holgura, (plazo menos tiempo de


procesamiento restante) de la tarea.

Você também pode gostar