1 Listado

El orden no es relevante.

  1. Addressing priority inversion with proxy execution.
  2. A new futex API.
  3. Making the Global Interpreter Lock Optional in Python [1]​ y [2]​.
  4. [oss-security] StackRot (CVE-2023-3269): Linux kernel privilege escalation vulnerability.
  5. A virtual filesystem locking surprise.
  6. The atomic_ops library (libatomic_ops).
  7. The shrinking role of semaphores.
  8. Concurrencia en Swift/Objective C.
  9. Concurrencia en C/C++ para Windows.
  10. Concurrencia con Boost C++ Libraries: Interprocess, Fiber, Thread, Context y Coroutine2.
  11. Concurrencia en C++ con Qt: Qthreads, QMutex, QAtomic*, QtConcurrent
  12. Concurrencia en C++ 11/14/17/20: Multi-threading library.
  13. Concurrencia en C++: std::atomic library.
  14. Corrutinas en C++20 y C++23.
  15. CppCoro es una biblioteca que trata de hacer más sencillo el uso de corrutinas en C++. Explícanos como funciona, que añade nuevo, por qué dice que facilita el uso de corrutinas, etc… Puedes ayudarte de este vídeo y de éste otro artículo.
  16. Concurrencia en C# .NET.
  17. Concurrencia en Go: Goroutinas, canales, etc…
  18. Concurrencia en PHP, Javascript y otros lenguajes de Internet.
  19. Exclusión mutua a bajo nivel: instrucciones ensamblador y spinlocks básicos.
  20. Get started with Java’s new structured concurrency model: [1]​ y [2]​.
  21. Spinlocks avanzados.
  22. Memoria transaccional.
  23. Técnicas de detección de condiciones de carrera. Explica el contenido de este artículo.
  24. Detección de condiciones de carrera en el núcleo del SO. Explica el contenido de este artículo.
  25. Thread Pools, OpenMP y Grand Central Dispatch.
  26. Paralelismo con intel TBB.
  27. Intel Thread Director. ¿Qué es, cómo funciona, qué aporta? En estos dos enlaces [1]​ y [2]​ tienes acceso a más información.
  28. Intel Thread Director 2. ¿Qué novedades añade respecto a la generación anterior?
  29. Concurrencia en lenguaje D: Threads y Fibers.
  30. Uso Threads, ThreadPools y Métodos asincronos en lenguaje Vala.
  31. Concurrencia en lenguaje Rust: threads, mutex, canales, Arc.
  32. Rust: Crate Parking Lot y comparación con la biblioteca estándar antes y después de Rust 1.62.
  33. Concurrencia en rust 1.62: Rust 1.62: Thinner, faster mutexes on Linux.
  34. Concurrencia en rust 1.63: Rust 1.63: Scoped threads.
  35. Rust: Paralelismo con rayon.
  36. Rust: Paralelismo con scoped threadpool y comparación con Rust 1.63.
  37. Rust: Paralelismo con crossbeam.
  38. Rust async / await. Comparación con el uso de threads.
  39. Rust y mejores tiempos de compilación.
  40. Interface FUTEX de Linux para implementación de bibliotecas concurrentes.
  41. Rust: explícanos qué es loom, para qué sirve y cómo se usa.
  42. Explica este fallo en el nucleo linux.
  43. Linux kernel’s preemption models.
  44. Linux kernel’s memory barriers.
  45. Lockless Algorithms. Lockless patterns: full memory barriers. Relaxed access and partial memory barriers. An introduction to compare-and-swap. More read-modify-write operations. Lockless patterns: some final topics. Este trabajo sería para 2 ó 3 personas.
  46. Lockless slab shrink en el núcleo Linux. Los accesos a datos en exclusión mutua son costosos en cuanto a tiempo, por eso si es posible se prefieren usar algoritmos que no hagan uso de Mutexes, incluso en el núcleo del SO como puedes ver en este artículo.
  47. N Times Faster Code With Parallel Algorithms. Descarga y compila el código. Explica lo que hace el autor, cómo usa la concurrencia. Trata de añadir tú otras mejoras que hagan uso de concurrencia también.
  48. Structured Parallel Fortran. ¿Qué es? ¿Qué aporta a la programación concurrente?
  49. Retro voxel engine. Descarga el código, compílalo. Explícanos como funciona, sobre todo la parte de concurrencia.