Este documento describe diferentes herramientas de sincronización como semáforos, monitores y su aplicación en problemas clásicos. Explica cómo semáforos permiten sincronizar procesos mediante operaciones wait() y signal() y cómo pueden causar interbloqueos. También describe cómo monitores encapsulan variables compartidas y procedimientos para accederlas de forma segura entre procesos concurrentes, incluyendo el uso de variables de condición.