微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

unlink,fsync和重命名是唯一按定义原子的吗?

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

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

解决方法

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

“原子”是什么意思?

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

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

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

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

原文地址:https://www.jb51.cc/java/128634.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐