Linux 2.6内核的新锁机制 RCU
http://www.ibm.com/developerworks/cn/linux/l-rcu/
函数摘要:
C代码
/*读者在读取由RCU保护的共享数据时使用该函数标记它进入读端临界区。*/
rcu_read_lock()
/*
该函数与rcu_read_lock配对使用,用以标记读者退出读端临界区。夹在这两个函数之间的代码区称为"读端临界区"(read-side critical section)。读端临界区可以嵌套,如图3,临界区2被嵌套在临界区1内。
*/
rcu_read_unlock()
/*
该函数由RCU写端调用,它将阻塞写者,直到经过grace period后,即所有的读者已经完成读端临界区,写者才可以继续下一步操作。如果有多个RCU写端调用该函数,他们将在一个grace period之后全部被唤醒。
*/
synchronize_rcu()
/*
函
数 call_rcu 也由 RCU 写端调用,它不会使写者阻塞,因而可以在中断上下文或 softirq 使用,而
synchronize_rcu、synchronize_kernel 和synchronize_shced
只能在进程上下文使用。该函数将把函数 func 挂接到 RCU回调函数链上,然后立即返回。一旦所有的 CPU
都已经完成端临界区操作,该函数将被调用来释放删除的将绝不在被应用的数据。参数 head 用于记录回调函数 func,一般该结构会作为被 RCU
保护的数据结构的一个字段,以便省去单独为该结构分配内存的操作。需要指出的是,函数 synchronize_rcu
的实现实际上使用函数call_rcu。
*/
void fastcall call_rcu(struct rcu_head *head,
void (*func)(struct rcu_head *rcu))
/*
写端调用,把一个指针p赋为指针v。
*/
rcu_assign_pointer()
typeof(p) rcu_assign_pointer(p, typeof(p) v);
/*
获得指针p的解引用值
*/
rcu_dereference()
typeof(p) rcu_assign_pointer(p, typeof(p) v);
http://group.ednchina.com/1036/21283.aspx
http://blog.chinaunix.net/u1/51562/showart_1341707.html
http://www.360doc.com/content/10/0106/17/701200_12820595.shtml
相关文档:
一:前言
最近在研究android的sensor driver,主要是E-compass,其中用到了Linux input子系统.在网上也看了很多这方面的资料,感觉还是这篇分析的比较细致透彻,因此转载一下以便自己学习,同时和大家分享!
(这篇博客主要是以键盘驱动为例的,不过讲解的是Linux Input Subsystem,可以仔细的研究一下!)
键盘驱动将检 ......
1)/etc/sysconfig/network-scripts/ifcfg-interface-name
配置文件ifcfg-interface-name包含了初始化接口所需的大部分详细信息。其中interface-name将根据网卡的类型和排序而不同,一般其名字为eth0、eth1、ppp0等,其中eth表示以太(eth0)类型网卡,0表示第一块网卡,1表示第二块网卡,而ppp0则表示第一个point-to-poir ......
原文地址:http://www.ibm.com/developerworks/cn/linux/l-cn-cmake/index.html
本文介绍了一个跨平台的自动化构建系统 CMake 在 linux 上的使用方法。 CMake 是一个比 automake 更加容易使用的工具,能够使程序员从复杂的编译连接过程中解脱出来。文中通过一些例子介绍使用 CMake 处理多源文件目录的方法、查找并使用其他 ......
最近由于工作需要,埋头研究了一下如何利用Scom来监控开源平台的系统,经过努力后获得小小的成果-成功监控了redhat系统。小弟在开心之余当然不忘把成果拿出来share一下,顺便发扬与人分享的新世纪雷锋精神^_^
要想使用Scom成功监控Redhat,您的环境需要满足如下条件:
1. Scom版本为2007 R2,并且导入了Red ......
系统调用是应用程式和操作系统内核之间的功能接口。其主要目的是使得用户
能使用操作系统提供的有关设备管理、输入/输入系统、文件系统和进程控制、
通信及存储管理等方面的功能,而不必了解系统程式的内部结构和有关硬件细
节,从而起到减轻用户负担和保护系统及提高资源利用率的作用。
Linux操作系统作为免费软件 ......