Поделиться через


Типы блокировок

В этой статье описаны типы операций oplock.

  • В настоящее время используются четыре типа oplock.
  • Четыре типа oplock считаются устаревшими.

Устаревшие блокировки

Следующие четыре операционных блокировки были реализованы в Windows NT 3.1 (уровень 1, уровень 2, пакетная служба) и Windows 2000 (фильтр) и считаются устаревшими:

  • Блокировка уровня 1 (монопольная) позволяет клиенту открывать поток для монопольного доступа и выполнять произвольную буферизацию. Этот oplock поддерживает кэширование чтения и записи в клиенте.

  • Блокировка уровня 2 (общий) указывает на то, что в потоке есть несколько читателей и нет модулей записи. Этот oplock поддерживает кэширование чтения клиента.

  • Пакетная блокировка (монопольная) позволяет клиенту сохранять поток открытым на сервере, даже если локальный метод доступа на клиентском компьютере закрыл поток. Эта блокировка поддерживает сценарии, в которых клиенту необходимо многократно открывать и закрывать один и тот же файл, например во время выполнения пакетного скрипта. Он поддерживает кэширование операций чтения, записи и обработки кэширования.

  • Фильтр oplock (монопольный) позволяет приложениям и драйверам фильтрации файловой системы, которые открывают и считывают потоковые данные, способ "вернуться", когда другие приложения, клиенты или оба пытаются получить доступ к одному и тому же потоку. Этот oplock поддерживает кэширование чтения и записи в клиенте.

Текущие блокировки "Windows 7"

Следующие блокировки были добавлены в Windows 7, поэтому они называются "windows 7 oplocks":

  • Oplock read (R) oplock (shared) указывает, что существует несколько модулей чтения потока без модулей записи. Этот oplock поддерживает кэширование чтения клиента.

  • Блокировка операций с дескриптором чтения (RH) (общая) указывает, что существует несколько модулей чтения потока без записи и что клиент может держать поток открытым на сервере, даже если локальный метод доступа на клиентском компьютере закрыл поток. Этот oplock поддерживает кэширование чтения и обработки кэширования клиента.

  • Операция блокировки чтения и записи (RW) (монопольная) позволяет клиенту открывать поток для монопольного доступа и позволяет клиенту выполнять произвольную буферизацию. Этот oplock поддерживает кэширование чтения и записи в клиенте.

  • Операция блокировки read-write-handle (RWH) (монопольная) позволяет клиенту сохранять поток открытым на сервере, даже если локальный метод доступа на клиентском компьютере закрыл поток. Этот oplock поддерживает кэширование чтения, записи и обработки кэширования клиента.

Некоторые устаревшие операции могут показаться похожими на блокировки Windows 7. В частности, R похоже на уровень 2, RW похоже на уровень 1, а RWH — на пакетную службу. Но они действительно разные. Операционные блокировки Windows 7 были добавлены в:

  • Предоставьте вызывающей объекту большую гибкость для выражения намерений кэширования.
  • Разрешить прерывания работы и обновления; то есть, чтобы разрешить изменение состояния блокировки с одного уровня на уровень большего кэширования (например, обновление режима чтения до Read-Write блокировки).

Эта гибкость не достижима при использовании устаревших операционных блокировок.