您的位置:首页 > 运维架构 > Linux

linux内核锁

2016-02-10 18:01 585 查看
《linux内核设计与实现》关于内核同步。(2.6内核)

1.概念

同步:避免并发和防止竞争条件。(synchronization)

2.内核中可能造成并发执行的原因

《1》.中断

《2》.软中断和tasklet

《3》.内核抢占。

《4》.睡眠以及用户空间的同步:再内核执行的进程可能会睡眠。会唤醒调度程序,调度一个新的用户进程执行。

《5》.SMP-对称多处理器。

3.死锁

《1》.自死锁:对自己持有的锁再次去获取。

《2》.ABBA死锁:(两个线程,两个资源)

4.防止死锁

《1》.按顺序加锁。

《2》.不要重复申请同一个锁。

《3》.设计力求简单。

5.面临的问题

争用、扩展性

锁的作用使程序以串行方式对资源进行访问。高度争用的锁会成为系统瓶颈。

锁的扩展性好,锁的细粒度由粗到细。在集群处理机器上锁的细粒度小些,会降低争用一个锁,提高性能;但时在双处理器,粒度细了,锁开销大,会降低性能。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: