![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
LINUX驱动
TTFY
这个作者很懒,什么都没留下…
展开
-
Linux驱动-信号量
之前上学比赛学习freertos的时候接触过信号量的概念,现在毕业两个月发现之前的很多后有些忘了。通过在linux平台再熟悉一下 信号量分为计数型信号量、互斥信号量(二值信号量) 信号量与自旋锁的区别 信号量会使线程进入休眠状态,而自旋锁不会,自旋锁会一直等待(自旋) 信号量不能用于中断,因为信号量会引起休眠,中断中不能休眠。 如果是短暂的持有共享资源,用自旋锁比较好。因为频繁的休眠,切换线程会只占用资源 Linux内核使用semaphore结构体表示信号量,结构体内容如下所示 struct s原创 2020-08-04 21:41:14 · 404 阅读 · 0 评论 -
LINUX驱动-自旋锁
当一个线程要访问某个共享资源的时候首先要获得相应的锁,锁只能被一个线程持有,只要此线程不释放持有的锁,那么其他的线程就不能获取此锁。这个锁就叫做自旋锁。 如果自旋锁正在被线程A所持有,线程B要想获得自旋锁,那么线程B就会处于忙循环-旋转-等待状态。不会处于休眠状态 Linux内核使用spinlock_t表示自旋锁。结构定义如下 typedef struct spinlock { union { struct raw_spinlock rlock; #ifdef CONFIG_DEBUG_LOC原创 2020-08-03 22:13:00 · 240 阅读 · 0 评论