stringtranslate.com

Блокировка (вычисление)

В вычислительной технике заблокированный процесс ожидает некоторого события , например, освобождения ресурса или завершения операции ввода-вывода . [1] Как только происходит событие, которого ожидает процесс («заблокирован»), процесс переходит из заблокированного состояния в неизбежное, например, в работоспособное .

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

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

Языки программирования и алгоритмы планирования разработаны для минимизации общего эффекта блокировки. Процесс, который блокирует, может помешать выполнению локальных рабочих задач. В этом случае «блокировка» часто рассматривается как нежелательная. [2] Однако такие рабочие задачи могут быть назначены независимым процессам, где остановка одного из них не оказывает существенного влияния на другие, поскольку планирование будет продолжаться. Примером является «блокировка на канале », где пассивное ожидание другой части (т. е. отсутствие опроса или спин-цикла ) является частью семантики каналов. [3] При правильной разработке любой из них может использоваться для реализации реактивных систем. [ необходимо разъяснение ]

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

Смотрите также

Ссылки

  1. ^ Сталлингс, Уильям (2004). Операционные системы: внутреннее устройство и принципы проектирования (5-е изд.). Prentice Hall. ISBN 978-0131479548.
  2. ^ C++ и далее 2012: Херб Саттер — Параллелизм C++
  3. ^ Роб Пайк (2012-07-02). Шаблоны параллелизма Go. Google I/O 2012. Google для разработчиков.