专题:Linux内存管理专题 关键词:LockDep、spinlock、mutex。 lockdep是内核提供协助发现死锁问题的功能。 本文首先介绍何为lockdep,然后如何在内核使能lockdep,并简单分析内核lockdep相关代码。 最后构造不同死锁用例,并分析如何根据lockdep输出发现 ...
分类:
系统相关 时间:
2018-08-13 22:55:14
阅读次数:
292
以下模块打印出超级块中某些字段的内容。 #include <linux/module.h> #include <linux/fs.h> #include <linux/init.h> #include <linux/list.h> #include <linux/spinlock.h> #inclu ...
分类:
其他好文 时间:
2018-08-13 14:58:03
阅读次数:
165
阅读目录: 基础 自旋锁示例 SpinLock 继续SpinLock 总结 基础 内核锁:基于内核对象构造的锁机制,就是通常说的内核构造模式。用户模式构造和内核模式构造 优点:cpu利用最大化。它发现资源被锁住,请求就排队等候。线程切换到别处干活,直到接受到可用信号,线程再切回来继续处理请求。 缺点 ...
分类:
编程语言 时间:
2018-08-13 12:07:09
阅读次数:
229
postgresql锁:postgresql中有3种锁模式,分别为:spinlock、lwlook和regularlock。1、spinlock自旋锁 spinlock使用互斥信息,与操作系统和硬件环境联系比较密切。spinlocky的主要特点是封锁的时间很短,没有等待队列和死锁检测机制。事务结束时,不能自动释放spinlock锁。2、LWLock轻量级锁 LWLock主要
分类:
数据库 时间:
2018-08-01 14:22:15
阅读次数:
229
关键词:wfe、FIFO ticket-based、spin_lock/spin_trylock/spin_unlock、spin_lock_irq/spin_lock_bh/spin_lock_irqsave。 《Linux并发与同步专题 (1)原子操作和内存屏障》 《Linux并发与同步专题 ( ...
分类:
系统相关 时间:
2018-07-06 01:40:24
阅读次数:
280
// Spin lock implementation. // BasicLockable. // Async-signal safe. // unlock() "synchronizes with" lock(). class spinlock { std::atomic _busy = { fa... ...
分类:
编程语言 时间:
2018-06-13 18:12:19
阅读次数:
214
如题,应届生除了要良好地掌握算法和数据结构以外,以下一些技能点列表希望对大家有帮助,有兴趣的朋友可以参考这个针对性地补缺补差。文章列出的技能点有的要求熟悉,有的了解即可,注意技能点前面的修饰词。如果没有明确给出“熟悉”“了解”等字眼,要求均为熟悉。 一、操作系统方面 多线程相关与线程之间同步技术 熟 ...
分类:
其他好文 时间:
2018-05-26 17:59:54
阅读次数:
171
转自:http://blog.sina.com.cn/s/blog_6929134b0100tdn8.html 自旋锁与互斥锁有点类似,只是自旋锁不会引起调用者睡眠,如果自旋锁已经被别的执行单元保持,调用者就一直循环在那里看是否该自旋锁的保持者已经释放了锁,"自旋"一词就是因此而得名。 由于自旋锁使 ...
分类:
系统相关 时间:
2018-03-06 15:10:31
阅读次数:
212
悲观锁(Pessimistic Lock), 顾名思义,就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿到锁。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。 乐观锁(Op ...
分类:
编程语言 时间:
2018-03-01 17:10:01
阅读次数:
249
内核中用于临界区保护下的互斥机制,它包括自旋锁、原子操作和信号量,三者保证了对临界资源访问的互斥型。 1.1 内核中的互斥机制 1.1.1 自旋锁 自旋锁用在多个CPU系统中。当一个线程在一个CPU上正使用资源,而另一个线程在另一个CPU上正忙等待这个资源的时候,就会用到自旋锁来保护临界资源。在单处 ...
分类:
其他好文 时间:
2018-02-22 21:22:08
阅读次数:
177