Существует большое число разновидностей этой задачи. В простом случае взаимодействует 2 процесса с чётко распределёнными между ними функциями. Первый процесс (производитель) — вырабатывает сообщение и помещает его в общий раздел, являющийся по смыслу критическим ресурсом. Второй процесс (потребитель) — выбирает сообщение из общей области памяти для последующей обработки.
Необходимо синхронизировать работу процессов таким образом, чтоб удовлетворить требования задачи взаимного исключения, учитывать состояние общей области, памяти, характеризующее возможность отправки и/или приёма очередного сообщения. Попытка производителя поместить сообщение в общую область, содержащую необработанное сообщение должно блокироваться, как и попытка потребителя считать сообщение либо из пустой области, либо уже обработанное. Модификации: увеличение числа процессов или усложнение структуры.
Типовые задачи синхронизации. Читатели и писатели
В этом случае с общим ресурсом взаимодействуют несколько процессов двух видов: писатели, которые в процессе работы модифицируют данные, и читатели, которые только выбирают информацию, не меняя её.
Необходимо согласовать работу процессов таким образом, чтобы при работе писателей решить задачу взаимного исключения относительно других процессов писателей и читателей. Разрешить параллельную работу неограниченного количества читателей, исключив работу писателей.