Linux 下的文件系统是否强制执行序列化(这意味着在任何给定时间实际上仅对文件系统发生一次更改)?

Linux 下的文件系统是否强制执行序列化(这意味着在任何给定时间实际上仅对文件系统发生一次更改)?

https://unix.stackexchange.com/a/12818/674

程序使用锁定文件来确保可能在一个系统上同时运行的程序的两个(行为良好的)单独实例不会同时访问其他内容。这个想法是在程序访问其资源之前,它会检查锁定文件是否存在,如果锁定文件存在,则错误输出或等待它消失。当它不存在时,想要“获取”资源的程序会创建该文件,然后稍后可能遇到的其他实例将等待该过程完成。当然,这假设“获取”锁的程序实际上释放了锁并且没有忘记删除锁文件。

这有效是因为所有类 UNIX 操作系统下的文件系统都强制序列化,这意味着在任何给定时间实际上只发生对文件系统的一次更改。有点像数据库的锁等等。

最后一段是什么意思?

在Linux中,一个文件可以由两个进程同时写入,并且操作系统不提供隐式同步,而是需要程序员显式同步,这是否正确?

锁定文件是否是同步多个进程对同一文件的访问的显式方法?

谢谢。

相关内容