![](https://img-blog.csdnimg.cn/20190927151101105.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
函数接口分析
文章平均质量分 63
对相关函数接口进行细致分析学习
差不太多先生
这个作者很懒,什么都没留下…
展开
-
同步 -- 互斥锁
等待队列的第一个对象出列,表示下一个将要获得锁的任务。把下一个任务的task_struct地址写入到mutex lock的owner变量中(相当于下一个任务获得了互斥锁),唤醒下一个任务继续执行。__mutex_unlock_fast(快解锁):比较lock->owner和curr是否一致,一致则直接把0写到lock->owner中,表示解锁。互斥锁初始化比较简单,就是把owner,wait_lock,wait_list这几个成员初始化一下。解锁:mutex_unlock。加锁:mutex_lock。原创 2023-09-19 09:53:46 · 82 阅读 · 0 评论 -
同步 -- 信号量
获取成功,则sem->count -1。获取失败,将进程加入等待队列,开始休眠,直到已获得信号量的进程释放信号量时,会唤醒等待队列的进程。进程睡眠时,状态是TASK_UNINTERRUPTIBLE,表示睡眠过程不接受信号打断,释放信号量:如果等待队列为空,说明没有任务在等待,则直接将count++。如果不为空,唤醒队列头部的任务,并出队。原创 2023-09-19 09:49:57 · 64 阅读 · 0 评论 -
同步 -- 自旋锁
自旋锁的初始化:就是做个spinlock->raw_spinlock->arch_spinlock_t的转换,然后把arch_spinlock_t的val初始化为0原创 2023-09-19 09:44:18 · 73 阅读 · 0 评论