1.软文推荐

2.软文推荐

3.软文推荐

互斥锁(Mutex)是在原子操作API的基础上实现的信号量行为。互斥锁不能进行递归锁定或解锁,能用于交互上下文但是不能用于中断上下文,同一时间只能有一个任务持有互斥锁,而且只有这个任务可以对互斥锁进行解锁。喜下面良许教程网为大家分享一下Linux系统互斥锁的实现原理。

引言

互斥锁大都会使用,但是要了解其原理就要花费一番功夫了。尽管我们说互斥锁是用来保护一个临界区,实际上保护的是临界区中被操纵的数据。

互斥锁还是分为三类:快速互斥锁/递归互斥锁/检测互斥锁

futex

要想了解互斥锁的内部实现,先来了解一下futex(fast Userspace mutexes)的作用。

内核态和用户态的混合机制。

还没有futex的时候,内核是如何维护同步与互斥的呢?系统内核维护一个对象,这个对象对所有进程可见,这个对象是用来管理互斥锁并且通知阻塞的进程。如果进程A要进入临界区,先去内核查看这个对象,有没有别的进程在占用这个临界区,出临界区的时候,也去内核查看这个对象,有没有别的进程在等待进入临界区。

互斥锁

1、互斥锁的结构?

在futex的基础上用的内存共享变量来实现的。

2、不能锁住的时候,是如何进入休眠,又如何等待被唤醒的呢?

进入锁的时候就会区检查那个共享变量,如果不能获取锁,就会通过futex系统调用进入休眠。如果有人释放锁,就会通过futex来唤醒。

3、互斥锁的属性?

指定锁的适用范围。

以上就是良许教程网为各位朋友分享的Linux系统相关内容。想要了解更多Linux相关知识记得关注公众号“良许Linux”,或扫描下方二维码进行关注,更多干货等着你!

本文来源:www.lxlinux.net/1742.html,若引用不当,请联系修改。

相关文章 8

1

免费云主机申请试用(云主机 免费) 1分钟前

目录:1、如何申请和使用免费云主机2、参加云领校园活动且免费试用的云主机主要有哪些功能?3、云主机有免费试用的吗4、怎样申请免费...

2

详解sql递归 3分钟前

...

3

parkinhost怎么样(a park host) 5分钟前

目录:...

4

详解KVM 开源虚拟机具体搭建步骤 7分钟前

KVM (全称是 Kernel-based Virtual Machine) 是 Linux 下 x86 硬件平台上的全功能虚拟化解决方案,包含一个可加载的内核模块 kvm.ko 提供和虚拟化核心架...

5

喀什网站制作(喀什有限公司) 8分钟前

目录:1、喀什嘉映文化传媒有限公司怎么样?2、喀什市保险制作网站公司3、中国喀什网编辑是做什么的4、喀什有名点的地方网站有什么?...

7

企业上云方案(企业上云方案流程) 10分钟前

目录:1、国家推动企业上云的发展战略具体内容有什么?2、企业上云应该如何保障安全?3、工业企业上云,主要应该考虑哪些问题国家推...

8

香港特价云服务器(免费香港云服务器) 13分钟前

目录:1、网上看到广告说香港云服务器一个月9元,是真的假的?2、想买一个 香港的云服务器,哪个服务商的 性价比比较高?3、双十一香...