Воронка (параллельные вычисления)
В информатике воронка — это примитив синхронизации , используемый при разработке ядра для защиты системных ресурсов. Впервые использовавшиеся в Digital UNIX как способ «направить» выполнение драйвера устройства на один процессор, теперь воронки используются в ядре Mac OS X для сериализации доступа к BSD- части XNU . [1]
Воронка — это механизм взаимного исключения ( мьютекс ), который предотвращает одновременный доступ нескольких потоков к определенным ресурсам ядра. Каждый поток приобретает воронку, когда входит в синхронизированную часть ядра, и освобождает ее, когда выходит. Если поток блокируется (засыпает), удерживая воронку, ядро заставляет поток автоматически закрыть воронку, тем самым позволяя другим потокам войти в синхронизированную часть ядра.
Поскольку воронка автоматически удаляется при блокировке потока, необходимо позаботиться о том, чтобы синхронизированные ресурсы были получены снова после любой операции блокировки. В частности, получение воронки может быть блокирующей операцией, поэтому, если необходимо несколько воронок, их необходимо получить одновременно. Это ограничивает полезность воронок, поскольку увеличивает степень детализации блокировки, когда необходимо удерживать несколько воронок одновременно.
В Mac OS X
[ редактировать ]В OS X 10.4 и выше есть только одна воронка. До версии 10.4 существовало две воронки: одна защищает сетевые ресурсы, а другая — другие ресурсы ядра BSD. Потоку разрешалось одновременно удерживать только одну воронку, а удержание обеих вызывало панику ядра . В результате этих ограничений и отсутствия детализации воронки постепенно выводятся из Mac OS X. Например, сетевая воронка была заменена более детальными механизмами блокировки.
См. также
[ редактировать ]Примечания
[ редактировать ]Примечания к источникам см. в библиографии ниже.
- ^ Сингх 07, стр. 1223-1229.
Ссылки
[ редактировать ]- Сингх, Амит (2007). Внутреннее устройство Mac OS X: системный подход . Бостон, Массачусетс : Аддисон-Уэсли. ISBN 978-0-321-27854-8 .
Внешние ссылки
[ редактировать ]- Обзор архитектуры OSX Book xnu. Архивировано 19 апреля 2019 г. на Wayback Machine .
- Документ BSDCon 2002: Расширенная синхронизация в Mac OS X.