El documento describe un problema de productor-consumidor con un buffer compartido de tamaño finito. Los productores escriben en el buffer y los consumidores leen del buffer. Se requiere sincronización atómica para manipular el buffer, los índices de lectura/escritura y el contador de elementos. Los semáforos son una solución pero introducen problemas como la falta de conexión con el recurso, dificultad para controlar su uso y dispersión del código de sincronización.