Guía Informal al Bloqueo

Paul Rusty Russell


Tabla de contenidos
1. Introducción
1.1. El Problema con la Concurrencia
2. Dos Tipos Principales de Bloqueos del Núcleo: Spinlocks y Semáforos
2.1. Bloqueos y Núcleos Monoprocesador
2.2. Variantes de Bloqueo Lectura/Escritura
2.3. Bloqueando Sólo en el Contexto de Usuario
2.4. Bloqueando entre Contexto de Usuario y BHs (Bottom Halves)
2.5. Bloqueando Entre Contexto de Usuario y Tasklets/Soft IRQs
2.6. Bloqueando Entre Bottom Halves
2.6.1. El Mismo BH
2.6.2. Diferentes BHs
2.7. Bloqueando Entre Tasklets
2.7.1. La Misma Tasklet
2.7.2. Diferentes Tasklets
2.8. Bloqueando entre Softirqs
2.8.1. La Misma Softirq
2.8.2. Diferentes Softirqs
3. Contexto de IRQ de Hardware
3.1. Bloqueando entre IRQs Hardware y Softirqs/Tasklets/BHs
4. Técnicas Comunes
4.1. En un Contexto de Interrupciones No Escritores
4.2. Deadlock: Simple y Avanzado
4.2.1. Preveniendo los Deadlocks
4.2.2. Sobreentusiasmo en la Prevención de Deadlocks
4.3. Datos por cada CPU
4.4. Bloqueos Gran Lector
4.5. Eliminando los bloqueos: Ordenamiento de Lecturas y Escrituras
4.6. Eliminando los Bloqueos: Operaciones Atómicas
4.7. Protegiendo Una Colección de Objetos: Cuentas de Referencia
4.7.1. Macros Para Ayudarte
4.8. Cosas Que Duermen
4.9. La Follonera Sparc
4.10. Cronómetros de Carreras: Un Pasatiempo del Núcleo
5. Lecturas Adicionales
6. Gracias
7. Sobre la Traducción
Glosario
Lista de tablas
1-1. Resultados Esperados
1-2. Resultados Posibles
4-1. Consecuencias