Лекция: Семафоры в ОС.
Семафор — механизм реализации взаимоисключения процессов.
Пример работы двух параллельных асинхронных процессов:
Даны 2 процесса: «производитель» и «потребитель». «Производитель» вырабатывает какое-либо число и записывает его в ячейку памяти. «потребитель» считывает число, производит какие-либо вычисления и результат выводит на печать. Идеально, когда оба процесса работают с одинаковой скоростью. В том случае, если скорость «потребителя» больше, чем скорость «производителя», мы наблюдаем: «потребитель» считывает из памяти одно и тоже число несколько раз, следовательно, на распечатке будет дублирование какого-либо результата. Если скорость «потребителя» меньше скорости «производителя», наблюдаем: «производитель» записывает число в память, но предыдущее число не было считано потребителем, => на распечатке некоторые результаты будут отсутствовать.
Чтобы этого не допустить в ОС работают семафоры как для «производителя», так и для «потребителя».
№6