Типы блокировок
В этой статье описаны типы операций 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 блокировки).
Эта гибкость не достижима при использовании устаревших операционных блокировок.