[發明專利]一種RTOS上的SMP的實時任務調度方法有效
| 申請號: | 201710750443.6 | 申請日: | 2017-08-28 |
| 公開(公告)號: | CN107562527B | 公開(公告)日: | 2020-12-18 |
| 發明(設計)人: | 韓輝;徐貴洲;焦進星 | 申請(專利權)人: | 北京翼輝信息技術有限公司 |
| 主分類號: | G06F9/48 | 分類號: | G06F9/48;G06F9/50 |
| 代理公司: | 北京東方匯眾知識產權代理事務所(普通合伙) 11296 | 代理人: | 張淑賢 |
| 地址: | 100080 北京市海淀區信*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 rtos smp 實時 任務 調度 方法 | ||
1.一種RTOS上的SMP的實時任務調度方法,其特征在于,包括:
S1當實時操作系統中斷完全退出或發生可能引發任務就緒或當前任務休眠的系統調用時,如果CPU-CORE的當前任務休眠,切換當前任務的工作狀態,然后進入步驟S2;
S2獲取需要運行的任務,并進入步驟S3,包括:
S201判斷CPU-CORE當前任務能否調度,若CPU-CORE當前任務能調度,進入步驟S202,反之,則進入步驟S3;
S202判斷CPU-CORE當前任務是否產生優先級卷繞,若CPU-CORE當前任務產生優先級卷繞,進入步驟S203;反之,進入步驟S3;
S203判斷CPU-CORE是否有候選任務,若CPU-CORE沒有候選任務,進入步驟S204,若CPU-CORE有候選任務,進入步驟S205;
S204更新CPU-CORE候選任務,然后進入步驟S210;
S205判斷CPU-CORE本地就緒表和全局就緒表是否為非空,若本地就緒表和全局就緒表為非空表,進入步驟S206,若本地就緒表和全局就緒表為空表,進入步驟S210;
S206判斷CPU-CORE候選任務是否擁有時間片,若CPU-CORE候選任務擁有時間片,進入步驟S207,反之,進入步驟S208;
S207判斷CPU-CORE候選任務的優先級是否小于本地就緒表和全局就緒表中最高優先級任務的優先級,若CPU-CORE候選任務的優先級小于本地就緒表和全局就緒表中最高優先級任務的優先級,進入步驟S209,反之,進入步驟S210;
S208判斷CPU-CORE候選任務的優先級是否小于或等于本地就緒表和全局就緒表中的最高優先級任務的優先級,若CPU-CORE候選任務的優先級小于或等于本地就緒表和全局就緒表中的最高優先級任務的優先級,進入步驟S209,反之,進入步驟S210;
S209重新選擇CPU-CORE候選任務,并進入步驟S210;
S210消除CPU-CORE當前任務的優先級卷繞標志;
S3任務調度,包括:
S31判斷CPU-CORE候選任務是否是CPU-CORE當前任務,若CPU-CORE候選任務不是CPU-CORE當前任務,進入步驟S32,反之,進入步驟S33;
S32保存CPU-CORE當前任務的CPU-CORE寄存器上下文信息到當前任務的棧空間,然后執行一次SMP調度通知,最后從CPU-CORE候選任務的棧空間中加載的上下文信息到CPU-CORE寄存器,然后進入步驟S34;
S33執行一次SMP調度通知,進入步驟S34;
S34任務調度完成。
2.根據權利要求1所述的一種RTOS上的SMP的實時任務調度方法,其特征在于,步驟S32或者步驟S33中的SMP調度通知包括以下三種策略:
快速調度策略:
當前CPU-CORE給其它所有的標記為產生優先級卷繞的CPU-CORE發送任務調度的核間中斷;
普通策略:
當前CPU-CORE給當前任務優先級最低的并且標記為產生優先級卷繞的一個CPU-CORE發送任務調度的核間中斷;
同步多線程均衡策略:
當前CPU-CORE給物理CPU處于空閑狀態的并且標記為產生優先級卷繞的一個CPU-CORE發送任務調度的核間中斷,如果不存在一個滿足條件的CPU-CORE,則按普通策略處理。
3.根據權利要求1所述的一種RTOS上的SMP的實時任務調度方法,其特征在于,全局就緒表只有一個,保留CPU-CORE本地就緒表的個數與CPU的邏輯核心個數相同。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京翼輝信息技術有限公司,未經北京翼輝信息技術有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201710750443.6/1.html,轉載請聲明來源鉆瓜專利網。





