- 1、本文档共25页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
LINUX设备驱动开发详解-华清远见
《LINUX 设备驱动开发详解》
作者:华清远见
第7 章 Linux 设备驱动中的并发控制
Linux
Linux 7.1
7.27.5
7.6 globalmem
专业始于专注 卓识源于远见
并发与竞态
并发(concurrency )指的是多个执行单元同时、并行被执行,而并发的执行单元对共享资源(硬件资
源和软件上的全局变量、静态变量等)的访问则很容易导致竞态(race conditions )。例如,对于globalmem
设备,假设一个执行单元A 对其写入3000 个字符“a ”,而另一个执行单元B 对其写入4000 个字符“b ”,
第三个执行单元C 读取globalmem 的所有字符。如果执行单元A 、B 的写操作如图7.1 所示的顺序执行,
执行单元C 的读操作不会有问题。但是,如果执行单元A 、B 如图7.2 所示的顺序执行,而执行单元C 又
“不合时宜”地读,则会读出3000 个“b ”。
7.1
比图7.2 更复杂、更混乱的并发大量地存在于设备驱动中,只要并发的多个执行单元存在对共享资源
的访问,竞态就可能发生。在Linux 内核中,主要的竞态发生于如下几种情况。
7.2
1.对称多处理器(SMP )的多个CPU
SMP 是一种紧耦合、共享存储的系统模型,其体系结构如图7.3
所示,它的特点是多个CPU 使用共同的系统总线,因此可访问共同
的外设和储存器。
2.单CPU 内进程与抢占它的进程
Linux 2.6 内核支持抢占调度,一个进程在内核执行的时候可
7.3 SMP
能被另一高优先级进程打断,进程与抢占它的进程访问共享资源
的情况类似于SMP 的多 个CPU 。
3.中断(硬中断、软中断、Tasklet、底半部)与进程之间
中断可以打断正在执行的进程,如果中断处理程序访问进程正在访问的资源,则竞态也会发生。
此外,中断也有可能被新的更高优先级的中断打断,因此,多个中断之间本身也可能引起并发而导致
竞态。
‐ 2 ‐
专业始于专注 卓识源于远见
上述并发的发生情况除了 SMP 是真正的并行以外,其他的都是“宏观并行、微观串行”的,但其引
发的实质问题和SMP 相似。
解决竞态问题的途径是保证对共享资源的互斥访问,所谓互斥访问是指一个执行单元在访问共享资源
的时候,其他的执行单元被禁止访问。
访问共享资源的代码区
您可能关注的文档
最近下载
- 2025年全国特种设备安全管理人员A证考试题库(含答案) .docx
- 灌装操作工作业指导书.doc
- 番茄酱灭菌灌装机说明书end.doc VIP
- 性格培养08勇敢的小熊.pptx
- 腐植酸肥料生产建设项目可行性研究报告.doc
- 民营企业财务管理新规制度.doc
- 2023基于手机银行APP专区调研的客群精细化运营分析报告.pdf VIP
- 杀菌操作工作业指导书.doc VIP
- 基于手机银行APP专区调研的客群精细化运营分析报告-42页.doc VIP
- 马工程系列《教育学原理》项贤明主编第一到十章全完整版课件PPT:产生发展、教育与社会人的发展、目的培养目标、制度、课程教学德育、教师学生等(1).pptx
文档评论(0)