Cap 10 STR

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 8

EVALUACIÓN: Capítulo 10

1. ¿Cuáles son los supuestos del modelo de proceso simple?

El modelo de proceso simple es un modelo sencillo que nos servirá para predecir el
comportamiento en el peor caso. Deben cumplirse los siguientes supuestos:

✔ El programa debe estar compuesto por un número fijo de procesos.


✔ Los procesos deben ser independientes unos de otros.
✔ Todos los procesos del programa han de ser periódicos y el periodo de los
mismos, T, ha de ser conocido.
✔ Todos los procesos del programa han de acabar antes de que puedan ser
ejecutados nuevamente.
✔ En el peor de los casos, todos los procesos tienen un tiempo de ejecución
constante y conocido.
✔ No existen (o se desprecian) perturbaciones que puedan afectar al reparto de
tiempo de uso de los procesadores de los distintos procesos, tales como:
sobrecargas del sistema, tiempos muertos por cambios de contexto, etc.

2. ¿En qué consiste el enfoque de ejecución cíclico? ¿Cuáles son sus características e
inconvenientes?

El llamado enfoque de ejecución cíclico puede resumirse como una tabla de llamadas a
procedimientos, cada uno de los cuales representa una parte del código de un proceso.
Esta tabla es conocida como ciclo principal y usualmente consta de varios ciclos
secundarios. Los ciclos secundarios tienen una duración fija, de forma que, por ejemplo,
cinco ciclos secundarios de 20 ms forman un ciclo principal de 100 ms. Durante la
ejecución, una interrupción de reloj, que se produce con el mismo periodo que la
duración de los ciclos secundarios (20 ms en este ejemplo), permite que el planificador
pase de uno a otro de los cuatro ciclos secundarios.
Imaginemos ahora, siguiendo con el ejemplo anterior, que tenemos cuatro procesos a
los que un único procesador ha de atender utilizando el enfoque de ejecución cíclico
con cinco ciclos secundarios de 20 ms cada uno. Supongamos, además, que los cinco
procesos presentan las siguientes características:
• El proceso 1 tiene un periodo T de 20 ms y un tiempo de ejecución de 10 ms.
• El proceso 2 tiene un periodo T de 20 ms y un tiempo de ejecución de 5 ms.
• El proceso 3 tiene un periodo T de 40 ms y un tiempo de ejecución de 4 ms.
• El proceso 4 tiene un periodo T de 80 ms y un tiempo de ejecución de 2 ms.
Con los supuestos anteriores, la Figura 10.1 muestra una posible realización de un
enfoque de ejecución cíclico, ilustrando así el trabajo que realizaría un procesador en
cada ciclo secundario de 20 ms. Las zonas grises indican tiempos libre para el
procesador, por no tener que atender éste a ninguno de los procesos.

3. ¿Qué es la planificación FPS? ¿Y la EDF? ¿Cuáles son sus principales diferencias?

FPS es el tipo de planificación basada en tareas más extendido. En este esquema de


planificación, cada proceso tiene una cierta prioridad fija, determinada y preasignada
antes de realizar su ejecución. Una vez establecida esta prioridad, los procesos que se
encuentran en estado ejecutable se ejecutan en el orden que determina su nivel de
prioridad. Estos niveles de prioridad se obtienen en base a los requisitos de
temporización de los procesos y no en base a la importancia que tienen los mismos. En
un esquema de planificación de prioridad fija puede ocurrir que, en un momento dado,
un proceso con prioridad alta deba ser ejecutado en el mismo instante en el que otro
proceso de menor prioridad está siendo ejecutado. Caben entonces dos posibilidades:

En un esquema apropiativo el planificador retirará los recursos de ejecución al


proceso de menor prioridad y se los asignará al de mayor prioridad.

En un esquema no apropiativo el proceso de menor prioridad completaría su


ejecución antes de que se ejecute el proceso de prioridad más alta.

La planificación de primero el tiempo límite más temprano (EDF) se basa en dar prioridad
de ejecución a aquellos procesos cuyo tiempo límite, D, está más cercano. Podemos
distinguir entre dos tiempos límite para un proceso:

Relativo: un proceso debe haber sido ejecutado por ejemplo 15 ms después de


que haya comenzado su ejecución.

Absoluto: un proceso debe completar su ejecución antes de que transcurran por


ejemplo los próximos 50 ms).Se dice que este esquema es dinámico.
4. Describa los tests de planificabilidad basados en utilización para FPS y para EDF.

Test aplicable a FPS sólo en su versión apropiativa: Este test nos dice que, si se cumple
la siguiente condición, los N procesos involucrados completarán su ejecución dentro de
sus tiempos límite:

Ci:tiempo de ejecución(peor caso)


Ti:Periodo

Test aplicable a EDF: Si el conjunto de procesos requiere de una utilización del


procesador menor o igual que la unidad (es decir, no mayor que la capacidad total del
procesador), entonces los tiempos límite, D, de dichos procesos se cumplirán. De este
modo, es fácil entender que el esquema de planificación EDF es superior al de FPS,
pues es más fácil cumplir el requisito del test de planificabilidad y, por tanto, es más
probable que los procesos de un conjunto dado puedan cumplir todos sus tiempos
límite.

5. Describa el test de planificabilidad básico basado en calcular y comparar los tiempos


de respuesta de los procesos con sus tiempos límite.

Es aplicable principalmente para FPS. Si los tiempos de respuesta de todos los procesos
son inferiores a sus respectivos tiempos límite, entonces el conjunto de procesos es
planificable. Como primera aproximación podríamos decir que el tiempo de respuesta en
el peor caso (R) será igual a su tiempo de ejecución (C). Sin embargo, esto, en todo
caso, podría ser cierto sólo para el proceso de mayor prioridad. Los demás procesos
sufrirían cierta interferencia debido a la existencia de procesos de mayor prioridad que
se “colarían” en la ejecución. Para un proceso i dado, que tiene un tiempo máximo de
interferencia I, su tiempo de respuesta sería entonces:
6. Explique cómo afectan las interacciones y bloqueos entre procesos al test de
planificabilidad anterior.

Al contrario que FPS, EDF no proporciona el tiempo de respuesta en el peor caso de


forma sencilla, que ocurre cuando se activan todos los procesos en un instante crítico.
Esto se debe a que, en dicha situación, sólo los procesos con los tiempos límite
relativos más pequeños interferirían en la ejecución de otros procesos, pero, después,
puede producirse una situación en la que la gran mayoría de los procesos (o incluso
todos) tengan un tiempo límite absoluto más corto. Por tanto, calcular el término I puede
ser muy complejo en este caso.

7. Describa los protocolos de acotación de la prioridad, presente sus diferencias y


explique cómo afectan al test de planificabilidad anterior.

Los protocolos de acotación principales son el protocolo original de acotación de la


prioridad (OCPP) y el protocolo inmediato de acotación de la prioridad (ICPP) Esto
protocolos tratan de minimizar la posibilidad de que aparezcan las cadenas de bloqueos
(bloqueos transitivos). Dado que los datos compartidos son un recurso del sistema, el
gestor de recursos no sólo se debe minimizar el bloqueo, sino que las condiciones de
fallo (como son los interbloqueos) deben ser eliminadas en la medida de lo posible.

OCPP:
Todos los procesos tienen asignados una prioridad estática por defecto;

Todos los recursos tienen definidos un valor cota estático igual a la prioridad
máxima de los procesos que lo están utilizando.

Los procesos tienen una prioridad dinámica que es el máximo de su propia


prioridad estática y de cualquier prioridad que hereden debido a que bloquea
procesos de mayor prioridad.

Un proceso dado sólo puede bloquear un recurso si su prioridad dinámica es


mayor que la cota máxima de cualquier recurso actualmente bloqueado,
excluyendo cualquiera que ese mismo proceso pueda tener ya bloqueado.

Se permite el bloqueo del primer recurso del sistema.


ICPP:

Todos los procesos tienen asignados una prioridad estática por defecto;

Todos los recursos tienen definidos un valor cota estático, que es igual a la
prioridad máxima de los procesos que lo están utilizando.

Los procesos tienen una prioridad dinámica que es el máximo de su propia


prioridad estática y de los valores cota de cualquier recurso que tenga
bloqueado.

Comparación:

ICPP provoca un número de cambios de contexto menor que OCPP, ya que el


bloqueo de un proceso es previo a la primera ejecución del mismo.

ICPP supone más cambios de prioridad que OCPP debido a que, con ICPP éstos
se producen con cada nueva utilización de recurso, mientras que con OCPP la
prioridad sólo se modifica si ocurren bloqueos.

ICPP es más sencillo de implementar que OCPP puesto que no es necesario


monitorizar las relaciones de bloqueo.

8. ¿En qué consiste el modelo de proceso extensible? ¿Cómo afecta éste al test de
planificabilidad anterior?
(muy resumido)
Se puede ampliar el modelo de proceso simple con cinco generalizaciones adicionales.
(sólo consideraremos la planificación de prioridad estática o FPS.

Planificación cooperativa

Se utiliza la apropiación diferida que aporta una serie de ventajas

1) Puede conducir a valores menores de C


2) aumenta la planificabilidad del sistema.
3) Ofrece una mayor precisión para predecir los tiempos de ejecución de los
bloques no apropiables de los procesos, pues se puede utilizar el conocimiento
de la no expropiación para predecir mejor la velocidad del código.
Fluctuaciones en la activación

En el modelo simple se supone que todos los procesos son periódicos y que este
periodo es constante, pero esto no es siempre una suposición realista. La fluctuación
(jitter) es el valor máximo de la variación en la activación de un proceso y suele
representarse mediante la letra J. En situaciones donde un proceso también sufra
fluctuaciones en su activación (algo que sólo ocurre cuando una implementación
particular impone restricciones en la granularidad del temporizador del sistema), se tiene
que medir el tiempo de respuesta relativo al tiempo de respuesta real. Para calcular este
tiempo de respuesta relativo basta con sumar Ji (la fluctuación del proceso o Jitter) a Ri
(el último instante posible en el que acaba el proceso)

Tiempos límite arbitrarios


Hasta ahora, hemos considerado los casos en los que el tiempo límite de un proceso
(Di) era igual a su periodo(Ti) o menor que éste. Si el valor del tiempo límite es mayor
que Ti, debemos considerar que la activación de un proceso es retrasada siempre hasta
que finalice cualquier ejecución que se hubiese producido del mismo proceso con
anterioridad. De esta forma, si un proceso dado se ejecuta en dos periodos
consecutivos, las dos activaciones deben ser analizadas para ver cuál de ellas requiere
un tiempo de respuesta más alto.

Tolerancia a fallos
La tolerancia a fallos mediante recuperación de errores implica siempre una cierta
cantidad de cálculos. (Libro p.214)

Introducción de desplazamientos

Existen conjuntos de procesos para los cuales es interesante considerar que los tiempos
de activación no ocurren en el mismo instante. Digamos, pues, que existe un
desplazamiento temporal entre la activación de unos y otros.
El problema es que los conjuntos de procesos que presentan desplazamientos
en sus activaciones no son fáciles de analizar pero es posible realizar este análisis, ya
que puede resultar sencillo dar a un proceso un desplazamiento dado de (T/2) y analizar
el sistema resultante usando un mecanismo de transformación que elimine el
desplazamiento.
Eliminado el desplazamiento, dicho proceso presenta dos propiedades importantes:

Si es planificable (lo que ocurre cuando el proceso artificial comparte un instante crítico
con todos los demás procesos), los dos procesos reales reemplazados cumplirán sus
tiempos límite cuando a uno de ellos se le asigne la mitad del periodo como
desplazamiento.

Si todos los procesos de menor prioridad que el proceso artificial son planificables
cuando sufren la interferencia de éste, seguirán siendo planificables cuando el proceso
artificial sea reemplazado nuevamente por los dos procesos reales a los que sustituía
(uno de ellos, con el desplazamiento).

Asignación de prioridades

Para establecer un algoritmo de propósito general de asignación óptima de prioridades.


nos basaremos en la aplicación de un teorema que establece que, si un proceso i tiene
asignada la menor de las prioridades y es realizable, entonces, si existe una ordenación
de prioridades realizable para el conjunto completo de procesos, ese orden asignará al
proceso i la menor de las prioridades.

9. ¿Cómo se decide qué procesos admitir y cuáles rechazar en el análisis en línea de


EDF?

Para tomar dicha decisión, es necesario conocer la importancia relativa de cada


proceso, lo que suele hacerse asignando un valor añadido a los mismos. Estos valores
pueden clasificarse de alguna de estas tres formas:

Estático. Los valores serán estáticos cuando los procesos siempre los mantengan,
independientemente de cuándo se activen éstos.

Dinámico. Los valores serán dinámicos cuando éstos cambien para los procesos
en el momento en el que se activan, pero no mientras se ejecutan.

Adaptativo. En este último caso, los valores de los procesos cambian durante la
propia ejecución del proceso.
10. Mencione y describa las principales clases de Java para tiempo real, así como sus
métodos más importantes.

En Java para tiempo real, podemos definir objetos planificables. Para ello, dicho objeto
debe soportar la interfaz Schedulable . Las clases AsyncEventHandler,
BoundAsyncEventHandler, NoHeapRealTimeThread y RealtimeThread, incluyen el soporte
de esta interfaz. Un objeto de este tipo ofrecerá unos ciertos parámetros de
planificación. La clase SchedulingParameters y sus subclases muestran estos parámetros
de planificación;

El método isFeasible() de la clase Scheduler se utiliza para considerar únicamente el


conjunto de objetos planificables que se hayan incorporado a la lista de factibilidad. Para
añadir o eliminar objetos de esta lista se utilizan los métodos addToFeasibility() y
removeFromFeasibility(). El método changeIfFeasible() se encarga de verificar si el
conjunto de objetos es realizable y de si los parámetros de activación y memoria del
objeto han cambiado o no. En caso de haberlo hecho, se modifican dichos parámetros.
Finalmente, los dos métodos estáticos (getDefaultScheduler() y setDefaultScheduler()) de
la clase sirven para interrogar y modificar el planificador por defecto.

También podría gustarte