Изменения

Перейти к: навигация, поиск

Алгоритмы взаимного исключения

212 байт убрано, 10:23, 25 сентября 2018
Проблема
}}
==Проблема==
Проблема, с которой связаны взаимные исключения, является проблемой совместного использования ресурсов: как можно управлять доступом нескольких процессов к общему ресурсу, когда каждый процесс нуждается в исключительном контроле над этим ресурсом при выполнении своей работы? Решение взаимного исключения - делать доступным общий ресурс только тогда, когда процесс находится в определенном сегменте кода, называемом критической секцией. Он контролирует И контролировать доступ к общему ресурсу, контролируя каждое взаимное выполнение той части программы, в которой будет использоваться ресурс.
Успешное решение этой проблемы должно иметь по крайней мере эти два свойства:#Он должен реализовывать взаимное Взаимное исключение: только один процесс поток может быть в критическом разделе за разкритической секции.#Он должен быть свободен от Отсутствие взаимоблокировок (англ. ''deadlocks''): если процессы несколько потоков пытаются войти в критический разделкритическую секцию, то хотя бы один из них должен, войти в конечном счете, сделать это успешно, при условии, что процесс не останется в критическом разделе навсегдакритическую секцию за конечное время.
Каждая программа процесса может быть разделена на четыре секции, что приводит к четырем состояниям. Выполнение программ осуществляется через эти четыре состояния в порядке:
302
правки

Навигация