linux驱动并发与竞争 原子操作(atomic_t)自旋锁(spinlock_t)信号量(semaphore)互斥体(mutex)
Linux是一个多任务操作系统,肯定会存在多个任务共同操作同一段内存或者设备的情况,多个任务甚至中断都能访问的资源叫做共享资源,就和共享单车一样。在驱动开发中要注意对共享资源的保护,也就是要处理对共享资源的并发访问。多个任务同时访问同一片内存区域,这些任务可能会相互覆盖这段内存中的数据,造成内存数据混乱。现在的Linux系统并发产生的原因很复杂,总结一下有下面几个主要原因:①、多线程并发访问,Li