En la informática en tiempo real , la herencia de prioridades es un método para eliminar la inversión de prioridad ilimitada . Con este método de programación , un algoritmo de programación de procesos aumenta la prioridad de un proceso (A) a la prioridad máxima de cualquier otro proceso que espera cualquier recurso en el que A tenga un bloqueo de recursos (si es mayor que la prioridad original de A).
La idea básica del protocolo de herencia de prioridad es que cuando un trabajo bloquea uno o más trabajos de alta prioridad, ignora su asignación de prioridad original y ejecuta su sección crítica a un nivel de prioridad elevado. Después de ejecutar su sección crítica y liberar sus bloqueos, el proceso vuelve a su nivel de prioridad original.
Ejemplo
Considere tres trabajos:
Nombre del trabajo | Prioridad |
---|---|
H | Elevado |
METRO | Medio |
L | Bajo |
Suponga que tanto H como L requieren algún recurso compartido. Si L adquiere este recurso compartido (ingresando a una sección crítica), y H posteriormente lo requiere, H lo bloqueará hasta que L lo libere (dejando su sección crítica). Sin la herencia de prioridad, el proceso M podría adelantarse al proceso L durante la sección crítica y retrasar su finalización, lo que de hecho haría que el proceso de menor prioridad M se adelantara indirectamente al proceso de alta prioridad H. Este es un error de inversión de prioridad .
Con la herencia de prioridad, L ejecutará su sección crítica en la prioridad alta de H siempre que H esté bloqueado en el recurso compartido. Como resultado, M no podrá adelantarse a L y será bloqueado. Es decir, el trabajo de mayor prioridad M debe esperar a que se ejecute la sección crítica del trabajo de menor prioridad L, porque L ha heredado la prioridad de H. Cuando L sale de su sección crítica, recupera su prioridad original (baja) y despierta a H (que fue bloqueada por L). H, que tiene alta prioridad, se adelanta a L y corre hasta su finalización. Esto permite que M y L se reanuden sucesivamente y se completen sin inversión de prioridad.
Ver también
Referencias
- Lui Sha; Ragunathan Rajkumar y John P. Lehoczky (septiembre de 1990). "Protocolos de herencia prioritaria: un enfoque para la sincronización en tiempo real" (PDF) . Transacciones IEEE en computadoras . 39 (9): 1175-1185. doi : 10.1109 / 12.57058 .
enlaces externos
- " Herencia prioritaria: la historia real " de Doug Locke
- " Contra la herencia prioritaria " de Victor Yodaiken
- " Implementación del control de simultaneidad con herencia prioritaria en CORBA en tiempo real " por Steven Wohlever , Victor Fay Wolfe y Russell Johnston
- " Cerraduras giratorias de herencia prioritaria para sistemas multiprocesador en tiempo real " por Cai-Dong Wang , Hiroaki Takada y Ken Sakamura
- " Soporte de hardware para herencia prioritaria " por Bilge ES Akgul , Vincent J. Mooney , Henrik Thane y Pramote Kuacharoen