金年会 金字招牌诚信至上,金年会 金字招牌诚信至上,金年会 金字招牌诚信至上,金年会 金字招牌诚信至上
91手機維修論壇
標題:
常見(jiàn)的計算機系統Windows內存出錯幾種情況分析和處理方法
[打印本頁(yè)]
作者:
k10911
時(shí)間:
2012-5-2 14:13
標題:
常見(jiàn)的計算機系統Windows內存出錯幾種情況分析和處理方法
大家在使用windows系統的時(shí)候,會(huì )出現內存的讀取錯誤,或者不能讀取
或者讀取失敗等錯誤,這一般都是在你電腦使用久了才會(huì )有這種情況出現的,
因為安裝的程序多了,或者有木馬等,使得內存分配 不過(guò)來(lái),造成的。
當然我們可以嘗試一下殺毒,或者刪除一些不必要的軟件,修復一下系統一般都能夠解決的。。。
下面詳細點(diǎn)了解一下出現這個(gè)問(wèn)題的原因,以及解決的辦法:
1,首先我們考慮的是程序自己本身有問(wèn)題,排除這點(diǎn)后,再去排除別的。
在使用動(dòng)態(tài)分配的應用程序中,有時(shí)會(huì )有這樣的情況出現:程序試圖讀寫(xiě)一塊「應該可用」的內存,但不知為什么,這個(gè)預料中可用的光標已經(jīng)失效了。有可能是「忘記了」向操作系統要求分配,也可能是程序自己在某個(gè)時(shí)候已經(jīng)注銷(xiāo)了這塊內存而「沒(méi)有留意」等等。注銷(xiāo)了的內存被系統回收,其訪(fǎng)問(wèn)權已經(jīng)不屬于該應用程序,因此讀寫(xiě)操作也同樣會(huì )觸發(fā)系統的保護機制,企圖「違法」的程序唯一的下場(chǎng)就是被操作終止執行,回收全部資源。計算機世界的法律還是要比人類(lèi)有效和嚴厲得多!像這樣的情況都屬于程序自身的BUG,你往往可在特定的操作順序下重現錯誤。無(wú)效光標不一定總是0,因此錯誤提示中的內存地址也不一定為「0x00000000」,而是其它隨機數字。如果系統經(jīng)常有所提到的錯誤提示,下面的建議可能會(huì )有說(shuō)明 :
1.檢視系統中是否有木馬或病毒。這類(lèi)程序為了控制系統往往不負責任地修改系統,從而導致操作系統異常。平常應加強信息安全意識,對來(lái)源不明的可執行程序絕不好奇。
2.更新操作系統,讓操作系統的安裝程序重新拷貝正確版本的系統檔案、修正系統參數。
有時(shí)候操作系統本身也會(huì )有BUG,要注意安裝官方發(fā)行的升級程序。
3.試用新版本的應用程序。
2,程序需要一塊內存用以?xún)Υ鏀祿䲡r(shí),就需要使用操作系統提供的「功能函數」來(lái)申請,如果內存分配成功,函數就會(huì )將所新開(kāi)辟的內存區地址返回給應用程序,應用程序就可以通過(guò)這個(gè)地址使用這塊內存。這就是「動(dòng)態(tài)內存分配」,內存地址也就是編程中的「光標」。內存不是永遠都招之即來(lái)、用之不盡的,有時(shí)候內存分配也會(huì )失敗。當分配失敗時(shí)系統函數會(huì )返回一個(gè)0值,這時(shí)返回值「0」已不表示新啟用的游標,而是系統向應用程序發(fā)出的一個(gè)通知,告知出現了錯誤。作為應用程序,在每一次申請內存后都應該檢查返回值是否為0,如果是,則意味著(zhù)出現了故障,應該采取一些措施挽救,這就增強了程序的「健壯性」。若應用程序沒(méi)有檢查這個(gè)錯誤,它就會(huì )按照「思維慣性」認為這個(gè)值是給它分配的可用游標,繼續在之后的執行中使用這塊內存。
真正的0地址內存區儲存的是計算機系統中最重要的「中斷描述符表」,絕對不允許應用程序使用。
在沒(méi)有保護機制的操作系統下(如DOS),寫(xiě)數據到這個(gè)地址會(huì )導致立即當機,
而在健壯的操作系統中,如Windows等,這個(gè)操作會(huì )馬上被系統的保護機制捕獲,其結果就是由操作系統強行關(guān)閉出錯的應用程序,
以防止其錯誤擴大。這時(shí)候,就會(huì )出現上述的「寫(xiě)內存」錯誤,并指出被引用的內存地址為「0x00000000」。內存分配失敗故障的原因很多,
內存不夠、系統函數的版本不匹配等都可能有影響。因此,這種分配失敗多見(jiàn)于操作系統使用很長(cháng)時(shí)間后,安裝了多種應用程序(包括無(wú)意中「安裝」的病毒程序),更改了大量的系統參數和系統檔案之后。
了解了這個(gè)問(wèn)題存在的原因后,我們就好處理了。
Win XP的「預讀取」技術(shù)
這種最佳化技術(shù)也被用到了應用軟件上,系統對每一個(gè)應用軟件的前幾次啟動(dòng)情況進(jìn)行分析,然后新增一個(gè)描述套用需求的虛擬「內存映像」,并把這些信息儲存到WINDOWSPREFETCH數據夾。一旦建立了映像,應用軟件的裝入速度大大提高。XP的預讀取數據儲存了最近8次系統啟動(dòng)或應用軟件啟動(dòng)的信息。
后敘:
目前此方法亦是獨步網(wǎng)絡(luò )的(其碼自己針對此問(wèn)題查了許久),也是常見(jiàn)問(wèn)題,原本幾乎每天睡前關(guān)閉軟件時(shí)一些程序都會(huì )發(fā)生...read...
現在就沒(méi)發(fā)生了。
運行某些程序的時(shí)候,有時(shí)會(huì )出現內存錯誤的提示(0x后面內容有可能不一樣),然后該程序就關(guān)閉。
“0x????????”指令引用的“0x????????”內存。該內存不能為“read”。
“0x????????”指令引用的“0x????????”內存,該內存不能為“written”。
不知你出現過(guò)類(lèi)似這樣的故障嗎?
一般出現這個(gè)現象有方面的,一是硬件,即內存方面有問(wèn)題,二是軟件,這就有多方面的問(wèn)題了。
將虛擬內存撤換
答案:
目前為止是肯定的,也就是如在下次冷天到來(lái)時(shí)亦沒(méi)再發(fā)生,就代表這是主因
追加:
如果你用 Ghost 恢復 OS 后建議 刪除WINDOWS\PREFETCH目錄下所有*.PF文件因為需讓windows重新收集程序的物理地址。
有些應用程序錯誤 "0x7cd64998" 指令參考的 "0x14c96730" 內存。該內存不能為 "read"推論是此原因。
歡迎光臨 91手機維修論壇 (http://www.jstransmit.com/)
Powered by Discuz! X3.4
灌云县
|
陈巴尔虎旗
|
淳化县
|
云霄县
|
左贡县
|
台南市
|
新河县
|
南开区
|
元谋县
|
光山县
|
靖宇县
|
泸定县
|
桐庐县
|
大英县
|
疏勒县
|
资溪县
|
都江堰市
|
永靖县
|
报价
|
青龙
|
定结县
|
宣汉县
|
罗山县
|
讷河市
|
通州区
|
大方县
|
长宁区
|
巧家县
|
霍林郭勒市
|
蕲春县
|
汉源县
|
甘孜县
|
凤凰县
|
上蔡县
|
建湖县
|
台南县
|
涪陵区
|
永康市
|
南溪县
|
岑巩县
|
青神县
|