Почему просто блокировка файлов в многопользовательских системах не достаточно? - PullRequest
1 голос
/ 20 января 2010

Ритчи утверждает, что блокировка файла недостаточна для предотвращения путаницы, вызванной такими программами, как редакторы, которые делают копию файла во время редактирования, а затем записывают исходный файл после завершения.Можете ли вы объяснить, что он имел в виду?

1 Ответ

3 голосов
/ 20 января 2010

Он также сказал, что блокировки не нужны, утверждение, которое большинство инженеров считают неверным.

Это было написано Д. М. Ричи и К. Томпсоном, Система разделения времени UNIX в Технический журнал Bell System , Vol.57, No. 6 (июль-август 1978 г.), часть 2, стр. 1905-1929.

В контексте замечаний упоминается необходимость блокировки в соответствии с целями операционной системы.Это была эпоха файловых систем Unix v6 (и, возможно, более ранних) для обеспечения блокировки файлов.Поскольку файловая система не сталкивалась с большими обновляемыми базами данных, блокировка была недостаточной .

Это была необязательная , поскольку ядро ​​системы управляло внутренними структурами данных с блокировками, исистема поддерживала «логическую согласованность», если два автора работали с одним файлом одновременно.Я думаю, что последний относится в первую очередь к нескольким процессам, добавляющимся к stdout или stderr.

...