Chinaunix首页 | 论坛 | 博客
  • 博客访问: 7645533
  • 博文数量: 961
  • 博客积分: 15795
  • 博客等级: 上将
  • 技术积分: 16612
  • 用 户 组: 普通用户
  • 注册时间: 2010-08-07 14:23
文章分类

全部博文(961)

文章存档

2016年(1)

2015年(61)

2014年(41)

2013年(51)

2012年(235)

2011年(391)

2010年(181)

发布时间:2012-07-25 11:19:58

atomic_t 类型在进行整数算术时是不错的. 但是, 它无法工作的好, 当你需要以原子方式操作单个位时. 为此, 内核提供了一套函数来原子地修改或测试单个位. 因为整个操作在单步内发生, 没有中断(或者其他处理器)能干扰.原子位操作非常快, 因为它们使用单个机器指令来进行操作, 而在任何时候低层平台做的时候不用禁.........【阅读全文】

阅读(1921) | 评论(0) | 转发(3)

发布时间:2012-07-25 11:15:21

有时, 一个共享资源是一个简单的整数值. 假设你的驱动维护一个共享变量 n_op, 它告知有多少设备操作目前未完成. 正常地, 即便一个简单的操作例如:n_op++; 可能需要加锁. 某些处理器可能以原子的方式进行那种递减, 但是你不能依赖它. 但是一个完整的加锁体制对于一个简单的整数值看来过分了. 对于这样的情况, 内核.........【阅读全文】

阅读(4014) | 评论(0) | 转发(5)

发布时间:2012-07-25 11:00:12

自旋锁概念上简单. 一个自旋锁是一个互斥设备, 只能有 2 个值:"上锁"和"解锁". 它常常实现为一个整数值中的一个单个位. 想获取一个特殊锁的代码测试相关的位. 如果锁是可用的, 这个"上锁"位被置位并且代码继续进入临界区. 相反, 如果这个锁已经被别人获得, 代码进入一个紧凑的循环中反复检查这个锁, 直到它变为可用. .........【阅读全文】

阅读(2162) | 评论(0) | 转发(4)

发布时间:2012-07-25 10:49:28

......【阅读全文】

阅读(1637) | 评论(0) | 转发(2)

发布时间:2012-07-25 10:33:49

旗标为所有调用者进行互斥, 不管每个线程可能想做什么. 然而, 很多任务分为 2 种清楚的类型: 只需要读取被保护的数据结构的类型, 和必须做改变的类型. 允许多个并发读者常常是可能的, 只要没有人试图做任何改变. 这样做能够显著提高性能; 只读的任务可以并行进行它们的工作而不必等待其他读者退出临界区.Linux 内核为.........【阅读全文】

阅读(1731) | 评论(0) | 转发(1)
给主人留下些什么吧!~~

_Yangdada2017-02-28 16:20

后生专门找回密码过来膜拜一下

回复  |  举报

注册看下2016-06-28 22:46

非常感谢

回复  |  举报

X_Unstoppable2016-01-18 13:59

神一样的崇拜

回复  |  举报

流浪者转世2015-02-14 21:59

看了以后,感觉神一般的人!!崇拜中
。。。。

回复  |  举报

hfm_honey2012-08-10 09:10

你好,基于看见你也学习过Linux内核的知识,也相信你也是个高手。如今我现在看到Linux内存分配的slab机制这一块,我实在理解不了什么是slab机制,它里面包含的对象什么情况下叫 “空闲”?什么情况下又叫不空闲,到底该怎么具体的理解呢?能给我具体化,举个实例说明一下吗,感激不尽!谢谢!

回复  |  举报
留言热议
请登录后留言。

登录 注册