En palabras simples, “la tarea con la periodicidad más corta se ejecuta con la máxima prioridad”.
Rate-monotonic es una programación basada en prioridades. El esquema de programación es preventivo; garantiza que una tarea se vacíe si se espera que se ejecute otra tarea con un período más corto.
Este esquema se usa típicamente en sistemas embebidos donde la naturaleza de la programación es determinista. Al implementar la programación RMS en las aplicaciones, las tasas deben diseñarse / seleccionarse de manera que la utilización del sistema sea alta.
- ¿Cuáles son los mejores sitios web con problemas de práctica de algoritmos?
- Ya tengo 30 años, pero mis habilidades de programación y algoritmo no son lo suficientemente buenas. ¿Qué tengo que hacer?
- Se me pide que lea datos de un archivo .txt en una matriz y que haga cosas con esa información (encontrar promedio, encontrar número de elementos, encontrar valores máximos / mínimos). ¿Cómo se puede hacer esto en Java?
- ¿Cómo resolvemos el problema B, 'Can of Worms', del Chicago Invitational Programming Contest 2013?
- ¿Cuál es una explicación intuitiva del algoritmo Metropolis-Hastings?
En otras palabras, el período de tareas, el tiempo de ejecución debe diseñarse de manera que todas las tareas tengan una oportunidad justa de ejecutarse o al menos tengan la oportunidad de ejecutarse cuando se espera que se ejecuten las tareas, porque la naturaleza de la programación siempre da prioridad a las tareas con menor duración
Considere dos tareas con una tasa de 10 ms-task1 y 20 ms-task2. Según RMS, la tarea 1 siempre debe ejecutarse a una velocidad de 10 ms, ya que es la tarea de menor duración. La tarea2 se ejecutará a una velocidad de 20 ms si la tarea1 no se está ejecutando.
Considere un caso en el que las tareas se implementan de modo que el tiempo de ejecución de la tarea1 sea de 10 ms y la tarea2 también sea de 10 ms. En este escenario, la tarea2 nunca se ejecutará, ya que la tarea1 siempre se ejecutará cada 10 ms. Por lo tanto, las tareas deben diseñarse de manera que otras tareas al menos tengan la oportunidad de ejecutarse. En este caso, si la tarea1 requiere 8 ms de tiempo de ejecución y la tarea2 demora alrededor de 10 ms, entonces podemos estar seguros de que la tarea2 al menos se ejecuta a aproximadamente 100 ms, ya que obtiene 2 ms libres cada 20 ms.
Tanto el tiempo de ejecución como las tasas de la tarea deben analizarse detenidamente antes de implementar un esquema RMS para una aplicación.