Гигантский замок

редактировать

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

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

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

Содержание
  • 1 Linux
  • 2 BSD
  • 3 См. Также
  • 4 Ссылки
Linux

У ядра Linux была большая блокировка ядра ( BKL) с момента появления SMP, пока он не был удален в 2011 году в версии ядра 2.6.39, при этом оставшиеся варианты использования большой блокировки удалены или заменены более мелкой блокировкой. Поэтому дистрибутивы Linux на CentOS 7, Debian 7 (Wheezy) и Ubuntu 11.10 не используют BKL.

BSD

По состоянию на июль 2019 года OpenBSD и NetBSD все еще используют семейство примитивов spl (Unix) для облегчения синхронизации критических секций внутри ядра, что означает, что многие системные вызовы могут препятствовать возможностям SMP системы, и, согласно Мэтью Диллону, возможности SMP этих двух систем нельзя считать современными.

FreeBSD по-прежнему поддерживает мьютекс Giant, который обеспечивает семантику, близкую к старому интерфейсу spl, но критически важные для производительности компоненты ядра уже давно преобразованы для использования более тонкой блокировки.

Мэтью Диллон, что из программного обеспечения с открытым исходным кодом операционных систем общего назначения только Linux, DragonFly BSD и FreeBSD имеют современную поддержку SMP, а OpenBSD и NetBSD отстают.

NetBSD Foundation считает поддержку современных SMP жизненно важной для направлением проекта NetBSD и предлагал гранты разработчикам готовы работать над улучшениями SMP; NPF (брандмауэр) был одним из проектов, возникших в результате этих финансовых стимулов, но все еще могут потребоваться дальнейшие улучшения основного сетевого стека.

См. Также
Ссылки
Последняя правка сделана 2021-05-21 07:54:47
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте