1.一種動(dòng)態(tài)堆棧內(nèi)存管理方法,其特征在于,所述方法包括:
確定當(dāng)前任務(wù)的堆??臻g的堆棧指針位置至堆??臻g頂部位置之間的空閑內(nèi)存;
如果所述空閑內(nèi)存大于預(yù)置閾值,則釋放所述堆棧指針位置至所述堆??臻g頂部位置之間的內(nèi)存頁;
將所述堆棧指針位置所在內(nèi)存頁的起始位置重置為堆??臻g頂部位置。
2.如權(quán)利要求1所述的方法,其特征在于,所述確定當(dāng)前任務(wù)的堆??臻g的堆棧指針位置至堆棧空間頂部位置之間的空閑內(nèi)存,包括:
每隔預(yù)置時(shí)長獲取所述當(dāng)前任務(wù)的堆??臻g的堆棧指針位置和堆棧空間頂部位置;
計(jì)算所述堆棧指針位置至所述堆??臻g頂部位置之間的空閑內(nèi)存。
3.如權(quán)利要求1或2所述的方法,其特征在于,所述確定當(dāng)前任務(wù)的堆??臻g的堆棧指針位置至堆??臻g頂部位置之間的空閑內(nèi)存之前,還包括:
為正在運(yùn)行的所有任務(wù)建立任務(wù)鏈表,并設(shè)置任務(wù)指針,指向至少一個(gè)任務(wù),作為當(dāng)前任務(wù)。
4.如權(quán)利要求3所述的方法,其特征在于,所述將所述堆棧指針位置所在內(nèi)存頁的起始位置重置為堆??臻g頂部位置之后,還包括:
將所述任務(wù)指針設(shè)置為所述任務(wù)鏈表中的下一個(gè)任務(wù),以將下一個(gè)任務(wù)更新為當(dāng)前任務(wù),并返回執(zhí)行空閑內(nèi)存的確定操作。
5.如權(quán)利要求4所述的方法,其特征在于,所述確定當(dāng)前任務(wù)的堆棧空間的堆棧指針位置至堆??臻g頂部位置之間的空閑內(nèi)存之后,還包括:
如果所述空閑內(nèi)存不大于所述預(yù)置閾值,則將所述任務(wù)指針設(shè)置為所述任務(wù)鏈表中的下一個(gè)任務(wù),以將下一個(gè)任務(wù)更新為當(dāng)前任務(wù),并返回執(zhí)行空閑內(nèi)存的確定操作。
6.一種動(dòng)態(tài)堆棧內(nèi)存管理裝置,其特征在于,所述裝置包括:
空閑內(nèi)存確定模塊,用于確定當(dāng)前任務(wù)的堆??臻g的堆棧指針位置至堆??臻g頂部位置之間的空閑內(nèi)存;
內(nèi)存頁釋放模塊,用于如果所述空閑內(nèi)存大于預(yù)置閾值,則釋放所述堆棧指針位置至所述堆??臻g頂部位置之間的內(nèi)存頁;
重置模塊,用于將所述堆棧指針位置所在內(nèi)存頁的起始位置重置為堆??臻g頂部位置。
7.如權(quán)利要求6所述的裝置,其特征在于,所述空閑內(nèi)存確定模塊包括:
位置獲取單元,用于每隔預(yù)置時(shí)長獲取所述當(dāng)前任務(wù)的堆??臻g的堆棧指針位置和堆??臻g頂部位置;
空閑內(nèi)存計(jì)算單元,用于計(jì)算所述堆棧指針位置至所述堆??臻g頂部位置之間的空閑內(nèi)存。
8.如權(quán)利要求6或7所述的裝置,其特征在于,所述裝置還包括:
任務(wù)鏈表建立模塊,用于為正在運(yùn)行的所有任務(wù)建立任務(wù)鏈表,并設(shè)置任務(wù)指針,指向至少一個(gè)任務(wù),作為當(dāng)前任務(wù)。
9.如權(quán)利要求8所述的裝置,其特征在于,所述裝置還包括:
當(dāng)前任務(wù)更新模塊,用于將所述任務(wù)指針設(shè)置為所述任務(wù)鏈表中的下一個(gè)任務(wù),以將下一個(gè)任務(wù)更新為當(dāng)前任務(wù),并返回所述空閑內(nèi)存確定模塊。
10.如權(quán)利要求9所述的裝置,其特征在于,所述裝置還包括:
循環(huán)遍歷模塊,用于如果所述空閑內(nèi)存不大于所述預(yù)置閾值,則將所述任務(wù)指針設(shè)置為所述任務(wù)鏈表中的下一個(gè)任務(wù),以將下一個(gè)任務(wù)更新為當(dāng)前任務(wù),并返回所述空閑內(nèi)存確定模塊。