Linux 通过 RCU 保护 PID 查找期间的对象存活,再用引用计数延长返回对象的生命;移除 PID 后先等待 RCU 宽限期,再释放索引持有的引用。
附源码片段 · 并发与一致性
怎样在并发访问中读到一致数据,并安全回收对象?
关注读写协调、一致视图和生命周期;任务先后顺序归入调度,分配粒度归入内存。
Linux 通过 RCU 保护 PID 查找期间的对象存活,再用引用计数延长返回对象的生命;移除 PID 后先等待 RCU 宽限期,再释放索引持有的引用。
Linux 读取系统实时时钟时用序列计数校验多个字段,若期间发生写入就重读,避免把旧的秒值与新的时钟换算状态拼在一起。
KVM 预先匹配设备通知地址,命中后 signal eventfd,使通知无需让 vCPU 逐次退回 QEMU 分派。
QEMU 重建 FlatView 后发布新指针,已有读者继续使用旧视图,直到引用归还且 RCU 宽限期结束才销毁。
virCommandSetSendBuffer 统一接管数据和管道,让虚拟 TPM 调用方只负责取得口令、传入缓冲区并组装参数。
libvirt 把 FD 和定时器接到 GLib 主循环,将停止监听与释放对象分开,并提高连接清理任务的优先级,避免资源用尽时清理一直排不上。