读LDD3的关键字笔记

原创 2006年06月11日 20:43:00
2006年6月11日

用于替代信号量和自选锁的一些方法:

1. 免锁的算法:循环缓冲区。 这个东西在网络适配器中普遍使用。在2.6.10内核中有一个通用实现<linux/kfifo.h>。
2. 原子变量:是一个整数变量,类型名称:atomic_t, 在<asm/atomic.h>中。对这个变量的操作是原子的。有累加、读取、减去、测试等函数。
3. 位操作:对某个数的位操作是原子的,<asm/bitops.h>。有设置某位、清除某位、测试某位等函数操作。
4. seqlock:在<linux/seqlock.h>中定义。当要保护的资源很小、很简单、被频繁访问、很少写入且很快速的时候,可以用这个。
5. 读取-复制-更新(RCU):一种高级的互斥机制。<linux/rcupdate.h>。典型的应用是网络路由表。



相关文章推荐

<LDD3> 中文版 勘误+学习笔记 page 79

中文版 勘误+学习笔记 page 79                 p

LDD3读书笔记(第8章 时间、延迟及延缓操作)

计时 #include HZ     HZ符号指出每秒钟产生的时钟滴答数。 #include volatile unsigned long jiffies u64 jiffies_64...

LDD3学习笔记(2):建立和运行模块

1、建立开发环境在开始编写代码以及研究代码之前,你需要有一个开发环境,也就是一个linux系统。通常我们的做法是在windows下安装一个虚拟机软件,然后在虚拟机软件中安装一个linux系统的发行版本...

LDD3笔记:第三章 字符设备驱动

平凡的我们不能预见虚无且略带迷茫的明天,唯有着眼当下做好我们手边的事,这才是王道。   初来咋到不敢造次,追寻伟人,以期借肩膀一用,弱弱的陈述,积极的整理。举网络资源之海量,去迷茫众生之浮躁。新...

LDD3驱动学习笔记1---Hello World

原创文章:转载请说明出处:http://blog.csdn.net/crzy_sparrow/article/details/7367288 本文目录: 1.  构建内核源码树     1.1U...

[LDD3阅读笔记]中断处理

中断处理 1. 安装中断程序 #include  typedef irqreturn_t (*irq_handler_t)(int, void *); extern i...
  • v2nero
  • v2nero
  • 2013年06月13日 17:49
  • 485

LDD3笔记:第二章 构造和运行模块

在正式进行驱动开发前,需要了解有关模块编程和内核编程的一些基本概念。在本节中将会构造几个完整的(但绝对没啥功用的)模块。设置测试系统一般的发行版本都会装好内核代码树的,用过的Red Hat Enter...

LDD3读书笔记(第16章 USB驱动程序)

本节总结本章中介绍的符号: #include     和USB相关的所有内容所在的头文件。所有的USB设备驱动程序都必须包括该文件。 struct usb_driver     描述USB驱...

LDD3读书笔记(第15章 Linux设备模型)

kobject #include     包含文件中包含了对kobject的定义,以及相关的结构和函数。 void kobject_init(struct kobject *kobj); i...

LDD3读书笔记(第12章 块设备驱动程序)

#include int register_blkdev(unsigned int major,counst char *name); int unregister_blkdev(unsigne...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:读LDD3的关键字笔记
举报原因:
原因补充:

(最多只允许输入30个字)