Subido por Yazmín Francisco López

tema 2

Anuncio
2. Conceptos básicos
Tipos de restricciones de tareas
Las restricciones típicas que se pueden especificar en tareas en tiempo real son de tres clases:



Restricciones de tiempo
Relaciones de precedencia
Restricciones de exclusión mutua en recursos compartidos
Restricciones de tiempo
Una restricción de temporización típica en una tarea es la fecha límite, lo que representa el tiempo
antes de que un proceso debe completar su ejecución sin causar ningún daño al sistema.
Dependiendo de las consecuencias de una fecha límite perdida, las tareas en tiempo real
generalmente se distinguen en tres categorías:



Difícil: se dice que una tarea en tiempo real es difícil si el incumplimiento de su fecha
límite puede causar consecuencias catastróficas en el sistema bajo control.
Firme: se dice que una tarea en tiempo real es firme si el incumplimiento de su fecha
límite no causa ningún daño al sistema, pero la salida no tiene valor.
Flexible: se dice que una tarea en tiempo real es más fácil si se pierde su fecha límite
todavía tiene alguna utilidad para el sistema, aunque causa una degradación del
rendimiento.
Los parámetros típicos de una tarea en tiempo real.







Hora de llegada ai es el momento en que se convierte en una tarea listo para su ejecución;
también se le conoce como tiempo de solicitud o tiempo de liberación ri.
Tiempo de cálculo ci es el tiempo necesario para el procesador para ejecutar la tarea sin
interrupción.
Fecha límite absoluto di es el tiempo antes del cual una tarea debe completarse para
evitar daños en el sistema.
Fecha límite relativa di es la diferencia entre la fecha límite absoluto y el tiempo de
solicitud: Di = di – ri.
Hora de inicio si es la hora en la que comienza una tarea de su ejecución.
Hora de finalización fi es el momento en que una tarea termina su ejecución.
Tiempo de respuesta ri es la diferencia entre el tiempo de acabado y el tiempo de
solicitud: Ri = fi – ri.
Restricciones de precedencia
En ciertas aplicaciones, las actividades computacionales no pueden ejecutarse en orden arbitrario,
sino que deben respetar algunas relaciones de precedencia definidas en la etapa de diseño. Dichas
relaciones de precedencia generalmente se describen a través de un gráfico acíclico dirigido G.
Restricciones de exclusión mutua en recursos compartidos
Un recurso es cualquier estructura de software que puede ser utilizado por el proceso de avanzar
en su ejecución. Para mantener la consistencia de los datos, muchos recursos compartidos no
permiten accesos simultáneos por las tareas que compiten, sino que requieren su exclusión
mutua.
Para garantizar un correcto acceso a los recursos exclusivos, los sistemas operativos proporcionan
un mecanismo sincronización (semáforos) que se puede utilizar para crear secciones críticas de
código.


Una tarea en espera de un recurso exclusivo se dice que está bloqueado en ese recurso.
Las tareas bloqueadas en el mismo recurso se mantienen en una cola.
Definición de problemas de programación
En general, para definir un problema de programación necesitamos especificar tres conjuntos: un
conjunto de n tareas, un conjunto de m procesadores y un conjunto de s tipos de recursos.


Las tareas pueden especificarse a través de un gráfico acíclico dirigido.
Las restricciones de tiempo pueden asociarse con cada tarea.
Esto significa asignar procesadores y recursos a las tareas para completarlas bajo las restricciones
especificadas.
Se ha demostrado que este problema, en su forma general, es NP-completo y, por lo tanto,
computacionalmente intratable. La complejidad de tales algoritmos es denotado por O (p (n)).
Clasificación de algoritmos de planificación




Preferente vs no preferente
- En algoritmos de preferencia, la tarea en ejecución se puede interrumpir en cualquier
momento para asignar el procesador a otra tarea activa, de acuerdo con una política de
planificación predefinidos.
- En los algoritmos no preferente, una tarea, una vez iniciado, es ejecutado por el
procesador hasta su finalización. En este caso, todas las decisiones de planificación se
toman como la tarea termina su ejecución.
Estático vs dinámico
- Algoritmos estáticos son aquellos en los que las decisiones de programación se basan en
parámetros fijos, asignado a tareas antes de su activación.
- Algoritmos dinámicos son aquellos en los que las decisiones de programación se basan
en parámetros dinámicos que pueden cambiar durante la evolución del sistema.
Off-line vs online
- Un algoritmo de planificación se utiliza fuera de línea si se ejecuta todo el conjunto de
tareas antes de la activación. La programación generada de esta manera se almacena en
una tabla y luego es ejecutada por un despachador.
- Un algoritmo de planificación se utiliza en línea si se toman las decisiones de
programación en tiempo de ejecución cada vez que una nueva tarea entra en el sistema o
cuando finaliza una tarea en ejecución.
Optimo vs heurístico
- Se dice que un algoritmo es óptimo si minimiza alguna función de costo determinada
definida sobre el conjunto de tareas. Cuando no se define una función de costo y la única
preocupación es lograr un cronograma factible, entonces se dice que un algoritmo es
óptimo si es capaz de encontrar un cronograma factible,
- Un algoritmo se dice que es heurístico si es guiado por una función heurística en la toma
de sus decisiones de programación.
Métricas para evaluación del desempeño
El rendimiento de los algoritmos de programación generalmente se evalúa a través de una función
de costo definida sobre el conjunto de tareas.
Ejemplo de funciones de costo.
Anomalías de programación
En esta sección describimos algunos ejemplos singulares que ilustran que la computación en
tiempo real no es equivalente a la computación rápida. Por ejemplo, un aumento de la potencia
computacional en el hardware no siempre causa una mejora en el rendimiento.
Estas situaciones particulares, llamadas anomalías de Richard, fueron descritas por Graham en
1976. En donde explica que si las tareas tienen plazos y se añaden recursos (un procesador
adicional) o se disminuyen las restricciones (menos precedencia o menos requisitos) se pueden
empeorar las cosas.
Anomalias:



Número de procesadores aumentado
Tiempos de computación reducidos
Restricciones de precedencia disminuidas



Anomalías bajo restricciones de recursos
Anomalías bajo programación no preferente
Anomalías utilizando un retraso primitivo
Gráfico de precedencia del conjunto de tareas J; los números entre paréntesis indican tiempos de cálculo.
Mejor esquema de conjunto de tareas J en una máquina de tres procesadores
Conjunto de tareas J en una máquina de cuatro procesadores
Conjunto de tareas J en tres procesadores, con tiempos de cálculo reducidos por una unidad de tiempo
La programación del conjunto de tareas J en tres procesadores, con restricciones de precedencia disminuida.
Descargar