Priority ceiling protocol
Regola di locking per sistemi real-time che assegna a ogni risorsa un tetto di priorità, impedendo in partenza sia l'inversione di priorità sia il deadlock.
A ogni mutex viene assegnato in anticipo un tetto: la priorità più alta tra tutti i task che lo prenderanno mai. Nella forma più semplice, l'immediate ceiling o protocollo «highest locker», il task che acquisisce il lock viene portato subito al tetto e ne scende solo al rilascio. Nel frattempo nessun altro task che voglia la stessa risorsa può nemmeno diventare eseguibile.
Lo descrissero Sha, Rajkumar e Lehoczky nel 1990, nello stesso articolo che introduceva l'ereditarietà della priorità. L'ereditarietà reagisce quando il conflitto è già avvenuto; il tetto lo previene. Il vantaggio è dimostrabile: un task si blocca al massimo una volta, per al massimo una sezione critica, e le attese circolari sono impossibili. Il prezzo è che occorre sapere staticamente chi usa cosa — conoscenza che i sistemi certificati per la sicurezza richiedono comunque. Ada lo chiama Ceiling_Locking, POSIX PTHREAD_PRIO_PROTECT, e OSEK/AUTOSAR vi fonda il proprio modello di risorse.