[發(fā)明專利]一種基于RTX實(shí)時(shí)系統(tǒng)的共享資源讀寫互斥方法在審
| 申請(qǐng)?zhí)枺?/td> | 202011488188.0 | 申請(qǐng)日: | 2020-12-16 |
| 公開(公告)號(hào): | CN112559210A | 公開(公告)日: | 2021-03-26 |
| 發(fā)明(設(shè)計(jì))人: | 段雨昕 | 申請(qǐng)(專利權(quán))人: | 北京仿真中心 |
| 主分類號(hào): | G06F9/54 | 分類號(hào): | G06F9/54 |
| 代理公司: | 北京正理專利代理有限公司 11257 | 代理人: | 張帆 |
| 地址: | 100854 北京*** | 國(guó)省代碼: | 北京;11 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 基于 rtx 實(shí)時(shí) 系統(tǒng) 共享資源 讀寫 方法 | ||
本發(fā)明實(shí)施例公開一種基于RTX實(shí)時(shí)系統(tǒng)的共享資源讀寫互斥方法,利用RTX現(xiàn)有API,對(duì)VxWorks軟件的讀/寫信號(hào)量功能進(jìn)行封裝,在不改變?cè)浖a調(diào)用形式和軟件運(yùn)行邏輯流程的情況下,基于RTX+Windows環(huán)境實(shí)現(xiàn)讀/寫信號(hào)量應(yīng)有的功能,在多核多線程同時(shí)訪問某一數(shù)據(jù)資源時(shí),如果只是讀取數(shù)據(jù)則可以多線程并發(fā)的訪問該數(shù)據(jù)區(qū),提高訪問效率,而寫入數(shù)據(jù)的線程則需要獨(dú)占訪問該數(shù)據(jù)區(qū),只有當(dāng)前沒有讀者或者寫者占用該資源,寫信號(hào)量才能被獲取實(shí)現(xiàn)對(duì)數(shù)據(jù)的互斥保護(hù)。本發(fā)明實(shí)施例使用的RTX版本為RTX64 2014,對(duì)應(yīng)原VxWorks版本為6.8,原軟件設(shè)計(jì)為多核、多線程應(yīng)用程序,內(nèi)部邏輯包含有多個(gè)讀/寫信號(hào)量進(jìn)行資源保護(hù)。
技術(shù)領(lǐng)域
本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域。更具體地,涉及一種基于RTX實(shí)時(shí)系統(tǒng)的共享資源讀寫互斥方法。
背景技術(shù)
軟件移植技術(shù)在跨操作系統(tǒng)或使用環(huán)境時(shí)應(yīng)用非常廣泛,可以在原有應(yīng)用程序不做改動(dòng)或者只做較少改動(dòng)的情況下適配到新的平臺(tái)環(huán)境下,大大減少不必要的二次開發(fā)工作量。
現(xiàn)有技術(shù)中從VxWorks軟件向RTX系統(tǒng)移植的技術(shù)方案已經(jīng)有所應(yīng)用,利用中間件形式重新利用RTX系統(tǒng)的用戶API封裝了部分VxWorks系統(tǒng)的API,實(shí)現(xiàn)了基于RTX系統(tǒng)完成了部分VxWorks軟件功能函數(shù)的移植適配,其中包括消息隊(duì)列、事件、互斥信號(hào)量、計(jì)數(shù)信號(hào)量、二值信號(hào)量等。但隨著軟件版本更新迭代,新版本的基于VxWorks6.8系統(tǒng)編制的軟件使用了更多功能而RTX并未提供對(duì)應(yīng)可用API,典型的例如讀/寫信號(hào)量功能。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明第一個(gè)實(shí)施例提供一種基于RTX實(shí)時(shí)系統(tǒng)的共享資源讀寫互斥方法,包括:
利用RTX現(xiàn)有API對(duì)VxWorks軟件的讀/寫信號(hào)量功能進(jìn)行封裝;
創(chuàng)建讀/寫信號(hào)量,通過附加的信號(hào)量屬性參數(shù)將該信號(hào)量標(biāo)記為讀寫信號(hào)量,并創(chuàng)建屬性資源的互斥鎖,創(chuàng)建完成后函數(shù)正常返回;
寫者獲取信號(hào)量,將寫者標(biāo)志置為寫狀態(tài),阻止其他的讀者或者寫者請(qǐng)求,等待超時(shí)或者獲取信號(hào)量成功后函數(shù)返回;
當(dāng)寫者釋放信號(hào)量時(shí),同時(shí)查詢寫者標(biāo)志是否有其他寫者在等待信號(hào),若有則函數(shù)返回,若沒有則同時(shí)查詢讀者標(biāo)志位是否有讀者正在等待,有讀者則激活讀者狀態(tài),若沒有則設(shè)置信號(hào)量初始狀態(tài),可以繼續(xù)被其他申請(qǐng)者申請(qǐng);
當(dāng)讀者需要獲取信號(hào)量時(shí),但在此前首先獲取是否有寫者申請(qǐng),若有則讀者進(jìn)入等待,否則首個(gè)讀者可以等待讀信號(hào)量,當(dāng)獲取信號(hào)量之后,將讀者標(biāo)志置為讀狀態(tài),并記錄讀者數(shù)量,首個(gè)讀者獲取信號(hào)量后,后續(xù)讀者直接返回正常獲取,實(shí)現(xiàn)讀者的并發(fā)訪問。
當(dāng)讀者釋放信號(hào)量時(shí),每個(gè)讀者釋放都記錄剩余讀者數(shù)量,最后一個(gè)讀者釋放讀信號(hào)量,將信號(hào)量狀態(tài)設(shè)置為初始狀態(tài),可以繼續(xù)被其他申請(qǐng)者申請(qǐng)。
在一個(gè)具體實(shí)施例中,采用RTX二值信號(hào)量作為讀/寫信號(hào)量的基礎(chǔ)信號(hào)量。
在一個(gè)具體實(shí)施例中,讀取數(shù)據(jù)能夠多線程并發(fā)的訪問該數(shù)據(jù)區(qū),寫入數(shù)據(jù)的線程則獨(dú)占訪問該數(shù)據(jù)區(qū),只有當(dāng)前沒有讀者或者寫者占用該資源,寫信號(hào)量才能被獲取實(shí)現(xiàn)對(duì)數(shù)據(jù)的互斥保護(hù)。
在一個(gè)具體實(shí)施例中,當(dāng)調(diào)用VxWorks系統(tǒng)下創(chuàng)建讀/寫信號(hào)量的功能函數(shù)時(shí)通過中間件包裝實(shí)際調(diào)用RTX下的創(chuàng)建讀/寫信號(hào)量的功能函數(shù)。
在一個(gè)具體實(shí)施例中,寫者需要獲取信號(hào)量時(shí)調(diào)用VxWorks系統(tǒng)下寫者獲取信號(hào)量的功能函數(shù),在中間件內(nèi)實(shí)際調(diào)用的是RTX下的寫者獲取信號(hào)量的功能函數(shù)。
在一個(gè)具體實(shí)施例中,當(dāng)寫者釋放信號(hào)量時(shí)調(diào)用VxWorks系統(tǒng)下寫者釋放信號(hào)量的功能函數(shù),在中間件內(nèi)實(shí)際調(diào)用的是RTX下的寫者釋放信號(hào)量的功能函數(shù)。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于北京仿真中心,未經(jīng)北京仿真中心許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202011488188.0/2.html,轉(zhuǎn)載請(qǐng)聲明來源鉆瓜專利網(wǎng)。
- 用于在富含二氧化碳的空氣供應(yīng)下在液體培養(yǎng)基中生產(chǎn)胸膜炎肺炎放線桿菌毒素APXI或APCIII的過程
- 一種用于SCTP協(xié)議的低信息交互的多基站置
- 基于RTX實(shí)時(shí)擴(kuò)展子系統(tǒng)的PCI總線數(shù)據(jù)同步方法
- 一種活動(dòng)目錄數(shù)據(jù)同步至RTX的方法和裝置
- 一種基于RTX+DSP的多軸運(yùn)動(dòng)控制器通信系統(tǒng)
- 基于RTX的雙向通信軟件無線電實(shí)現(xiàn)裝置及方法
- 一種快速實(shí)現(xiàn)RTX控制系統(tǒng)與嵌入式控制系統(tǒng)的轉(zhuǎn)換裝置
- 逐層凝固制備RTx--M復(fù)合材料的方法、裝置和工藝
- 一種基于RTX實(shí)時(shí)系統(tǒng)的共享資源讀寫互斥方法
- 活的減毒的產(chǎn)RTX巴斯德氏菌科細(xì)菌
- 實(shí)時(shí)解碼系統(tǒng)與實(shí)時(shí)解碼方法
- 實(shí)時(shí)穩(wěn)定
- 實(shí)時(shí)監(jiān)控裝置、實(shí)時(shí)監(jiān)控系統(tǒng)以及實(shí)時(shí)監(jiān)控方法
- 實(shí)時(shí)或準(zhǔn)實(shí)時(shí)流傳輸
- 實(shí)時(shí)或準(zhǔn)實(shí)時(shí)流傳輸
- 實(shí)時(shí)通信方法和實(shí)時(shí)通信系統(tǒng)
- 實(shí)時(shí)更新
- 實(shí)時(shí)內(nèi)核
- 用于通信網(wǎng)絡(luò)的網(wǎng)絡(luò)設(shè)備及相關(guān)方法
- 實(shí)時(shí)量化方法及實(shí)時(shí)量化系統(tǒng)





