Задача взаимоисключения: нескольких процессов стремится получить доступ к общему ресурсу, однако, в каждый момент времени только один из нескольких процессов может использовать общий для всех ресурс. И, пока один процесс использует общие данные, другим будет отказано в доступе.
- Задача "производители-потребители"
В задаче "производители-потребители" два процесса совместно используют буфер ограниченного размера. Один из процессов помещает в этот буфер данные, а другой, потребитель, считывает их оттуда. Начинает всегда производитель, и, пока он заполняет буфер, потребитель ожидает. Как только буфер наполнен, производитель сигнализирует потребителю, что можно потреблять, а сам переходит в состояние ожидания. Потребитель, окончив, в свою очередь, сигнализирует производителю, что буфер пуст и его следует наполнить, а сам "засыпает". В общем случае, в задаче участвуют m производителей и n потребителей.
- Задача "читатели-писатели"
Задача "читатели-писатели" моделирует доступ к базе данных. По условию задачи, несколько процессов "писателей" делают запись в общем буфере, из которого читают несколько процессов "читателей". Любое число читателей может одновременно иметь доступ к буферу, но только один писатель может работать с ним в каждый момент времени. Задача имеет 2 варианта решения. В первом предполагается, что наличие писателя, готового сделать запись в буфер, из которого в данный момент читают читатели, не должно мешать новому процессу-читателю приступить к чтению.
Во втором варианте писатели имеют приоритет перед читателями в праве доступа к буферу: если некоторый писатель готов сделать запись, то новые читатели не допускаются к буферу.
- Задача "Обедающие философы"
Суть задачи обедающие философыв следующем. Имеется круглый стол, за которым сидят пять философов (впрочем, их число принципиального значения не имеет – для другого числа философов решение будет аналогичным). Перед каждым из них лежит тарелка с едой, слева и справа от каждого – две китайские палочки. Философ может находиться в трех состояниях: проголодаться, думатьи обедать. На голодный желудок философ думать не может. Но начать обедать он может, только если обе палочки слева и справа от него свободны. Требуется синхронизировать действия философов. В данном случае общим ресурсом являются палочки.