亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

內(nèi)存分配、中斷消息處理的方法和裝置的制作方法

文檔序號:6358119閱讀:134來源:國知局
專利名稱:內(nèi)存分配、中斷消息處理的方法和裝置的制作方法
技術(shù)領(lǐng)域
本發(fā)明屬于計(jì)算機(jī)存儲控制領(lǐng)域,涉及計(jì)算機(jī)存儲控制領(lǐng)域,尤其涉及一種內(nèi)存分配、中斷消息處理的方法和裝置。
背景技術(shù)
現(xiàn)有技術(shù)對隊(duì)列的操作都按照FIFO (先進(jìn)先出)的方式來進(jìn)行,即只在隊(duì)列的隊(duì)首進(jìn)行刪除,在隊(duì)列的隊(duì)尾進(jìn)行插入?,F(xiàn)有的中斷消息處理方式如下
當(dāng)中斷觸發(fā)產(chǎn)生對應(yīng)的中斷消息時,在內(nèi)存中為該中斷消息分配一個存儲空間; 把該中斷消息加入待處理的消息隊(duì)列中; 消息處理完后,釋放掉該中斷消息所占用的內(nèi)存空間。中斷消息包括按鍵消息、優(yōu)盤插入消息、優(yōu)盤拔出消息、SD (Secure Digital Memory Card,安全數(shù)碼卡)卡插入消息、SD卡拔出消息、復(fù)位消息。中斷消息都是比較簡潔的代碼,占據(jù)的內(nèi)存空間不大。如圖1所示,內(nèi)存中存儲有文件A、中斷消息B。文件C要存入內(nèi)存時,由于內(nèi)存空間D無法存儲文件C,所以文件C存儲在內(nèi)存空間E。內(nèi)存空間D就成了不可用的空閑內(nèi)存, 即通常所述的內(nèi)存碎片??臻e內(nèi)存以小而不連續(xù)方式出現(xiàn)在不同的位置。如果內(nèi)存中碎片過多,會降低計(jì)算機(jī)的運(yùn)行速度。

發(fā)明內(nèi)容
本發(fā)明的實(shí)施例提供一種內(nèi)存分配、中斷消息處理的方法和裝置,達(dá)到減少內(nèi)存碎片的目的。為達(dá)到上述目的,本發(fā)明的實(shí)施例采用如下技術(shù)方案 一種內(nèi)存分配的方法,包括
在內(nèi)存中,為中斷消息分配消息存儲空間; 將消息存儲空間分成至少兩段連續(xù)的消息存儲單元; 在內(nèi)存中,為消息存儲單元分配地址存儲空間; 將消息存儲單元的地址保存到地址存儲空間; 構(gòu)造空的處理隊(duì)列用來接收存放中斷消息。一種中斷消息處理的方法,包括
接收中斷消息,并判斷地址存儲空間中是否有空閑地址單元; 如果地址存儲空間中有空閑地址單元,則將中斷消息保存到消息存儲單元; 將所述消息存儲單元的地址保存到處理隊(duì)列; 在地址存儲空間中,清除所述消息存儲單元的地址。一種內(nèi)存分配的裝置,包括
消息存儲空間分配模塊用于在內(nèi)存中,為中斷消息分配消息存儲空間;消息存儲單元劃分模塊用于將消息存儲空間分成至少兩段連續(xù)的消息存儲單元; 地址存儲空間分配模塊用于在內(nèi)存中,為消息存儲單元分配地址存儲空間; 地址保存模塊用于將消息存儲單元的地址保存到地址存儲空間。一種中斷消息處理的方法,包括 接收模塊用于接收中斷消息;
第一判斷模塊用于判斷地址存儲空間中是否有空閑地址;
中斷消息保存模塊如果第一判斷模塊判斷地址存儲空間中有空閑地址,則將中斷消息保存到消息存儲單元;
第一保存模塊用于將所述消息存儲單元的地址保存到處理隊(duì)列; 地址清除模塊用于在地址存儲空間中,清除所述消息存儲單元的地址。本發(fā)明實(shí)施例提供的內(nèi)存分配、中斷消息處理的方法和裝置,通過在內(nèi)存中集中為中斷消息分配消息存儲空間,并將該消息存儲空間劃分為至少兩個消息存儲單元;避免內(nèi)存中某個區(qū)域由于被中斷消息占據(jù)后,該區(qū)域剩余部分分配不出去,導(dǎo)致產(chǎn)生內(nèi)存碎片的問題。本發(fā)明實(shí)施例為所述消息存儲單元分配地址存儲空間;通過消息存儲單元和地址存儲空間的循環(huán)使用,更有效的利用內(nèi)存空間,加快計(jì)算機(jī)的運(yùn)行速度。


圖1為內(nèi)存中碎片產(chǎn)生的示意圖; 圖2為內(nèi)存分配的方法的流程圖3為中斷消息處理的方法的流程圖4為釋放處理隊(duì)列的流程圖5為本發(fā)明內(nèi)存分配的示意圖6為處理單個中斷消息時內(nèi)存的示意圖7為處理單個中斷消息時中斷消息處理完成后內(nèi)存的示意圖8為處理多個中斷消息時內(nèi)存的示意圖9為處理多個中斷消息時中斷消息處理完成后內(nèi)存的示意圖10為內(nèi)存分配的裝置結(jié)構(gòu)示意圖11為中斷信息處理的裝置結(jié)構(gòu)示意圖。
具體實(shí)施例方式為了解決內(nèi)存碎片過多影響計(jì)算機(jī)運(yùn)算速度的問題,本發(fā)明提供一種內(nèi)存分配、 中斷消息處理的方法和裝置,下面將分別進(jìn)行介紹。一種內(nèi)存分配的方法,如圖2所示,包括 步驟200,在內(nèi)存中,為中斷消息分配消息存儲空間。如圖5所示,在內(nèi)存中分配固定的消息存儲空間。步驟201,將消息存儲空間分成至少兩段連續(xù)的消息存儲單元。將所述消息存儲空間分成至少兩段連續(xù)的消息存儲單元,例如可分為10個消息存儲單元。由于中斷消息包括按鍵消息、移動存儲設(shè)備插入消息、移動存儲設(shè)備拔出消息和復(fù)位消息,移動存儲設(shè)備包括優(yōu)盤和安全數(shù)碼卡,且每一種中斷消息所占空間很少,故每一個單元的大小可根據(jù)需要進(jìn)行分配,使每一個單元中可以存儲一個中斷消息。步驟202,在內(nèi)存中,為消息存儲單元分配地址存儲空間。步驟203,將消息存儲單元的地址保存到地址存儲空間。每一個消息存儲單元擁有一個確定的地址,將消息存儲單元的地址保存到地址存儲空間,例如,如圖5所示,消息存儲單元1到10的地址對應(yīng)保存到地址存儲空間A J中, 消息存儲單元的地址與A^J地址存儲空間的對應(yīng)關(guān)系如圖5所示。處理器可根據(jù)該地址搜索到對應(yīng)消息存儲單元,并獲取其中所保存的中斷消息。根據(jù)所分配固定的消息存儲單元和地址存儲空間,在處理中斷消息時,將中斷消息存儲到固定的位置,從而減少因在內(nèi)存中隨機(jī)存儲中斷消息而產(chǎn)生的內(nèi)存碎片。步驟204,構(gòu)造空的處理隊(duì)列接收存放中斷消息??盏奶幚黻?duì)列和消息地址存儲空間的大小可以根據(jù)消息存儲空間的大小而改變, 例如,當(dāng)消息存儲空間的大小定義為N時,消息地址存儲隊(duì)列和處理隊(duì)列的最大值也為N, 因?yàn)榇鎯臻g的地址只能在兩個隊(duì)列間循環(huán)存儲,所以,消息地址存儲隊(duì)列和處理隊(duì)列元素的總和為N。為提高利用內(nèi)存空間的處理中斷消息的效率,加快計(jì)算機(jī)的運(yùn)行速度,如圖3所示,本發(fā)明提出一種中斷消息處理的方法,包括
步驟300,接收中斷消息。當(dāng)發(fā)生中斷時,處理器接收到該中斷消息。步驟301,判斷地址存儲空間中是否有空閑地址。處理器判斷在地址存儲空間中,是否存在未使用的消息存儲單元的地址,即可確定消息存儲單元中是否存在可用的空間來存儲中斷消息,例如地址存儲空間A中存有消息存儲單元1的地址0x81658DA8,即可確定消息存儲單元1可保存中斷消息。步驟302,如果地址存儲空間中有空閑地址,將中斷消息保存到消息存儲單元。當(dāng)確定地址存儲空間中有空閑地址時,如圖6所示,處理器將接收到的中斷消息保存到消息存儲單元中。如果地址存儲空間中無空閑地址,則可確定所有消息存儲單元正在用于中斷消息的處理,此時無法將處理器所獲取的中斷消息保存到消息存儲單元中,則將該中斷消息丟棄。步驟303,將所述消息存儲單元的地址保存到處理隊(duì)列。將中斷消息存儲到消息存儲單元后,地址存儲空間將存儲該中斷消息的消息存儲單元的地址保存到處理隊(duì)列中,如將中斷消息存儲到消息存儲單元1中,并將地址存儲空間A中所保存的消息存儲單元1的地址0x81657DA8存儲到處理隊(duì)列中。步驟304,在地址存儲空間中,清除所述消息存儲單元的地址。當(dāng)消息存儲單元的地址保存到處理隊(duì)列后,將地址存儲空間中所保存的該地址清除,并將余下的地址向隊(duì)首推送。處理器對處理隊(duì)列進(jìn)行掃描,當(dāng)發(fā)現(xiàn)處理隊(duì)列中存儲有消息存儲單元的地址時,則根據(jù)中斷消息的類型,對中斷進(jìn)行相應(yīng)處理,例如當(dāng)中斷消息為按鍵消息時,則處理器獲取所輸入的按鍵內(nèi)容。步驟400,判斷所述中斷消息是否處理完畢。處理器判斷是否處理完隊(duì)首的中斷消息。
6
步驟401,如果中斷消息處理完畢,將所述中斷消息對應(yīng)的消息存儲單元的地址保存到地址存儲空間隊(duì)尾。當(dāng)完成中斷消息的處理后,將消息存儲單元的地址存儲至地址存儲空間的隊(duì)尾, 進(jìn)行循環(huán)使用,例如,如圖7所示,將消息存儲單元1的地址保存到地址存儲空間隊(duì)尾處。步驟402,處理隊(duì)列釋放所述消息存儲單元的地址。當(dāng)?shù)刂芬汛娣诺降刂反鎯臻g的隊(duì)尾后,釋放處理隊(duì)列中所述消息存儲單元的地址,即完成對于該中斷消息的處理。消息存儲單元中所存儲的中斷消息并不釋放,當(dāng)下次需要使用該消息存儲單元時,直接將前一中斷消息覆蓋。此時如果再次發(fā)生中斷,則將中斷消息存儲至消息存儲單元2中,將對應(yīng)的地址存儲空間B中所存儲的消息存儲單元2的地址0x81657DB8存儲至處理隊(duì)列的隊(duì)首,通過處理器對中斷消息進(jìn)行處理。當(dāng)?shù)刂反鎯臻gf J都被使用過一次后,則下一個中斷消息將存儲到消息存儲單元1中,并再次將地址存儲空間A中所存儲的消息存儲單元1的地址 0x81657DA8保存到處理隊(duì)列,等待處理器進(jìn)行中斷處理,以此方式循環(huán)使用消息存儲單元和地址存儲空間,完成對于中斷消息的處理。當(dāng)同時有多個中斷需要同時進(jìn)行處理時,如圖8所示,地址存儲空間按順序?qū)⒍鄠€消息存儲單元的地址存儲到處理隊(duì)列中,即處理器通過對于處理隊(duì)列的掃描便可知有多個中斷消息需要處理,例如處理隊(duì)列中保存有消息存儲單元廣4的地址;處理器根據(jù)處理隊(duì)列中所存儲的消息存儲單元的地址,從處理隊(duì)列的隊(duì)首到隊(duì)尾逐個處理消息存儲單元中所對應(yīng)的中斷消息,并將已完成處理的消息存儲空間的地址添加到地址存儲空間的隊(duì)尾, 如圖9所示。與上述一種內(nèi)存分配、中斷消息處理的方法相對應(yīng),本發(fā)明還提供了一種內(nèi)存分配、中斷消息處理的裝置。一種內(nèi)存分配的裝置,如圖10所示,包括
消息存儲空間分配模塊用于在內(nèi)存中,為中斷消息分配消息存儲空間; 消息存儲單元劃分模塊用于將消息存儲空間分成至少兩段連續(xù)的消息存儲單元; 地址存儲空間分配模塊用于在內(nèi)存中,為消息存儲單元分配地址存儲空間; 地址保存模塊用于將消息存儲單元的地址保存到地址存儲空間。一種中斷消息處理的裝置,如圖11所示,包括 接收模塊用于接收中斷消息;
第一判斷模塊用于判斷地址存儲空間中是否有空閑地址;
中斷消息保存模塊如果第一判斷模塊判斷地址存儲空間中有空閑地址,則將中斷消息保存到消息存儲單元;
丟棄模塊如果第一判斷模塊判斷地址存儲空間中沒有空閑地址,則丟棄中斷消息。第一保存模塊用于將所述消息存儲單元的地址保存到處理隊(duì)列; 地址清除模塊用于在地址存儲空間中,清除所述消息存儲單元的地址。第二判斷模塊用于判斷所述中斷消息是否處理完畢;
第二保存模塊如果第二判斷模塊判斷中斷消息處理完畢,將所述中斷消息對應(yīng)的消息存儲單元的地址保存到地址存儲空間隊(duì)尾;
釋放模塊用于處理隊(duì)列釋放所述消息存儲單元的地址。
所述中斷消息,包括按鍵消息、移動存儲設(shè)備插入消息、移動存儲設(shè)備拔出消息和復(fù)位消息,其中,移動存儲設(shè)備包括優(yōu)盤和安全數(shù)碼卡。本發(fā)明實(shí)施例提供的內(nèi)存分配、中斷消息處理的方法和裝置,通過在內(nèi)存中集中為中斷消息分配消息存儲空間,并將該消息存儲空間劃分為至少兩個消息存儲單元,避免了內(nèi)存中某個區(qū)域由于被中斷消息占據(jù)后,該區(qū)域剩余部分分配不出去,導(dǎo)致產(chǎn)生內(nèi)存碎片的問題,為所述消息存儲單元分配地址存儲空間;通過消息存儲單元和地址存儲空間的循環(huán)使用,更有效的利用內(nèi)存空間,加快計(jì)算機(jī)的運(yùn)行速度。以上所述,僅為本發(fā)明的具體實(shí)施方式
,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)以所述權(quán)利要求的保護(hù)范圍為準(zhǔn)。
權(quán)利要求
1.一種內(nèi)存分配的方法,其特征在于,包括 在內(nèi)存中,為中斷消息分配消息存儲空間;將消息存儲空間分成至少兩段連續(xù)的消息存儲單元; 在內(nèi)存中,為消息存儲單元分配地址存儲空間; 將消息存儲單元的地址保存到地址存儲空間; 構(gòu)造空的處理隊(duì)列用來接收存放中斷消息。
2.—種中斷消息處理的方法,其特征在于,包括接收中斷消息,并判斷地址存儲空間中是否有空閑地址單元; 如果地址存儲空間中有空閑地址單元,則將中斷消息保存到消息存儲單元; 將所述消息存儲單元的地址保存到處理隊(duì)列; 在地址存儲空間中,清除所述消息存儲單元的地址。
3.根據(jù)權(quán)利要求2所述的中斷消息處理的方法,其特征在于,包括 如果地址存儲空間沒有空閑地址單元,則丟棄中斷消息。
4.根據(jù)權(quán)利要求2所述的中斷消息處理的方法,其特征在于,還包括 判斷所述中斷消息是否處理完畢;如果中斷消息處理完畢,將所述中斷消息對應(yīng)的消息存儲單元的地址保存到地址存儲空間隊(duì)尾;處理隊(duì)列釋放所述消息存儲單元的地址。
5.根據(jù)權(quán)利要求2所述的中斷消息處理的方法,其特征在于,所述中斷消息,包括按鍵消息、移動存儲設(shè)備插入消息、移動存儲設(shè)備拔出消息和復(fù)位消息。
6.一種內(nèi)存分配的裝置,其特征在于,包括消息存儲空間分配模塊用于在內(nèi)存中,為中斷消息分配消息存儲空間; 消息存儲單元劃分模塊用于將消息存儲空間分成至少兩段連續(xù)的消息存儲單元; 地址存儲空間分配模塊用于在內(nèi)存中,為消息存儲單元分配地址存儲空間; 地址保存模塊用于將消息存儲單元的地址保存到地址存儲空間。
7.—種中斷消息處理的裝置,其特征在于,包括 接收模塊用于接收中斷消息;第一判斷模塊用于判斷地址存儲空間中是否有空閑地址;中斷消息保存模塊如果第一判斷模塊判斷地址存儲空間中有空閑地址,則將中斷消息保存到消息存儲單元;第一保存模塊用于將所述消息存儲單元的地址保存到處理隊(duì)列; 地址清除模塊用于在地址存儲空間中,清除所述消息存儲單元的地址。
8.根據(jù)權(quán)利要求7所述的中斷消息處理的裝置,其特征在于,包括丟棄模塊如果第一判斷模塊判斷地址存儲空間中沒有空閑地址,則丟棄中斷消息。
9.根據(jù)權(quán)利要求7所述的中斷消息處理的裝置,其特征在于,還包括 第二判斷模塊用于判斷所述中斷消息是否處理完畢;第二保存模塊如果第二判斷模塊判斷中斷消息處理完畢,則將所述中斷消息對應(yīng)的消息存儲單元的地址保存到地址存儲空間隊(duì)尾;釋放模塊用于處理隊(duì)列釋放所述消息存儲單元的地址。
10.根據(jù)權(quán)利要求7所述的中斷消息處理的裝置,其特征在于,所述中斷消息,包括按鍵消息、移動存儲設(shè)備插入消息、移動存儲設(shè)備拔出消息和復(fù)位消息。
全文摘要
本發(fā)明公開了一種內(nèi)存分配、中斷消息處理的方法和裝置,屬于計(jì)算機(jī)存儲控制領(lǐng)域,解決了隊(duì)列使用中內(nèi)存碎片過多影響計(jì)算機(jī)運(yùn)算速度的問題。一種內(nèi)存分配的方法,包括在內(nèi)存中,為中斷消息分配消息存儲空間;將消息存儲空間分成至少兩段連續(xù)的消息存儲單元;在內(nèi)存中,為消息存儲單元分配地址存儲空間;將消息存儲單元的地址保存到地址存儲空間;構(gòu)造空的處理隊(duì)列用來接收存放中斷消息。一種中斷消息處理的方法,包括接收中斷消息;判斷地址存儲空間中是否有空閑地址;如果地址存儲空間中有空閑地址,則將中斷消息保存到消息存儲單元;將所述消息存儲單元的地址保存到處理隊(duì)列;在地址存儲空間中,清除所述消息存儲單元的地址。
文檔編號G06F9/48GK102163176SQ20111009498
公開日2011年8月24日 申請日期2011年4月15日 優(yōu)先權(quán)日2011年4月15日
發(fā)明者熊中柱 申請人:漢王科技股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1