Поиск по сайту:

Ресурсные тупики и коммуникационные тупики в распределенных системах


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

В распределенных системах основной проблемой считаются взаимоблокировки, когда ресурсы, запрошенные процессом, недоступны из-за того, что их удерживают другие процессы. Распределенная система содержит набор процессов p1,p2,p3…pn, которые не используют общую память, и связь осуществляется только путем передачи сообщений через сеть. Здесь нет глобальных часов для мгновенного доступа и среды связи. Каждый процесс имеет два состояния, например, состояние выполнения, когда процесс содержит все ресурсы и готов к выполнению, и другое состояние — состояние блокировки, когда процесс находится в состоянии ожидания, требуя некоторых ресурсов.

Ниже приведены четыре условия, которые должны быть выполнены для возникновения взаимоблокировки –

Удерживайте и подождите - один процесс хранит ресурсы, необходимые для использования другим процессом.

Взаимное исключение  – когда только одному процессу разрешено использовать один ресурс одновременно.

Нет вытеснения  – ни один процесс не может быть вытеснен до тех пор, пока он не завершит выполнение задачи.

Циклическое ожидание  – процессу необходимо циклически ожидать требуемого ресурса, при этом последний процесс в очереди ожидает ресурса, используемого первым процессом.

РесурсТупик

Тупик ресурсов возникает, когда процесс ожидает набора ресурсов, удерживаемых другим процессом, и ожидает получения всех запрошенных ресурсов, прежде чем он будет разблокирован. Таким образом, говорят, что набор процессов, ожидающий ресурсов, находится в состоянии тупика ресурсов. Рассмотрим пример, когда два процесса P1 и P2 нуждаются в ресурсах X и Y. В этом случае P1 ждет ресурса Y, где P2 хранит ресурс Y, а P2, в свою очередь, ждет ресурса X, который должен быть освобожден P1 держит его. Итак, в

Закрытым способом P1 нужен ресурс Y, и он ждет, пока P2 его освободит, а P2 нужен X, и он ждет, пока P2 его освободит.

Говорят, что приведенный выше рисунок находится в тупике ресурсов, поскольку каждый процесс ждет, пока другой процесс получит все необходимые наборы ресурсов. С распределенными взаимоблокировками сложнее справиться, поскольку ресурсы и процесс ввода распределены и не могут быть обнаружены в обычном месте. Для обработки распределенных взаимоблокировок используется несколько подходов, таких как обнаружение, предотвращение, избегание и проблема страуса (избегание).

Коммуникационный тупик

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

Рассмотрим сценарий, когда процесс X ожидает сообщений от процесса Y, а процесс Y, в свою очередь, ожидает сообщений от другого процесса с именем Z. Затем процесс Z ожидает исходного процесса. Этот тупик возникает, когда связь между процессами блокируется друг другом.

В таблице ниже определены основные различия между ресурсной и коммуникационной тупиковой ситуацией:

Basis of difference

Resource Deadlocks

Communication Deadlocks

Definition

The process waits for the several resources that are on hold by other processes

The process waits for another process in the group to initiate communication with one another

Process state

A process that is waiting for needed resources cannot continue to its execution state until acquiring all of it.

The process will not enter into an execution state till it receives a communication message from another process.

Waiting for

The process waits for resources to perform its task.

The process waits for the messages from another process.

Transaction

No information is known about the dependency between the transactions

The process can identify which process to communicate before beginning the transaction

Deadlock occurrence

When each process in a specific set needs multiple resources from another process, and initial process has to unblock itself by fetching the needed resources. Then these set of processes are inside resource deadlock

When each process in the group waits for communication from another process and during this phase, no other process initiates new communication until it receives the same from the needed process, these processes are now in a deadlock phase.

Examples

Process P1 waits for resource X and P2 waits for resource Y and each process holds and waits for each of the resources.

Process X waits for a message from process Y, which in turn waits for process Z and Z waits for initial process X.

Заключение

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

Статьи по данной тематике: