linux的原子操作学习总结
2016-11-15 17:35
417 查看
原子操作是指在执行中不会被其他代码路径所中断的操作。
⑴整型原子操作
⑵位原子操作
原子操作程序模版
⑴整型原子操作
1.设置原子变量的值
|
2.获取原子变量的值
|
3.原子变量加/减
|
4.原子变量自增/自减
|
5.操作并测试
|
6.操作并返回
|
1.设置位
|
2.清除位
|
3.改变位
|
4.测试位
|
5.测试并操作位 int test_and_set_bit(nr, void *addr); int test_and_clear_bit(nr, void *addr); int test_and_change_bit(nr, void *addr); |
1 static atomic_t xxx_available = ATOMIC_INIT(1); /*定义原子变量*/ 2 3 static int xxx_open(struct inode *inode, struct file *filp) 4 { 5 ... 6 if (!atomic_dec_and_test(&xxx_available)) { 7 atomic_inc(&xxx_available); 8 return - EBUSY; /*已经打开*/ 9 } 10 ... 11 return 0; /* 成功 */ 12 } 13 14 static int xxx_release(struct inode *inode, struct file *filp) 15 { 16 atomic_inc(&xxx_available); /* 释放设备 */ 17 return 0; 18 } |
相关文章推荐
- 学习笔记——操作系统_Linux原子操作
- Linux文件操作学习总结
- linux学习笔记4--原子操作
- Linux学习总结(5)——CentOS常用的目录文件操作命令
- linux基础操作命令学习总结
- arm驱动程序——按键程序6_互斥1—原子操作(韦东山的视频总结及针对linux-2.6.30)
- 个人学习笔记---linux原子操作的实现原理
- Linux文件操作学习总结
- linux学习之IO操作,标准IO总结
- arm驱动程序——按键程序6_互斥1—原子操作(韦东山的视频总结及针对linux-2.6.30)
- Linux文件操作学习总结【转载】
- Linux内核与驱动开发学习总结:原子操作实现(六)
- Linux学习总结(5)——CentOS常用的目录文件操作命令
- Linux文件操作学习总结
- Linux操作常用命令学习总结
- Linux文件操作学习总结
- linux c网络学习总结2(IP地址相关的操作)
- Linux学习之CentOS(四)----Linux文件属性、所有者、群组、其他组及文件权限操作简要总结
- Linux文件操作学习总结
- Linux学习总结(5)——CentOS常用的目录文件操作命令