Параллельные процессы в ОС.

Синхронные - процессы, которые работают и не зависят друг от друга.
Асинхронные - такие процессы, которые работают параллельно, но периодически должны синхронизироваться и взаимодействовать между собой.
Параллельная работа процессов в ОС резко повышает производительность компьютера.
Процесс находится в своем критическом участке, когда он обращается к общим данным. В этом случае другим процессам это запрещается.
Этот способ взаимодействия параллельных процессов называется взаимоисключением в ОС.

Правила работы процесса в своем критическом участке:

  1. Процесс не может быть блокирован.
  2. Свои критические участки процессы должны проходить как можно быстрее.


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

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

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

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

№5