[發(fā)明專利]一種空間確定的任務(wù)調(diào)度方法在審
| 申請?zhí)枺?/td> | 201310689411.1 | 申請日: | 2013-12-14 |
| 公開(公告)號: | CN104714834A | 公開(公告)日: | 2015-06-17 |
| 發(fā)明(設(shè)計)人: | 邱征;牛文生;田莉蓉;黃韜;王紅春;陳長勝;牟明;于峰 | 申請(專利權(quán))人: | 中國航空工業(yè)集團公司第六三一研究所 |
| 主分類號: | G06F9/46 | 分類號: | G06F9/46;G06F9/445;G06F11/07 |
| 代理公司: | 西安智邦專利商標代理有限公司 61211 | 代理人: | 姚敏杰 |
| 地址: | 710119 *** | 國省代碼: | 陜西;61 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 空間 確定 任務(wù) 調(diào)度 方法 | ||
技術(shù)領(lǐng)域
本發(fā)明屬于計算機操作系統(tǒng)平臺軟件領(lǐng)域,涉及一種空間確定的任務(wù)調(diào)度方法,尤其涉及一種任務(wù)調(diào)度器元素(任務(wù)、信號量等)的個數(shù)固定、句柄空間固定、代碼空間已經(jīng)數(shù)據(jù)空間確定等空間確定和錯誤檢查的恢復(fù)方法。
背景技術(shù)
嵌入式領(lǐng)域常用的操作系統(tǒng)有l(wèi)inux、ucOS、vxWorks等,這些操作系統(tǒng)提供了多任務(wù)、信號量等操作系統(tǒng)元素和API,但這些元素基本都可動態(tài)創(chuàng)建和維護,其個數(shù)不停的變化、句柄離散分布于內(nèi)存中,造成對這些操作系統(tǒng)元素的引用如果出現(xiàn)異常,難以檢查;尤其是其數(shù)據(jù)結(jié)構(gòu)區(qū)域一旦產(chǎn)生破壞,錯誤往往在應(yīng)用中蔓延到一定程度才被發(fā)現(xiàn)。除此之外,大部分操作系統(tǒng)對代碼和數(shù)據(jù)區(qū)的保護范圍都比較大,這當然是因為代碼可動態(tài)加載和內(nèi)存可動態(tài)分配造成的,但實際上大部分情況下應(yīng)用程序足夠確定,可以進一步確定代碼空間和數(shù)據(jù)空間,以便提高更精確的保護。
發(fā)明內(nèi)容
為了解決背景技術(shù)中存在的上述技術(shù)問題,本發(fā)明提供了一種可加強對非法指針的防范、及早發(fā)現(xiàn)和定位任務(wù)調(diào)度器核心數(shù)據(jù)的崩潰情況以及可進一步提高任務(wù)調(diào)度器平臺軟件的安全性的空間確定的任務(wù)調(diào)度方法。
本發(fā)明的技術(shù)解決方案是:本發(fā)明提供了一種空間確定的任務(wù)調(diào)度方法,其特殊之處在于:所述空間確定的任務(wù)調(diào)度方法包括以下步驟:
1)采用預(yù)先靜態(tài)定義的方式在編譯過程中確定代碼區(qū)和數(shù)據(jù)區(qū)空間尺寸;
2)經(jīng)過啟動加載過程加載到內(nèi)存后,靜態(tài)確定代碼區(qū)和數(shù)據(jù)區(qū)空間的起始物理地址和尺寸;
3)采用安全性保護機制對代碼區(qū)和數(shù)據(jù)區(qū)進行安全性保護,避免對代碼區(qū)和數(shù)據(jù)區(qū)的配置數(shù)據(jù)、映像文件以及中斷矢量表進行寫訪問;
4)對特定代碼區(qū)和數(shù)據(jù)區(qū)進行隔離,所述隔離包括以零起始的確定地址空間、任務(wù)控制塊、任務(wù)堆棧空間以及信號量控制塊;
5)采用中斷及服務(wù)例程以接管由于訪問觸發(fā)的異常,避免錯誤蔓延。
上述步驟1)的具體實現(xiàn)方式是:
1.1)采用宏定義代碼區(qū)和數(shù)據(jù)區(qū)的起始地址,且保證起始地址不為零;
1.2)源代碼使用到的所有變量在編譯鏈接的時候就能靜態(tài)定位代碼區(qū)和數(shù)據(jù)區(qū)到對應(yīng)的物理位置,并計算出代碼區(qū)和數(shù)據(jù)區(qū)的大小;所述源代碼使用到的所有變量包括數(shù)組、結(jié)構(gòu)都靜態(tài)確定或在任務(wù)的固定堆棧空間內(nèi)動態(tài)申請和釋放的變量;
1.3)映像文件從固態(tài)存儲載入內(nèi)存地址,啟動加載過程將代碼內(nèi)容加載到宏定義的代碼區(qū)域,把有初始化值的數(shù)據(jù)加載到宏定義的數(shù)據(jù)區(qū)域中;
1.4)代碼空間區(qū)域、中斷矢量/異常向量、數(shù)據(jù)區(qū)域按照位置以及大小由MMU控制訪問機制。
上述步驟1.4)中代碼空間區(qū)域通過MMU機制進行控制,以最小的MMU單元整數(shù)倍進行保護,代碼空間不再可寫;在啟動過程中,中斷矢量以及異常向量加載到物理位置,完成后,中斷矢量以及異常向量通過MMU機制進行控制,以最小的MMU單元整數(shù)倍進行保護,該空間不可再寫;數(shù)據(jù)區(qū)域的位置和大小通過MMU機制進行控制,以最小的MMU單元整數(shù)倍進行保護,數(shù)據(jù)區(qū)可讀寫,但非數(shù)據(jù)區(qū)的內(nèi)存其它空間不再打開任何讀寫窗口,以0為起始的內(nèi)存空間不再允許數(shù)據(jù)讀取,只能代碼讀取。
上述數(shù)據(jù)區(qū)域包括有初始化值的data和初始化值默認為0的bss區(qū)。
上述步驟4)的具體實現(xiàn)方式是:
4.1)對特定代碼區(qū)和數(shù)據(jù)區(qū)進行區(qū)域保護;
4.2)對特定代碼區(qū)和數(shù)據(jù)區(qū)進行任務(wù)調(diào)度器元素的組織和保護;所述任務(wù)調(diào)度器元素包括任務(wù)調(diào)度器的最大任務(wù)個數(shù)及其堆棧大小、最大信號量個數(shù)、任務(wù)控制塊、任務(wù)堆棧空間以及信號量控制塊。
上述步驟4.1)的具體實現(xiàn)方式是:
以零起始的一定大小的空間在任務(wù)調(diào)度器初始化全完成后不可數(shù)據(jù)訪問,應(yīng)用代碼如果有缺陷,經(jīng)常出現(xiàn)的零指針訪問會立即觸發(fā)MMU異常,異常例程會定位出錯的代碼位置和對應(yīng)的任務(wù),對異常進行記錄,并調(diào)用任務(wù)注冊的異常處理函數(shù)以便進行狀態(tài)切換以及錯誤恢復(fù)。
上述步驟4.2)的具體實現(xiàn)方式是:
所述任務(wù)調(diào)度器的最大任務(wù)個數(shù)及其堆棧大小、最大信號量個數(shù)由宏定義靜態(tài)確定;所述任務(wù)控制塊、任務(wù)堆棧空間以及信號量控制塊結(jié)構(gòu)由靜態(tài)的結(jié)構(gòu)數(shù)組建立;
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于中國航空工業(yè)集團公司第六三一研究所;,未經(jīng)中國航空工業(yè)集團公司第六三一研究所;許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201310689411.1/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 旅游車輛調(diào)度監(jiān)控方法及其系統(tǒng)
- 一種用戶隊列調(diào)度的方法和裝置
- 一種資源調(diào)度的方法、裝置和過濾式調(diào)度器
- 一種調(diào)度方法和裝置
- 一種調(diào)度終端動態(tài)切換調(diào)度組歸屬關(guān)系的方法及裝置
- 用戶調(diào)度方法、裝置、基站和存儲介質(zhì)
- 一種食材的調(diào)度系統(tǒng)和方法
- 一種資源調(diào)度的方法、裝置和過濾式調(diào)度器
- 任務(wù)調(diào)度方法、裝置、設(shè)備及存儲介質(zhì)
- 一種自動化調(diào)度系統(tǒng)和調(diào)度方法





