專利名稱:在磁盤操作系統(tǒng)環(huán)境下清除內(nèi)存的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種清除內(nèi)存的方法,特別涉及一種在磁盤操作系統(tǒng)(DOS)環(huán)境下清除內(nèi)存的方法,可應(yīng)用于信息處理裝置的內(nèi)存管理。
背景技術(shù):
內(nèi)存是信息處理裝置用來暫時(shí)儲(chǔ)存程序和數(shù)據(jù)的地方,一般說來,內(nèi)存可分為只讀存儲(chǔ)器(Read Only Memory;ROM)和隨機(jī)存取內(nèi)存(Random AccessMemory;RAM)兩種,其中只讀存儲(chǔ)器(ROM)的數(shù)據(jù)無法任使用者隨意更改,通常是存放計(jì)算機(jī)系統(tǒng)的基本輸出入系統(tǒng)(BIOS),而隨機(jī)存取內(nèi)存(RAM)則是可以放置操作系統(tǒng)、應(yīng)用程序的地方,而且所有的程序都要加載至隨機(jī)存取內(nèi)存(RAM)才可正確的執(zhí)行。
而隨機(jī)存取內(nèi)存(RAM),則由中央處理單元(CPU)控制,是信息處理裝置主要的儲(chǔ)存區(qū)域,隨機(jī)存取內(nèi)存(RAM)可從鍵盤(Keyboard)或鼠標(biāo)之類的來源讀取指令,幫助中央處理單元(CPU)將數(shù)據(jù)(Data)寫到一樣可讀可寫的輔助內(nèi)存(Auxiliary Memory),以便日后仍可取用,也能主動(dòng)把數(shù)據(jù)送到輸出裝置,如打印機(jī)、顯示器…等等,但隨機(jī)存取內(nèi)存(RAM)只是屬于暫時(shí)性內(nèi)存,因隨機(jī)存取內(nèi)存(RAM)中的數(shù)據(jù)和指令可以被新的數(shù)據(jù)所取代,而且關(guān)掉電源后,其儲(chǔ)存的數(shù)據(jù)和指令也會(huì)消失。
當(dāng)信息處理裝置在磁盤操作系統(tǒng)(DOS)環(huán)境下工作時(shí),由于內(nèi)存有一定容量的限制,當(dāng)內(nèi)存中駐留很多程序時(shí),如此時(shí)再執(zhí)行其它占用內(nèi)存的程序,則會(huì)超過已有可用內(nèi)存空間,而出現(xiàn)內(nèi)存不夠的警示,并將此程序結(jié)束。
現(xiàn)有解決的方法將暫時(shí)不用的程序從內(nèi)存清除,提供內(nèi)存空間給所需用的新程序,但現(xiàn)有的方式都存在著不同程度的缺點(diǎn)1.如清除程序本身必須駐留在內(nèi)存中,占掉了常規(guī)內(nèi)存的空間,增加了信息處理裝置的負(fù)擔(dān);2.大多清除程序自身無法撤離內(nèi)存,或者沒有檢測自身是否安裝的功能,而造成重復(fù)安裝;3.清除程序要占用或借用磁盤操作系統(tǒng)(DOS)的中斷號(hào)。
由上所述,如何有效改善現(xiàn)有技術(shù)的缺點(diǎn),并有效達(dá)成清除內(nèi)存空間的目的,實(shí)為一值得探討的技術(shù)課題。
發(fā)明內(nèi)容
鑒于以上現(xiàn)有技術(shù)的問題,本發(fā)明提出一種在磁盤操作系統(tǒng)(DOS)環(huán)境下清除內(nèi)存的方法,其目的在于當(dāng)信息處理裝置在磁盤操作系統(tǒng)(DOS)環(huán)境下工作時(shí),可獲得足夠的內(nèi)存空間來執(zhí)行程序,本發(fā)明包括有保存內(nèi)存狀態(tài)及釋放內(nèi)存的步驟,其中保存內(nèi)存狀態(tài)包括有中斷向量表、常規(guī)內(nèi)存的最后一個(gè)內(nèi)存控制區(qū)段(Memory Control Block;MCB)的地址及最后一個(gè)可用的擴(kuò)展內(nèi)存規(guī)格(Extended Memory Specifi cat ion;XMS)句柄,而釋放內(nèi)存步驟則包括有釋放常規(guī)內(nèi)存及釋放擴(kuò)展內(nèi)存規(guī)格(XMS),并利用上述步驟達(dá)到清除內(nèi)存的目的。
具體地講,本發(fā)明公開了一種在磁盤操作系統(tǒng)環(huán)境下清除內(nèi)存的方法,該方法包括于一信息處理裝置執(zhí)行一常駐程序前,將該信息處理裝置的一中斷向量表保存于一儲(chǔ)存裝置;將該信息處理裝置的一內(nèi)存控制區(qū)段的地址加以保存;將該信息處理裝置的一擴(kuò)展內(nèi)存規(guī)格句柄加以保存;檢視該信息處理裝置的常規(guī)內(nèi)存中一激活程序,并于檢視完成后恢復(fù)該中斷向量表;及依據(jù)該內(nèi)存控制區(qū)段的地址將該常規(guī)內(nèi)存加以釋放,同時(shí)依據(jù)該擴(kuò)展內(nèi)存規(guī)格句柄將該擴(kuò)展內(nèi)存規(guī)格加以釋放,以清除該信息處理裝置的內(nèi)存中暫時(shí)不用的常駐程序。
所述的在磁盤操作系統(tǒng)環(huán)境下清除內(nèi)存的方法,其中檢視該信息處理裝置的常規(guī)內(nèi)存中一激活程序,若該常規(guī)內(nèi)存中設(shè)置有兩組該激活程序,則退出該激活程序。
所述的在磁盤操作系統(tǒng)環(huán)境下清除內(nèi)存的方法,其中該內(nèi)存控制區(qū)段的地址更為該常規(guī)內(nèi)存的最后一個(gè)該內(nèi)存控制區(qū)段(MCB)地址。
所述的在磁盤操作系統(tǒng)環(huán)境下清除內(nèi)存的方法,其中該擴(kuò)展內(nèi)存規(guī)格句柄更為該信息處理裝置最后一個(gè)可用的該擴(kuò)展內(nèi)存規(guī)格句柄。
所述的在磁盤操作系統(tǒng)環(huán)境下清除內(nèi)存的方法,其中將該信息處理裝置的該內(nèi)存控制區(qū)段的地址加以保存,還包括下列步驟執(zhí)行一中斷步驟來得到該內(nèi)存控制區(qū)段的地址;及檢視該內(nèi)存控制區(qū)段的地址,并于該內(nèi)存控制區(qū)段的地址為最后一個(gè)位置時(shí),保存該內(nèi)存控制區(qū)段的地址。
所述的在磁盤操作系統(tǒng)環(huán)境下清除內(nèi)存的方法,其中將該信息處理裝置的該擴(kuò)展內(nèi)存規(guī)格句柄加以保存,還包括有執(zhí)行一中斷步驟。
所述的在磁盤操作系統(tǒng)環(huán)境下清除內(nèi)存的方法,其中依據(jù)該內(nèi)存控制區(qū)段的地址將該常規(guī)內(nèi)存加以釋放,還包括于該內(nèi)存中尋找該內(nèi)存控制區(qū)段的地址的步驟。
所述的在磁盤操作系統(tǒng)環(huán)境下清除內(nèi)存的方法,其中依據(jù)該擴(kuò)展內(nèi)存規(guī)格句柄將該擴(kuò)展內(nèi)存規(guī)格加以釋放,還包括于該內(nèi)存中尋找該擴(kuò)展內(nèi)存規(guī)格句柄的步驟。
所述的在磁盤操作系統(tǒng)環(huán)境下清除內(nèi)存的方法,其中該儲(chǔ)存裝置為一物理內(nèi)存。
所述的在磁盤操作系統(tǒng)環(huán)境下清除內(nèi)存的方法,其中該儲(chǔ)存裝置為一軟盤。
所述的在磁盤操作系統(tǒng)環(huán)境下清除內(nèi)存的方法,其中該儲(chǔ)存裝置為一硬盤。
有關(guān)本發(fā)明的特征與技術(shù),配合附圖、最佳實(shí)施例詳細(xì)說明如下。
圖1為本發(fā)明在磁盤操作系統(tǒng)(DOS)環(huán)境下清除內(nèi)存的方法的程序流程圖;圖2為本發(fā)明在磁盤操作系統(tǒng)(DOS)環(huán)境下清除內(nèi)存的方法的儲(chǔ)存內(nèi)存控制區(qū)段(MCB)地址流程圖;圖3為本發(fā)明在磁盤操作系統(tǒng)(DOS)環(huán)境下清除內(nèi)存的方法的儲(chǔ)存擴(kuò)展內(nèi)存規(guī)格(XMS)句柄流程圖;
圖4為本發(fā)明在磁1盤操作系統(tǒng)(DOS)環(huán)境下清除內(nèi)存的方法的釋放常規(guī)內(nèi)存流程圖;及圖5為本發(fā)明在磁盤操作系統(tǒng)(DOS)環(huán)境下清除內(nèi)存的方法的釋放擴(kuò)展內(nèi)存規(guī)格(XMS)流程圖。
附圖標(biāo)記說明步驟110保存中斷向量表步驟120保存最后一個(gè)內(nèi)存控制區(qū)段(MCB)的地址步驟130保存最后一個(gè)可用的擴(kuò)展內(nèi)存規(guī)格(XMS)句柄步驟140判斷內(nèi)存中是否有兩份激活程序步驟150退出激活程序并回復(fù)中斷向量表步驟160回復(fù)中斷向量表步驟170釋放常規(guī)內(nèi)存及釋放擴(kuò)展內(nèi)存規(guī)格(XMS)步驟210執(zhí)行一中斷步騾來得到內(nèi)存控制區(qū)段(MCB)的地址步驟220判斷內(nèi)存控制區(qū)段(MCB)是否為最后一個(gè)地址步驟230保存此內(nèi)存控制區(qū)段(MCB)的地址步驟310執(zhí)行一中斷步驟步驟320取得擴(kuò)展內(nèi)存規(guī)格(XMS)句柄并加以保存步驟410尋找已保存的內(nèi)存控制區(qū)段(MCB)所對(duì)應(yīng)的地址步驟420將此內(nèi)存控制區(qū)段(MCB)加以釋放步驟510尋找已保存的最后一個(gè)可用擴(kuò)展內(nèi)存規(guī)格(XMS)句柄步驟520將此可用擴(kuò)展內(nèi)存規(guī)格(XMS)句柄加以釋放具體實(shí)施方式
本發(fā)明為一種在磁盤操作系統(tǒng)(DOS)環(huán)境下清除內(nèi)存的方法,請(qǐng)參照?qǐng)D1,本發(fā)明在磁盤操作系統(tǒng)(DOS)環(huán)境下清除內(nèi)存的方法的程序流程圖。
當(dāng)信息處理裝置于磁盤操作系統(tǒng)(DOS)環(huán)境下工作時(shí),因?yàn)槌R?guī)內(nèi)存(640K)皆有容量的限制,故執(zhí)行常駐程序(Terminate andStay Resident;TSR)時(shí),其常駐程序(TSR)常常會(huì)駐留于內(nèi)存中而占據(jù)內(nèi)存的空間,所以信息處理裝置于執(zhí)行常駐程序(TSR)前,先以儲(chǔ)存裝置來保存中斷向量表(步驟110),也就是將絕對(duì)位置00000~00400H共1024個(gè)字節(jié)的內(nèi)容加以保存,而此儲(chǔ)存裝置可為物理內(nèi)存(Physical Memory)、軟盤(FLOPPY DISK)或硬盤(Hard Disk),然后使用內(nèi)存保存最后一個(gè)內(nèi)存控制區(qū)段(MCB)的地址(步驟120)及保存最后一個(gè)可用的擴(kuò)展內(nèi)存規(guī)格(XMS)句柄(步驟130),如此則完成了保存內(nèi)存狀態(tài)的步驟,而信息處理裝置仍繼續(xù)執(zhí)行其它的程序。
當(dāng)需要撤除常駐程序(TSR)時(shí),信息處理裝置則執(zhí)行釋放內(nèi)存的步驟,來達(dá)成清除內(nèi)存空間的目的,首先需判斷內(nèi)存中是否有兩份激活程序(步驟140),如內(nèi)存中有第2份激活程序(Command.com),則不適于釋放內(nèi)存,需先退出激活程序并恢復(fù)中斷向量表(步驟150),而內(nèi)存中若只有1份激活程序(Command.com),則直接回復(fù)中斷向量表(步驟160),并于回復(fù)后釋放常規(guī)內(nèi)存及釋放擴(kuò)展內(nèi)存規(guī)格(XMS)(步驟170),如此則完成了清除內(nèi)存的工作。
接下來就本發(fā)明的儲(chǔ)存內(nèi)存控制區(qū)段(MCB)地址的步驟作一詳細(xì)說明,請(qǐng)參照?qǐng)D2,其為本發(fā)明在磁盤操作系統(tǒng)(DOS)環(huán)境下清除內(nèi)存的方法的儲(chǔ)存內(nèi)存控制區(qū)段(MCB)地址流程圖。
首先執(zhí)行一中斷步驟(INT21)來得到內(nèi)存控制區(qū)段(MCB)的地址(步驟210),并判斷內(nèi)存控制區(qū)段(MCB)是否為最后一個(gè)地址(步驟220),如果此為常規(guī)內(nèi)存的最后一個(gè)內(nèi)存控制區(qū)段(MCB)的地址,則保存此內(nèi)存控制區(qū)段(MCB)的地址(步驟230),若此內(nèi)存控制區(qū)段(MCB)的地址并不是最后一個(gè)地址,則回到步驟210繼續(xù)執(zhí)行,直到內(nèi)存保存常規(guī)內(nèi)存的最后一個(gè)內(nèi)存控制區(qū)段(MCB)的地址后結(jié)束。
接下來就本發(fā)明的儲(chǔ)存擴(kuò)展內(nèi)存規(guī)格(XMS)句柄的步驟作一詳細(xì)說明,請(qǐng)參照?qǐng)D3,其為本發(fā)明在磁盤操作系統(tǒng)(DOS)環(huán)境下清除內(nèi)存的方法的儲(chǔ)存擴(kuò)展內(nèi)存規(guī)格(XMS)句柄流程圖。
首先執(zhí)行一中斷步驟(步驟310),然后取得擴(kuò)展內(nèi)存規(guī)格(XMS)句柄并保存(步驟320),其保存的方法可用擴(kuò)展內(nèi)存規(guī)格(XMS)的功能(9號(hào)功能)申請(qǐng)一塊內(nèi)存(容量為1K),再將擴(kuò)展內(nèi)存規(guī)格(XMS)句柄加以儲(chǔ)存,而此擴(kuò)展內(nèi)存規(guī)格(XMS)句柄更為最后一個(gè)可用的擴(kuò)展內(nèi)存規(guī)格(XMS)句柄。
接下來就本發(fā)明的釋放常規(guī)內(nèi)存的步驟流程作一詳細(xì)說明,請(qǐng)參照?qǐng)D4,其為本發(fā)明在磁盤操作系統(tǒng)(DOS)環(huán)境下清除內(nèi)存的方法的釋放常規(guī)內(nèi)存流程圖。
首先尋找已保存的內(nèi)存控制區(qū)段(MCB)所對(duì)應(yīng)的地址(步驟410),找到屬于常駐程序(TSR)的內(nèi)存控制區(qū)段后,將內(nèi)存控制區(qū)段的地址加1后,并儲(chǔ)存于額外區(qū)段緩存器(Extra Segment;ES),呼叫磁盤操作系統(tǒng)(DOS)功能后,則可將此內(nèi)存控制區(qū)段(MCB)加以釋放(步驟420),然后再尋找下一個(gè)內(nèi)存控制區(qū)段(MCB),并加以釋放,直到將所有的內(nèi)存控制區(qū)段(MCB)完全釋放,如此即完成了常規(guī)內(nèi)存的釋放。
接著就本發(fā)明的釋放擴(kuò)展內(nèi)存規(guī)格(XMS)的步驟流程作一詳細(xì)的說明,請(qǐng)參照?qǐng)D5,其為本發(fā)明在磁盤操作系統(tǒng)(DOS)環(huán)境下清除內(nèi)存的方法的釋放擴(kuò)展內(nèi)存規(guī)格(XMS)流程圖。
首先尋找已保存的最后一個(gè)可用擴(kuò)展內(nèi)存規(guī)格(XMS)句柄(步驟510),然后將此可用擴(kuò)展內(nèi)存規(guī)格(XMS)句柄加以釋放(步驟520),并尋找下一個(gè)擴(kuò)展內(nèi)存規(guī)格(XMS)句柄,重復(fù)上述步驟,直到釋放所有已分配的擴(kuò)展內(nèi)存規(guī)格(XMS)。
當(dāng)完成上述所有步驟后,信息處裝置的內(nèi)存中暫時(shí)不用的常駐程序(TSR)則已經(jīng)被清除,使內(nèi)存有更充裕的空間去執(zhí)行接下來的常駐程序(TSR)。
雖然本發(fā)明以前述的較佳實(shí)施例公開,然其并非用以限定本發(fā)明,任何本領(lǐng)域普通技術(shù)人員,在不脫離本發(fā)明精神和范圍內(nèi),當(dāng)可作一些更動(dòng)與潤飾,因此本發(fā)明的專利保護(hù)范圍以權(quán)利要求為準(zhǔn)。
權(quán)利要求
1.一種在磁盤操作系統(tǒng)環(huán)境下清除內(nèi)存的方法,其特征在于,該方法包括于一信息處理裝置執(zhí)行一常駐程序前,將該信息處理裝置的一中斷向量表保存于一儲(chǔ)存裝置;將該信息處理裝置的一內(nèi)存控制區(qū)段的地址加以保存;將該信息處理裝置的一擴(kuò)展內(nèi)存規(guī)格句柄加以保存;檢視該信息處理裝置的常規(guī)內(nèi)存中一激活程序,并于檢視完成后恢復(fù)該中斷向量表;及依據(jù)該內(nèi)存控制區(qū)段的地址將該常規(guī)內(nèi)存加以釋放,同時(shí)依據(jù)該擴(kuò)展內(nèi)存規(guī)格句柄將該擴(kuò)展內(nèi)存規(guī)格加以釋放,以清除該信息處理裝置的內(nèi)存中暫時(shí)不用的常駐程序。
2.如權(quán)利要求1所述的在磁盤操作系統(tǒng)環(huán)境下清除內(nèi)存的方法,其特征在于,檢視該信息處理裝置的常規(guī)內(nèi)存中一激活程序,若該常規(guī)內(nèi)存中設(shè)置有兩組該激活程序,則退出該激活程序。
3.如權(quán)利要求1所述的在磁盤操作系統(tǒng)環(huán)境下清除內(nèi)存的方法,其特征在于,該內(nèi)存控制區(qū)段的地址更為該常規(guī)內(nèi)存的最后一個(gè)該內(nèi)存控制區(qū)段(MCB)地址。
4.如權(quán)利要求1所述的在磁盤操作系統(tǒng)環(huán)境下清除內(nèi)存的方法,其特征在于,該擴(kuò)展內(nèi)存規(guī)格句柄更為該信息處理裝置最后一個(gè)可用的該擴(kuò)展內(nèi)存規(guī)格句柄。
5.如權(quán)利要求1所述的在磁盤操作系統(tǒng)環(huán)境下清除內(nèi)存的方法,其中將該信息處理裝置的該內(nèi)存控制區(qū)段的地址加以保存,其特征在于,還包括下列步驟執(zhí)行一中斷步驟來得到該內(nèi)存控制區(qū)段的地址;及檢視該內(nèi)存控制區(qū)段的地址,并于該內(nèi)存控制區(qū)段的地址為最后一個(gè)位置時(shí),保存該內(nèi)存控制區(qū)段的地址。
6.如權(quán)利要求1所述的在磁盤操作系統(tǒng)環(huán)境下清除內(nèi)存的方法,其特征在于,將該信息處理裝置的該擴(kuò)展內(nèi)存規(guī)格句柄加以保存,還包括有執(zhí)行一中斷步驟。
7.如權(quán)利要求1所述的在磁盤操作系統(tǒng)環(huán)境下清除內(nèi)存的方法,其特征在于,依據(jù)該內(nèi)存控制區(qū)段的地址將該常規(guī)內(nèi)存加以釋放,還包括于該內(nèi)存中尋找該內(nèi)存控制區(qū)段的地址的步驟。
8.如權(quán)利要求1所述的在磁盤操作系統(tǒng)環(huán)境下清除內(nèi)存的方法,其特征在于,依據(jù)該擴(kuò)展內(nèi)存規(guī)格句柄將該擴(kuò)展內(nèi)存規(guī)格加以釋放,還包括于該內(nèi)存中尋找該擴(kuò)展內(nèi)存規(guī)格句柄的步驟。
9.如權(quán)利要求1所述的在磁盤操作系統(tǒng)環(huán)境下清除內(nèi)存的方法,其特征在于,該儲(chǔ)存裝置為一物理內(nèi)存。
10.如權(quán)利要求1所述的在磁盤操作系統(tǒng)環(huán)境下清除內(nèi)存的方法,其特征在于,該儲(chǔ)存裝置為一軟盤。
11.如權(quán)利要求1所述的在磁盤操作系統(tǒng)環(huán)境下清除內(nèi)存的方法,其特征在于,該儲(chǔ)存裝置為一硬盤。
全文摘要
本發(fā)明涉及一種在磁盤操作系統(tǒng)(Disk Operating System;DOS)環(huán)境下清除內(nèi)存的方法,信息處理裝置在磁盤操作系統(tǒng)(DOS)環(huán)境下工作時(shí),若內(nèi)存的空間不夠使用,則將內(nèi)存中暫時(shí)不使用的程序清除,以提供足夠的內(nèi)存空間供信息處理裝置使用,其包括有保存內(nèi)存狀態(tài)及釋放內(nèi)存的步驟,并利用上述步驟達(dá)到清除內(nèi)存的目的。
文檔編號(hào)G06F12/10GK1510571SQ0215787
公開日2004年7月7日 申請(qǐng)日期2002年12月23日 優(yōu)先權(quán)日2002年12月23日
發(fā)明者劉文涵, 宋建福, 丁懷亮 申請(qǐng)人:英業(yè)達(dá)股份有限公司