[發(fā)明專利]一種實時安卓操作系統(tǒng)中的實時Binder處理避免非實時Binder競爭的方法有效
| 申請?zhí)枺?/td> | 201910356823.0 | 申請日: | 2019-04-29 |
| 公開(公告)號: | CN110196777B | 公開(公告)日: | 2023-01-24 |
| 發(fā)明(設(shè)計)人: | 楊百濤 | 申請(專利權(quán))人: | 楊百濤 |
| 主分類號: | G06F9/54 | 分類號: | G06F9/54 |
| 代理公司: | 深圳市徽正知識產(chǎn)權(quán)代理有限公司 44405 | 代理人: | 奉燁 |
| 地址: | 610000 四川省廣元*** | 國省代碼: | 四川;51 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 實時 操作系統(tǒng) 中的 binder 處理 避免 競爭 方法 | ||
本發(fā)明公開了實時安卓操作系統(tǒng)中的實時Binder處理避免非實時Binder競爭的方法,其特征在于,包括以下步驟:s1:判定Binder請求的性質(zhì),屬于實時Binder請求還是普通Binder請求,若是實時Binder請求則執(zhí)行步驟S2;S2:Binder驅(qū)動向IPCThreadState類實例請求線程,SPAWN出硬實時或軟實時線程以用于處理實時Binder請求;S3:Binder驅(qū)動公平對待所有實時Binde或?qū)崟rBinder請求有序的插入隊列中。
技術(shù)領(lǐng)域
本發(fā)明涉及通信數(shù)據(jù)處理技術(shù)領(lǐng)域,具體涉及一種一種實時安卓操作系統(tǒng)中的實時Binder處理避免非實時Binder競爭的方法。
背景技術(shù)
隨著SOC(System On Chip)技術(shù)的不斷發(fā)展,嵌入式系統(tǒng)在人們生產(chǎn),生活的各個方面應(yīng)用越來越廣泛,大到航天航空,小到智能手機、智能手表等,可以說是無處不在。由于工作的特殊性,很多嵌入式設(shè)備要求系統(tǒng)對外部事件的響應(yīng)必須在實現(xiàn)設(shè)定的時限范圍內(nèi)完成,使系統(tǒng)具有可預(yù)測性,因此就必須使用實時操作系統(tǒng)。
常用的嵌入式實時操作系統(tǒng)包括有硬時VxWorks,QNX和uCOSII等,軟實時則包括有WinCE等。像VxWorks,QNX和uCOSII等都是一些功能比較簡單的封閉式操作系統(tǒng)。隨著現(xiàn)在的系統(tǒng)日趨復(fù)雜,越來越需要把一些通用的有完善生態(tài)鏈的分時操作系統(tǒng),如:Linux、Windows等改造成實時操作系統(tǒng),這樣既能滿足通用需求又能滿足特殊需求。由于Linux開源的特性,這方面已有一些很好的解決方案,如:RTLinux、RTAI、MontaVista等。
現(xiàn)在使用越來越廣泛的谷歌安卓(Android)操作系統(tǒng)也是一種通用的有完善生態(tài)鏈的分時操作系統(tǒng),它基于Linux內(nèi)核。安卓(Android)操作系統(tǒng)中最重要的進程間通訊機制就是Binder機制。Binder機制在安卓(Android)操作系統(tǒng)中可以說是無處不在。普通的Binder機制用來處理非實時的邏輯,也沒有引入優(yōu)先級的概念。實時安卓操作系統(tǒng)(RTAndroid)中可以將Binder機制用于處理實時邏輯。但將Binder機制用于處理實時邏輯有一個必須要解決的問題,由于Binder機制在安卓(Android)操作系統(tǒng)中可以說是無處不在,在同一進程中,在處理非實時Binder請求時,由于Binder驅(qū)動中的todo鏈表加了鎖,只有當非實時Binder請求處理完后,實時Binder才能得到處理,這顯然和實時系統(tǒng)的設(shè)計原則是不吻合的。具體的說,現(xiàn)有的Binder通訊機制是,當用戶進程發(fā)起B(yǎng)inder請求后,先到達Binder服務(wù)類和接口類,再到達Binder核心類,然后到達IPCThreadState類,最后抵達運行在內(nèi)核空間的Binder驅(qū)動。請求的結(jié)果按相反的路線返回到用戶進程。IPCThreadState類負責和Binder驅(qū)動通訊并維護了Binder線程池。在安卓現(xiàn)在的設(shè)計中,每個用戶進程中都只有一個IPCThreadState類的實例。另外,安卓系統(tǒng)還有一個特殊的Binder服務(wù)ServiceManager,它為Binder機制提供名字服務(wù)。Binder驅(qū)動為每個進程維護了binder_proc的數(shù)據(jù)結(jié)構(gòu),而binder_proc上也包含等待隊列,這樣binder線程可在上面睡眠。另外,binder_proc上也維護了FIFO隊列,來緩存binder驅(qū)動在某個進程上所有未處理的工作。另外,binder驅(qū)動也維護了鎖,來同步同一個進程上并發(fā)的binder請求。
在實時安卓操作系統(tǒng)(RTAndroid)中,Binder機制也被用來處理實時的事件或請求的跨進程傳遞需求,因為Binder機制是一種高效且編程靈活的跨進程通訊機制。從上面分析可以,如果不對安卓原生的Binder機制做改進,實時的事件或請求的Binder處理沒有被區(qū)別對待,當系統(tǒng)中的非實時Binder請求頻繁且繁忙時,實時的事件或請求的Binder處理將延遲很多,實時性能將得不到保證。
發(fā)明內(nèi)容
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于楊百濤,未經(jīng)楊百濤許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201910356823.0/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。





