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