Protocolo de techo de prioridad
Regla de bloqueo para sistemas de tiempo real que asigna a cada recurso un techo de prioridad, de modo que la inversión de prioridad y el interbloqueo no pueden llegar a producirse.
Cada mutex recibe de antemano un techo: la prioridad más alta de cualquier tarea que vaya a tomarlo alguna vez. En la variante más sencilla, el techo inmediato o «highest locker», la tarea que adquiere el cerrojo sube al instante a esa prioridad y no baja hasta soltarlo. Ninguna otra tarea interesada en el mismo recurso puede siquiera ponerse en ejecución mientras tanto.
Lo describieron Sha, Rajkumar y Lehoczky en 1990, en el mismo artículo que presentó la herencia de prioridad. La herencia reacciona cuando el conflicto ya existe; el techo lo impide. La ganancia es demostrable: una tarea se bloquea como mucho una vez, durante como mucho una sección crítica, y la espera circular resulta imposible. El precio es saber estáticamente quién usa qué, justo el tipo de conocimiento que los sistemas certificados exigen de todos modos. Ada lo llama Ceiling_Locking, POSIX PTHREAD_PRIO_PROTECT, y OSEK/AUTOSAR construyen sobre él su modelo de recursos.