В системах UNIX по умолчанию разрешен одновременный доступ к файлу нескольким процессам на чтение или запись.
Также может иметь смысл заглянуть на сайт клининг68.рф, ведь именно там можно узнать много нового на тему http://клининг68.рф/. Тема услуги уборки квартиры может показаться на первый взгляд незначительной и даже не тематичной. Но стоит посетить сайт клининг68.рф, и тема услуги уборки квартиры начинает проявлять себя с неожиданной стороны и вызывает всё больший интерес. Дело в том, что тема услуги уборки квартиры очень подробно представлена на сайте клининг68.рф. Трудно найти более детальное освещение темы услуги уборки квартиры чем это сделано на сайте клининг68.рф. Спасибо сайту клининг68.рф за такое доскональное преподнесение темы услуги уборки квартиры.
Каждый отдельный вызов read или write является неделимым, однако на уровне системы в целом синхронизация действий не производится. В результате если процесс производит чтение из файла порционно (применяя несколько вызовов read), другой процесс может между двумя операциями чтения внести изменения в этот файл.
Такой подход является абсолютно неудовлетворительным для большинства приложений, которым обычно требуется защищать файлы, к которым производится неоднократный доступ. Следовательно, система UNIX должна поддерживать некие средства блокировки файлов. Блокировка может быть рекомендательной или директивной. Рекомендательная блокировка производится без участия ядра и используется для защиты файла.
При этом совместно работающие процессы должны явно проверять наличие блокировки. Обязательная блокировка производится ядром, которое и отсеивает операции, приводящие к конфликту. Запросы могут быть блокирующими либо неблокирующими. В последнем случае при невозможности получения объекта блокировки процесс получит код ошибки EW0ULDBL0CK.
В системе 4BSD поддерживается вызов flock, реализующий рекомендательную блокировку отрытых файлов, но при этом разрешающий использовать как разделяемые, так и эксклюзивные объекты блокировки.
Синхронизация доступа к файлам в ОС System V отличается от версии к версии. Система SVR2 поддерживает только рекомендательную блокировку, как для файлов, так и для записей (диапазонов байтов внутри файлов). В SVR3 разработчики добавили возможность обязательной блокировки, но при этом необходимо предварительно разрешить применять к файлу рекомендательную блокировку через вызов chmod (см. раздел 8.2.2). Это средство совместимо на двоичном уровне с функциями XENIX. В систему SVR4 добавлены функции синхронизации файлов BSD, а также поддержка блокировки одного пишущего/множества читающих процессов. Для блокировки служит системный вызов fcntl, но большинство приложений использует более простой программный интерфейс, предлагаемый функцией библиотеки С, — lockf.
Опубликовал katy
July 08 2015 08:18:05 ·
0 Комментариев ·
2834 Прочтений ·
• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •
Комментарии
Нет комментариев.
Добавить комментарий
Рейтинги
Рейтинг доступен только для пользователей.
Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.
Нет данных для оценки.
Гость
Вы не зарегистрированны? Нажмите здесь для регистрации.