Solaris, el sistema operativo de Sun Microsystems, destacó en su época por su soporte de multiprocesamiento simétrico (SMP). Entre sus aportaciones más conocidas figuran el slab allocator, ZFS, Solaris Containers y DTrace, pero hay una innovación mucho menos divulgada: los turnstiles.
Los turnstiles son estructuras de datos asociadas a cerrojos (mutexes) en contención. Resuelven dos problemas clave. Primero, evitan inflar cada mutex con metadatos sobre hilos en espera, algo costoso cuando se usa locking fino y la mayoría de cerrojos están libres. Segundo, mitigan la inversión de prioridad: cuando un hilo de alta prioridad espera un cerrojo retenido por uno de baja, este hereda temporalmente la prioridad del primero, evitando que tareas de prioridad media lo adelanten y bloqueen al hilo alto de forma indefinida.
El mecanismo es elegante: cada hilo recibe su propio turnstile al crearse; al bloquearse, lo dona al cerrojo que espera. La asociación entre cerrojo y turnstile se gestiona mediante una tabla hash. Para soportar herencia de prioridad multi-salto, el kernel recorre cadenas de tipo turnstile→propietario→turnstile hasta dar con un hilo que no espera nada.
Esta idea, aparentemente oscura, trascendió Solaris: variantes se encuentran hoy en otros UNIX derivados, en navegadores web y en runtimes de lenguajes. Entre las alternativas de otros sistemas están AutoBoost de Windows y el rt-mutex de Linux con herencia de prioridad.
