- 博客(6)
- 资源 (12)
- 收藏
- 关注
原创 linux-信号量
概念:如果一个任务去获取一个不可用的信号量时,信号量可以将这个任务推进一个等待队列,去睡眠。CPU可以去干其他的事。当信号量可用时,等待队列中的任务被唤醒,获得该信号量。与自旋锁比较: 信号量相对于自旋锁===》在或得信号量得情况下可以睡眠。信号量简称睡眠锁。类型: 计算信号量,二值信号量。使用: 《1》.初始化 《2》.P 《===获取信号量 (或者down)
2016-02-16 23:13:25 308
原创 原子位操作
include/asm-generic/bitops针对SMP与非SMP:#include <asm/types.h>#include <linux/irqflags.h>#ifdef CONFIG_SMP#include <asm/spinlock.h>#include <asm/cache.h> /* we use L1_CACHE_BYTES *//* Use an a
2016-02-10 22:49:57 601
原创 原子操作
centos7中的原子变量-一般使用来作为计数器定义:include/linux/types.htypedef struct { int counter;} atomic_t;#ifdef CONFIG_64BITtypedef struct { long counter;} atomic64_t;#endif原子变量操作:#ifndef atomic_ad
2016-02-10 21:38:11 426
原创 linux内核锁
《linux内核设计与实现》关于内核同步。(2.6内核)1.概念 同步:避免并发和防止竞争条件。(synchronization)2.内核中可能造成并发执行嗯的原因 《1》.中断 《2》.软中断和tasklet 《3》.内核抢占。 《4》.睡眠以及用户空间的同步:再内核执行的进程可能会睡眠。会唤醒调度程序,调度一个新的用户进程执行。 《5》
2016-02-10 18:01:52 496
原创 linux内核数据结构-哈希表理解
下载 <1>.散列表散列表也叫哈希表。以数组结构来作对比,数组中要查询某一个值,得通过一个一个数值的比较。而hashtable是通过某一种关系(func)的映射:【key,value】: 存储地址 = func(关键字) 也就是一种键值关系。找到存储地址,就相当于找到值了,而不像数组需要去比较。实现这样一种对应关系有多种算法。这里以求余数算为例。存储地址=func(key)=key m
2016-02-06 21:15:48 1144
原创 我会的东西
分享,相互学习之用:关于c语言: 《c与c指针》算是我c语言的入门书,完整学过1-2遍,后面遇到语法问题反复翻看,算是比较熟悉。这本书真的不错。学c语言建议可以使用这本书入门,而且这本书对指针的讲解比较透彻,自己也是看了这本书能渐渐掌控指针。 《c缺陷与陷阱》,《c专家编程》这两本看完后,对c的理解又会深入一些。记得这两本书看完后借给同事,后来就没有回到我的手中了。不过这些经典书
2016-02-05 23:07:15 781
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人