Блокировка файлов
Таблица 5.9. Операции блокировки записей согласно POSIX. Они выполняются по запросу с помощью системного вызова FCNTL
Операция Действие__________________________________________________
F SETLK Блокирует область на запись и чтение
F_SETLKW Блокирует область на запись
F_GETLK_____ Проверяет, свободна ли область________________________________________
В файле lock. с есть только две функции. К первой из них, 1оск_ор (строка 23820), обращается системный вызов fcntl при выполнении каждой из операций, перечисленных в таблице. Функция делает несколько тестов, гарантирующих, что область в файле задана корректно. Блокировка области не должна конфликтовать с существующими блокировками и не должна выполняться дважды. Для снятия блокировки вызывается другая процедура из этого файла, 1оск_ revive (строка 23964). Она разблокирует все процессы, ранее заблокированные в ожидании освобождения данной области.
Это компромиссная стратегия, потому для точного решения, какой процесс получит управление, потребовался дополнительный код. Те процессы, время которых еще не наступило, вновь блокируются после запуска. Подобная стратегия выбрана, исходя из предположения, что блокировка файлов — операция редкая. Если на основе MINIX 3 будет построена многопользовательская база данных, не исключено, что потребуется изменить данный алгоритм.
Процедура lock_revive также вызывается при закрытии заблокированного файла, это может произойти, например, если процесс был завершен принудительно до того, как закончил работать с блокируемым им файлом.
5.7.3.
Еще по теме Блокировка файлов:
- ТУННЕЛЬ ЗАПЯСТНЫЙ (БЛОКИРОВКА) См. статью ЗАПЯСТЬЕ.
- Физическая блокировка
- Эмоциональная блокировка
- Духовная блокировка
- Ментальная блокировка
- Блокировка привязанности и интимности
- ПЕРФОРАЦИЯ
- РЕГУРГИТАЦИЯ
- ДАЛЬНОЗОРКОСТЬ
- АСФИКСИЯ
- ТРЕЩИНА
- ОЗНОБ
- ОЖОГ
- ГАЗЫ, СКОПЛЕНИЕ
- СУДОРОГА