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

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

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

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

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

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

Как только происходит событие, которого процесс ожидает ("заблокирован"), процесс переводится из заблокированного состояния в неизбежное, например работоспособный.

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

использованная литература

  1. ^ Столлингс, Уильям (2004). Операционные системы: внутреннее устройство и принципы проектирования (5-е изд.). Прентис Холл.CS1 maint: ref = harv (ссылка на сайт)
  2. ^ C ++ и после 2012 г .: Херб Саттер - Параллелизм C ++
  3. ^ Шаблоны параллелизма Go от Роба Пайка