Семафоры в ОС.

Семафор - механизм реализации взаимоисключения процессов.
Пример работы двух параллельных асинхронных процессов:

Даны 2 процесса: "производитель" и "потребитель". "Производитель" вырабатывает какое-либо число и записывает его в ячейку памяти. "потребитель" считывает число, производит какие-либо вычисления и результат выводит на печать. Идеально, когда оба процесса работают с одинаковой скоростью. В том случае, если скорость "потребителя" больше, чем скорость "производителя", мы наблюдаем: "потребитель" считывает из памяти одно и тоже число несколько раз, следовательно, на распечатке будет дублирование какого-либо результата. Если скорость "потребителя" меньше скорости "производителя", наблюдаем: "производитель" записывает число в память, но предыдущее число не было считано потребителем, => на распечатке некоторые результаты будут отсутствовать.

Чтобы этого не допустить в ОС работают семафоры как для "производителя", так и для "потребителя".