ВУЗ:
Составители:
157
В том случае, если параллельным процессам в соответствии с
алгоритмом их работы требуется обратиться к общим разделяемым данным
(критическим ресурсом), то программа их работы должна включать
специальные участки, содержащие операторы, обеспечивающие доступ к
разделяемым данным. Эти участки, называемые критическими, должны
обладать важнейшим свойством – они должны быть взаимоисключаемыми. В
технической литературе такую группу операторов, обеспечивающих
функцию взаимоисключения критических участков, часто называют
примитивами взаимоисключения [62].
Взаимоисключение критических участков должно обеспечивать
выполнение такого алгоритма взаимодействия параллельных процессов,
когда один из рассматриваемых процессов выполняет обращение к
разделяемым данным, то все остальные процессы, которым требуется
обращение к тем же разделяемым данным в то же самое время, должны
ждать. Только после завершения рассматриваемым процессом обращения к
разделяемым данным, будет разрешен доступ к разделяемым данным одному
из ожидающих процессов. Какому именно процессу будет разрешен доступ к
разделяемым данным определяется принятыми условиями приоритетности
процессов.
Следует обратить внимание, что критический участок не является
последовательностью операторов программы, он является только
последовательностью действий, которые выполняются этими операторами.
На это обстоятельство особое внимание было обращено в [70]. Исходя из
этого, можно утверждать, что несколько процессов, которые могут иметь
место при выполнении одной и той же программы, могут выполнять
критические интервалы, базирующиеся на одной и той же
последовательности операторов программы.
В данном разделе с методической точки зрения рассматривается
взаимодействие параллельных процессов при обращении к разделяемым
данным только для двух процессов, а в последующем разделе, базируясь на
полученные результаты, делается обобщение для n2 процессов.
Действительно, как мы убедимся в дальнейшем, структура основных
уравнений, определяющих входы процессов в свои критические участки,
остается одной и той же для любого числа конкурирующих процессов.
Отметим, что программная реализация механизма взаимоисключения для
двух процессов была впервые предложена голландским математиком
Деккером, а для n2 процессов программную реализацию механизма
взаимоисключения впервые предложил Дейкстра [62]. Им же был предложен
механизм семафоров для реализации примитивов взаимоисключения.
Для того, чтобы избежать конфликтных ситуаций при взаимодействии
параллельных процессов во время организации доступа к разделяемым
данным, на критические участки налагаются следующие основные
требования [62, 70]:
В том случае, если параллельным процессам в соответствии с
алгоритмом их работы требуется обратиться к общим разделяемым данным
(критическим ресурсом), то программа их работы должна включать
специальные участки, содержащие операторы, обеспечивающие доступ к
разделяемым данным. Эти участки, называемые критическими, должны
обладать важнейшим свойством – они должны быть взаимоисключаемыми. В
технической литературе такую группу операторов, обеспечивающих
функцию взаимоисключения критических участков, часто называют
примитивами взаимоисключения [62].
Взаимоисключение критических участков должно обеспечивать
выполнение такого алгоритма взаимодействия параллельных процессов,
когда один из рассматриваемых процессов выполняет обращение к
разделяемым данным, то все остальные процессы, которым требуется
обращение к тем же разделяемым данным в то же самое время, должны
ждать. Только после завершения рассматриваемым процессом обращения к
разделяемым данным, будет разрешен доступ к разделяемым данным одному
из ожидающих процессов. Какому именно процессу будет разрешен доступ к
разделяемым данным определяется принятыми условиями приоритетности
процессов.
Следует обратить внимание, что критический участок не является
последовательностью операторов программы, он является только
последовательностью действий, которые выполняются этими операторами.
На это обстоятельство особое внимание было обращено в [70]. Исходя из
этого, можно утверждать, что несколько процессов, которые могут иметь
место при выполнении одной и той же программы, могут выполнять
критические интервалы, базирующиеся на одной и той же
последовательности операторов программы.
В данном разделе с методической точки зрения рассматривается
взаимодействие параллельных процессов при обращении к разделяемым
данным только для двух процессов, а в последующем разделе, базируясь на
полученные результаты, делается обобщение для n2 процессов.
Действительно, как мы убедимся в дальнейшем, структура основных
уравнений, определяющих входы процессов в свои критические участки,
остается одной и той же для любого числа конкурирующих процессов.
Отметим, что программная реализация механизма взаимоисключения для
двух процессов была впервые предложена голландским математиком
Деккером, а для n2 процессов программную реализацию механизма
взаимоисключения впервые предложил Дейкстра [62]. Им же был предложен
механизм семафоров для реализации примитивов взаимоисключения.
Для того, чтобы избежать конфликтных ситуаций при взаимодействии
параллельных процессов во время организации доступа к разделяемым
данным, на критические участки налагаются следующие основные
требования [62, 70]:
157
Страницы
- « первая
- ‹ предыдущая
- …
- 155
- 156
- 157
- 158
- 159
- …
- следующая ›
- последняя »
