Почему просто блокировка файлов в многопользовательских системах не достаточно?
Ричи утверждает, что блокировка файла недостаточна для предотвращения путаницы, вызванной такими программами, как редакторы, которые делают копию файла во время редактирования, а затем записывают исходный файл после завершения. Можете ли вы объяснить, что он имел в виду?
1 ответ
Он также сказал, что блокировки не были необходимы, утверждение, которое большинство инженеров считают неверным.
Это было написано Д.М. Ричи и К. Томпсоном, UNIX-система для разделения времени, в Техническом журнале Bell System, Vol. 57, № 6 (июль-август 1978 г.), часть 2, с. 1905-1929.
В контексте замечаний указывалось на необходимость блокировки в соответствии с целями операционной системы. Это была эпоха файловых систем Unix v6 (и, возможно, более ранних) для обеспечения блокировки файлов. Поскольку файловая система не сталкивалась с большими обновляемыми базами данных, блокировки было недостаточно.
В этом не было необходимости, поскольку ядро системы управляло внутренними структурами данных с блокировками, а система поддерживала "логическую согласованность", если два автора работали с одним файлом одновременно. Я думаю, что последний относится в первую очередь к нескольким процессам, добавляющимся к stdout или stderr.