filesystems – 什么文件系统操作需要是原子的?

前端之家收集整理的这篇文章主要介绍了filesystems – 什么文件系统操作需要是原子的?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
unlink,fsync和重命名是唯一按定义原子的吗?

编辑:原子意味着操作成功并具有效果或失败并且无效;操作必须不会失败并产生影响.

很明显,如果内核发生混乱,程序无法处理操作失败的错误,但在这种情况下必须考虑它确实失败了

解决方法

我不确定fsync(2)是原子的;如果一个文件在缓冲区缓存中有100兆字节脏,那么将该数据写出来需要几秒钟,并且在传输到磁盘的过程中内核可能会崩溃.也许板载的DMA引擎只能处理4兆字节的写入.也许没有DMA支持,cpu必须通过512字节块调度每次写入.

“原子”是什么意思?

mkdir可能是’原子’,要么磁盘上存在目录并且链接到父目录,要么目录数据结构尚未链接到父目录,因此无法访问 – >不存在.

mount(2)也是如此:很难找到mount(2)中途完成,如果失败,整个挂载失败:文件系统是挂载的,还是不挂载.

umount(2)很有趣,它可以懒惰地完成,但是一旦卸载它就不能用于open(2)或creat(2)调用.

所以,我想这归结为,’原子’是什么意思?

猜你在找的Java相关文章