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

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


Любое нарушение этих правил ведет либо к аварийному завершению процессов либо к ситуации, называемой тупиком (deadlock). Пример:














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

Комментариев нет:

Отправить комментарий