Лекции по операционным системам, страница 8

Лекция 7. (9.10.02)

Для организации взаимодействия вычислительных процессов необходим механизм их синхронизации. Та область процесса, в которой происходит непосредственное обращение к критическому ресурсу, называется критической секцией (или интервалом).

Таким образом, говоря о синхронизации процессов, имеется в виду синхронизация критических секций.

К синхронизации критических секций выдвигаются следующие требования:

  1. В любой момент времени только один процесс может находиться в своей критической секции.
  2. Ни один процесс не может находиться в своей критической секции бесконечно долгое время.
  3. Если процесс, находящийся в своей критической секции завершился нормально или аварийно любые другие процессы должны получить возможность входа в свою секцию.
  4. Ни один процесс не должен ждать бесконечно долго входа в свою критическую секцию. При этом никакой процесс, находящийся в вне своей критической секции возможно бесконечно долго, не должен задерживать выполнение других процессов, ожидающих входа в свои критические секции.  

ПР1                                                     ПР2

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

Когда процесс, захвативший ресурс выходит из своей критической секции он устанавливает указатель в состояние «свободен», разрешая процессам использовать ресурс.

+ Простота

-  изменение указателя должно выполнятся самим процессом.

Если по какой-то причине процесс закончился аварийно, то другие процессы могут бесконечно долго ждать. Этот механизм в настоящее время используется редко.

Более широко используется механизм светофоров.

Светофоры (семафоры)

Светофор - переменная специального типа, которая доступна параллельным