总目录链接:[RK3568 Android11] 本专栏说明和总目录
目录
前言
互斥锁(mutex)是内核较常使用的锁机制,主要用于实现内核中的互斥访问功能;
一、了解互斥锁
1、互斥锁定义
互斥锁(Mutex)是在原子操作API的基础上实现的信号量行为。互斥锁不能进行递归锁定或解锁,能用于进程上下文但是不能用于中断上下文,同一时间只能有一个任务持有互斥锁,而且只有这个任务可以对互斥锁进行解锁。当无法获取锁时,线程进入睡眠等待状态。
进程上下文概念:是对进程执行活动全过程的描述;就是一个进程在执行的时候,CPU的所有寄存器中的值、进程的状态以及堆栈上的内容,当内核需要切换到另一个进程时,它需要保存当前进程的所有状态,即保存当前进程的上下文,以便再次执行该进程时,能够恢复到切换时的状态,继续执行。我们把已执行过的进程指令和数据在相关寄存器与堆栈中的内容称为进程上文,把正在执行的指令和数据在寄存器与堆栈中的内容称为进程正文,把待执行的指令和数据在寄存器与堆栈中的内容称为进程下文。进程上下文可以睡眠,也可以调用调度程序;
&nb
本文详细介绍了Linux内核中的互斥锁(mutex),包括其定义、特点、适用场景以及API函数。互斥锁用于保证内核中的互斥访问,适用于进程上下文,不适用于中断上下文。当线程无法获取锁时,会进入睡眠等待。文章还提及了互斥锁与中断上下文的区别以及与自旋锁的对比。
订阅专栏 解锁全文
1735

被折叠的 条评论
为什么被折叠?



