39. Межпроцессное взаимодействие. Состояние состязания. Критические области. Примитивы межпроцессного взаимодействия.

Межпроцессное взаимодействие.

Межпроцессное взаимодействие (от англ. Inter-Process Communication или сокр. IPC) - набор способов обмена данными между множеством потоков в одном или более процессах. Процессы могут быть запущены на одном или более компьютерах, связанных между собой сетью. IPC-способы делятся на методы обмена сообщениями, синхронизации, разделяемой памяти и удаленных вызовов (RPC). Методы IPC зависят от пропускной способности и задержки взаимодействия между потоками и типа передаваемых данных. Ситуации, когда приходится процессам взаимодействовать: Два вторых случая относятся и к потокам. В первом случае у потоков нет проблем, т.к. они используют общее адресное пространство.

Состояние состязания.

Состояние состязания - ситуация когда несколько процессов считывают или записывают данные (в память или файл) одновременно.

Критическая область.

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

Условия избегания состязания и эффективной работы процессов:

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

Примитивы межпроцессного взаимодействия.

Вводится понятия двух примитивов.

sleep - системный запрос, в результате которого вызывающий процесс блокируется, пока его не запустит другой процесс.

wakeup - системный запрос, в результате которого блокированный процесс будет запущен

Hosted by uCoz