Linux concurrency - 1.简介

2022/1/24 7:06:08

本文主要是介绍Linux concurrency - 1.简介,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

kernel本身就是个multithread concurrent的系统。在没有适当条件保证下,存取共享资源很容易发生race condition.共享资源包括周边IO及共享奶给你的数据结构等。可通过适当的synchronization机制提供critical section来保证资源的存取。个人认为kernel里面与concurrency相关的机制大致分为以下几类:

1.architecture support

  • barrier
  • atomic opreation

2.busy-waiting lock:CPU loop等待直到取得lock.critical section中不允许睡眠。通常用来SMP下保证资料数据结构。有以下几种:

  • atomic operation
  • spinlock
  • reader/writer spinlock
  • seqlock

3.lock-free synchronization:通过区分reader与writer的角色以及deffered destruciton来减少lock使用

  • rcu
  • kfifo
  • percpu data

4.blocking synchronization:如果没有拿到lock会进入睡眠。通常用来保证较大的critical section与存取IO相关的机制。可分为以下几种:

  • semaphore
  • reader/writer semaphore
  • mutex
  • completion


这篇关于Linux concurrency - 1.简介的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程