Linux驱动学习笔记之并发控制
Linux 設(shè)備驅(qū)動(dòng)中必須解決的一個(gè)問(wèn)題是多個(gè)進(jìn)程對(duì)共享資源的并發(fā)訪問(wèn),并發(fā)訪問(wèn)會(huì)導(dǎo)致競(jìng)態(tài)。
并發(fā)(concurrency)指的是多個(gè)執(zhí)行單元同時(shí)、并行被執(zhí)行,而并發(fā)的執(zhí)行單元對(duì)共享資源(硬件資源和軟件上的全局變量、靜態(tài)變量等)的訪問(wèn)則很容易導(dǎo)致競(jìng)態(tài)
(race conditions)。
并發(fā)和競(jìng)爭(zhēng)發(fā)生在兩類(lèi)體系中:
1.???????對(duì)稱(chēng)多處理器(SMP)的多個(gè)CPU
2.???????內(nèi)核可搶占的單CPU系統(tǒng)
3.中斷(硬中斷、軟中斷、Tasklet、底半部)與進(jìn)程之間解決競(jìng)態(tài)問(wèn)題的途徑是保證對(duì)共享資源的互斥訪問(wèn),所謂互斥訪問(wèn)是指一個(gè)執(zhí)行單元在訪問(wèn)共享資源的時(shí)候,其他的執(zhí)行單元被禁止訪問(wèn)。
訪問(wèn)共享資源的代碼區(qū)域稱(chēng)為臨界區(qū)(critical sections),臨界區(qū)需要以某種互斥機(jī)制加以保護(hù)。中斷屏蔽、原子操作、自旋鎖和信號(hào)量等是 Linux 設(shè)備驅(qū)動(dòng)中可采用
的互斥途徑。
// 待補(bǔ)充
總結(jié)
以上是生活随笔為你收集整理的Linux驱动学习笔记之并发控制的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 《Linux设备驱动程序》学习2—高级字
- 下一篇: linux 其他常用命令