真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

關(guān)于linux哪些能調(diào)用schedule或者等待事件的問(wèn)題-創(chuàng)新互聯(lián)

關(guān)于linux哪些能調(diào)用schedule或者等待事件的問(wèn)題

對(duì)同步問(wèn)題,需要注意:
1)不能調(diào)用schedule的情況(wait_event、sleep等, 等待函數(shù)內(nèi)部會(huì)調(diào)用schedule):
(1)中斷、
(2)軟中斷、
(3)tasklet、
(4)timer(基于軟中斷實(shí)現(xiàn))、
(5)hrtimer (軟中斷或硬中斷環(huán)境下執(zhí)行)執(zhí)行環(huán)境下、
(6)或者“內(nèi)核線程、普通線程內(nèi)核態(tài)環(huán)境下調(diào)用了preempt_disable()/local_irq_disable()后”,
不能調(diào)用schedule()函數(shù)。

創(chuàng)新互聯(lián)公司長(zhǎng)期為數(shù)千家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開(kāi)放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為駐馬店企業(yè)提供專業(yè)的網(wǎng)站制作、成都做網(wǎng)站,駐馬店網(wǎng)站改版等技術(shù)服務(wù)。擁有十載豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開(kāi)發(fā)。

因?yàn)閟pin_lock成功后,spin_lock內(nèi)部調(diào)用了preempt_disable,所以spin_lock后,不能調(diào)用schedule()。當(dāng)然spin_unlock會(huì)調(diào)用preempt_enable,所以后面可以根據(jù)什么執(zhí)行context來(lái)判斷是否能調(diào)用schedule()函數(shù)。

2)能調(diào)用等待函數(shù)的情況
(1) workqueue(內(nèi)部實(shí)現(xiàn)用到kernel thread)、
(2) kernel thread、
(3) 普通線程的內(nèi)核態(tài),
這些context下,可以調(diào)用schedule()。前提是沒(méi)有調(diào)用preempt_disable禁止搶占和local_irq_disable禁止中斷等操作時(shí)。

具體的原因和原理,請(qǐng)看我的課程:
https://edu.51cto.com/course/17155.html

https://edu.51cto.com/course/17132.html

關(guān)于具體的寫(xiě)linux驅(qū)動(dòng)的方法、技巧和注意事項(xiàng),歡迎觀看我的《如何編寫(xiě)linux設(shè)備驅(qū)動(dòng)》的視頻:
https://edu.51cto.com/course/17132.html

另外我的相關(guān)培訓(xùn)視頻請(qǐng)看:
歡迎觀看我發(fā)布的各個(gè)課程: https://edu.51cto.com/lecturer/8896847.html

另外我的免費(fèi)的linux各種驅(qū)動(dòng)開(kāi)發(fā)課程如下:
https://edu.51cto.com/course/17138.html

另外關(guān)于《關(guān)于如何編寫(xiě)linux設(shè)備驅(qū)動(dòng)》
1)首先確定硬件接口使用的總線,
2)然后確定要實(shí)現(xiàn)的功能,是網(wǎng)卡、sensor還是什么?再確定對(duì)上層應(yīng)用暴露的接口, 從而選擇子系統(tǒng),例如iio、input子系統(tǒng)等。由于linux只有字符設(shè)備、塊設(shè)備、網(wǎng)絡(luò)設(shè)備三種設(shè)備,其實(shí)iio、input子系統(tǒng)都是字符設(shè)備,只是它們幫你封裝好了字符設(shè)備的file_operations和Major設(shè)備號(hào)了,另外提供統(tǒng)一的sysfs接口(一類(lèi)sysfs接口)。你只需要按照子系統(tǒng)要求注冊(cè)進(jìn)子系統(tǒng)就行。子系統(tǒng)就像應(yīng)用和你驅(qū)動(dòng)之間的framework中間層,它幫你處理了很多通用的功能。另外自己再加入一些specific的sysfs接口即可。
確定了上面這些后,你就可以找到對(duì)應(yīng)的例子去抄(參考)了。說(shuō)白了,linux 內(nèi)核設(shè)計(jì)者已經(jīng)給你搭好了大的框架,你所要思考框架的東西并不多,你需要的是熟悉內(nèi)核提供了什么框架子系統(tǒng),如何使用。
什么樣的bus,決定你調(diào)用什么總線API去訪問(wèn)硬件,什么樣的功能決定你用什么樣的子系統(tǒng)來(lái)暴露接口給上層應(yīng)用使用。

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。


名稱欄目:關(guān)于linux哪些能調(diào)用schedule或者等待事件的問(wèn)題-創(chuàng)新互聯(lián)
網(wǎng)頁(yè)URL:http://weahome.cn/article/cecjhd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部