gpt4 book ai didi

linux - "atomic"系统调用是什么意思?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:08:15 25 4
gpt4 key购买 nike

我知道 atomic 通常用在 race condition 的上下文中,意思是 consistency结果的确定性根据多线程/多处理环境。没关系。但是最近我读到了 Linux 中的原子系统调用,但不明白 atomic 在这里的实际含义是什么,即如何这个atomicity实现。这是否意味着这个系统调用只是在资源上使用锁(例如目标文件 inode 上的 open() )或者还有更多,可能是一些内核保证?我考虑禁用中断,但并非所有中断都可以禁用。可能这就足够了,因为内核使用的所有中断都可以禁用,而其他中断太重要了,可能会中断我们的原子系统调用?

最佳答案

这真的取决于系统调用。 Citing man 3 read,里面引用了posix编程手册:

I/O is intended to be atomic to ordinary files and pipes and FIFOs. Atomic means that all the bytes from a single operation that started out together end up together, without interleaving from other I/O operations. It is a known attribute of terminals that this is not honored, and terminals are explicitly (and implicitly permanently) excepted, making the behavior unspecified. The behavior for other device types is also left unspecified, but the wording is intended to imply that future standards might choose to specify atomicity (or not).

显然,这只适用于 IO 操作。

关于linux - "atomic"系统调用是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29185304/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com