Между процессами в мультипрограммной ВС могут возникать различного типа отношения. Рассмотрим основные из них:
Отношение предшествования. Для двух процессов существование такого отношения означает, что один процесс должен переходить в активное состояние всегда раньше второго процесса.
Отношение приоритетности. Процесс с приоритетом P может быть в активное состояние только при выполнении двух условий:
— в состоянии готовности к рассматриваемому процессору НЕТ процессов с большим приоритетом;
— процессор либо свободен, либо используется процессом с приоритетом меньшим Р.
Отношение взаимного исключения.
Пусть два процесса A и B используют при своем развитии некоторый общий ресурс R. Тогда совокупность действий над этим ресурсом в ходе каждого процесса называется критической областью (секцией), а совместно используемый ресурс называется критическим ресурсом.
Критическая область не должна выполнятся процессом одновременно с критической областью над этим же ресурсом в ходе другого процесса. В общем случае количество параллельных процессов, использующих общий ресурс, и следовательно имеющих соответствующую критическую секцию, может быть более двух.
Отношения производители — потребители.
Пусть два процесса А и В информационно взаимодействуют друг с другом. Один процесс только вырабатывает сообщения (такой процесс называется производителем), а другой процесс воспринимает эти сообщения (такой процесс называется потребителем) Процессы взаимодействуют через некоторую общую буферную область памяти, которая в этом случае является критическим ресурсом
В эту область памяти процесс-производитель должен помещать очередное сообщение, а процесс потребитель должен считывать очередное сообщение.
Синхронизация этих двух процессов требует выполнения следующих условий:
— обеспечить отношения взаимного исключения по отношению к буферной памяти для хранения сообщений;
— учитывать состояние буферной области памяти, определяющее возможность или невозможность посылки или принятия очередного сообщения.
Процесс-производитель должен быть переведен в состояние ожидания, если предыдущее сообщение не было забрано из буфера процессом-потребителем.
Аналогично процесс-потребитель должен быть переведен в состояние ожидания, если процесс-производитель не поместил в буфер очередное сообщение.
В общем случае процессов-потребителей процесс производителей может быть более одного, в буферной области могут хранится более одного сообщения.
Отношения читатели-писатели. В отношении некоторой области памяти, выступающей в качестве критического ресурса, множество параллельных процессов, работающих с ней, разделяется на два типа:
— первый тип- процессы-читатели — они могут одновременно считывать информацию из области памяти;
— второй тип — процессы-писатели — они записывают информацию в область памяти и делают это только исключая как друг друга, так и процессы-читатели. То есть, каждый из этих процессов находится в отношении взаимного исключения к другим процессам.
Существует множество вариантов взаимодействия таких процессов.
Наиболее распространенные следующие два:
1) устанавливается приоритетность в использовании критического ресурса процессам-читателям. Если хотя бы один процесс-читатель пользуется ресурсом, то он закрыт для использования всем процессам-писателям и доступен для использования всем процессам -читателям.
2) больший приоритет устанавливается процессам-писателям. При появлении запроса от процесса писателя доступ к критическому ресурсу закрывается для всех процессов-читателей и процессов-писателей, которые выдадут запрос позже него.
Отношения обедающие философы.
Пусть имеются три параллельных процесса X,Y,Z и три ресурса P1- (клавиатура), P2- (дисплей), P3- (накопитель на магнитном диске)
Особенность развития процессов такова, что
— для пребывания процесса X в активном состоянии ему требуется выделить одновременно ресурсы Р1 и Р2
— для пребывания процесса Y в активном состоянии ему требуется выделить одновременно ресурсы Р2 и Р3
— для пребывания процесса Z в активном состоянии ему требуется выделить одновременно ресурсы Р3 и Р1
Переходы процессов в активное состояние происходят в непредсказуемые моменты времени.