Что такое консультативная блокировка файлов, которые обычно используют системы Unix?

Я читал, что система Unix обычно использует консультативную блокировку для IO файла с обязательной блокировкой, используемой ОС Microsoft. Если я правильно понял в обязательной блокировке, блокировка файла выполняется самой ОС. Но я не понимаю интуиции в отношении консультативной блокировки. Возьмем пример двух процессов, скажем «A» и «B», которые работают над файлом «foo». Давайте скажем, что «A» пишет «foo», а «B» читается с «foo». Каким образом консультационная блокировка работает в этом сценарии? Если ОС / файловая система не применяет блокировку для «foo», то как согласованность поддерживается для чтения и записи?

One Solution collect form web for “Что такое консультативная блокировка файлов, которые обычно используют системы Unix?”

Консультативная блокировка предназначена для процессов, которые «мирно» сотрудничают. Ядро отслеживает блокировки, но не применяет их к исполнению, а приложения должны подчиняться им. Таким образом, ядру не нужно иметь дело с ситуациями, такими как блокировки.

Обязательная блокировка была введена в System V Unix, но оказалось, что дизайн был не самым ярким. (То есть есть способы обойти это.) Если вам нужно что-то вроде обязательной блокировки в системах unixy, то следуйте шаблону проектирования клиент-сервер, где сервер является полномочным органом на общем ресурсе.

  • Где хранится информация о жестких / непрямых ссылках?
  • Как узнать, указывают ли два каталога на одно и то же место
  • Можно ли использовать файловую систему overlay / union как временную дедупликацию?
  • определять измененные пользователем файлы
  • Неизмеримые каталоги в Linux
  • Как безопасно отключить своп навсегда и вернуть пространство? (на Debian Jessie)
  • Могу ли я создать новый раздел из свободного пространства внутри раздела, отформатированного в reiserfs / home?
  • Лучший способ сбора случайной выборки из коллекции файлов
  • Что мне делать с профилями btrfs?
  • Можете ли вы установить образ ext2 с помощью FUSE в качестве промежуточного?
  • Что такое Linux для SET FILE / ERASE_ON_DELETE?
  • Linux и Unix - лучшая ОС в мире.