Ingeniero

Páginas: 11 (2543 palabras) Publicado: 9 de febrero de 2013
6.2.1.1ALGORITMO DE PLANIFICACIÓN DEFREERTOS
FreeRTOS utiliza un algoritmo de planificación expropiativa de prioridad fija. Con prioridad fija nos referimos a que la prioridad de cada proceso nunca es modificada por el planificador. Es expropiativa ya que un proceso que este en estado
Preparado [pic][pic][pic][pic]siempre expropiara la ejecución si el proceso en ejecución tiene una prioridadinferior a él.

Los procesos pueden esperar en el estado bloqueado a que ocurra un evento, en ese momento pasaran a estado Preparado.

Cuando varios procesos con la misma prioridad están en estado preparado, su ejecución será tipo round robbin, asignado a cada proceso slice de un tamaño igual aun tick del sistema.

En el siguiente diagrama se ilustra el comportamiento de una aplicación:[pic]
Figura 25 Ejemplo de planificación de procesos

Proceso 1: prioridad alta, espera evento
Proceso 2: prioridad media, ejecución periódica
Proceso 3: prioridad baja, espera evento
Idle: proceso de más baja prioridad, se ejecuta de forma continua

En T1 este es el estado de ejecución:

Proceso 1: bloqueado, espera la ocurrencia de un evento
.Proceso 2: en ejecución.
Proceso 3:bloqueado, espera la ocurrencia de un evento.
Idle: no está en ejecución ya que el Proceso 2 tiene mayor prioridad.

En T2 Proceso 2 completa su ejecución y pasa a bloqueado, los procesos 1 y 3 siguen bloqueados, Idle pasa a ejecutarse.

En T3 se produce el evento que espera el proceso 3, con lo que pasa a preparado e inmediatamente expropia la ejecución a Idle.
[pic]

En T4 el proceso 3termina su ejecución, como los procesos 2 y 3 siguen bloqueados, por lo que Idle pasa a ejecutarse.

En T5 se produce otra vez el evento que espera el proceso 3, pasando a preparado e inmediatamente expropiando la ejecución a Idle.

En T6 expira el periodo de ejecución del proceso 2, pasando este a preparado. Al tener mayor prioridad que proceso 3, pasa a ejecución, quedando el proceso 3 enpreparado.

En T7 ocurre el evento que espera T1, con lo que pasa a preparado, y al tener mayor prioridad que el proceso 2, pasa a ejecución, quedando este en estado preparado.

En T8 el proceso 1 termina su ejecución, pasando a bloqueado a la espera de un nuevo evento. El proceso 2 pasa a ejecución, al ser el de mayor prioridad de los procesos preparados.

En T9 el proceso 2 termina suejecución, pasando a bloqueado. El proceso 3 es planificado al poseer mayor prioridad que Idle.

En T10 el proceso 3 termina su ejecución, pasando a bloqueado a la espera de un nuevo evento. Al no haber ningún otro proceso preparado, Idle pasa a ejecución.

6.2.1.2PLANIFICACIÓN COOPERATIVA

FreeRTOS puede configurarse para implementar una planificación cooperativa. En un sistema operativo conplanificación cooperativa, los cambios de contexto solo ocurren cuando una tarea se bloquea a sí misma, o llama al planificador para que reasigne la ejecución (median la función taskYIELD()). En este contexto, un proceso nunca es expropiado de la ejecución por otros procesos. Tampoco se comparte el tiempo de ejecución con procesos con la misma prioridad. Aunque FreeRTOS puede configurarse para hacer unaplanificación cooperativa, en el presente trabajo no se usará esta posibilidad. Una planificación cooperativa puede resultar en una mayor eficiencia, pero requiere un diseño muy cuidado de la aplicación, así como pruebas exhaustivas, ya que cualquier proceso podría bloquear todo el sistema.


6.2.1.3EL TICK DEL SISTEMA. GESTIÓN DEL TIEMPO

El kernel de FreeRTOS mide el tiempo usando unavariable para contar ticks. Para implementar tal mecanismo FreeRTOS utiliza un timer que genera una interrupción en la que se incrementa dicho contador. La frecuencia de este temporizador es configurable, y no permite ajustar con precisión la granularidad temporal del sistema.
[pic][pic]
[pic][pic]Gracias a este mecanismo las funciones temporizadas de la API pueden hacer esperas pasivas y time...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Ingeniero
  • Ingeniero
  • Ingeniero
  • Ingeniero
  • Ingeniero
  • Ingeniero
  • Ingeniero
  • Ingeniero

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS