zoukankan      html  css  js  c++  java
  • 原子操作

    简介

    原子操作用于执行轻量级、仅执行一次的操作,例如修改计数器、有条件的增加值、设置位等。原子操作可以确保操作的串行化,不再需要锁进行并发访问保护。原子操作的具体实现取决于体系架构。
    

    为了在释放内核网络缓冲区(称为 skbuff)之前检查是否还有余留的数据引用,定义于 net/core/skbuff.c 文件中 skb_relerse_data( ) 函数将进行如下操作:

    当 skb_release_data( ) 执行的时候,另一个调用 skbuff_clone( ) (也在 net/core/skbuff.c 文件中定义)的执行单元也许在同步地增加数据引用计数值:

    原子操作的使用将确保数据引用计数不会被这两个执行单元“蹂躏”。它也消除了使用锁去保护单一整型变量的争论。

    内核也支持 set_bit( )、clear_bit( ) 和 test_and_set_bit( ) 操作,它们可用于原子地进行位修改。查看 include/"asm-your-arch"/atomic.h 文件可以看出你所在体系架构所支持的原子操作。

  • 相关阅读:
    Kubernetes List-Watch
    Go 模板语法
    vRA7 Business error “Untrusted certificate chain”
    Centos 7/8 安装 Harbor
    Kubernetes Headless Service
    Kubernetes addon-manager
    Kubernetes Metrics-Server
    Kubernetes Heapster
    容器rootfs
    Kubernetes lxcfs
  • 原文地址:https://www.cnblogs.com/GyForever1004/p/8847888.html
Copyright © 2011-2022 走看看