[發(fā)明專利]浮點上下文切換方法在審
| 申請?zhí)枺?/td> | 201310637429.7 | 申請日: | 2013-11-28 |
| 公開(公告)號: | CN104679585A | 公開(公告)日: | 2015-06-03 |
| 發(fā)明(設(shè)計)人: | 張東;葉宏;韓煒;時磊;李運喜;任曉瑞;陳曉磊;衛(wèi)一芃;曹原;仝敏 | 申請(專利權(quán))人: | 中國航空工業(yè)集團(tuán)公司第六三一研究所 |
| 主分類號: | G06F9/48 | 分類號: | G06F9/48;G06F9/46 |
| 代理公司: | 西安智邦專利商標(biāo)代理有限公司 61211 | 代理人: | 姚敏杰 |
| 地址: | 710119 *** | 國省代碼: | 陜西;61 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 浮點 上下文 切換 方法 | ||
技術(shù)領(lǐng)域
本發(fā)明屬于計算機(jī)軟件控制領(lǐng)域,涉及一種浮點上下文切換方法。
背景技術(shù)
在機(jī)載嵌入式實時操作系統(tǒng)中,用戶通常需要把浮點任務(wù)和非浮點任務(wù)配合使用,但是如果操作系統(tǒng)對每一個任務(wù)均的浮點上下文均進(jìn)行切換則會造成大量的系統(tǒng)開銷,影響系統(tǒng)性能,需要提出新的浮點任務(wù)和非浮點任務(wù)切換方法,為混合任務(wù)環(huán)境下任務(wù)的高效切換提供可能。
發(fā)明內(nèi)容
為了解決背景技術(shù)中存在的浮點任務(wù)和非浮點任務(wù)混和調(diào)度的問題,本發(fā)明提供了一種可提高任務(wù)切換的性能的浮點上下文切換方法。
本發(fā)明的技術(shù)解決方案是:本發(fā)明提供了一種浮點上下文切換方法,其特殊之處在于:所述浮點上下文切換方法包括以下步驟:
1)創(chuàng)建任務(wù);所述任務(wù)包括前繼任務(wù)以及后繼任務(wù);所述前繼任務(wù)是被切換出處理器的任務(wù);所述后繼任務(wù)是切換進(jìn)處理器的任務(wù);
2)根據(jù)用戶輸入的參數(shù)判斷步驟1)中創(chuàng)建的任務(wù)是否是浮點任務(wù);若是,申請浮點上下文空間并將該空間的首地址記錄在任務(wù)控制塊中的成員fpContext中;若否,則設(shè)置任務(wù)控制塊中的成員fpContext為NULL;
3)判斷前繼任務(wù)和后繼任務(wù)的類型;
4)根據(jù)前繼任務(wù)和后繼任務(wù)的類型對浮點上下文進(jìn)行切換。
上述步驟3)中前繼任務(wù)和后繼任務(wù)的類型包括:浮點任務(wù)切換到浮點任務(wù)、浮點任務(wù)切換到非浮點任務(wù)、非浮點任務(wù)切換到浮點任務(wù)以及非浮點任務(wù)切換到非浮點任務(wù)。
上述步驟3)中的類型是浮點任務(wù)切換到浮點任務(wù)時,所述步驟4)的具體實現(xiàn)方式是:對浮點任務(wù)的上下文進(jìn)行保存和恢復(fù)。
上述步驟3)中的類型是浮點任務(wù)切換到非浮點任務(wù)時,所述步驟4)的具體實現(xiàn)方式是:暫時不進(jìn)行浮點上下文的保存,將前繼任務(wù)控制塊中的成員fpContext傳遞給后繼任務(wù),僅將浮點任務(wù)的浮點上下文地址傳遞給了非浮點任務(wù),將該保存工作推遲到切換浮點任務(wù)時才進(jìn)行。
上述步驟4)中將前繼任務(wù)控制塊中的成員fpContext傳遞給后繼任務(wù)的具體實現(xiàn)方式是將前繼任務(wù)控制塊中的成員fpContext進(jìn)行標(biāo)記后賦值給后繼任務(wù)控制塊中的成員fpContext。
上述步驟3)中的類型是非浮點任務(wù)切換到浮點任務(wù)時,所述步驟4)的具體實現(xiàn)方式是:
4.1)判斷前繼任務(wù)控制塊中的成員fpContext是否為NULL;若是,則進(jìn)行步驟4.2);若否,則進(jìn)行步驟4.3);
4.2)在該任務(wù)運行前,沒有運行過浮點任務(wù):不需要進(jìn)行浮點上下文的保存工作,僅需要恢復(fù)浮點上下文;
4.3)在該任務(wù)運行前運行過浮點任務(wù):如果前繼任務(wù)的浮點上下文與后繼任務(wù)的浮點上下文不一致,則將浮點上下文保存到前繼任務(wù)控制塊所傳遞的上下文地址中,并清除前繼任務(wù)控制塊中的標(biāo)記,恢復(fù)后繼任務(wù)的浮點上下文,否則清除前繼任務(wù)的浮點上下文。
上述步驟3)中的類型是非浮點任務(wù)切換到非浮點任務(wù)時,所述步驟4)的具體實現(xiàn)方式是:
4.1)判斷前繼任務(wù)控制塊中的成員fpContext是否是NULL;若是,則進(jìn)行步驟4.2);若否,則進(jìn)行步驟4.3);
4.2)在該任務(wù)運行前,沒有運行過浮點任務(wù);既不需要進(jìn)行浮點上下文保存也不需要進(jìn)行浮點上下文恢復(fù);
4.3)在該任務(wù)運行前運行過浮點任務(wù),將前繼任務(wù)的浮點上下文傳遞到后繼任務(wù)。
上述步驟4.3)中將前繼任務(wù)的浮點上下文傳遞到后繼任務(wù)的具體實現(xiàn)方式是將前繼任務(wù)控制塊中的成員fpContext的值賦給后繼任務(wù)控制塊中的成員fpContext,然后清除前繼任務(wù)控制塊中的fpContext。
本發(fā)明的優(yōu)點是:
本發(fā)明是僅在需要切換浮點上下文時進(jìn)行切換,即僅在切換浮點任務(wù)時才切換浮點上下文。具體來說就是如果被切換的是非浮點任務(wù),那么認(rèn)為在該任務(wù)中不會破壞浮點上下文,即不需要保存浮點上下文,直到切換到浮點任務(wù)時才進(jìn)行浮點上下文的保存和恢復(fù)工作,有效的提高了操作系統(tǒng)任務(wù)切換的性能。
附圖說明
圖1是本發(fā)明所提供方法的流程示意圖。
具體實施方式
在任務(wù)創(chuàng)建時,判斷用戶輸入的參數(shù),如果是浮點任務(wù),那么申請浮點上下文空間并將該空間的首地址記錄在任務(wù)控制塊中的成員fpContext中;否則設(shè)置該成員為NULL。
在任務(wù)切換時(稱被切換出處理器的任務(wù)為前繼任務(wù),稱切換進(jìn)處理器的任務(wù)為為后繼任務(wù)),可能會發(fā)生以下四種情況:
1、浮點任務(wù)切換到浮點任務(wù):
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于中國航空工業(yè)集團(tuán)公司第六三一研究所;,未經(jīng)中國航空工業(yè)集團(tuán)公司第六三一研究所;許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201310637429.7/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。





