Interested Article - Блокировка файла

Блокировка файла ( англ. file locking ) — механизм, который ограничивает доступ к файлу , давая доступ в данный момент только одному пользователю или процессу. Системы реализуют блокировку для предотвращения классического interceding update сценария (который является типичным примером состояния гонки ) посредством принуждения к последовательным процессам обновления любого файла.

Следующий пример демонстрирует проблему interceding update:

  1. Процесс A читает запись о клиенте из файла, содержащего бухгалтерскую информацию, включая остаток денег на счете клиента и его номер телефона.
  2. Процесс B тогда же читает ту же самую запись из того же файла, так что у него есть своя копия записи.
  3. Процесс A изменяет остаток на счете в своей копии записи и записывает её обратно в файл.
  4. Процесс B, который все ещё имеет изначальное значение остатка на счете в своей копии записи, обновляет остаток и пишет обратно в файл.
  5. В итоге процесс B записал свое неактуальное значение остатка в файл, приведя к потере изменений, сделанных процессом A.

Неправильное использование блокировки файла, как и любой блокировки, может привести к снижению производительности или взаимной блокировке .

Microsoft Windows

Microsoft Windows использует три разных механизма для управления доступом к разделяемым файлам. Дополнительные механизмы блокировки применяются к сетевым файловым ресурсам (SMB) .

Unix-подобные системы

Unix-подобные системы (включая Linux и OS X ) обычно автоматически не блокируют открытые файлы . В них предусмотрен системный вызов flock , однако он никак не ограничивает доступ к файлам из других процессов и лишь служит способом синхронизации доступа к файлу между несколькими процессами.

Также существует метод «fcntl(F_SETLK)» и «fcntl(F_GETLK)», описанный в стандартах POSIX .

Amiga ОС

В ОС Amiga можно получить блокировку файла, вызвав функцию Lock dos.library ).

Системы контроля версий

Примечания

  1. . Дата обращения: 29 сентября 2018. 4 октября 2018 года.
  2. . Дата обращения: 29 сентября 2018. 19 сентября 2015 года.
  3. . Дата обращения: 29 сентября 2018. 29 сентября 2018 года.
  4. . Дата обращения: 29 сентября 2018. 29 сентября 2018 года.

Ссылки

  • ( )
Источник —

Same as Блокировка файла