Highest Locker Protocol (HLP) es un protocolo de uso compartido de recursos críticos que es una extensión del Priority Inheritance Protocol que se introdujo para superar las limitaciones del Priority Inheritance Protocol. En este protocolo de uso compartido de recursos críticos, a cada recurso crítico se le asigna un valor de prioridad máximo. Este valor es el máximo de prioridades de todas aquellas tareas que pueden solicitar mantener este recurso crítico.
Concepto básico de HLP:
El concepto básico de Highest Locker Protocol se basa en el valor máximo de prioridad. Cuando una tarea contiene un recurso crítico, su prioridad cambia al valor máximo de prioridad del recurso crítico. Si una tarea contiene varios recursos críticos, el máximo de todos los valores máximos de prioridades se asigna como prioridad de la tarea.
Trabajo de HLP:
- Los recursos requeridos por cada tarea se encuentran antes del tiempo de compilación.
- Inicialmente, se asigna un valor máximo de prioridad a cada recurso crítico.
- El valor máximo de prioridad de un recurso crítico se calcula como el máximo de prioridades de todas aquellas tareas que pueden solicitar mantener este recurso crítico.
- Cuando una tarea contiene un recurso crítico, el valor máximo de prioridad correspondiente se asigna como prioridad a la tarea.
- A la tarea que adquiere múltiples recursos críticos se le asigna el máximo de todos los valores de prioridad máximos.
- Además, la ejecución se realiza sobre la base de las prioridades asignadas.
Características de HLP:
- Cuando se usa HLP para compartir recursos, una vez que la tarea contiene el recurso crítico requerido, ya no se bloquea más.
- Antes de que una tarea pueda contener un recurso, todos los recursos que pueda necesitar esta tarea deben estar libres.
- Evita que las tareas entren en punto muerto o bloqueo de string.
Ventajas de HLP:
Las siguientes son las ventajas de Highest Locker Protocol:
- Es útil para compartir recursos críticos entre varias tareas.
- Evita la inversión ilimitada de prioridades entre tareas.
- Supera las limitaciones del protocolo de herencia de prioridad.
- Evita el interbloqueo ya que una tarea contiene un recurso, todos los demás recursos requeridos por esta tarea deben estar libres.
- Una tarea no puede entrar en bloqueo de string utilizando el protocolo Highest Locker.
Desventajas de HLP:
La principal desventaja de Highest Locker Protocol es la inversión de prioridad relacionada con la herencia .
La inversión de prioridad relacionada con la herencia ocurre cuando al valor de prioridad de la tarea de baja prioridad que adquiere un recurso crítico se le asigna la prioridad más alta usando la regla de techo, luego las tareas de prioridad intermedia que no necesitan el recurso no pueden ejecutarse y se someten a la conversión de prioridad relacionada con la herencia.