[發(fā)明專利]上下文信息管理方法及系統有效
| 申請?zhí)枺?/td> | 201310589625.1 | 申請日: | 2013-11-20 |
| 公開(公告)號: | CN103593606A | 公開(公告)日: | 2014-02-19 |
| 發(fā)明(設計)人: | 張陽;劉博;王載瓊 | 申請(專利權)人: | 北京經緯恒潤科技有限公司 |
| 主分類號: | G06F21/52 | 分類號: | G06F21/52;G06F12/02 |
| 代理公司: | 北京集佳知識產權代理有限公司 11227 | 代理人: | 魏曉波 |
| 地址: | 100101 北京*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 上下文 信息管理 方法 系統 | ||
技術領域
本申請涉及嵌入式系統技術領域,特別是涉及一種實時操作系統中的上下文信息管理方法及系統。
背景技術
目前,嵌入式電子行業(yè)多采用嵌入式實時操作系統(以下簡稱操作系統)來開發(fā)和設計不同用途的嵌入式控制器。操作系統的核心功能是任務調度,即根據任務優(yōu)先級管理系統中所有任務的狀態(tài)轉換和執(zhí)行順序。操作系統進行調度時,將這一時刻所有處于就緒狀態(tài)的任務依據優(yōu)先級進行仲裁,優(yōu)先級最高的任務將進入到運行狀態(tài)開始執(zhí)行。同一時間操作系統只能有一個任務處于運行狀態(tài)。操作系統在進行調度時,如果已經有任務處于運行狀態(tài),那么處于運行狀態(tài)的任務也將參與任務調度。若這一時刻處于就緒狀態(tài)的任務中有優(yōu)先級高于當前處于運行狀態(tài)的任務,當前處于運行狀態(tài)的任務將被高優(yōu)先級的任務搶占,返回到就緒狀態(tài)中,高優(yōu)先級的任務則進入到運行狀態(tài)開始執(zhí)行。被搶占的任務直到下一次變?yōu)橄到y中優(yōu)先級最高的任務時,才會從就緒狀態(tài)返回到運行狀態(tài),從之前被搶占的位置繼續(xù)執(zhí)行。在任務發(fā)生搶占的過程中,由于被搶占的任務無法繼續(xù)運行,所以需要保存被搶占的任務繼續(xù)運行所需要的上下文信息。
任務運行過程中的臨時數據和任務切換過程中的上下文信息都是保存在堆棧中,因此,需要用戶在分配任務堆棧的容量時,既要了解保存任務執(zhí)行過程中的臨時數據需要多少堆棧空間,同時要了解保存任務的上下文信息需要多少堆棧空間。對于前者,用戶在任務中添加應用程序時比較容易統計,后者由于與芯片類型和操作系統本身的軟件實現強相關,用戶很難對其做出正確預估,在這種情況下,用戶在使用操作系統時,容易造成由于對任務堆棧的容量分配不足導致發(fā)生任務堆棧溢出。堆棧溢出是指需要在堆棧中保存的內容總量大于堆棧總的容量。當任務堆棧發(fā)生溢出時,超出堆棧總容量的上下文信息就無法正常保存和重新裝載了。
因此,如何降低操作系統在使用任務堆棧時發(fā)生堆棧溢出的風險成為亟待解決的問題。
發(fā)明內容
為解決上述技術問題,本申請實施例提供一種上下文信息管理方法及系統,以降低操作系統在使用任務堆棧時發(fā)生堆棧溢出的風險。
技術方案如下:
一種上下文信息管理方法,所述上下文信息的存儲區(qū)域被平均劃分為若干存儲塊,所述存儲塊的大小依據任務的上下文信息的數據量確定,其中,所有未被上下文信息占用的存儲塊構成第一鏈表,所有被上下文信息占用的存儲塊構成第二鏈表;所述方法包括:
當需要保存上下文信息時,將所述上下文信息存儲至所述第一鏈表表頭的存儲塊中;
將存儲所述上下文信息的第一鏈表表頭的存儲塊掛載至所述第二鏈表的表頭;
記錄存儲所述上下文信息的存儲塊的地址。
上述方法,優(yōu)選的,還包括:
當需要裝載上下文信息時,依據待裝載上下文信息所在的存儲塊的地址,在所述第二鏈表中查找存儲所述待裝載上下文信息的存儲塊;
從查找到的存儲塊中讀取上下文信息,并將讀取的上下文信息裝載到操作系統中;
將上下文信息被讀取后的存儲塊掛載到所述第一鏈表的表頭。
上述方法,優(yōu)選的,所述存儲塊被劃分為若干子存儲塊,所述子存儲塊的個數大于或等于所述上下文信息的類型數;
所述將上下文信息存儲至所述第一鏈表的表頭的存儲塊中包括:
按照預設的各類上下文信息的生成位置與子存儲塊的對應關系,確定與所述各類上下文信息的生成位置所對應的子存儲塊;
將所述各類上下文信息存儲至所確定的相應的子存儲塊中。
上述方法,優(yōu)選的,還包括:
當需要裝載上下文信息時,依據待裝載上下文信息的存儲地址,在所述第二鏈表中查找存儲所述待裝載上下文信息的存儲塊;
從查找到的存儲塊中讀取各類上下文信息;
按照預設的各類上下文信息的生成位置與子存儲塊的對應關系,將讀取的各類上下文信息裝載至所述各類上下文信息的生成位置;
將上下文信息被讀取后的存儲塊掛載至所述第一鏈表的表頭。
一種上下文信息管理系統,所述上下文信息的存儲區(qū)域被平均劃分為若干存儲塊,所述存儲塊的大小依據任務的上下文信息的數據量確定,其中,所有未被上下文信息占用的存儲塊構成第一鏈表,所有被上下文信息占用的存儲塊構成第二鏈表;所述系統包括:
存儲模塊,用于當需要保存上下文信息時,將所述上下文信息存儲至所述第一鏈表表頭的存儲塊中;
第一掛載模塊,用于將存儲所述上下文信息的第一鏈表表頭的存儲塊掛載至所述第二鏈表的表頭;
上述系統,優(yōu)選的,還包括:
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京經緯恒潤科技有限公司,未經北京經緯恒潤科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業(yè)授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201310589625.1/2.html,轉載請聲明來源鉆瓜專利網。





